Anda di sini

Pemrograman

Python 3 RLE BAB 2: Variabel, Ekspresi, dan Pernyataan

Aditya Suranata - 10 Desember 2015 17:49:54 0

2.1. Nilai dan Tipe Data

Nilai merupakan satu dari hal yang paling mendasar -- seperti huruf dan angka -- yang dimanipulasi oleh sebuah program. Nilai yang sudah kita lihat sejauh ini adalah 4 (hasil dari ketika kita menjumlahkan 2 + 2), dan "Hello, World!".

Nilai tersebut dikelompokan menjadi kelas-kelas yang berlainan, atau dikenal dengan nama tipe data: 4 adalah sebuah integer, dan "Hello, World" adalah sebuah string, dinamakan demikian karena ia memiliki string dari huruf-huruf. Kamu (dan si interpreter) bisa mengidentifikasi string karena mereka diapit oleh dua tanda petik dua.

Jika kamu tidak yakin apa kelas dari sebuah nilai, Python memiliki sebuah fungsi yang dinamakan type yang bisa memberitahu mu.

>>> type("Hello, World!")
<class 'str'>
>>> type(17)
<class 'int'>

Sudah terlihat jelas, string berada pada kelas str dan integer berada pada kelas int. Yang sedikit kurang jelas, bilangan dengan koma masuk ke kelas float, karena bilangan-bilangan tersebut direpresentasikan dalam format yang dinamakan floating-point. Pada tahap ini, kamu bisa memperlakukan kata kelas dan tipe sebagai sesuatu yang sama. Tapi nanti kita akan masuk ke pengertian yang lebih dalam dari apa itu kelas pada Bab berikutnya.

>>> type(3.2)
<class 'float'>

Bagaimana dengan nilai seperti "17" dan "3.2" ? Mereka terlihat seperti bilangan, tapi mereka ada dalam tanda petik dua seperti string.

>>> type("17")
<class 'str'>
>>> type("3.2")
<class 'str'>

Yah, tentu saja mereka adalah string!

