Modul 3: Input dan Percabangan
Capaian Pembelajaran Mata Kuliah
Mampu menggunakan elemen-elemen pemrograman, yaitu variabel, percabangan, dan pengulangan untuk membuat algoritma sederhana.
Materi
input
Sejauh ini kita sudah mengenal tiga fungsi.
yaitu, print, type, dan round.
Sekarang, kita belajar satu fungsi lagi, yaitu input.
Jika fungsi print mengirimkan data ke terminal,
input menerima data dari user lewat terminal.
Coba
-
Ketikkan program berikut lalu jalankan. Saat dijalankan, apa yang terjadi?
Catatan
Setelah program dijalankan, program akan berhenti untuk menunggu sesuatu diinputkan user. Setelah diinputkan, tekan Enter untuk mengirimkan sesuatu yang diinputkan tersebut ke program.
-
Fungsi
inputdapat menerima 1 argumen. Ketikkan program berikut lalu jalankan. Apa yang terjadi? -
Apa beda kode berikut dengan kode sebelumnya?
-
Agar data yang diketikkan user tidak hilang, harus disimpan di sebuah variabel.
Catatan
Setelah user memasukkan nama dan menekan Enter, program menerima nama tersebut dan dikonversi menjadi sebuah string.
Catatan
Potongan kode berikut,
input("Siapa nama kamu? "), adalah sebuah ekspresi. Dengan demikian, baris pertama valid karena mengikuti sintaks assignment, yaitu<variabel> = <ekspresi>. Ekspresi tersebut dapat disederhanakan menjadi sebuah value. Apa valuenya? String yang diketikkan user. -
Coba jalankan kode berikut. Apa yang terjadi?
-
Coba jalankan kode berikut. Apa yang terjadi?
angka1 = input("Masukkan angka ke-1: ") angka2 = input("Masukkan angka ke-2: ") print("Jumlah", angka1, "dan", angka2, "adalah", angka1 + angka2)Catatan
Ekspresi
input("Masukkan angka ke-1: ")selalu disederhanakan menjadi sebuah string. Jadi, setelah user mengetikkan angka 2, ekspresi tersebut berubah menjadi nilai "2" (string) bukan 2 (integer).
Dengan demikian, ketika dijumlahkan, terjadi penjumlahan string. Untuk mengubah input user menjadi integer, gunakan fungsi typecastingint(). -
Coba jalankan kode berikut. Apa yang terjadi?
-
Apa bedanya program penjumlahan angka sebelumnya, dengan program berikut?
angka1 = input("Masukkan angka ke-1: ") angka2 = input("Masukkan angka ke-2: ") angka1 = int(angka1) angka2 = int(angka2) print("Jumlah", angka1, "dan", angka2, "adalah", angka1 + angka2)Catatan
Ingat, program adalah urutan perintah-perintah. Urutan perintah penting ketika urutan itu mengandung hubungan logis. Perintah dapat ditukar-tukar urutannya selama hubungan logisnya tetap sama.
-
Coba program berikut. Isi panjang dengan 2.5 dan lebar dengan 4.1. Apa yang terjadi? Apa fungsi
float()? -
Selain
int()danfloat(), Python juga memilikistr(), yaitu suatu fungsi untuk mengubah data menjadi string. Apa perbedaan program berikut dengan program sebelumnya?
Percabangan
Misalkan kita diminta untuk membuat program seperti berikut.
-
User diminta input kata
pagi. -
Jika user memasukkan kata
pagi, program mencetakSelamat datang. Jika tidak, program tidak mencetak apa-apa dan selesai.
Sintaks dari percabangan adalah sebagai berikut.
if (<ekspresi boolean>):
# kode yang akan dijalankan jika <ekspresi boolean> bernilai True
else:
# kode yang akan dijalankan jika <ekspresi boolean> bernilai False
-
Dalam program tersebut, jika user mengetikkan
pagi, variabelwaktuisinya sekarang adalah string"pagi". -
Ekspresi
waktu == "pagi"bernilaiTrue. -
Karena
True, statement percabangan menjadiif(True)sehingga blok kode di bawahnya (bagian yang menjorok ke dalam) dijalankan. -
Jika user mengetikkan selain
pagi, misalnyasore, ekspresiwaktu == "pagi"menjadiFalsesehingga statement percabangan menjadiif(False). Jika demikian, blok kode di bahwa statementelseyang akan dijalankan.
Percabangan seperti ini, biasanya digambarkan dalam diagram alur (flowchart) sebagai berikut.
Catatan
Saat membuat percabangan, semua kemungkinan pilihan harus dibuat. Untuk contoh di atas, terdapat dua pilihan, yaitu
pagi- lainnya
Kedua pilihan ini sudah mencakup semua kemungkinan yang ada.
Bagaimana jika pilihannya lebih dari 2? Misalnya jika user mengetikkan:
pagisore- lainnya
Output yang diharapkan adalah:
Selamat datangSampai jumpa- Tidak mencetak apa-apa
Secara umum, komputer hanya bisa memiliki dua percabangan, yaitu
saat if(True) dan saat if(False).
Untuk menyiasati pilihan yang lebih dari dua, kita membuat
percabangan lagi di blok if(False).
Dengan demikian, pilihannya menjadi seperti berikut.
pagi- lainnya
sore- lainnya
Untuk itu, kita harus menambahkan blok if ke dalam blok else sehingga menjadi elif.
waktu = input("Masukkan kata 'pagi' atau 'sore': ")
if (waktu == "pagi"):
print("Selamat datang")
elif (waktu == "sore"):
print("Sampai jumpa")
else:
print()
Flowchart dari kode ini adalah sebagai berikut.
Catatan
Perhatikan kembali karena ini sangat penting. Saat membuat percabangan, semua kemungkinan pilihan harus dibuat. Untuk contoh di atas, terdapat tiga pilihan, yaitu
pagisore- lainnya`
Jika pilihan yang dibuat tidak menampung semua kemungkinan, program dapat berjalan tidak sesuai dengan yang kita ingingkan. Terutama saat user melakukan sesuatu yang tidak diantisipasi programer.
Coba
-
Tuliskan kode program berikut dan jalankan.
nilai = int(input("Masukkan bilangan sembarang: ")) if nilai >= 100: print("Bilangan besar") else: print("Bilangan kecil")Catatan
kurung dalam cara penulisan percabangan
if(<ekspresi>):adalah opsional. Kita bisa juga menuliskannya tanpa kurungif <ekspresi>:. -
Jalankan kode berikut.
nilai = input("Berapa nilai total? ") nilai = int(nilai) if nilai >= 80: print("A") elif nilai >= 70: print("AB") elif nilai >= 65: print("B") elif nilai >= 60: print("BC") elif nilai >= 50: print("C") elif nilai >= 40: print("D") else: print("E")Catatan
Jika blok kode untuk
if,elif, ataupunelsehanya terdiri dari satu baris, kita bisa menuliskannya langsung dalam satu baris. -
Jalankan kode berikut.
-
Jalan program berikut.
-
Program tebak angka.
import random angka = random.randint(1, 5) tebakan = int(input("Tebak angka yang di-generate komputer: ")) if (tebakan == angka): print("Anda hebat, tebakan anda benar!!") else: print("Tebakan anda tidak tepat") print("Angka yang benar adalah " + str(angka))Catatan
import randomadalah suatu baris perintah yang digunakan untuk meng-import modulrandom. Di dalam modulrandom, terdapat fungsirandint()yang dapat digunakan untuk menghasilkan bilangan acak.random.randint(1,5)adalah contoh penggunaan fungsirandint(). Ekspresirandom.randint(1,5)disederhanakan menjadi bilangan bulat acak antara 1-5.`
Tugas Praktikum
-
Lengkapi program berikut.
-
Lengkapi program berikut.
-
Lengkapi program berikut.
-
Apa beda kode berikut,
kuliah = 'alpro' if kuliah == 'alpro': print(kuliah) elif kuliah == 'pbo': print('bukan alpro tapi juga ngoding') elif kuliah == 'agama': print('sama sekali gak ngoding')dengan kode ini?
-
Buatlah program tebak angka seperti yang ada di modul. Buat agar setelah user menebak, keluar tiga pilihan output berikut.
Tepatjika user menjawab tepatSedikit lagijika selisih antara angka acak dan tebakan user kurang atau sama dengan 10.Jauhjika selisih antara angka acak dan tebakan user lebih dari 10.