Belajar Algoritma dengan penerapan dalam kehidupan sehari-hari

Saya ko ga ngerti terus ya penjelasan dari pa dosen tentang dasar algoritma? tiap pelajaran algo ngedumel mulu karena saya ga bisa ngambil pengertian dari penjelasan sang dosen.saya analisis hal ini disebabkan 3 kemungkinan :

a. Dosen yang ga oke ngajar nya

b. Saya mengidap sindrom susah ngerti stadium lanjut

c. Dua-dua nya benar

Saya sih lebih cenderung ke jawaban C karena ga mau nyalahin dosen dengan semua kebingungan yang saya derita. Hal itu ga membuat saya patah arang buat belajar. Setelah surfing dari beberapa artikel ahirnya saya nemu artikel dan penjelasan yang ‘klop’ dengan otak saya.Artikel ini saya ambil dari blog nya Kang Widi,ternyata ga perlu penjelasan di power point dengan ratusan slide, cukup penjelasan sederhana dengan implementasi dari kehidupan sehari-hari.

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah bisa berupa runtunan, pemilihan, dan pengulangan. Ketiga langkah itulah yang menyusun algoritma. Jadi, sebuah algoritma dapat ditempuh dengan ketiga struktur dasar tersebut. Berikut saya coba jabarkan satu-persatu.
Runtunan (Sequence)
———————-
Sebuah runtunan terdiri dari satu atau lebih ‘instruksi’. Tiap-tiap instruksi dilaksanakan secara berurutan sesuai dengan urutan penulisannya; sebuah instruksi baru bisa dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Kalau urutannya diubah, kemungkinan besar hasil akhirnya akan berubah. Misal: Seorang ibu berbelanja di mall. Dia melewati beberapa toko; toko perhiasan, toko baju, toko sepatu, dan toko tas. Ketika itu dia iseng! belilah dia satu set perhiasan mas. Namun setelah berjalan beberapa meter dia berjumpa dengan toko tas. Karena dia sadar kalau dirinya membutuhkan tas baru; dia akan menyesal dengan mengatakan “seandainya toko perhiasan tadi ada setelah toko tas”!? JUST KIDDING… =)
Misalnya: Ada dua buah bejana, A dan B; bejana A berisi larutan kopi,bejana B berisi larutan susu. Pertukarkan kedua isi bejana itu,sehingga A berisi larutan susu, dan B berisi larutan kopi. Tidak boleh jadi kopi susu…!?
Kita tanyakan Algoritma!? Jawabannya: ada tiga langkah, yaitu:
1. Tuangkan larutan dari bejana A ke dalam bejana C. (cuci bersih dulu
bejana A kalo bisa!?)
2. Tuangkan larutan dari bejana B ke dalam bejana A. (cuci juga bejana
B!? =))
3. Tuangkan larutan dari bejana C ke dalam bejana B. Selesai…..
Gak jadi kopi susu, kecuali anda minum isi kedua bejana itu dan
mencampurnya di perut anda.
Pemilihan (Selection)
———————
Kadangkala sebuah instruksi dikerjakan setelah ‘kondisi’ tertentu terpenuhi. Dalam bahasa pemrograman, ini dikenal dengan “if” dan “then”.Kondisi adalah persyaratan yang dapat dinilai benar atau salah sehingga akan memunculkan ‘aksi’ yang berbeda dengan ‘kondisi’ yang berbeda.
Gampangnya, lansung contoh!
Dalam kehidupan sehari-hari kita sering punya pilihan semacam ini:

‘if’ Widi memperoleh juara kelas
‘then’ ayah akan membelikannya sepeda

‘if’ Jalan Dago macet
‘then’ ambil alternatif Jalan Dipati Ukur

‘if’ Mobilmu rusak
‘then’ pakai saja motorku

Tampak struktur pemilihan ‘if-then’ hanya memberikan satu pilihan aksi bila kondisi dipenuhi atau bernilai benar dan tidak memberikan aksi lain bila kondisi salah. Bentuk pemilihan yang lebih umum adalah memilih satu dari dua aksi bergantung pada nilai kondisinya, seperti:

‘if’ hari hujan
‘then’ pergilah dengan naik taxi
‘else’ pergilah dengan naik motor

di sini secara logika; jika kondisi ‘hari hujan’ benar, maka aksi ‘pergi naik taxi’ dilakukan. Sebaliknya jika kondisi ‘hari hujan’ bernilai salah, maka aksi ‘pergi naik motor’ akan dilaksanakan. Dan, tidak ada pilihan aksi turun ke jalan!? =) Contoh yang lebih kompleks dapat ditemui dalam pemilihan dengan tiga atau lebih variable, seperti penentuan 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
Contoh di atas biasa disebut dengan ‘pemilihan bersarang’. Coba anda buat mejadi 4 atau lebih variablenya!? =)

Pengulangan (Repetition)
————————-
Salah satu kegunaan pemrograman adalah untuk memudahkan pekerjaan yang harus dilakukan berulang-ulang tanpa capek!? Cerita sedikit nih! =)
Sewaktu saya duduk di sekolah dasar, pernah suatu hari dihukum guru karena tertidur dikelas pada jam pelajaran terakhir. Anda tau
hukumannya? Menulis kalimat “saya berjanji tidak akan tidur di kelas lagi” sebanyak 300 kali karena saya masih duduk di kelas 3. Tapi
untungnya guru saya ini gak jelasin dimana saya harus menulisnya.
Keesokan harinya saya terpaksa merengek ke mak saya untuk dibolehkan membawa laptop kesayangan saya ke sekolah!? Sebelumnya pada malam harinya saya sudah membuat program kecil untuk mengulang tulisan “saya berjanji tidak akan tidur di kelas lagi” sebanyak apapun yang saya mau!? =) akhirnya! guru saya itu cuman bisa geleng kepala!? greetz trik huh!?
Sebenarnya program pengulangan saya waktu itu hanya mengimplementasikan algoritma ‘repeat-until’ (repeat artinya ulang sedangkan until artinya sampai),sehingga logaritmanya bisa dituliskan seperti:
pencatat_jumlah_kalimat = 0
‘repeat’
tulis “saya berjanji tidak akan tidur di kelas lagi”
naikkan pencatat_jumlah_kalimat dengan 1
‘until’ pencatat_jumlah_kalimat = 300
Pemroses akan melaksanakan aksi tulis tersebut sebanyak 300 kali.
Struktur pengulangan tersebut dapat ditulisakan secara umum menjadi:
‘repeat’
aksi
‘until’ kondisi
Dalam istilah bahasa pemrograman, pengulangan di istilahkan ‘loop’.
Nah, mari kita coba kombinasikan ketiganya dalam sebuah algoritma
pencarian seperti berikut ini:
Sebuah tabel data sudah berisi data nomor ID, login ID, dan password login ke mesin absensi.Carilah dalam tabel password seorang karyawandengan nomor ID tertentu.
1. Baca nomor ID pertama dalam tabel
2. ‘repeat’
‘if’ nomor ID yang dibaca sama dengan nomor ID yang dicari maka
tulis password
karyawan yang bersangkutan
stop
‘else’
baca nomor ID berikutnya di dalam tabel
‘until’ nomor ID yang dicari sudah ditemukan atau seluruh isi tabel
dibaca.
Struktur ‘repeat-until’ hanya satu diantara beberapa struktur pengulangan yang saya angkat saat ini. Ada beberapa struktur pengulangan lain seperti ‘while-do’, ‘for’ dan sebagainya. Pada seri berikutnya pasti akan tersertakan dengan sendirinya.

Dalam mempelajari algoritma, anda nggak dituntut untuk menguasai ilmu eksak.Hal mutlak yang diperlukan dalam mempelajari algoritma adalah logika anda dalam menganalisis suatu permasalahan. Kalo anda sukanya menghayal, siap-siap saja anda bakal boring
mempelajari algoritma ;P~