String di Python bisa diapit oleh tanda petik satu (') dan bisa juga tanda petik dua ("), atau tiga seperti (''' atau """)

>>> type('This is a string.')
<class 'str'>
>>> type("And so is this.")
<class 'str'>
>>> type("""and this.""")
<class 'str'>
>>> type('''and even this...''')
<class 'str'>

String dengan tanda petik dua di dalamnya bisa berisi tanda petik satu, seperti misalnya "It's Wayan tomblos", dan tanda petik satu bisa berisi tanda petik dua di dalamnya, seperti pada 'Made Cenik ingin bilang "Awas!"'.

String yang diapit dengan tiga tanda dari kedua simbol tersebut dinamakan triple quoted string. Mereka bisa berisi baik petik satu maupun petik dua.

>>> print('''"Oh ternyata", Dia menolak dengan halus, "I'm not ready yet, tolong beri aku waktu lagi!"''')
"Oh ternyata", Dia menolak dengan halus, "I'm not ready yet, tolong beri aku waktu lagi!"
>>>

Triple quoted string bahkan juga bisa memiliki baris lebih dari satu:

>>> message = """Pesan ini akan
... menjadi beberapa
... baris."""
>>> print(message)
Pesan ini akan
menjadi beberapa
baris.
>>>

Python tidak peduli apakah kamu menggunakan petik satu atau dua atau tiga untuk menyerung string mu: ketika teks dari program mu telah di-parse, cara bagaimana mereka disimpan adalah identik atau sama dalam semua kasus, dan tanda petik yang mengapit tidak menjadi bagian dari nilainya. Tapi ketika interpreter ingin menampilkan string, ia mesti menentukan petik yang mana yang harus digunakan agar bisa terlihat seperti string.

>>> 'Ini adalah sebuah string.'
'Ini adalah sebuah string.'
>>> """Dan begitu juga dengan ini."""
'Dan begitu juga dengan ini.'

Jadi para desainer bahasa Python biasanya memilih untuk mengapit string mereka dengan petik satu. Jika dipikir apa yang akan terjadi jika stringnya sudah berisi petik satu ?

Ketika kamu mengetik large integer, kamu mungkin akan tergoda untuk menggunakan koma antara grup tiga digit, seperti pada 42,000. Ini bukanlah integer yang legal di Python, tapi ini bisa berarti hal lain, yang juga legal.

>>> 42000
42000
>>> 42,000
(42, 0)

Okey, itu sama sekali bukan apa yang kita harapkan! Karena komanya, Python memilih untuk menangani nilai tersebut sebagai sepasang nilai. Kita akan kembali untuk beajar mengenai pasangan ini nanti. Tapi, untuk saat ini, ingat jangan sampai menyertakan koma atau spasi pada integer mu, tak peduli seberapa besar nilainya. Juga jangan lupa baca ulang bab sebelumnya: bahasa formal bersifat ketat, notasinya ringkas, dan bahkan hal kecil bisa berarti sangat berbeda dari apa yang kamu maksud.

2.2. Variabel

Satu dari fitur yang paling powerful dari sebuah bahasa pemrograman adalah kemampuan untuk memanipulasi variabel. Sebuah variabel adalah nama yang merujuk ke sebuah nilai.

Pernyataan pemberian nilai (assigment statement) akan memberikan nilai pada variabel:

>>> pesan = "Apa kabar, bro ?"
>>> n = 17
>>> pi = 3.14159

Contoh diatas melakukan tiga pemberian nilai. Yang pertama memberikan nilai string "Apa kabar, bro ?" pada variabel bernama pesan. Yang Kedua memberikan nilai integer 17 kepada n, dan yang ketiga memberikan nilai bilangan floating-point 3.14159 kepada variabel dengan nama pi.

Token pemberian nilai, tanda =, agar tidak bingung jangan disamakan dengan tanda sama dengan, yang mana menggunakan token == . Pernyataan pemberian nilai mengikat sebuah nama di sebelah kiri dari operator, dan nilainya, di sebelah kanannya. Inilah mengapa kamu akan mendapatkan error jika kamu menulis:

>>> 17 = n
File "<interactive input>", line 1 
SyntaxError: can't assign to literal

Tips

Ketika membaca atau menulis kode, katakan dalam hati "n diberikan nilai 17". Jangan katakan "n sama dengan 17".

Cara umum untuk merepresentasikan variabel pada kertas adalah dengan menulis namanya dengan tanda panah mengarah ke nilai variabelnya. Gambar jenis ini dinamakan state snapshot karena ia memperlihatkan state atau kondisi dari setiap variabel pada instan waktu tertentu. (Pikirkan ini sebagai variabel keadaan pikiran). Diagram ini memperlihatkan hasil dari pengeksekusian pernyataan pemberian nilai:

Jika kamu meminta interpreter untuk menilai sebuah variabel, ia akan menghasilkan nilai dari variabel terkait pada waktu sekarang:

>>> pesan
'Apa kabar, bro ?'
>>> n
17
>>> pi
3.14159

Kita menggunakan variabel-variabel pada program untuk "mengingat" hal-hal, misalnya skore terkini ketika sedang ada pertandingan sepak bola. Tapi variabel tetaplah variabel. Ini artinya mereka bisa berganti seiring waktu, sama halnya dengan papan skor pada pertandingan bola. Kamu bisa memberikan nilai pada variabel, dan kemudian memberikan nilai lainnya pada variabel yang sama. (Ini berbeda dari sudut pandang matematika. Pada matematika, jika kamu memberi 'x' nilai 3, itu tidak bisa mengubah link nilai menjadi nilai yang berbeda pada pertengahan perhitungan yang kamu lakukan!)

>>> hari = "Kamis"
>>> hari
'Kamis'
>>> hari = "Jumat"
>>> hari
'Jumat'
>>> hari = 21
>>> hari
21

Kamu akan menyadari kita mengubah nilai dari hari sebanyak tiga kali, dan ketika pemberian nilai yang ketiga kita bahkan membuatnya merujuk pada nilai yang berbeda tipe dari yang sebelumnya.

Pemrograman itu kebanyakan tentang bagaimana komputer mengingat sesuatu, misal, Jumlah panggilan tak terjawab pada handphone mu, dan kemudian mengatur untuk memperbaharui atau merubah variabel ketika kamu melewatkan panggilan lainnya.

2.3. Nama Variabel dan Keywords

Nama variabel bisa ditulis panjang. Mereka bisa berisi huruf maupun digit angka, tapi harus diawali dengan huruf atau underscore. Meskipun dibolehkan untuk menggunakan huruf besar, tapi pada umumnya kita tidak menggunakannya. Jika kamu menggunakannya, ingat kalau besar kecilnya huruf itu berpengaruh. Wayan dan wayan itu merupakan dua variabel yang berbeda.

Karakter underscore ( _ ) bisa ada pada nama. Biasanya digunakan pada nama yang terdiri dari lebih dari satu kata, misalnya seperti nama_saya atau harga_jual_produk.

Ada beberapa situasi yang mana nama yang diawali dengan underscore memiliki arti yang spesial, jadi aturan yang paling aman untuk pemula adalah memulai sebuah nama hanya dengan menggunakan huruf kecil.

Jika kamu memberikan variabel nama yang ilegal, kamu akan mendapatkan syntax error:

>>> 123doremi = "tiga not awal"
SyntaxError: invalid syntax
>>> gaji$ = 1000000
SyntaxError: invalid syntax
>>> class = "Kewirausahaan 121"
SyntaxError: invalide syntax

123doremi adalah ilegal karena tidak dimulai dengan huruf. gaji$ juga ilegal karena memakai karakter ilegal, tanda dollar seharusnya tidak boleh. Tapi apa yang salah dengan class ?

Ternyata karena class merupakan satu dari keyword (kata kunci) yang dimiliki Python. Keyword mendefinisikan aturan syntax bahasa dan struktur, dan maka dari itu tidak diperkenakan untuk digunakan sebagai nama variabel.

Python memiliki tiga puluhan keyword (dan hingga kini Python masih meningkatkannya dengan memperkenalkan atau menghilangkan satu atau dua):

andasassertbreakclasscontinue
defdelelifelseexceptexec
finallyforfromglobalifimport
inislambdanonlocalnotor
passraisereturntrywhilewith
yieldTrueFalseNone

Kamu mungkin berniat untuk menyimpan daftar ini untuk mempermudah. Jika si interpreter komplain mengenai satu sari nama variabel mu dan kamu tidak tahu mengapa demikian, lihatlah apakah nama variabel yang kamu buat masuk daftar diatas. Jika iya, ganti dengan nama yang lain.

Programer umumnya memilih nama untuk variabel mereka agar memiliki arti dan bisa dimengerti oleh pembaca manusia -- dengan demikian maka akan membantu si programer untuk mendokumentasikan, atau mengingat, apa gunanya variabel tersebut.

Peringatan

Pemula biasanya bingung dengan maksud dari "berguna untuk pembaca manusia" dengan "berguna untuk mesin atau komputer". Jadi mungkin mereka akan berpikir salah, bahwa ketika mereka memanggil beberapa variabel dengan nama average atau pi, itu akan dengain ajaib menghitung sebuah average / rata-rata, atau dengan ajaib tahu kalau pi memiliki nilai seperti 3.14159. Tidak ! Komputer tidak akan mengerti itu, komputer tidak akan mengerti apa yang kamu inginkan dari variabel hanya karena namanya unik.

Jadi kamu mungkin akan menemui beberapa instruktur yang memang sengaja tidak memilih nama yang berarti ketika mereka mengajar pemula -- bukan karena kita tidak menganggap itu merupakan kebiasaan yang baik, tapi karena kita mencoba untuk menekankan ulang pesannya kepada kalian -- seorang programer -- harus menulis sendiri kode program untuk menghitung average-nya, dan kamu harus menulis pernyataan pemberian nilai untuk memberikan nilai pada variabel pi dengan nilai yang kamu inginkan.

2.4. Pernyataan

Sebuah pernyataan (statement) adalah perintah/instruksi yang bisa dieksekusi/dijalankan oleh Python interpreter. Hingga kini kita hanya baru melihat pernyataan pemberian nilai. Beberapa jenis lain dari pernyataan yang akan kita lihat dengan singkat adalah pernyataan while, pernyataan for, pernyataan if, dan pernyataan import. (Ada banyak lagi yang lainnya!)

Ketika kamu mengetikan pernyataan pada command line, Python akan menjalankannya. Pernyataannya sendiri tidak menghasilkan hasil apapun.

2.5. Menilai Ekspresi

Sebuah ekspresi merupakan perpaduan antara nilai, variabel, operator, dan pemanggilan fungsi. Jika kamu mengetik sebuah ekspresi pada Python prompt, maka si interpreter akan menilainya dan menampilkan hasilnya:

>>> 1 + 1
2
>>> len("hello")
5

Pada contoh ini len merupakan fungsi built-in yang ada di Python yang akan menghasilkan jumlah karakter dari sebuah string. Sebelumnya kita sudah melihat fungsi print dan type, jadi ini adalah contoh fungsi ketiga kita!

Proses penilaian dari sebuah ekspresi akan menghasilkan sebuah nilai, itulah mengapa ekspresi bisa ada di sisi sebelah kanan dari pernyataan pemberian nilai. Nilai dengan sendirinya adalah ekspresi sederhana, dan begitu juga variabel.

>>> 17
17
>>> y = 3.14
>>> x = len("hello")
>>> x
5
>>> y
3.14

2.6. Operator dan Operand

Operator merupakan token spesial yang merepresentasikan perhitungan seperti penjumlahan, perkalian dan pembagian. Nilai yang diolah oleh operator dinamakan operand.

Berikut ini adalah semua ekspresi legal pada Python yang artinya tentu kita sudah tahu:

20+32 jam-1 jam*60+menit menit/60 5**2 (5+9)*(15-7)

Token +, -, dan *, dan penggunaan tanda kurung untuk pengelompokan, di Python memiliki arti yang sama seperti penggunaannya pada matematika. Tanda asterik (*) merupakan token untuk perkalian, dan *** adalah token untuk perpangkatan (eksponentasi).

>>> 2 ** 3
8
>>> 3 ** 2
9

Ketika nama variabel diletakan di tempat operand, makan nilai operandnya akan diisi oleh nilai variabel sebelum operasinya dilakukan.

Penjumlahan, pengurangan, perkalian, dan perpangkatan akan melakukan apa yang kita memang harapkan. Tapi bagaimana dengan pembagian ?

Contoh: mari kita coba mengkonversi 645 menit ke jam:

>>> menit = 645
>>> jam = menit / 60
>>> jam
10.75 

Uups! di Python 3, operator pembagian / selalu menghasilkan nilai floating point. Apa yang kita ingin ketahui adalah berapa jumlah jamnya dalam bilangan bulat, dan berapa jumlah menit yang tersisa. Python memberikan kita dua rasa yang berbeda untuk operator pembagian. Yang kedua, dinamakan floor division yang menggunakan token // . Hasilnya selalu berbentuk bilangan bulat -- dan jika ia perlu mengatur bilangannya ia selalu memindahkannya ke kiri dari baris bilangannya. Jadi 6 // 4 menghasilkan 1, tapi -6 // 4 akan mengejutkan mu!

>>> 7 / 4
1.75
>>> 7 // 4
1
>>> menit = 645
>>> jam = menit // 60
>>> jam
10

Hati-hati dalam memilih rasa dari dua operator pembagian itu. Jika kamu bekerja dengan ekspresi yang memerlukan nilai floating point, maka gunakan operator pembagian yang melakukan operasi pebagian dengan akurat.

2.7. Fungsi Konverter Tipe

Disini kita akan berkutat pada tiga fungsi Python lainnya, int, float dan str, yang akan (mencoba untuk) mengkonversi argumen mereka masing-masing menjadi tipe int, float dan str . Kita akan menamai mereka sebagai fungsi konverter tipe.

Fungsi int bisa mengambil bilangan floating point atau sebuah string, dan mengubahnya menjadi int. Untuk bilangan floating point, ia akan menghiraukan angka yang ada dibelakang koma -- yang kita sebut sebagai truncation towards zero (pembulatan nol) pada baris bilangan. Mari kita coba langsung:

>>> int(3.14)
3
>>> int(3.9999)                # ini tidak membulatkan ke int yang nilainya paling mendekati!
3
>>> int(3.0)
3
>>> int(-3.999)                # perhatikan kalau hasilnya lebih dekat ke nol
-3
>>> int(minute / 60)
10
>>> int("2345")                # parse sebuah string agar menjadi int
2345
>>> int(17)                    # bahkan bisa juga kalau argumennya memang sudah int
17
>>> int("17 tahun")

Baris terakhir tidak terlihat seperti bilangan -- apa kira-kira hasilnya ?

Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '17 tahun'

Konverter tipe float bisa menghasilkan sebuah integer, float, atau mengubah string yang legal secara syntax menjadi float:

>>> float(17)
17.0
>>> float("123.45")
123.45

Konverter tipe str mengubah argumentnya menjadi sebuah string:

>>> str(17)
'17'
>>> str(123.45)
'123.45'

2.8. Urutan dari Operasi

Ketika ada lebih dari satu operator muncul pada sebuah ekspresi, urutan dari penilaiannya bergantung pada rules of precedence (aturan urutan perhitungan dalam matematika). Python mengikuti aturan urutan operasi matematika dengan apa yang ada di matematika. Singkatan Ku-Pang-Kal-Ba-Tam-Kur berguna untuk mengingat urutan dari operasi:

  1. Kurung memiliki urutan yang paling tinggi dan pertama yang bisa digunakan untuk memaksa sebuah ekspresi untuk dinilai seperti yang kamu inginkan. Karena ekspresi yang ada di dalam kurung dinilai duluan, 2 * (3-1) hasilnya adalah 4, dan (1+1)**(5-2) hasilnya 8. Kamu juga bisa menggunakan tanda kurung untuk membuat ekspresi menjadi lebih mudah dibaca, seperti pada (menit * 100) / 60, meskipun itu tidak merubah hasilnya.
  2. Pangkat menduduki urutan selanjutnya (kedua), jadi 2**1+1 hasilnya 3 dan bukan 4.dan 3*1**3 hasilnya bukan 27.
  3. Kali dan Bagi memiliki tingkatan yang sama pada urutan ketiga, yang mana setingkat lebih tinggi dari Tambah dan Kurang, yang juga setingkat. Jadi 2 * 3 - 1 menghasilkan 5 bukan 4, dan 5 - 2 * 2 adalah 1, bukan 6.
  4. Operator dengan tingkatan yang sama akan dinilai dari kiri-ke-kanan. Dalam aljabar kita menyebutnya sebagai left-associative. Jadi pada ekspresi 6-3+2, pengurangan terjadi dari kanan ke kiri, hasilnya akan menjadi 6-(3+2), yaitu 1. (Singkatan Ku-Pang-Kal-Ba-Tam-Kur bisa membuat mu berpikir kalau pembagian memiliki tingkat yang lebih tinggi dari perkalian, dan penjumlahan dilakukan duluan ketimbang pengurangan -- jangan salah. Pengurangan dan pejumlahan memiliki tingkat yang sama, dan berlaku aturan dari kiri ke kanan.)
    • Karena beberapa kekhasan sejarah, pengecualian untuk aturan kiri-ke-kanan left-associative adalah pada operator perpangkatan **, selalu menggunakan tanda kurung untuk memaksa dengan tepat urutan dari perpangkatan ketika kamu menggunakannya adalah petunjuk yang sangat berguna dan harus selalu diingat:
      >>> 2 ** 3 ** 2    # Operator ** yang paling kanan akan diselesaikan duluan
      512
      >>> (2 ** 3) ** 2  # Gunakan tanda kurung untuk memaksa urutan yang kamu mau
      

Command prompt immediate mode dari Python sangat bagus untuk mengeksplorasi dan bereksperimen dengan eksrepsi-ekspresi seperti ini.

2.9. Jenis Operasi pada String

Pada umumnya, kamu tidak bisa melakukan operasi matematika pada string, meskipun stringnya terlihat seperti bilangan. Berikut merupakan contoh ilegal (kita asumsikan kalau pesan memiliki tipe string):

>>> pesan - 1       # Error
>>> "Halo" / 123    # Error
>>> pesan * "hello" # Error
>>> "15" + 2        # Error

Menariknya, operator + bisa digunakan pada string, tapi khusus untuk string, operator + merepresentasikan penggabungan, bukan penjumlahan. Penggabungan artinya menyambung dua operand dengan mengaitkannya ekor-ke-ekor. Contohnya:

buah = "pisang"
pilihan_gorengan = " goreng keju"
print(buah + pilihan_gorengan)

Hasil dari program ini adalah pisang goreng keju. Spasi sebelum kata goreng merupakan bagian dari string, dan penting untuk menghasilkan jarak antara string yang digabungkan.

Operator * juga bisa digunakan pada string; ia akan melakukan pengulangan. Contoh, 'Cinta'*3 menjadi 'CintaCintaCinta'. Satu dari operand harus berbentuk string; yang satu lagi harus integer.

Di satu sisi, interpretasi dari + dan * menjadi masuk akal dengan analogi dari penjumlahan dan perkalian. Seperti halnya dengan 4*3 sama dengan 4+4+4, kita mengharapkan "Cinta"*3 juga sama artinya dengan "Cinta"+"Cinta"+"Cinta", dan itulah. Dan disisi lainnya, ada juga bedanya antara penggabungan dan pengulangan dengan penjumlahan dan perkalian. Bisakah kamu mencari sifat apa yang dimiliki oleh penjumlahan dan perkalian tapi tidak dimiliki oleh penggabungan dan pengulanan ?

2.10. Input

Di Python ada fungsi built-in untuk mendapatkan input atau masukan dari pengguna:

n = input("Tolong masukan nama Anda: ")

Ketika dijalankan PyScripter akan memunculkan sebuah jendela dialog seperti ini:

Pengguna dari program bisa memasukan namanya dan mengklik OK dan ketika ini terjadi teks yang telah dimasukan akan dikembalikan dari fungsi input, dan dalam kasus ini akan diberikan ke variabel n.

Tapi jika kamu meminta pengguna untuk memasukan umurnya, kamu juga akan mendapatkan string misalnya seperti "17". Itu akan menjadi tugas mu, sebagai seorang programer, untuk mengkonversi string itu menjadi sebuah int atau float, menggunakan fungsi konverter int atau float yang kita gunakan sebelumnya.

2.11. Komposisi

Sejauh ini, kita telah melihat elemen-elemen dari sebuah program -- variabel, ekspresi, pernyataan, dan pemanggilan fungsi -- masih secara tersendiri, tanpa membicarakan mengenai bagaimana mengkombinasikan mereka.

Satu dari fitur yang paling berguna dari bahasa pemrograman adalah kemampuannya untuk mengambil blok kecil bangunan dan menyusunnya menjadi bingkahan yang lebih besar.

Contoh, kita tahu bagaimana caranya mendapatkan masukan dari pengguna, kita tahu cara mengubah string yang kita dapat menjadi sebuah float, kita mengerti cara menulis ekspresi yang rumit, dan kita tahu cara mencetak nilai. Ayo kita masukan semua langkah-langkah itu kedalam program kecil empat langkah, yang meminta pengguna untuk memasukan radius dari sebuah lingkaran, lalu kemudian menghitung luas dari lingkaran menggunakan rumus:

Luas = pr2

Pertama, kita akan melakukan empat langkahnya satu demi satu:

respon = input("Berapa radiusnya ?")
r = float(respon)
luas = 3.14159 * r**2
print("Luas lingkarannya adalah ", luas)

Sekarang mari susun dua baris pertama menjadi satu baris kode, dan dua baris berikutnya menjadi satu baris juga.

r = float( input("Berapa radiusnya ?") )
print("Luas lingkarannya adalah ", 3.14159 * r**2)

Jika kita ingin benar-benar terlihat rumit, kita bisa menulis semua barisnya menjadi hanya satu baris:

print("Luas lingkarannya adalah ", 3.14159 * float( input("Berapa radiusnya ?") ** 2)

Kode ringkas semacam itu tentunya sulit untuk dimengerti oleh manusia, tapi bisa mengilustrasikan bagaimana kita bisa menyusun blok yang lebih besar dari blok kita yang kecil-kecil.

Jika kamu mengalami masalah tentang cara menyusun kode, apakah harus dengan langkah demi langkah, atau mem-fragmen barisnya menjadi lebih singkat seperti contoh diatas, maka kuncinya cobalah untuk membuatnya sesederhana mungkin agar bisa diikuti dan dimengerti oleh manusia. Pilihan saya sendiri tentunya contoh yang paling atas, dengan empat langkah yang terpisah.

2.12. Operator Modulus

Operator modulus bekerja pada integer (dan ekspresi integer) dan memberikan sisa dari hasil pembagian bilangan pertama dengan bilangan kedua. Di Python, operator modulus menggunakan tanda persen (%). Syntaxnya sama seperti operator lainnya. Tingkat urutannya juga sama dengan operator perkalian.

>>> q = 7 // 3       # Ini adalah operator pembagian integer
>> print(q)
2
>>> r = 7 % 3
>>> print(r)
1

Jadi 7 dibagi dengan 3 adalah 2 dengan sisa pembagiannya 1.

Operator modulus ternyata sangat berguna. Sebagai contoh, kamu bisa menggunakannya untuk mengecek apakah sebuah bilangan bisa dibagi oleh bilangan lainnya -- jika x % y hasilnya nol, maka x bisa dibagi dengan y.

Juga, kamu bisa mengeluarkan digit yang paling kanan atau digit dari bilangan. Misal, x % 10 menghasilkan digit yang paling kanan dari x (dalam basis 10). Begitu juga dengan x % 100 menghasilkan dua digit terakhir.

Ia juga akan sangat berguna untuk melakukan konversi, katakan dari detik, ke jam, menit dan detik. Jadi mari buat sebuah program untuk meminta pengguna memasukan beberapa detik, dan kita akan menkonversinnya ke jam, menit, dan sisa detiknya.

total_detik = int(input("Berapa detik totalnya ?"))
jam = total_detik // 3600
sisa_detik = total_detik % 3600
menit = sisa_detik // 60
sisa_detik_final = sisa_detik % 60

print("Jam=", jam, " Menit=", menit, " Detik=", sisa_detik_final)

2.13. Glosarium

assigment statement (pernyataan pemberian nilai)

Pernyataan yang memberikan sebuah nilai ke sebuah nama (variabel). Pada sisi kiri dari operator (=) adalah namanya. Pada sisi kanan dari operator (=) atau token pemberian nilai adalah ekspresi yang akan dinilai oleh Python interpreter lalu kemudian diberikan nilainya ke nama (variabel). Perbedaan antara sisi kiri dan kanan dari pernyataan pemberian nilai cukup sering membingungkan programer pemula. Pada contoh pemberian nilai berikut:

n = n + 1

n memainkan peran yang berbeda pada setiap sisi dari = . Pada sisi kanan merupakan nilai yang menjadi bagian dari ekspresi yang akan dinilai oleh Python interpreter sebelum memberikan nilai akhirnya pada nama yang berada di sisi kiri.

assignment token (token pemberian nilai)

= merupakan token pemberian nilai di Python. Jangan bingung dengan sama dengan, yang mana merupakan operator untuk membandingkan nilai-nilai.

composition (komposisi)

Kemampuan untuk menyusun ekspresi dan statemen sederhana menjadi gabungan dari pernyataan-pernyataan dan ekspresi untuk merepresentasikan perhitungan rumit secara singkat.

concatenate (penggabungan)

Untuk menggabungkan string dari ekor ke ekor.

data type (tipe data)

Satu set nilai-nilai. Tipe dari sebuah nilai menentukan bagaimana ia bisa digunakan pada ekspresi. Sejauh ini, tipe yang kamu sudah pernah lihat adalah integer (int), bilangan floating-point (float), dan string (str).

evaluate (menilai)

Untuk menyederhanakan sebuah ekspresi dengan cara menjalankannya agar mendapatkan nilai tunggal.

float

Tipe data pada Python yang menyimpan bilangan floating-point. Bilangan floating-point disimpan secara internal dalam dua bagian: bilangan dasar dan sebuah eksponen. Ketika dicetak dalam format standar, mereka akan terlihat seperti bilangan desimal. Hati-hati dengan error dalam pembulatan ketika kamu menggunakan float, dan ingat bahwa mereka hanya mengira-ngira nilainya atau tidak 100% akurat.

floor division

Sebuah operator (dinotasikan dengan token //) yang membagi satu nilai dengan nilai lain dan menghasilkan sebuah integer, atau, jika hasilnya tidak dalam integer, ia hanya mengembalikan integer yang terkecil.

int

Tipe data pada Python yang memegang bilangan bulat positif dan negatif.

keyword (kata kunci)

Kata-kata khusus yang dicadangkan dan digunakan oleh compiler untuk mem-parse program; kamu tidak bisa menggunakan keyword seperti if, def, dan while sebagai nama variabel.

operand

Salah satu nilai yang dioperasikan oleh operator.

operator

Sebuah simbol spesial yang merepresentasikan sebuah perhitungan sederhana seperti penjumlahan, perkalian, atau penggabungan string.

rules of precedence (aturan tingkatan)

Seperangkat aturan yang mengatur urutan yang mana dieksekusi duluan dari ekspresi yang melibatkan lebih dari satu operator dan operand yang dinilai.

state snapshot

Grafik representasi dari seperangkat variabel terkait dengan arah dari nilainya, diambil pada instan khusus pada satu waktu selama program dieksekusi.

statement (pernyataan)

Sebuah perintah yang bisa dijalankan oleh Python interpreter. Sejauh ini yang sudah kita lihat adalah pernyataan pemberian nilai, tapi dengan segera kita akan bertemu dengan pernyataan import dan pernyataan for.

str

Tipe data pada Python yang memegang sebuah string dari karakter-karekter.

value (nilai)

Sebuah bilangan atau string (atau hal lainnya yang akan dibahas nanti) yang bisa disimpan dalam sebuah variabel atau dihitung dalam sebuah ekspresi.

variable name (nama variabel)

Nama yang diberikan pada variabel. Nama variabel di Python terdiri dari urutan huruf-huruf (a..z, A..Z, dan _) dan digit (0..9) yang diawali dengan huruf. Dalam prakter pemrograman yang paling baik, nama variabel harus dipilih agar mereka bisa mewakili penggunaannya pada program, sehingga membuat programnya terdokumentasi dengan sendirinya.

2.14. Latihan

  1. Ambil contoh kalimat: Semua beban hidup membuat Rendi dan Fika semakin kuat. Simpan setiap kata ke dalam variabel terpisah, lalu cetak kalimatnya dalam satu baris menggunakan print.
  2. Tambahkan tanda kurung ke ekspresi 6 * 1 - 2 untuk mengganti nilainya dari 4 menjadi -6.
  3. Tempatkan komentar sebelum baris kode yang sebelumnya bekerja, dan rekam apa yang terjadi ketika kamu menjalankan ulang programnya.
  4. Buka Python interpreter dan masukan novanto + 4 pada prompt. Ini akan memberikan mu sebuah error:
    NameError: name 'novanto' is not defined
    
    Berikan sebuah nilai ke novanto agar novanto + 4 bernilai 10.
  5. Rumus untuk menghitung nilai akhir jika seseorang mendapatkan bunga majemuk, di wikipedia adalah sebagai berikut:



    Tulis sebuah program Python yang memberikan jumlah pokok dari Rp. 100.000 untuk variabel P, berikan n nilai 12, dan berikan ke r tingkat bunga 8%. Lalu buat programnya menanyakan pengguna jumlah tahun dari seberapa lama uangnya akan diangsur. Hitung dan cetak jumlah final setelah t tahun.
  6. Coba nilai ekspresi numerik berikut di kepala mu, lalu gunakan Python interpreter untuk mengecek hasil mu:

    1. >>> 5 % 2

    2. >>> 9 % 5

    3. >>> 15 % 12

    4. >>> 12 % 15

    5. >>> 6 % 6

    6. >>> 0 % 7

    7. >>> 7 % 0

    Apa yang terjadi dengan contoh terakhir ? Mengapa demikian ? Jika kamu bisa dengan benar mengantisipasi respon komputer dari semua itu, hingga yang terakhir, maka sudah waktunya untuk lanjut. Jika belum, ambil waktu sekarang untuk mencoba contoh mu sendiri. Jelajahi operator modulus hingga kamu percaya diri dengan pemahaman mu mengenai bagaimana ia bekerja.
  7. Kamu melihat jam dan menunjukan tepat jam 2 sore. Kamu menyetel alarm untuk pergi dalam 51 jam. Kapan waktu dari alarm itu akan keluar ? (Petunjuk: kamu bisa menghitung menggunakan jari mu, tapi ini bukan apa yang kita kejar. Jika kamu tergoda untuk menghitung menggunakan jari mu, ganti saja 51 menjadi 5100.)
  8. Tulis sebuah program Python untuk menyelesaikan versi umum dari masalah diatas. Minta pengguna untuk memasukan waktu sekarang ( dalam jam), dan tanyakan juga jumlah jam untuk menunggu. Program mu mestinya mengeluarkan kapan waktu yang ditunjukan oleh jam di dinding saat alarmnya berbunyi.

10.391
Daftar Artikel Terkait
Image

Aditya Suranata

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika. Selain itu juga gemar menulis mengenai hal-hal umum, seperti ilmu alam, sosial dan beberapa pengalamannya yang mungkin bisa berguna untuk orang lain.

Artikel Menarik Lainnya
Mari Gabung

Halo Emo 51 , Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.