Bahasa Indonesia | English

Belajar Membuat Algoritma (Bagian ke-3)

05 October 2022 2073


Lanjutan dari artikel Belajar Membuat Algoritma Bagian Ke-2

 

PEMILIHAN

BPPTIK –  Misalkan kondisi akhir aksi tangkap ayam diubah sehingga ada kemungkinan ayam gagal diitangkap:

Tangkap ayam
Kondisi awal: ayam masih berkeliaran di halaman belakang
Kondisi akhir: ayam mungkin tertangkap, mungkin tidak tertangkap

Bila setelah aksi tangkap ayam dilakukan sang ayam tertangkap, aksi berikutnya (sembelih ayam) masih dapat dilakukan seperti biasa. Tapi bila sang ayam tidak tertangkap setelah aksi tangkap ayam dilakukan, aksi sembelih ayam tidak akan dapat dilakukan karena kondisi awal aksi sembelih ayam (ayam harus tertangkap) tidak terpenuhi.

Dalam merumuskan algoritma, Anda harus selalu memastikan bahwa kondisi awal tiap aksi yang akan dijalankan selalu terpenuhi. Dengan kondisi akhir aksi tangkap ayam yang sudah diubah, algoritma menyuguhkan ayam untuk tamu menjadi salah karena ada kemungkinan aksi sembelih ayam tidak dapat dilakukan.

Untuk mengantisipasi hal ini, diperlukan pemilihan. Dalam suatu pemilihan, aksi yang dilakukan bergantung pada suatu kondisi. Skema dasar pemilihan adalah sebagai berikut:

If kondisi then
            Lakukan aksi 1
Else
            Lakukan aksi 2

Pada skema di atas, aksi 1 akan dilakukan bila kondisi terpenuhi. Bila kondisi tidak terpenuhi, aksi 2 akan dilakukan. Berdasarkan kondisi, hanya salah satu dari aksi 1 atau aksi 2 yang akan dilakukan; tidak mungkin kedua aksi dilakukan bersamaan.

Pada kasus aksi tangkap ayam yang dimodifikasi di atas, algoritma menyuguhkan ayam kepada tamu dapat dimodifikasi menjadi Algoritma 1.

Pada Algoritma 1, akan diperiksa apakah ayam tertangkap setelah aksi tangkap ayam dilakukan. Bila ayam tertangkap, ayam akan disembelih, dibului, dan dimasak seperti biasa. Bila ayam tidak tertangkap, ayam yang tidak tertangkap akan diganti dengan ayam yang sudah digoreng di restoran padang dekat rumah.

Perhatikan bahwa aksi sembelih ayam, bului ayam, dan masak ayam ditulis dengan indentasi yang berbeda dengan kata kunci pemilihan if dan else yang mengapitnya. Ini berarti bahwa ketiga aksi tersebut dilakukan hanya bila kondisi (ayam tertangkap) terpenuhi. Hal yang sama berlaku untuk aksi beli ayam goreng yang ditulis dengan indentasi yang berbeda dengan kata kunci di atasnya (else). Ini berarti bahwa aksi beli ayam goreng hanya dilakukan bila kondisi (ayam tertangkap) tidak terpenuhi. Rentetan aksi yang ditulis dengan indentasi lebih ke kanan daripada aksi-aksi yang mengapitnya disenbut blok aksi. Untuk selanjutnya, aksi-aksi yang dilakukan bila suatu kondisi terpenuhi pada suatu pemilihan disebut blok aksi if, sedangkan aksi-aksi yang dilakukan bila suatu kondisi tidak terpenuhi disebut blok aksi else.

Perhatikan juga bahwa aksi hidangkan ayam ditulis dengan indentasi yang sama dengan kata kunci else di atasnya. Ini menunjukkan bahwa aksi hidangkan ayam berada di luar blok aksi yang dilakukan bila kondisi (ayam tertangkap) tidak terpenuhi. Ini berarti bahwa aksi hidangkan ayam dilakukan setelah melakukan aksi-aksi yang bergantung pada kondisi apakah ayam tertangkap atau tidak. Aksi hidangkan ayam akan dilakukan setelah aksi terakhir dalam blok aksi if dan aksi terakhir dalam blok aksi else.

