Senin, 02 Mei 2016

Struktur Dasar Algoritma Pemilihan (Selection)

 sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Tinjau kembali algoritma pengurutan dara. Pencarian data terkecil dilakukan dengan membanding-bandingkan data. Mula-mula data pertama dianggap data terkecil sementara (min) Bandingkan min dengan data ke-2, 3,..., N. Selama proses pembandingan, bila data lebih kecil dari min, maka data ke-j itu menjadi min yang baru. Langkah terakhir tulis dalam pernyataan berikut:


jika data ke-j lebih kecil dari min, maka isikan data ke-j sebagai min yang baru


Pernyataan diatas dapat ditulis dalam struktur umum


if kondisi then

aksi


Dalam bahasa Indonesia if berarti "jika" dan then artinya "maka. Kondisi adalah persyaratan yang dapat bernilai benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak dilaksanakan. Perhatikan bahwa kata if dan then merupakan kata kunci (keywords) untuk struktur pemilihan ini.

Dalam kehidupan sehari-hari, kita sering memnuliskan pelaksanaan tindakan dila suatu persyaratan dipenuhi. Misalnya:

if Amir memperoleh juara kelas then
ayah akan membelikannya sepeda

if jalan Dago macet then
lewat jalan alternatif ke jalan Dipati Ukur

if mobilmu rusak then
pakai saja sepeda motorku

if x habis dibagi 2 then
tulis x adalah bilangan genap

dan lain-lain sebagainya

struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyaratan dipenuhi (bernilai benar) dan tidak memberi pilihan aksi lain bila kondisi bernilai salah. Bentuk pemilihan yang lebih umum ialah memilih satu dari dua buah aksi bergantung pada nilai kondisinya:

if kondisi then
aksi 1
else
aksi 2

Else artinya "kalau tidak". Bila kondisi bernilai benar, aksi 1 akan dikerjakan kalau tidak, aksi 2 yang akan dikerjakan. Misalnya pada pernyataan berikut:

if hari hujan then
pergilah dengan becak
else
pergilah dengan motor

Jika hari memang hujan maka aksi "pergilah dengan becak" dilakukan, sebaliknya, aksi "pergilah dengan motor" dilakukan bila hari tidak hujan.

Contoh lainnya adalah menentukan nilai terbesar dari dua buah bilangan bublat, x dan y (andaikan x ≠ y)

if x > y then
tulis x sebagai bilangan terbesar
else
tulis y sebagai bilangan terbesasr

Menentukan apakah bilangan bulat merupakan bilangan genap atau ganjil:

if x habis dibagi 2 then
tulis x adalah bilangan genap
else
tulis x adalah bilangan ganjil

Apabila pilihan aksi yang dilakukan lebih dari dua buah, maka struktur pemilihannya menjadi lebih rumit, seperti pada contoh berikut (pemilihan bersarang)

if lampu pengatur lalu lintas berwarna merah then
anda harus berhenti
else
if lampu lintas berwarna kuning then
anda boleh jalan tapi dengan hati-hati
else
anda boleh silakan terus berjalan

Perhatikanlah bahwa penggunaan indentasi (rongak kosong) membuat algoritma menjadi lebih mudah dibaca. Tanpa indentasi, algoritma menjadi lebih sulit dibaca, misalnya jika algoritma ditulis seperti ini:

if lampu pengatur lalu lintas berwarna merah then
anda harus berhenti
else if lampu lintas berwarna kuning then
anda boleh jalan tapi dengan hati-hati else
anda boleh silakan terus berjalan

Perancang algoritma sangat dianjurkan membuat identasi semacam ini pada setiap struktur pemilihan, agar algoritma menjadi lebih mudah dibaca.

Contoh lain dan pemilihan bersarang adalah menentukan bilangan terbesar dari tiga buah bilangan x, y dan z

if x > y then
if x > z then
tulis x sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
else
if y > z then
tulis y sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar

Bayangkan betapa sulitnya memahami algoritma di atas jika ditulis seperti dibawah ini

if x > y then
if x > z then
tulis x sebagai bilangan terbesar
else tulis z sebagai bilangan terbesar
else if y > z then
tulis y sebagai bilangan terbesar
else tulis z sebagai bilangan terbesar











Tidak ada komentar:

Posting Komentar