Ada 2 hal penting yang mesti anda tau dari algoritma. Pertama, Algoritma harus benar. Maksudnya disini, setiap masalah yang anda coba uraikan dalam bentuk program mesti menghasilkan hasil yang benar. Contohnya, anda bikin program penjumlahan 2 tambah 3
hasilnya harus 5, khan?! kalo diluar itu, itu berarti algoritma anda dalam program kacau
(atau bisa aja andanya yang lagi error).
Hal penting kedua, algoritma harus berhenti. Contoh sederhananya seperti algoritma intrusion. Algoritma tsb berhenti setelah melewati proses Covering Track & Installing Backdoor (walaupun dalam prakteknya anda muter² menjalankan tahapan intrusion
tersebut tapi akhirnya anda akan sampai juga pada tahap Covering Track & Installing Backdoor, khan?!).

Dan bila anda mengalami kebuntuan dalam mendesign algoritma suatu masalah, langkah yang perlu anda lakukan adalah dengan melihat/menganalisis masalah tersebut secara menyeluruh setelah itu anda coba uraikan/bagi permasalahan tersebut sehingga menjadi kumpulan² permasalahan yang lebih sederhana.

Untuk artikel kali ini, saya mencoba untuk ngelanjutin bahas tentang struktur pengulangan menggunakan “while do” dan “for”, (ngelanjutin artikel STRUKTUR DASAR
ALGORITMA .

* While…Do
Struktur perulangan “While…Do” tidak terlalu jauh berbeda dengan struktur perulangan “Repeat…Until”. Bila pada “Repeat…Until” memungkinkan terjadinya proses terlebih dahulu sesudah itu baru terjadi pengecekan kondisi, tetapi pada “While…Do”, anda tidak akan dapat menjalankan baris² aksi bila syarat(kondisi) yang memungkinkan aksi itu dijalankan tidak sesuai. While artinya sementara, sedangkan Do artinya kerjakan, jadi bila diindonesiakan sintaksnya sendiri berbentuk seperti ini :

Sementara /kondisi terpenuhi/ Kerjakan
aksi dijalankan
Selesai

Contoh penggunaan “While…Do” seperti ini, misalnya anda ingin mencetak kalimat “saya suka k-elektronik” di layar sebanyak 10 kali, menggunakan “While…Do” maka sintaksnya akan seperti ini:

pencacah <- 1; /inisialisasi awal thd pencacah, mengisi nilai awal ke
pencacah/
while pencacah <=10 do
cetak “saya suka k-elektronik”;
endwhile;

Penjelasan sintaksnya seperti ini. Pada mulanya pencacah diisi dengan nilai 1. Sebelum memasuki badan pengulangan, kondisi “pencacah <=10″ diperiksa apakah bernilai benar, karena “1 <= 10″ adalah benar, maka aksi cetak “saya suka k-elektronik” dijalankan.
Sehingga keluaran yang tercetak :

saya suka k-elektronik

Selanjutnya nilai pencacah dinaikkan menjadi 2, siklus pengulanagn kembali dijalankan sampai nilai pencacah dinaikkan 11 maka kondisi pengulangan bernilai salah, pengulangan dihentikan.

* FOR
Struktur pengulangan “FOR” tidak melibatkan penggunaan kondisi seperti pada struktur perulangan “Repeat…Until” ataupun “While…Do”. Struktur FOR ada dua macam yaitu, menaik (ascending) yang ditandai dengan kata “to” dan menurun (descending) yang ditandai dengan kata “downto” untuk sintaksnya:

FOR pencacah <- nilai_awal to/downto nilai_akhir
aksi dijalankan
endfor

Untuk FOR menaik, nilai awal harus lebih kecil dari nilai akhir. Tetapi pada FOR menurun nilai
awal harus lebih besar dari nilai akhir.

Contoh sintaks :
– Untuk FOR menaik

FOR pencacah <- 1 to 10 do
cetak “saya suka k-elektronik”
endfor

– Untuk FOR menurun

FOR pencacah <- 10 downto 1 do
cetak “saya suka k-elektronik”
endfor

 

  1. No trackbacks yet.

Leave a comment