Pendahuluan
Pada kesempatan sebelumnya kita telah membuat kalkulator sederhana dengan python. Kalkulatornya hanya bisa menghitung 2 buah operan dan 4 buah operator saja.
Nah, pada kesempatan kali ini, kita akan coba membuat kalkulator yang sedikit lebih canggih: yaitu kalkulator terbilang.
Apa maksudnya?
Maksudnya adalah kalkulator yang inputannya merupakan pernyataan dalam kalimat terbilang, kemudian sistem akan menampilkan hasil operasi dari inputan tersebut.
Dan agar proses pembuatannya tidak terlalu rumit, kita akan batasi angkanya hanya 1-10 saja.
Contoh Input dan Output
Berikut ini contoh input dan outputnya:
Tulis statement: tiga dikali lima ditambah sepuluh
Hasil: 25
Tulis statement: lima dikurangi sembilan
Hasil: -4
Bahkan bisa juga menggunakan operasi di dalam kurung:
Tulis statement: tujuh dikurangi (lima dikali lima)
Hasil: -18
Sebelum Mulai
Oiya, sebelum mulai ngoding, pastikan teman-teman telah familiar dengan materi dasar-dasar python, terlebih beberapa materi berikut:
Dan juga satu materi python tingkat menengah (tidak wajib) yaitu:
Jika sudah, kita bisa langsung mulai saja ngoding-nya.
1. Minta Inputan User
Langkah yang pertama adalah meminta inputan user. Di sini kita akan meminta user untuk memasukkan pernyataan aritmatika dalam bentuk kalimat terbilang.
Berikut ini kode programnya:
pernyataan = input('Tulis statement: ')
Jika kode program dijalankan, sistem akan meminta kita untuk memasukkan sebuah inputan, kemudian hasil inputan tersebut akan disimpan di dalam variabel pernyataan
.
2. Konversi Pernyataan Terbilang ke Dalam Pernyataan Angka
Langkah berikutnya adalah melakukan konversi inputan user yang berupa pernyataan aritmatika dalam kalimat terbilang menjadi pernyataan dalam bentuk angka.
Contohnya kita akan mengkonversi pernyataan terbilang berikut:
Tiga dikali tujuh ditambah sepuluh dikurangi lima dibagi tiga
Menjadi:
3 x 7 + 10 - 5 / 3
Bagaimana caranya? Kita akan memanfaatkan fungsi replace()
yang terdapat pada tipe data string.
Berikut ini kira-kira kode programnya:
pernyataan_terkonversi = pernyataan \
.replace('satu', '1') \
.replace('dua', '2') \
.replace('tiga', '3') \
.replace('empat', '4') \
.replace('lima', '5') \
.replace('enam', '6') \
.replace('tujuh', '7') \
.replace('delapan', '8') \
.replace('sembilan', '9') \
.replace('sepuluh', '10') \
.replace('ditambah', '+') \
.replace('dikurangi', '-') \
.replace('dikali', '*') \
.replace('dibagi', '/')
Perhatikan sintaks \
pada setiap baris di atas. Sintaks tersebut berfungsi untuk menyatakan satu buah statement yang harusnya ditulis dalam satu baris, tapi kita tulis dalam lebih dari satu baris. Lebih jelasnya pernah dibahas pada materi aturan penulisan sintaks pada python pada sub bab satu statement multi baris.
Untuk mengetes apakah berhasil atau tidak, kita bisa tampilkan 2 variabel pernyataan
dan pernyataan_terkonversi
:
print(pernyataan)
print(pernyataan_terkonversi)
Jalankan program, berikut ini kira-kira contoh output yang kita dapatkan:
Tulis statement: lima dikali (enam dibagi (dua ditambah tiga))
5 * (6 / (2 + 3))
3. Hitung Operasi Dengan Fungsi eval()
Langkah yang terakhir adalah kita bisa menghitung operasi aritmatika yang sudah terkonversi tersebut dengan memanggil fungsi eval()
bawaan python.
Fungsi eval()
sendiri bertugas untuk mengeksekusi statement (apa pun) dalam bahasa python yang tersimpan pada sebuah string.
Dan ia adalah fungsi yang sangat berbahaya, karena fungsi tersebut memungkinkan user untuk mengeksekusi kode program apa pun jika tidak kita beri pengamanan. Sehingga sangat tidak disarankan untuk menggunakan fungsi eval() kecuali hanya dalam rangka belajar saja.
Berikut ini kira-kira kode programnya:
hasil = eval(pernyataan_terkonversi)
print(f'Hasil: {hasil}')
Jika kita jalankan, kita akan mendapatkan output kira-kira seperti ini:
Tulis statement: lima dikali (enam dibagi (dua ditambah tiga))
Hasil: 6.0
Mudah sekali bukan? π
Kode Program Lengkap
Jika kalian ingin mendapatkan kode program lengkap dari pertemuan kali ini, kalian bisa mendapatkannya pada repositori python-latihan-logika di github.
Jangan lupa kasih star ya!βπ
Pertemuan Selanjutnya
Insyaallah pada pertemuan yang akan datang kita akan membuat program untuk menentukan dan mencari tahun kabisat.
Gimana caranya?
Simak terus tutorial latihan logika python di jagongoding!
Jika ada pertanyaan atau sesuatu yang ingin didiskusikan, atau bahkan request tutorial, jangan sungkan-sungkan untuk berkomentar, ya! π
Terima kasih banyak!