Rabu, 16 November 2011

Perbedaan Repeat dan While pada Algoritma

Komputer dapat menjalankan perintah secara berulang tanpa mengenal lelah dan bosan. Di dalam algoritma terdapat beberapa macam konstruksi pengulangan yang berbeda. Beberapa konstruksi dapat dipakai untuk masalah yang sama, namun ada beberapa konstruksi pengulangan yang hanya cocok dipakai untuk masalah tertentu. Pengulangan dapat dilakukan berkali-kali sampai kondisi tertentu atau hingga kondisi berhenti pengulangan tercapai. Di dalam algoritma terdapat beberapa macam pengulangan, seperti FOR, WHILE, dan REPEAT.

Pernyataan FOR merupakan bentuk konstruksi pengulangan tanpa kodisi (unconditional looping), maksudnya instruksi-instruksi yang ada di dalam badan pengulangan diulang sejumlah kali yang ditentukan oleh pemrogram. Jumlah pengulangan sudah diketahui sebelum konstruksi pengulangan eksekusi.

Pernyataan WHILE dan REPEAT merupakan bentuk konstruksi pengulangan dengan kondisi (conditional looping), maksudnya jumlah pengulangan tidak diketahui sebelum eksekusi program. Yang dapat ditentukan hanya kondisi berhenti pengulangan, instruksi-instruksi di dalam pengulangan diulangi sampai kondisi berhenti terpenuhi. 
 REPEAT

REPEAT biasanya digunakan jika jumlah pengulangan belum dapat ditentukan pada saat program ditulis. Algoritma REPEAT :
repeat
       aksi  
until kondisi

Repeat-until adalah struktur pengulangan dimana aksi dilakukan hingga kondisi ( persyaratan ) berhenti terpenuhi. Perulangan Repeat – Until hampir sama dengan While – do, perbedaannya hanyalah letak pengecekan kondisi. Jika pada while – do berada pada awal blok pernyataan yang harus diulang, maka pada repeat – until kondisi dicek pada akhir blok pernyataan yang harus diulang.

Perbedaan lainnya adalah pernyataan while – do mengulang pernyataan selama kondisi masih terpenuhi, tetapi pernyataan repeat – until hanya akan mengulang pernyataan selama kondisi belum terpenuhi.


Contoh: untuk mengetahui nilai dari mahasiswa jika data masukannya adalah NIM
Program Pencarian   
{
Program mencari nilai mahasiswa didalam tabel dengan NIM= a.Tabel sudah berisi data NIM, nama dan nilai}
Algoritmanya:
tinjau entri pertama tabel                   
repeat
if NIM pada entry tabel sama dengan NIM yang dicari then ambil nama dari NIM tersebut
else
tinjau entry berikutnya                    
until nilai yang dicari ditemukan atau akhir tabel sudah terlampaui
Pada repeat-until jumlah pengulangan tidak dapat diketahui di awal. Karena pengulangan aksi akan terus dilakukan sampai ditemukan entry dari apa yang ditanyakan atau akhir tabel sudah terlampaui, berbeda dengan for-do yang jumlah pengulangannya dilaksanakan.

 WHILE
While berarti selagi/ selama dan do berarti lakukan. Jadi, while-do artinya struktur pengulangan dimana selama kondisi ( persyaratan ) pengulangan masih benar, maka aksi dikerjakan.
Algoritma WHILE :
while kondisi do
           aksi
endwhile
Program akan menguji nilai <kondisi>. Jika <kondisi> bernilai false, maka <pernyataan> tidak dilaksanakan dan program menghentikan pengulangan, kemudian menjalankan baris berikutnya. Jika <kondisi> berniai true, maka pernyataan akan dilaksanakan satu kali. Kembali ke prosedur 1. Program menghentikan perulangan dan menjalankan baris berikutnya.
Contohnya saja pada repeat-until tadi selama kita memasukkan NIM tidak benar/ belum ditemukan akhir tabel belum terlampaui, maka dapat dicari NIM pada entry tabel yang sama, jika sudah ditemukan mengambil nilai tersebut, selanjutnya meninjau entry berikutnya didalam tabel.
Contoh:     
Program Pencarian   
{
Program mencari nilai mahasiswa didalam tabel dengan NIM= a.Tabel sudah berisi data NIM, nama dan nilai}
Algoritma
Tinjau entry pertama table                 
While NIM yang dicari belum ditemukan dan akhir tabel belum terlampaui do
If NIM pada entry tabel sama dengan NIM yang dicari then ambil nama, nilai dari NIM tersebut
Else
Tinjau entry berikutnya didalam tabel
· Pada while-do kondisi pengulangan di evakuasi di awal pengulangan, berbeda dengan repeat-until kondisi pengulangan di evakuasi di akhir.



KESIMPULANNYA ..
pernyataan repeat…until dan while…do terletak pada letak pengecekan kondisi. Pada konstruksi REPEAT, kondisi pengulangan diperiksa pada akhir pengulangan. Instruksi di dalam badan pengulangan dilaksanakan dulu, setelah itu pengetesan kondisi dilakukan. Jadi, badan pengulangan dilaksanakan minimal satu kali.

Pada konstruksi WHILE,  kondisi pengulangan diperiksa di awal pengulangan. Instruksi di dalam badan pengulangan hanya dapat dilaksanakan bila pengetesan kondisi menghasilkan nilai true / selama kondisi masih terpenuhi. Jadi, badan pengulangan mungkin tidak akan pernah dilaksanakan bila kondisi pengulangan pertama kali bernilai false.

Penggunaan yang tepat :
·         WHILE : pada kasus yang mengharuskan pemeriksaan kondisi objek terlebih dahulu, sebelum objek tersebut dimanipulasi.

·         REPEAT : pada kasus yang terlebih dahulu memanipulasi objek, baru kemudian memeriksa kondisi objek tersebut