Beginilah hidupnya anak informatika…. Setiap hari musti ada yang
namanya algoritma. Algoritma itu sendiri apa sih? Algorima itu merupakan
deskripsi langkah-langkah pelaksanaan dari suatu proses. Setiap langkah
dalam algoritma itu dinyatakan dalam sebuah pernyataan atau istilah
lainnya adalah instruksi. Instruksi itu sendiri berisi sebuah aksi yang
akan dilakukan. Bila sebuah pernyataan dieksekusi maka akan dikerjakan
sebuah aksi yang bersesuaian dengan instruksi tersebut.
Tentang dasar algoritma sendiri sebenarnya ada 3 macam bentuk
struktur dasar dari algoritma. Apa sajakah itu??? Inilah dia bentuk
bentuknya:
Pertama adalah runtutan , sering kita sebut dengan
sequence.
Sebuah runtutan itu terdiri dari satu atau lebih pernyataan dan setiap
pernyataan itu ditulis dalam satu bari atau dipisahkan dengan tanda
semicolon atau sering disebut titik koma ( ; ). Tiap pernyataan
dikerjakan secara berurutan mulai dari awal sampai akhir sesuai dengan
urutannya di dalam teks algoritma. Sebuah instruksi akan dilaksanakan
setelah instuksi sebelumnya selesai dilaksanakan. Bila urutannya diubah,
ada kemungkinan hasilnya pun juga akan berubah
Saya misalkan saya menulis sebuah urutan demikian
Algoritma urutan mau minum:
- Ambil air
- Tuangkan ke gelas
- Minum air yang ada di dalam gelas
Atau demikian yang lebih singkat
Algoritma urutan mau minum:
- Ambil sebotol air
- Teguk air yang ada dalam botol
Dua algoritma di atas pada dasarnya bertujuan sama yaitu untuk urutan
mau minum, tetapi caranya berbeda, namun coba anda bedakan dengan
algoritma dibawah ini
Algorima urutan mau minum:
- Minum air
- Tuangkan ke gelas
- Ambil air
Tidak akan mungkin kalau algoritma di atas akan menghasilkan suatu
hasil yang sama dengan yang sebelumnya. Itu karena urutannya tidak
benar.
Saya punya contoh lain…..
Coba berfikir!!!
Bagaimana algoritma untuk menukarkan isi dari dua buah ember berisi
air yang misalnya masing-masing ember saya beri variabel A dan B (isi
ember A menjadi isi ember B dan sebaliknya)?masing-masing ember berisi
air penuh.
Tidak mungkin kalau kita akan langsung menuangkan ember A ke B atau
sebaliknya. Karena embernya kan penuh. Misalnya kita tuang langsung
ember A ke ember B pasti airnya akan tumpah.
Jadi hal yang harus kita lakukan adalah tambahkan sebuah variabel
lagi yang kosong, misalnya ember C yang kosong. Hal yang kita lakukan
adalah sebagai berikut
Status awal :
Proses Pertukaran :
Masukkan isi ember A kedalam ember C
Masukkan isi ember B kedalam ember A
Masukkan isi ember C kedalam ember B
Status akhir yang dihasilkan:
Yang ke dua adalah pemilihan, Ada kalanya suatu
perintah itu di lakukan apabila pada kondisi tertentu. Misalnya saat
kita melanggar peraturan pemerintah, kita akan dipenjara. Langkah
tersebut dapat kita tuliskan sebagai berikut :
Jika kita melanggar peraturan pemerintah, maka kita akan dipenjara
Pernyataan diatas dapat kita tulis dalam pernyataan pemilihan
(selection-statement), atau disebut juga pernyataan kondisional, sebagai
berikut:
Kalau kita definisikan dalam bahasa indonesia if artinya adalah jika
dan then artinya adalah maka. Kondisi tersebut dapat bernilai benar
ataupun salah. Seperti yang kita lihat pada contoh kalimat di atas,
misalkan jika kita benar melanggar peraturan pemerintah , maka aksi yang
dilakukan adalah kita akan dipenjara, namun jika kita tidak melanggar
peraturan pemerintah, maka kita tidak akan dikenai aksi apapun.
Namun, adakalanya ketika kita ingin membuat pernyataan kondisional
yang pasti dikenai suatu aksi baik kondisi bernilai benar maupun salah
kita dapat mendeklarasikannya sebagai berikut :
If kondisi then aksi1
Else aksi2 |
Misalkan saja untuk kondisi seperti di bawah ini :
Jika tinggi > 165 maka tinggi selain itu pendek
Jadi ketika tinggi kita lebih dari 165 maka kita tergolong tinggi dan selain itu ( ≤ 165) kita tergolong pendek.
Dalam algoritma dapat kita tulis
if tinggi > 165 then panjang
else pendek |
Adakalanya juga ketika sebuah pernyataan kondisional bersarang. Kita sering menyebutnya
nested if atau if bersarang.
Contohnya seperti di bawah ini:
if nilai>80 then output(‘A’)
else if nilai>60 then
output(‘B’)
else if nilai>50 then
output(‘C’)
else if nilai>30 then
output(‘D’)
else output(‘E’)
{endif} |
Algoritma yang dicek berurutan mulai dari if yang pertama sampai if yang terakhir secara berurutan
Jadi ketika inputan nilai adalah 40 maka akan dicek dari atas, apakah
40 itu lebih dari 80?Karena tidak, maka lanjut ke proses berikutnya.
Apakah 40 lebih dari 60?Karena 40 tidak lebih dari 60 maka lanjut ke if
berikutnya. Apakah 40 lebih dari 50? Karena tidak maka lanjut ke if
berikutnya lagi. Di cek lagi apakah 40 lebih dari 30?Karena perbandingan
tersebut bernilai benar maka akan menghasilkan outputan D . Sedangkan
kondisi berikutnya tidak akan ikut dieksekusi karena kondisi sudah
terpenuhi.
Kemudian,
Yang ketiga adalah perulangan,
Pernahkah anda dihukum menulis sesuatu misalnya “aku berjanji aku
akan jadi anak baik” sebanyak 500 kali? Apakah anda melakukan hal
tersebut? Apakah anda menulisnya seperti dibawah ini?
1.aku berjanji aku akan jadi anak baik
2.aku berjanji aku akan jadi anak baik
3.aku berjanji aku akan jadi anak baik
Sampai yang ke500.
Sebenarnya itu bagus, tapi kurang efektif. Tangan anda pasti akan serasa putus jika melakukan hal tersebut terus-menerus.
Sebenarnya ada cara lain yang lebih efektif, yaitu dengan memakai
algoritma. Seperti apakah itu?Perhatikan Algoritma dibawah ini:
Repeat 500 timesOutput(‘aku berjanji aku akan menjadi anak baik’) |
Singkatkan!!!!!!
Bagaimana?Cukup dengan menuliskan algoritma di atas anda jadi orang
yang efektif. Tak perlu capek-capek menulisnya sebanyak 500 kali.
Itulah hebatnya komputer. Komputer itu tidak akan lelah dan bodsan
ketika mengerjakan sesuatu yang sama secara berulang-ulang, berbeda
dengan manusia, manusia akan cepa t lelah dan bosan ketika melakukan
sesuatu secara berulang-ulang.
Perulangan itu digunakan ketika ingin melakukan proses yang sama dan berulang-ulang.
Berikut ini merupakan beberapa struktur Algoritma dalam pengulangan:
Yang artinya aksi diulang dan dikerjakan sebanyak N kali
Kemudian struktur lainya adalah:
Pencacah travesal [1..N] Aksi |
Kalau di pascal seperti “for….. to …..do…….”
Maksudnya adalah untuk pencacah dari satu sampai N kerjakan aksinya.
(pencacah harus bersifat suksesif, maksudnya adalah pencacah harus
punya successor ataupun predesessor). Pencacahnya misalnya sesuatu yang
bertipe char ataupun integer.
Struktur berikutnya adalah:
Maksudnya selama kondisi terpenuhi (bernilai benar) maka aksi akan dilakukan sampai kondisi tidak terpenuhi
Kemudian ada algoritma yang berbentuk seperti ini :
Repeat Aksi
Until kondisi |
Maksudnya adalah lakukan aksi hingga kondisi terpenuhi ( kondisi bernilai true).
Demikianlah pengertian algoritma yang saya ketahui.Jika ad pendapat lain monggo....saran dan kritik selalu saya nantikan.