Bila ayam tertangkap setelah aksi tangkap ayam, aksi-aksi yang dilakukan selanjutnya adalah sebagai berikut:

            Sembelih ayam
            Bului ayam
            Masak ayam
            Hidangkan ayam kepada tamu 

Bila ayam tidak tertangkap setelah aksi tangkap ayam, aksi-aksi yang dilakukan selanjutnya adalah sebagai berikut:

            Beli ayam goreng di restoran padang dekat rumah
            Hidangkan ayam kepada tamu

Pemberian indentasi perlu dilakukan untuk memperjelas aksi mana saja yang dilakukan bila suatu kondisi terpenuhi atau tidak terpenuhi. Bila algoritma di atas ditulis tanpa indentasi, akhir suatu blok aksi tidak akan dapat diidentifikasi, seperti terlihat pada Algoritma 2.

Pada algoritma di atas, sulit untuk mengetahui apakah aksi hidangkan ayam hanya dilakukan bila ayam tidak tertangkap atau dilakukan juga bila ayam tertangkap. Algoritma yang tidak menggunakan indentasi di atas akan semakin sulit untuk dibaca bila semakin banyak pemilihan yang harus dilakukan.

Pada Algoritma 1 dan Algoritma 2, ada teks yang tertulis dalam kurung kurawal setelah kata kunci else (ayam tidak tertangkap). Teks yang ditulis dalam kurung kurawal disebut komentar. Komentar dalam algoritma tidak akan memengaruhi algoritma; bila komentar ditambah atau dihapus, algoritmanya tidak akan berubuah. Komentar hanya berfungsi untuk memudahkan pembaca dalam memahami algoritma.

Pada Algoritma 1 dan Algoritma 2, komentar ayam tidak tertangkap setelah kata kunci else berfungsi untuk mengingatkan pembaca bahwa aksi yang dilakukan dalam blok else hanya dilakukan bila ayam tidak tertangkap. Komentar yang ditulis adalah negasi dari kondisi yang tertulis setelah kata kunci if. Untuk kasus seperti di atas, pembaca mungkin bisa memahami bahwa blok else berisi aksi yang dilakukan bila ayam tidak tertangkap tanpa harus membaca komentarnya. Tapi bila ada banyak skema if-then dalam sebuah algoritma, apalagi banyak skema if-then dalam skema if-then lain (yang lazim disebut skema if-then bersarang atau nested if), penambahan komentar setelah kata kunci else diperlukan supaya pembaca tidak bingung mencari pasangan if untuk masing-masing else (“Ini else untuk if yang mana?”).

Pada beberapa aksi pemilihan, tidak perlu ada aksi yang dilakukan bila kondisi tidak terpenuhi. Misalnya, bila ayam tidak tertangkap setelah aksi tangkap ayam dan Anda tetap berkeras untuk menyembelih dan memasak ayam, Anda dapat membeli ayam lain dari tetangga Anda yang merupakan pedagang ayam. Diasumsikan bahwa Anda membeli ayam yang sudah berada di kandang sehingga ayam berada dalam keadaan tertangkap setelah dibeli. Dalam hal ini, tidak perlu ada aksi tambahan bila ayam tertangkap setelah aksi tangkap ayam. Algoritma menyuguhkan ayam kepada tamu dapat dimodifikasi menjadi seperti Algoritma 3.

Karena tidak ada aksi yang dilakukan pada blok aksi else, blok aksi else dan kata kunci else dapat dihilangkan sehingga algoritmanya menjadi Algoritma 4.

Bersambung ke artikel Belajar Membuat Algoritma (Bagian ke-4).

(bpptik/dr/efn/)