Struktur Pemilihan

11.4.2. Struktur Pemilihan

Dengan perintah struktur pemilihan seorang programer dapat menentukan jalur-jalur proses yang harus dikerjakan oleh computer berdasarkan logika tertentu. Pada Python, perintah untuk struktur pemilihan adalah if. Format umum untuk struktur pemilihan dengan if adalah sebagai berikut:

if kondisi: perintah_jika_kondisi_benar elif kondisi_lain: perintah_jika_kondisi_lain_benar else:

perintah_jika_tak_ada_kondisi_yang_benar Seperti halnya struktur berurutan, berikut ini kita akan menggunakan

contoh-contoh kasus pada Bab 9 untuk kita terapkan pada bahasa pemrograman Python.

Contoh 11.8. Kode program untuk algoritma contoh 9.7. Pada Bab 9 contoh 9.7, kalau kita terjemahkan dalam kode program,

maka akan tampak sebagai berikut :

Pada kode program di atas, karena hanya ada dua pilihan maka kita langsung menggunakan else , tanpa menggunakan elif . Apabila kita eksekusi maka hasilnya akan sebagai berikut:

Output di atas adalah jika kita masukkan umur < 17 tahun. Jika kita masukkan umur > 17 tahun, maka akan tampak seperti berikut:

Contoh 11.9. Kode program untuk algoritma contoh 9.8. Pada Bab 9 contoh 9.8, algoritma sedikit lebih rumit karena melibatkan

perhitungan. Kode program untuk algoritma tersebut adalah sebagai berikut:

Bila kita eksekusi kode program di atas dengan input X = 4.0 dan Y = 6.0, maka hasilnya akan seperti berikut:

Sedangkan bila nilai X = 4.0 dan Y = -6.0, maka hasilnya akan sebagai berikut:

Pada dua contoh di atas (contoh 11.8 dan 11.9) kita hanya menggunakan struktur if dalam bentuk yang sederhana. Contoh berikut akan menunjukkan bagaimana struktur if bersarang.

Contoh 11.10. Kode program untuk algoritma contoh 9.9. Pada Bab 9 contoh 9.9, algoritma pemilihan menggunakan model

bersarang, karena ada struktur pemilihan bertingkat. Kode program untuk algoritma tersebut adalah sebagai berikut:

Pada baris ke-2 kode program di atas, kita menggunakan perintah raw_input karena kita membutuhkan input dengan tipe data string. Berbeda dengan tipe data numeric yang cukup menggunakan perintah input. Selain itu kita juga melihat ada operator == (tanda sama dengan 2 buah) pada baris ke-4 dan ke-6. Tanda == adalah tanda untuk melakukan perbandingan. Biasanya digunakan dalam struktur if untuk menguji apakah suatu nilai variable sama dengan nilai tertentu. Kebalikan dari tanda == adalah != (tidak sama dengan).

Perhatikan pada baris ke-6 sampai dengan ke-10 (elif status .. dan seterusnya). Pada baris-baris kode tersebut kita menggunakan struktur pemilihan bersaran. If yang pertama adalah elif status == ‘N’ dan if

berikutnya adalah if JLF < 100. Apabila kita eksekusi maka contoh hasilnya adalah sebagai berikut:

Contoh hasil eksekusi yang lain adalah :

Sebenarnya ada kelemahan yang cukup mendasar pada kode program di atas. Bagaimana jika pengguna program memasukkan input status bukan ‘P’ atau ‘N’. Perhatikan output program berikut ini.

Pada output program ini kita memasukkan status pelanggan dengan huruf ‘Y’. Kita lihat ada petunjuk kesalahan bahwa pada baris ke-11, variable HPP tidak didefinisikan. Sebenarnya kesalahan bukan pada baris ke-11,

namun pada baris ke-2 karena kita tidak mengantisipasi kemungkinan pengguna memasukkan huruf yang lain selain ‘P’ dan ‘N’. Bagaimana memperbaiki kode program di atas? Silahkan mencoba-coba dengan menggunakan struktur if kemudian digabung dengan operator logika or.

Contoh 11.10. Kode program untuk algoritma contoh 9.10. Pada Bab 9 contoh 9.10, algoritma pemilihan juga menggunakan model

bersarang, namun sedikit lebih dikembangkan. Kode program untuk algoritma tersebut adalah sebagai berikut:

Pada kode program di atas kita melihat ada struktur if bersarang. Selain itu pada kode di atas juga diperkenalkan bagaimana memformat keluaran pada terminal agar tampak lebih enak dibaca. Perhatikan pada bagian- bagian akhir kode program (dimulai dari baris # format output dan seterusnya).

Hasil eksekusi program akan tampak sebagai berikut:

Output di atas menunjukkan jika Nilai Ujian Tengah Semester kurang dari

70, maka program akan meminta input Nilai Ujian Akhir Semester. Bagaimana jika Nilai Ujian Tengah Semester lebih dari 70. Perhatikan output berikut ini.

Python tidak menyediakan fasilitas untuk melakukan pilihan dengan model select .. case seperti pada BASIC, Visual Basic atau Delphi. Sehingga jika ada banyak pilihan maka tetap pola if … elif … else yang dipakai.

Perhatikan contoh berikut ini. Contoh 11.11. Kode program untuk struktur if dengan banyak pilihan

Pada contoh kode ini tampak ada banyak pilihan. Pola if … elif … else tetap harus digunakan untuk menyelesaikan kasus di atas. Output dari

kode program di atas adalah sebagai berikut.