Modul 2: Input/Output, Tipe Data, Operator, dan Variable¶
Pada Modul 1 anda diharapkan telah menginstall Python dan mengerti cara membuka dan menggunakan program IDLE, baik pada mode interaktif maupun pada mode Editor. Di modul ini anda akan belajar materi berikut ini:
Output
Tipe Data
Operator
Variable
Statement dan Expression
Komentar
Input
Output¶
Program Pertama¶
Pada Modul 1 anda telah membuat program yang berisi sebaris kode berikut:
>>> print("Wilujeng Sumping")
Wilujeng Sumping
Sekarang kita akan bahas apa makna baris kode tersebut. Kode tersebut terdiri dari beberapa komponen yaitu:
kata
print
kurung buka
(
tanda petik
"
sebaris teks
Wilujeng Sumping
tanda petik
"
kurung tutup
)
Setiap komponen di atas memiliki peran penting tersendiri yang jika kita hilangkan atau ganti dapat mengubah output atau malah menimbulkan error. Sebagai contoh, mari kita hapus salah satu tanda petiknya.
>>> print("Wilujeng Sumping)
File "<ipython-input-7-b116f854f170>", line 1
print("Wilujeng Sumping)
^
SyntaxError: EOL while scanning string literal
Terlihat akan timbul error. Sebelum melanjutkan, coba anda modifikasi kode di atas sesukanya dan lihat efek yang ditimbulkan. Coba berkali-kali dengan mengganti yang berbeda.
Kata print
¶
Sekarang mari kita bahas apa itu print
pada Python. Sesuai namanya print
merupakan perintah untuk menampilkan sesuatu ke media output, misalnya menampilkan sesuatu ke Python prompt yang pada akhirnya terlihat di layar monitor kita. Lebih tepatnya, print
adalah sebuah built-in function (fungsi bawaan) yang disediakan oleh Python saat kita menginstallnya. Mari kita tanya Python apa itu print
dengan menggunakan kode berikut.
>>> type(print)
builtin_function_or_method
Function merupakan sebuah mini program yang menerima input dan melakukan sesuatu terhadap input tersebut menjadi result (hasil) pemetaan. Mirip seperti function \(f(x)=x^2\) pada matematika yang jika diberikan input akan memberikan result (hasil) berupa kuadrad dari nilai input tersebut. Namun selain memetakan input ke output, function pada Python memiliki kemampuan yang lebih luas seperti menggambar sebuah bentuk ke layar, memainkan lagu, menulis teks ke file dan sebagainya. Di pemrograman, fungsi jenis ini biasa disebut memberikan effect (efek), bukan result (hasil).
Akan ada modul tersendiri yang akan membahas lebih lanjut tentang fungsi termasuk bagaimana membuat fungsi anda sendiri (user-defined function), namun saat ini setidaknya kita tau bahwa Function dapat memberikan 2 hal:
result
effect
Note
Function dengan kemampuan yang lebih dari memetakan input ke output tersebut dalam bahasa pemrograman lain disebut juga Procedure.
Kurung buka dan tutup ( )
¶
Jika fungsi adalah sebuah mini program, maka untuk menjalankannya diperlukan tanda ( )
setelah nama fungsi yang ingin dijalankan (misal print
). Jika tanpa tanda ( )
maka yang dilakukan bukanlah menjalankan fungsi tersebut tetapi hanya mengeluarkan identitas dari fungsi tersebut. Perhatikan perbedaan kedua kode berikut:
>>> print
<function print>
>>> print()
>>> print()
>>> print()
>>> print()
Terlihat bahwa kode print
tanpa ( )
akan mengeluarkan nama fungsi tersebut, sedangkan jika dengan ( )
maka akan menjalankan perintah print
namun kita tidak melihat apa-apa karena tidak ada input yang harus ditampilkan melainkan sebuah tanda pindah baris (perhatikan jarak teks ini dengan kode di atas). Untuk itu, mulai sekarang pastikan anda tidak lupa untuk menambahkan tanda ( )
setiap kali ingin menjalankan sebuah fungsi.
Petik " "
¶
Tanda petik satu ('
) dan tanda petik dua ("
) di Python memiliki makna khusus yaitu sebagai cara untuk merepresentasikan data String. String merupakan sekuen dari karakter, termasuk huruf (a-z
, A-Z
), digit (0-9
), dan juga simbol (misalnya: !@#%^&*()_+
). Salah satu contoh string yang sudah kita lihat adalah "Wilujeng Sumping"
. Tanpa tanda petik, Wilujeng
dan Sumping
bisa dianggap sebagai nama fungsi, atau nama objek lainnya yang jelas bukan data string.
Kita juga bisa menggunakan cara sebelumnya untuk mengkonfirmasi bahwa petik akan membentuk sebuah string.
>>> type("Wilujeng Sumping")
str
>>> type('Wilujeng Sumping')
str
Terlihat bahwa type atau jenis dari objek "Wilujeng Sumping"
dan 'Wilujeng Sumping'
adalah str
alias String.
Argumen Fungsi¶
Kita sudah bahas sebelumnya bahwa fungsi biasa memiliki input. Penempatan "Wilujeng Sumping"
di dalam print( )
menandakan ia adalah input terhadap fungsi print
. Input terhadap fungsi yang diberikan saat memanggil fungsi disebut juga sebagai argumen fungsi tersebut. Seperti fungsi \(f(x)=x^2\), saat kita mengeset x=5
, maka 5
adalah argumen dari fungsi tersebut atau bisa ditulis \(f(5)\).
Bagaimana kita tau bahwa fungsi print
dapat menerima input? Apa saja input yang bisa diterima oleh fungsi print
? Salah satu cara mengetahuinya adalah dengan melihat dokumentasi dari fungsi tersebut. Semua fungsi bawaan Python biasanya memiliki penjelasan tentang apa yang dilakukan fungsi dan apa input dan outputnya. Caranya adalah dengan menggunakan fungsi help
seperti di bawah ini.
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
Terlihat bahwa fungsi print
dapat menerima value
, lalu ada input lain yaitu sep
dan end
. Tanda ...
mengartikan bahwa bisa terdapat lebih dari satu value
.
sep
merupakan string pemisah antarvalue
jika ada lebih dari satuvalue
, secara default adalah spasi.end
merupakan string yang ditambahkan di akhir, secara default adalah tanda pindah baris'\n'
.
Agar lebih memahami kegunaan masing-masing input pada fungsi print
, coba jalankan kode berikut dan lihat hasilnya.
>>> print("Wilujeng Sumping")
>>> print("Hello", "World!")
>>> print("Hello", "World!", sep='')
>>> print("Telkom", "University" ,sep="***",end="...")
>>> print("The Best")
Tipe Data¶
Program vs Data¶
Sebelumnya kita telah membahas tentang program, bahwa program adalah kumpulan instruksi. Namun, komponen lain yang sering dibicarakan orang terkait dengan program adalah data. Data adalah informasi yang diolah oleh program dan juga yang digunakan oleh program untuk menentukan bagaimana instruksi-instruksi harus dilakukan.
Jika dianalogikan seperti memasak, maka komponen dari resep terdiri dari 2, yaitu bahan-bahan yang digunakan dan juga instruksi langkah per langkahnya. Jika ada bahan yang diganti atau jumlahnya berbeda, maka instruksi yang dilakukan juga mungkin sedikit berbeda.
Data merupakan bagian yang sangat penting agar program menjadi dinamis, tanpa data maka program hanyalah instruksi statis yang selalu sama meski dilakukan berulang-ulang kali.
Tipe Data Dasar¶
Data yang tersimpan dalam komputer dan digunakan di dalam program memiliki nilai dan juga jenis atau tipe. Kedua hal tersebut akan terus diingat oleh program karena menentukan operasi apa yang dapat dilakukan pada data tersebut. Selain itu juga dibutuhkan ketika ingin menyimpan data di memory. Nilai yang terlihat sama namun memiliki tipe berbeda akan disimpan dengan bentuk yang berbeda di memory komputer. Perlu diketahui bahwa komputer menyimpan data di memory hanya dalam bentuk binary digits (bits) 0
atau 1
saja. Sehingga data sekomplek apapun akan diubah ke dalam bentuk bits tersebut. Detil tentang penyimpanan data ke dalam memory akan dipelajari di mata kuliah Organisasi dan Arsitektur Komputer.
Berikut adalah beberapa tipe data dasar yang akan sering kita gunakan dalam pemrograman:
String: sekuen karakter atau bisa juga dianggap sebagai teks
Integer: bilangan bulat (misal: 126)
Float: bilangan pecahan (misal: 37.5)
Boolean: nilai logika benar atau salah (yaitu: True dan False)
String¶
Anda telah melihat data berbentuk string ini pada contoh sebelumnya, yaitu "Wilujeng Sumping"
. Mungkin yang perlu diingat kembali bahwa String juga bisa terdiri dari angka misalnya "123"
. Karena diberi petik, maka angka tersebut tidak lagi memiliki makna sebuah bilangan yang bisa dijumlahkan atau dilakukan operasi aritmatik lainnya, melainkan hanya sebuah teks saja seperti halnya "Wilujeng Sumping"
.
>>> type("123")
str
Escape Sequence
Sebelumnya saat membicarakan fungsi print
, kita melihat bahwa nilai default dari parameter end
adalah pindah baris yang direpresentasikan oleh '\n'
. Perhatikan bahwa tanda \
(backslash) disebut juga escape character yang menyatakan bahwa karakter setelahnya punya arti yang berbeda. Karakter yang dimulai dengan backslash ini disebut juga dengan escape sequence.
Beberapa escape sequence yang sering digunakan antara lain:
Escape sequence |
Deskripsi |
---|---|
|
mengabaikan pindah baris sehingga kita bisa menulis multi-baris namun Python menganggapnya sebagai 1 baris |
|
pindah baris |
|
tab |
|
agar backslash tidak dianggap sebagai escape character |
|
agar |
|
agar |
Mari kita coba penggunaan escape sequence tersebut dalam kode.
>>> print("meskipun \
ini dua baris tapi dianggap satu baris")
meskipun ini dua baris tapi dianggap satu baris
Dengan adanya \
kemudian diikuti pindah baris, maka Python akan mengabaikan pindah baris tersebut, sehingga kode di atas dilihat oleh Python sebagai satu baris dan valid. Jika tanpa menggunakan \
maka akan menimbulkan error seperti di bawah ini. Python tidak memperbolehkan instruksi yang seharusnya satu baris ditulis menjadi beberapa baris.
>>> print("meskipun
ini dua baris tapi dianggap satu baris")
File "<ipython-input-9-bedcffb20373>", line 1
print("meskipun
^
SyntaxError: EOL while scanning string literal
>>> print("baris kesatu\nbaris kedua\nbaris ketiga")
baris kesatu
baris kedua
baris ketiga
>>> print("1\t2\t3")
1 2 3
Misalnya kita ingin memprint tanda backslash \
seperti contoh di bawah. Akan terjadi error karena \"
akan dianggap Python sebagai sebuah escape sequence, sehingga petik untuk penutup string dianggap belum ada. Jika ditambahkan \
di depannya maka Python tau bahwa karakter \
kedua hanyalah karakter biasa.
>>> print("ini backslash \")
File "<ipython-input-17-2e3a7501806b>", line 1
print("ini backslash \")
^
SyntaxError: EOL while scanning string literal
>>> print("ini backslash \\")
ini backslash \
Jika kita membuat string menggunakan petik satu '
namun di dalam string ternyata terdapat karakter '
juga, maka Python akan menganggapnya sebagai penutup string, bukan sebagai bagian dari string.
>>> print('It's beautiful')
File "<ipython-input-20-0c280e2ad39c>", line 1
print('It's beautiful')
^
SyntaxError: invalid syntax
>>> print('It\'s beautiful')
It's beautiful
>>> print("Dia berkata "Merdeka!!"")
File "<ipython-input-22-674a11e7724a>", line 1
print("Dia berkata "Merdeka!!"")
^
SyntaxError: invalid syntax
>>> print("Dia berkata \"Merdeka!!\"")
Dia berkata "Merdeka!!"
Terkait petik, jika di dalam string akan terdapat petik satu, maka untuk membuat string kita bisa menggunakan petik dua, dengan begitu tidak perlu escape character, dan sebaliknya.
>>> print('Dia berkata "Merdeka!!"')
Dia berkata "Merdeka!!"
Note
Pengolahan string merupakan salah satu keunggulan dari Python, karena kemudahan yang disediakan oleh Python untuk memanipulasi string, termasuk membaca dan mengolah file teks. Kita akan lihat lebih detil tentang ini di modul 9 yang membahas khusus tentang String.
Integer¶
Integer adalah nama tipe data yang merupakan bilangan bulat. Integer bisa positif dan juga bisa negatif. Untuk bilangan negatif cukup menambahkan tanda minus (-
) di depan angka. Jika angka bernilai ribuan atau lebih, maka tidak boleh menuliskannya menggunakan pemisah (seperti titik atau koma), misalnya 1.250
atau -1,250
.
Perhatikan contoh berikut ini:
>>> type(-123)
int
>>> type(1.250.000)
File "<ipython-input-30-60350cba84ee>", line 1
type(1.250.000)
^
SyntaxError: invalid syntax
>>> type(1,250)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-31-5d9634f540cf> in <module>
----> 1 type(1,250)
TypeError: type() takes 1 or 3 arguments
Terakhir, pastikan tidak menggunakan tanda petik karena data yang dihasilkan bukan merupakan integer melainkan string.
>>> type("2020")
str
Float¶
Jika integer adalah untuk menyimpan bilangan bulat, maka float adalah tipe data untuk menyimpan bilangan pecahan (bilangan berkoma), seperti 1.25
atau -0.75
.
>>> type(1.75)
float
Untuk angka yang dimulai dari 0
seperti 0.25
, dapat juga ditulis tanpa 0
di depan, yaitu .25
. Begitu juga nol di akhir juga bisa diabaikan.
>>> .25
0.25
>>> 4.
4.0
Selain itu, cara penulisan lain dari float yaitu dengan menggunakan exponen. Misalnya kita ingin menuliskan 3x104, maka dapat juga ditulis dengan 3e4
atau 3E4
. Kita juga bisa menggunakan exponen negatif seperti 34567x10-3 untuk merepresentasikan 34.567
.
>>> 3E4
30000.0
>>> 34567E-3
34.567
Important
Meskipun di Indonesia penanda nilai pecahan adalah koma, namun di Python dan bahasa pemrograman lainnya wajib menggunakan titik.
Integer vs Float¶
Titik menjadi pembeda yang sangat penting antara Integer dan Floats. Sebagai contoh:
>>> type(4)
int
>>> type(4.0)
float
Meskipun secara nilai matematika keduanya adalah sama, namun cara penyimpanan keduanya di memory sangat berbeda. Float merupakan singkatan dari floating-point, yaitu sebuah sistem untuk merepresentasikan bilangan real di komputer. Anda akan belajar lebih detail bagaimana bilangan floating-point disimpan di komputer pada mata kuliah Sistem Digital.
Boolean¶
Nama Boolean berasal dari nama ilmuan George Boole (1815-1864) yang mendefinisikan tentang Aljabar Boolean yang hanya menggunakan dua buah nilai yaitu: True
dan False
atau biasa juga direpresentasikan dengan 1
dan 0
. Penjelasan lebih jauh tentang materi boolean akan anda dapatkan di mata kuliah Logika Matematika.
Di pemrograman, nilai boolean True
dan False
sangat penting agar bisa menciptakan sebuah program yang dinamis, yang bisa melakukan hal-hal berbeda tergantung dengan keadaan. Sebagai contoh saat anda memasukkan password ke komputer, maka program akan bertanya “Apakah password yang anda masukkan sama dengan password yang tersimpan di komputer?”
Komputer hanya akan memiliki 2 kemungkinan jawaban yaitu:
Ya, itu benar
Tidak, itu salah
Komputer tidak bisa mengeluarkan jawaban yang tidak pasti, misalnya “Sepertinya benar”.
Berdasarkan jawaban komputer, maka program akan bisa menentukan apa yang harus dilakukan:
Jika benar, maka masuk ke menu utama
Jika salah, munculkan pesan salah dan minta memasukkan password kembali
Di Python, nilai benar direpresentasikan dengan True
, dan salah direpresentasikan dengan False
. Pastikan menggunakan huruf kapital di awal.
>>> type(True)
bool
>>> type(true)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-6f4d8242c3d0> in <module>
----> 1 type(true)
NameError: name 'true' is not defined
Note
Tidak masalah jika anda belum melihat kegunaan nilai boolean saat ini. Anda baru akan banyak menggunakan nilai boolean pada Modul 3 dan Modul 4, yaitu tentang Pengkondisian dan Perulangan.
Operator¶
Seperti yang sudah disampaikan sebelumnya, bahwa komputer sangat ahli dalam menghitung. Sekarang kita akan melihat penggunaan Python untuk menghitung dengan menggunakan bilangan integer maupun float yang dioperasikan melalui sejumlah operator aritmatik. Sebagai contoh, kita dengan mudah bisa menggunakan Python Prompt sebagai kalkulator seperti di bawah ini:
>>> 10 + 15
25
Tanda +
pada kode di atas disebut operator sementara nilai 10
dan 15
biasa disebut sebagai operan.
Anda dapat mencoba-coba dengan kombinasi nilai dan operator lain yang anda ketahui, coba juga jika terdapat sangat banyak nilai dan operator.
Note
Perhatikan bahwa antara operan dan operator terdapat sebuah spasi. Hal ini tidaklah wajib di Python, namun sangat dianjurkan menambahkan sebuah spasi agar kode lebih mudah dibaca.
Operator Aritmatika Dasar¶
Ada banyak jenis operator di pemrograman, saat ini kita akan melihat dulu operator aritmatika. Berikutnya di Modul 3 anda akan belajar operator perbandingan, dan di Modul 4 tentang operator boolean/logika.
Beberapa operator tentu sudah tidak asing bagi anda, seperti:
tambah (
+
)kurang (
-
)kali (
*
)bagi (
/
)pangkat (
**
)
namun mungkin ada yang baru mendengar tentang operator berikut ini:
modulo (
%
)integer division (
//
)
Mari kita bahas penggunaannya satu per satu di Python.
Pemangkatan¶
Tanda dua bintang (double asterisk) **
digunakan sebagai tanda operasi pemangkatan bilangan. Sebagai contoh 23 dapat ditulis di dalam Python sebagai 2 ** 3
. Angka kiri 2
disebut sebagai basis dan angka kanan 3
sebagai pangkat.
Basis dan pangkat dapat berupa integer atau pun float, dan tipe data hasil pemangkatan tergantung tipe data operan. Coba jalankan kode di bawah ini satu per satu, dan perhatikan hasilnya untuk memahami aturan tipe data hasil.
>>> print(2 ** 4)
>>> print(2 ** 4.)
>>> print(2. ** 4)
>>> print(2. ** 4.)
16
16.0
16.0
16.0
Terlihat bahwa tipe data hasilnya:
integer: ketika kedua operan bertipe integer
float: ketika setidaknya satu operan bertipe float
Perkalian dan Pembagian¶
Simbol satu bintang (asterisk) *
digunakan sebagai operator perkalian, sementara garis miring (slash) /
sebagai operator pembagian.
Baik operan di sebelah kiri maupun di sebelah kanan dapat berupa integer maupun float. Jalankan kode di bawah ini untuk melihat aturan tipe data hasil untuk perkalian dan pembagian.
>>> print(2 * 3)
>>> print(2 * 3.)
>>> print(2. * 3)
>>> print(2. * 3.)
6
6.0
6.0
6.0
>>> print(6 / 3)
>>> print(6 / 3.)
>>> print(6. / 3)
>>> print(6. / 3.)
2.0
2.0
2.0
2.0
Terlihat bahwa untuk perkalian, aturan tipe data hasil sama seperti pada pemangkatan.
Sedangkan untuk pembagian, tipe data hasil selalu berupa float.
Integer division¶
Simbol dua garis miring (double slash) //
adalah operator integer division.
Sifat operasi integer division adalah:
hasil pembagiannya selalu berupa pembulatan ke nilai integer yang lebih kecil atau sama dengan nilai realnya, artinya tidak memperhatikan bagian pecahan (jika ada)
tipe data hasilnya mengikuti aturan integer vs float seperti pada perkalian
Jalankan kode di bawah ini dan perhatikan hasilnya untuk memahami cara kerja operator ini.
>>> print(6 // 4)
1
Perhatikan bahwa hasil pembagian 6 // 4
adalah 1
, bukan 1.5
seperti pada pembagian biasa. Hal ini didapatkan dengan membulatkan nilai hasil pembagian biasa menjadi bilangan integer dengan nilai yang sama atau lebih kecil. Hasil pembagian biasa adalah 1.5
dan integer terdekat yang nilainya sama atau lebih kecil adalah 1
.
Operan negatif
Jika anda telah memahami cara kerja operator ini, dapatkah anda menebak apa output kode berikut ini?
>>> print(-6 // 4)
Jika kita kurang teliti, mungkin kita akan menjawab dengan -1
, namun jika anda jalankan akan terlihat bahwa hasilnya adalah -2
. Hal ini dikarenakan hasil pembagian biasa adalah -1.5
dan integer terdekat yang lebih kecil adalah -2
, sedangkan -1
lebih besar dari -1.5
.
Aturan Tipe Data Hasil
Kemudian, meskipun kita membulatkan ke integer, namun tipe data hasilnya tergantung tipe data operan, sehingga tidak selalu integer. Jalankan kode di bawah ini untuk mengetahui aturan tipe data hasil integer division.
>>> print(6 // 3)
>>> print(6 // 3.)
>>> print(6. // 3)
>>> print(6. // 3.)
2
2.0
2.0
2.0
Terlihat bahwa aturannya mengikuti aturan perkalian.
Kapan Integer Division digunakan?
Berikut satu contoh kasus dimana kita perlu menggunakan integer division. Anggaplah anda membuat program kasir swalayan untuk menghitung jumlah kupon yang diberikan kepada pembeli. Aturannya mudah sekali, yaitu 1 kupon untuk setiap kelipatan Rp. 100.000,-. Ketika ada pembeli yang belanja Rp. 250.000, berapa kupon yang harusnya ia dapatkan?
Ia akan mendapat 2 buah kupon, dan anda dapat menghitungnya dengan mudah menggunakan integer division:
>>> print(250000 // 100000)
2
Modulo¶
Simbol persen %
merupakan operator modulo pada Python. Operasi modulo adalah untuk mendapatkan sisa bagi setelah proses integer division.
Sebagai contoh:
5 % 2
adalah1
. Karena dari nilai5
tersebut,4
-nya habis dibagi dengan2
, sehingga menyisakan1
.12 % 5
adalah2
. Karena dari nilai12
tersebut,10
-nya habis dibagi dengan5
, sehingga menyisakan2
.
Jika dijabarkan melalui operasi dasar lainnya, maka operasi modulo 12 %
5 terdiri dari:
12
//
5 menghasilkan 22
*
5 menghasilkan 1012
-
10 menghasilkan 2
Sehingga hasil akhirnya adalah 12 %
5 =
2
Dengan melakukan operasi seperti di atas, apakah output dari kode berikut?
>>> print(28 % 12)
Bagaimana dengan hasil operasi berikut ini? Bisakah anda menebak hasilnya?
>>> print(12 % 4.5)
Dengan cara yang sama kita bisa jabarkan:
12 // 4.5
menghasilkan2.0
2.0 * 4.5
menghasilkan9.0
12 - 9.0
menghasilkan3.0
Maka jawabannya adalah 3.0
Operan Negatif
Bagaimana jika terdapat operan bernilai negatif? Coba tebak apa output dari kode berikut ini:
>>> print(-12 % 5)
>>> print(12 % -5)
Dengan cara yang sama kita bisa jabarkan -12 % 5
menjadi:
-12 // 5
menghasilkan-3
-3 * 5
menghasilkan-15
-12 - (-15)
menghasilkan3
Sedangkan 12 % -5
menjadi:
12 // -5
menghasilkan-3
-3 * -5
menghasilkan15
12 - 15
menghasilkan-3
Operan Kiri Lebih Kecil
Bagaimana jika operan kiri lebih kecil dari operan kanan?
>>> print(2 % 5)
Tetap lakukan cara sebelumnya, yaitu 2 % 5
menjadi:
2 // -5
menghasilkan0
0 * -5
menghasilkan0
2 - 0
menghasilkan2
maka jawabannya adalah 2
Aturan Tipe Data Hasil
Untuk aturan tipe data hasil mengikuti aturan perkalian dan integer division.
>>> print(12 % 5)
>>> print(12 % 5.0)
>>> print(12.0 % 5)
>>> print(12.0 % 5.0)
2
2.0
2.0
2.0
Kapan Modulo Digunakan?
Berikut satu contoh kasus penggunaan modulo. Anda ingin menentukan apakah suatu integer adalah bilangan genap atau ganjil. Kita tau bahwa bilangan *genap adalah bilangan yang habis dibagi dengan 2, dan selainnya adalah ganjil. Maka anda dapat menggunakan modulo untuk mengetes apakah suatu bilangan ganjil atau genap.
>>> print(25 % 2)
>>> print(20 % 2)
1
0
Maka 25 adalah bilangan ganjil, karena modulonya tidak nol (tidak habis). Sedangkan 24 adalah genap, karena modulonya nol (habis dibagi tanpa sisa).
Berikut adalah contoh lain yang sedikit lebih kompleks.
Misalnya anda sedang membuat sistem pengaturan transportasi, dan anda memiliki banyak armada dengan jenis:
Bus kapasitas 60 penumpang
Mobil kapasitas 8 penumpang
Motor kapasitas 1 penumpang
Agar efisien, maka perusahaan menerapkan aturan sederhana:
prioritaskan bus, lalu mobil, baru motor.
suatu armada baru boleh digunakan jika semua kursi penumpang terisi.
Anda diminta untuk membuat program yang jika diketahui total jumlah penumpang yang akan berangkat, maka tentukan jumlah masing-masing armada yang dibutuhkan.
Anda dapat menghitungnya dengan cara berikut: Misal diberikan jumlah penumpang 139 orang.
jumlah bus yang dibutuhkan adalah
139 // 60
menghasilkan2
, artinya butuh2
buah bushitung penumpang yang tidak tertampung di bus, yaitu
139 % 60
menghasilkan19
, artinya ada19
orang yang tidak tertampung di busjumlah mobil yang dibutuhkan adalah
19 // 8
menghasilkan2
, artinya butuh2
buah mobilhitung penumpang yang tidak tertampung di bus,
19 % 8
menghasilkan3
jumlah motor yang dibutuhkan adalah
3 // 1
menghasilkan3
, artinya butuh3
motor.
Penambahan dan Pengurangan¶
Operasi penjumlahan dan pengurangan di Python sama dengan di matematika, dan aturan tipe data hasil mengikuti perkalian.
>>> print(12 - 5)
>>> print(12 - 5.0)
>>> print(12.0 - 5)
>>> print(12.0 - 5.0)
7
7.0
7.0
7.0
Operator Unary dan Binary¶
Sejauh ini kita telah melihat operator yang membutuhkan 2 operan, yang disebut operator binary.
Seperti di matematika, simbol -
(minus), selain digunakan untuk pengurangan ia digunakan juga untuk mengubah tanda suatu bilangan (dari positif ke negatif, dan sebaliknya).
Operator -
(minus) hanya membutuhkan satu operan, sehingga disebut sebagai operator unary. Selain -
, +
juga merupakan operator unary, ia menjaga tanda sebuah bilangan di kanannya seperti apa adanya.
Perhatikan kode berikut ini untuk melihat bagaimana operator-operator ini bekerja.
>>> print(-4 - 4)
>>> print(4. - 8)
>>> print(-1.1)
>>> print(--5)
>>> print(+2)
-8
-4.0
-1.1
5
2
Operator dan prioritasnya¶
Operator di Python memiliki prioritas seperti halnya pada matematika, sebagai contoh prioritas operator perkalian lebih tinggi dari pada operator penjumlahan, sehingga meskipun +
muncul lebih dulu (lebih kiri) dari pada *
, namun operasi kali tetap didahulukan. Perhatikan contoh berikut ini:
>>> print(2 + 3 * 5)
17
Terlihat prosesnya bukanlah
2 + 3
menghasilkan5
, lalu5 * 5
menghasilkan25
tetapi
3 * 5
menghasilkan15
, lalu2 + 15
menghasilkan17
Sebelum kita melihat prioritas dari operator-operator yang telah kita bahas di atas, perlu kita bahas terlebih dahulu peran tanda kurung ( )
.
Tanda Kurung
Meskipun operator memiliki urutan prioritas, namun urutan tersebut dapat berubah dengan menggunakan tanda kurung. Operasi yang ada di dalam tanda kurung selalu akan dihitung terlebih dahulu. Jika ada tanda kurung di dalam tanda kurung, maka yang terdalam akan diprioritaskan terlebih dahulu.
Sebagai contoh mari kita lihat pengaruh tanda kurung pada perhitungan sebelumnya.
>>> print((2 + 3) * 5)
25
Berikut ini adalah prioritas operator yang telah kita pelajari sejauh ini:
Prioritas |
Operator |
Jenis |
---|---|---|
1. |
|
|
2. |
|
|
3. |
|
unary |
4. |
|
|
5. |
|
binary |
Jika operator berada di prioritas yang sama, maka yang berada di kiri akan didahulukan.
>>> print(20 // 6 % 2)
1
Terlihat hasilnya adalah 1
yang didapat dari:
18 // 6
menghasilkan3
3 % 2
menghasilkan1
Seandainya dimulai dari kanan, maka harusnya:
6 % 2
menghasilkan0
20 // 0
menghasilkan error karena pembagian dengan nol
Note
Pengecualian untuk operator pemangkatan, operasinya dari sebelah kanan.
>>> print(2 ** 2 ** 3)
256
Seperti yang terlihat bahwa hasilnya adalah 256
yang didapat dari:
2 ** 3
menghasilkan8
2 ** 8
menghasilkan256
Jika dioperasikan dari kiri, maka harusnya:
2 ** 2
menghasilkan4
4 ** 3
menghasilkan64
Variable¶
Apa itu Variable¶
Kita telah melihat kegunaan operator untuk melakukan perhitungan. Namun tak jarang hasil suatu perhitungan perlu kita simpan terlebih dahulu untuk digunakan kemudian di perhitungan berikutnya. Bagaimana Python menyimpan nilai perhitungan ini?
Seperti di matematika, kita bisa menggunakan variable untuk menyimpan nilai. Misalnya kita kita ingin menghitung luas segitiga dengan alas 10
dan tinggi 30
, kita bisa tulis seperti berikut ini:
luas_segitiga = (10 x 30) / 2
Selanjutnya kita ingin menghitung total luas 10 segitiga yang sama seperti sebelumnya, maka kita bisa tulis:
total_luas_segitiga = 10 x luas_segitiga
Dari contoh di atas kita menggunakan dua buah variable dengan nama luas_segitiga
dan total_luas_segitiga
, dan nilainya berturut-turut adalah 150
dan 1500
.
Python dan bahasa pemrograman lainnya juga menyediakan variable untuk menyimpan nilai.
Setiap variable di Python harus memiliki:
nama
nilai
Membuat Variable¶
Di Python, variable dibentuk sebagai hasil proses assignment suatu nilai ke nama variable tersebut. Proses assignment terdiri dari:
menuliskan nama variable
diikuti tanda assignment (
=
)diikuti nilai yang ingin diasosiasikan ke variable tersebut
Sebagai contoh:
harga = 100
maka artinya kita telah membuat variable dengan nama harga
dan akan dapat digunakan setelahnya untuk mengakses nilai 100
tersebut.
>>> harga = 100
>>> print(harga)
100
Pembuatan variable di Bahasa Lain
Di bahasa pemrograman lain (e.g., C, Pascal, Java), kita perlu mendeklerasikan variable tersebut terlebih dahulu sebelum digunakan.
Python:
harga = 100
C:
int harga;
harga = 100;
Pascal:
var
harga : integer;
harga := 100;
Java:
int harga;
harga = 100;
Print variable¶
Sebelumnya kita sudah melihat bagaimana print()
digunakan untuk mengoutputkan nilai, misalnya:
print('I Love Python')
print(100)
Namun di contoh di atas kita lihat bahwa fungsi print
juga bisa menerima argumen berupa variable. Sebagai tambahan, kita juga bisa melakukan print beberapa variable sekaligus dengan dipisahkan oleh koma.
>>> nama_depan = "Guido"
>>> nama_belakang = "van Rossum"
>>> print(nama_depan, nama_belakang)
Guido van Rossum
Aturan Nama Variable¶
Jumlah variable dan nama masing-masing variable yang digunakan di dalam program ditentukan oleh pembuat program. Tidak ada batasan mengenai jumlah variable yang boleh digunakan. Namun untuk nama variable, ada beberapa aturan yang harus diikuti:
hanya boleh terdiri dari huruf kecil (
a-z
), huruf besar (A-Z
), digit (0-9
), dan karakter underscore (_
). Simbol atau karakter lainnya tidak diperkenankan, misalnya*, @
, dsb.harus dimulai dengan sebuah huruf (
a-zA-Z
) atau underscore (_
)case sensitive,
nama
danNama
dianggap berbedatidak boleh menggunakan keyword yang telah ditentukan pada Python. Keyword adalah kata yang sudah memiliki makna sendiri dalam Python dan tidak boleh diganti, misalnya yang sudah kita lihat adalah
True
danFalse
yang merupakan nilai boolean. Berikut adalah list lengkap keyword pada Python yang tidak boleh digunakan sebagai nama variable.
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Berikut adalah contoh-contoh nama variable yang valid:
>>> MyVariable = 5
>>> variable = 10.5
>>> v1 = 30
>>> v_2 = 35
>>> v_1_2 = 100
>>> NamaVariableSangatPanjangSekali = "ok"
>>> _ = 100
Di bawah ini contoh-contoh nama variable yang tidak valid:
>>> 10v = 30
>>> v 1 = 20
>>> v*1 = 25
>>> True = "True"
PEP 8 – Panduan Style Kode Python¶
Walau developer punya keleluasaan untuk memilih nama variable, akan tetapi komunitas Python memberikan panduan style untuk kode Python. Hal ini untuk menyeragamkan dan memudahkan kerja tim. Penamaan variable merupakan salah satu yang diberikan panduan khusus dalam PEP 8, namun ada banyak hal yang ada dalam panduan tersebut agar style kode Python yang anda buat lebih mudah dibaca oleh programmer Python lainnya. Untuk lebih lengkapnya, anda bisa kunjungi https://www.python.org/dev/peps/pep-0008/.
Berdasarkan PEP 8, nama variable haruslah lowercase, dengan kata dipisahkan oleh _
(underscores) agar lebih mudah dibaca (e.g., var
, total_harga
, harga_setelah_diskon
).
Hal ini juga berlaku untuk penamaan function.
Selain itu, untuk menghindari kebingungan di saat ada banyak sekali variable di program, disarankan memilih nama variable yang merepresentasikan nilai yang akan disimpan oleh variable tersebut.
Untuk panduan lengkap style coding python, sangat disarankan agar anda membaca dan mengikuti panduan PEP 8 tersebut.
Penggunaan Variable¶
Variable terasosiasi ke sebuah nilai yang tersimpan di memori, sehingga kapanpun nilai tersebut dibutuhkan di program maka kita tinggal menggunakan nama variablenya saja.
>>> luas_segitiga = 10 * 30 / 2
>>> total_luas_segitiga = 10 * luas_segitiga
>>> print(luas_segitiga)
>>> print(total_luas_segitiga)
150.0
1500.0
Variable dapat digunakan berkali-kali
Anda dapat menggunakan banyak variable di program anda, dan setiap variable dapat digunakan berkali-kali selama variable tersebut terasosiasi ke sebuah nilai.
Perhatikan kode di bawah ini, variable nilai_y
digunakan di kode baris ke-3 juga ke-4:
>>> nilai_x = 1
>>> nilai_y = 2
>>> jumlah = nilai_x + nilai_y
>>> y_kuadrat = nilai_y * nilai_y
>>> copy_x = nilai_x
>>> copy_xx = copy_x
>>> print(jumlah)
>>> print(y_kuadrat)
>>> print(copy_x)
>>> print(copy_xx)
Variable harus exist sebelum digunakan
Tentu saja anda tidak bisa menggunakan variable yang tidak exist.
total = 10 * harga_satuan
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-84-5a76e0469e17> in <module>
----> 1 total = 10 * harga_satuan
NameError: name 'harga_satuan' is not defined
Error tersebut menunjukkan bahwa sebuah nama, dalam hal ini nama variable, yaitu harga_satuan
tidak terdefinisi atau tidak exist.
Ketika harga_satuan
berada di sebelah kanan tanda =
, maka Python mengharuskan ia telah memiliki nilai. Berbeda dengan total
yang berada di kiri =
, ia adalah variable yang sedang dibuat, sehingga tidak harus memiliki nilai sebelumnya.
Variable yang sudah exist dapat di assign kembali dengan nilai baru
Seperti halnya matematika, satu variable dapat menyimpan satu nilai di satu waktu, namun nilai yang disimpan dapat diganti. Berbeda dengan konstanta yang nilainya tidak dapat diganti sejak didefinisikan.
Perhatikan kode berikut:
>>> umur = 19
>>> print(umur)
>>> umur = 22
>>> print(umur)
19
22
>>> nilai_x = 10
>>> print(nilai_x)
>>> nilai_x = nilai_x + 1
>>> print(nilai_x)
10
11
Ketika nilai_x
diassign kedua kalinya dengan nilai 11
(nilai_x + 1
), maka nilai_x
sudah tidak terasosiasi ke nilai 10
, dan tidak akan bisa suatu saat kembali terasosiasi ke nilai sebelumnya (seperti Undo) kecuali dilakukan assignment ulang (e.g., nilai_x = 10
).
Dynamic Typing¶
Kita telah melihat bahwa di Python kita tidak perlu melakukan mendeklarasikan variable seperti pada bahasa C, Java, dan beberapa bahasa lainnya.
Pada bahasa tersebut, saat mendeklerasikan variable, kita harus menentukan tipe data variable tersebut, misalnya int
(integer), lalu variable tersebut hanya dapat menyimpan nilai bertipe integer saja.
Berbeda dengan Python, tidak ada deklerasi variable, sehingga variable bisa di-assign kembali dengan nilai yang memiliki tipe data berbeda dari sebelumnya.
>>> var_x = 10
>>> print(var_x)
>>> var_x = "Sepuluh"
>>> print(var_x)
>>> var_x = True
>>> print(var_x)
10
Sepuluh
True
Python otomatis bisa mengenali tipe data sebuah variable pada saat run-time (program sedang dieksekusi). Dalam istilah bahasa pemrograman, hal ini disebut dynamic typing, sehingga Python biasa disebut sebagai dynamically typed language. Sementara bahasa pemrograman lain yang mengharuskan deklarasi tipe variable di awal disebut dengan statically typed language.
Perhatikan kode di bawah ini untuk melihat tipe variable berbeda dari sebuah variable yang sama.
>>> var_x = 10
>>> print(type(var_x))
>>> var_x = "Sepuluh"
>>> print(type(var_x))
>>> var_x = True
>>> print(type(var_x))
<class 'int'>
<class 'str'>
<class 'bool'>
Statement, Expression¶
Terminologi statement dan expression sangat sering digunakan ketika membicarakan pemrograman, tak jarang kedua hal tersebut disalah artikan atau disamakan maknanya.
Statement: satu unit kode lengkap (secara syntax) yang melakukan suatu aksi.
Expression: potongan kode mana saja yang jika dievaluasi menghasilkan sebuah nilai.
Perhatikan contoh kode berikut:
var_x = 4 + 5 * (2 + 3)
Pada kode di atas terdapat 1 buah statement, yaitu assignment statement yang terdiri dari var_x = 4 + 5 * (2 + 3)
. Sedangkan jumlah ekspresi ada banyak, misalnya:
2 + 3
5 * (2 + 3)
4 + 5 * (2 + 3)
masing-masing jika dievaluasi akan menghasilkan sebuah nilai.
Satu statement yang sederhana biasanya ditulis dalam satu baris, walau Python membolehkan beberapa statement ditulis dalam satu baris dipisahkan dengan ;
(titik koma).
Sebagai contoh:
>>> var_x = 4 + 5 * (2 + 3); var_y = 20 / 2
>>> print(var_x, var_y)
29 10.0
Beberapa jenis statement yang disebut dengan compound statement perlu ditulis dalam beberapa baris, seperti statement if
, while
, dan lain-lain yang kita akan pelajari nanti.
Untuk jenis statement lengkap, bisa melihat dokumentasi python di bawah ini:
Komentar¶
Saat menulis program, salah satu hal yang sangat penting adalah memastikan bahwa kode yang kita buat mudah dimengerti oleh orang lain. Terkadang jika kode yang dibuat cukup komplek, setelah beberapa waktu tidak mengerjakan kode tersebut, kita sendiri pun mudah bingung atau lupa maksud bagian kode tertentu.
Salah satu cara untuk membuat kode mudah dimengerti adalah dengan menambahkan komentar. Komentar adalah bagian dari kode yang tidak akan ikut dieksekusi, sehingga apapun yang ditulis sebagai komentar tidak mengubah jalannya program.
Di python, komentar diawali oleh tanda #
(pagar), dan bisa di tulis di baris terpisah atau di baris yang sama dengan kode. Apapun yang ada setelah tanda #
akan dianggap sebagai komentar.
>>> # ini adalah program tentang komentar
>>> nama = "Jeki"
>>> print("Nama anda adalah ##", nama, "##") #ini baru komentar, # di dalam double quote "" bukan komentar
Nama anda adalah ## Jeki ##
Input¶
Sejauh ini kita telah dapat membuat program yang menghitung dan mengoutputkan nilai tertentu melalui fungsi print()
. Namun jika program yang sudah ditulis tersebut dijalankan berkali-kali, hasilnya akan tetap sama. Dengan kata lain tidak ada interaksi antara pengguna dan program ketika program sudah dijalankan, yang memungkinkan program melakukan hal yang berbeda-beda.
Salah satu interaksi yang paling umum adalah pengguna mengetikkan sesuatu di keyboard sebagai inputan saat program sedang berjalan.
Perhatikan contoh kode di bawah ini. Saat dieksekusi, anda bisa mengetikkan sesuatu ke di keyboard, lalu tekan Enter untuk menyudahi inputan anda.
>>> print("Apa mata kuliah favoritmu?")
>>> mk_fav = input()
>>> print("Oh, ternyata kamu suka", mk_fav)
Apa mata kuliah favoritmu?
Pengenalan Pemrograman
Oh, ternyata kamu suka Pengenalan Pemrograman
Tentu saja anda dapat menjalankan kode tersebut kembali dan mengetikkan sesuatu yang berbeda, maka program akan mengoutputkan sesuatu yang berbeda pula.
Fungsi input()
¶
Fungsi input()
seperti pasangan atau kebalikan dari fungsi print()
. print()
mengirim data ke console, sementara input()
menerima data dari console.
Perhatikan kode di bawah ini:
>>> print('Halo')
>>> z = input()
>>> print(z)
Fungsi input()
dengan argumen
Jika dilihat dari dokumentasi, maka fungsi input()
dapat memiliki sebuah argument.
input([prompt])
prompt
merupakan string, yang jika diberikan sebagai argument maka akan dituliskan ke console tepat sebelum program meminta inputan dari user.
Perhatikan kode berikut ini:
>>> mk_fav = input("Apa nama MK favoritmu?")
>>> print("Oh, ternyata kamu suka", mk_fav)
Apa yang terjadi ketika input()
dieksekusi¶
Fungsi akan mengubah console/Python prompt ke mode input
Fungsi menunggu user menginputkan sesuatu yang diakhiri dengan tombol Enter.
Semua data yang diinputkan disimpan sebagai string.
String akan dikembalikan ke program sebagai return value dari fungsi input.
Satu hal yang perlu dipertegas adalah bahwa semua data yang diinputkan akan bertipe string.
Jalankan kode berikut, dan masukkan sebuah angka:
>>> bil = input("Masukkan sebuah bilangan: ")
>>> print(type(bil))
>>> print(bil ** 2)
Masukkan sebuah bilangan: 10
<class 'str'>
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-100-2bd83b4fc555> in <module>
1 bil = input("Masukkan sebuah bilangan: ")
2 print(type(bil))
----> 3 print(bil ** 2)
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
Dari fungsi type()
terlihat bahwa variable bil
bertipe str
(string). Sehingga tentu saja ketika dilakukan operasi aritmatika dengan sebuah integer
akan menghasilkan error atau hasil yang berbeda dari yang diharapkan
Note
Beberapa operator aritmatika juga merupakan operator string, sehingga dapat digunakan untuk operan string dan integer, seperti operator *
pada "satu" * 3
yang akan menghasilkan satusatusatu
.
Type casting¶
Sudah jelas bahwa jenis inputan yang dibutuhkan sebuah program tidak selalu berupa string, contoh sederhana adalah program kalkulator untuk menambahkan dua buah bilangan seperti di bawah ini:
>>> bil1 = input("Masukkan bilangan pertama : ")
>>> bil2 = input("Masukkan bilangan kedua : ")
>>> hasil = bil1 + bil2
>>> print("Hasil penjumlahan adalah", hasil)
Terlihat bahwa kalkulator kita berubah menjadi penggabungan string. Untuk mengatasi hal ini, kita perlu mengubah tipe data 10
dan 20
dari string ke integer. Proses mengubah tipe data ini disebut type casting.
Python menyediakan beberapa fungsi sederhana untuk mengubah tipe data, misalnya int()
dan float()
.
fungsi
int()
menerima sebuah argument (e.g., string) dan berusaha mengubahnya ke dalam integer. Pengubahan mungkin saja gagal jika nilai yang menjadi argument tidak memiliki padanan nilai integernya. Jika gagal maka seluruh program akan berhenti (ada cara untuk mengatasi hal ini, akan dijelaskan kemudian).fungsi
float()
juga menerima sebuah argument dan melakukan hal yang mirip denganint()
.
Sekarang mari kita perbaiki program kalkulator kita sebelumnya.
>>> bil1 = int(input("Masukkan bilangan pertama : "))
>>> bil2 = int(input("Masukkan bilangan kedua : "))
>>> hasil = bil1 + bil2
>>> print("Hasil penjumlahan adalah", hasil)
Memformat Angka¶
Saat mengoutputkan angka, kadang kita ingin agar tampilannya sesuai dengan format tertentu, misalnya 2 angka di belakang koma. Pengaturan format output ini sebenarnya adalah bagian dari memformat string, karena pada akhirnya hasil format adalah berupa string. Berikut adalah cara untuk memformat string secara umum.
"{<format>}".format(<angka>)
Ada cukup banyak jenis <format>
yang disediakan Python, untuk saat ini kita hanya membahas beberapa yang sering digunakan pada angka saja.
Menentukan Presisi bilangan Float¶
Seberapa presisi (jumlah angka di belakang koma) tampilan bilangan float yang diinginkan bisa diatur melalui format berikut:
<format>
= :.<presisi>f
, di mana <presisi>
menentukan jumlah angka di belakang koma, dan f
menyatakan bahwa format tampilannya adalah floating-point. Jika <angka>
yang ingin ditampilkan memiliki jumlah digit di belakang koma lebih banyak dari <presisi>
, maka akan dilakukan pembulatan. Sebaliknya, jika lebih sedikit maka akan ditambahkan dengan angka nol.
>>> print("{:.2f}".format(-10.123456789))
>>> print("{:.5f}".format(102.123456789))
>>> print("{:.5f}".format(102.12))
-10.12
102.12346
102.12000
Mengubah dalam Persen¶
Selanjutnya kita bisa juga mengubah format angka yang aslinya dari skala 0-1
, ke dalam bentuk persen dengan menggunakan format:
<format>
= :.<presisi>%
>>> print("{:.2%}".format(0.25))
>>> print("{:.0%}".format(0.01256))
>>> print("{:.2%}".format(0.01256))
25.00%
1%
1.26%
Menambahkan Koma Pemisah Ribuan¶
Untuk memudahkan membaca, kita bisa menambahkan pemisah ribuan dalam angka yang besar, yaitu dengan
<format>
= :,
>>> print("{:,}".format(1250000))
1,250,000
Menentukan Panjang String¶
Untuk memperindah tampilan, kita juga dapat mengatur panjang string yang dihasilkan melalui:
<format>
= :<panjang>.<presisi>f
String yang dihasilkan memiliki panjang string <panjang>
, jika angkanya lebih singkat, maka akan ditambahkan spasi di depan.
>>> print("Tanpa pengaturan panjang string")
>>> print("Angka | {:.2f} |".format(-10.123456789))
>>> print("Angka | {:.2f} |".format(1.123456789))
>>> print("Angka | {:.2f} |".format(10200.12))
>>> print()
>>> print("Dengan pengaturan panjang string")
>>> print("Angka | {:10.2f} |".format(-10.123456789))
>>> print("Angka | {:10.2f} |".format(102.123456789))
>>> print("Angka | {:10.2f} |".format(10200.12))
Tanpa pengaturan panjang string
Angka | -10.12 |
Angka | 1.12 |
Angka | 10200.12 |
Dengan pengaturan panjang string
Angka | -10.12 |
Angka | 102.12 |
Angka | 10200.12 |
Selamat anda telah menyelesaikan Modul 2!!
Mohon berkenan memberikan Rating dan Feedback agar kami dapat meningkatkan kualitas modul ini!