Seri Belajar Pemrograman #5

Halo xD

Aduh, udah lama nih nggak update Seri Belajar Pemrograman, pasti teman-teman udah lama menantikan update seri ini ya? Akhir-akhir ini memang saya sibuk banget jadi jarang ngenet, ditambah internet di kosan ngadat T^T #curhat

 

Ok, stop! Mari kita kembali ke laptop, eh kembali ke topik.

Kemarin sampe mana ya? Ada yang inget?? Oh iya, tentang penyeleksian kondisi. Jika ingat maka tidak lupa, hehehe

Sekarang kita akan bahas tentang perulangan. Namanya juga perulangan maka kita akan melakukan suatu aksi berulang-ulang. Ibaratnya sebuah rutinitas, sebuah aksi akan dikerjakan berturut-turut sampai batas waktu tertentu/ kondisi tertentu.

Contohnya: Kalau kita disuruh mengupas sekantong penuh kentang (masak nih ceritanya) maka sebenarnya kita melakukan proses mengupas kentang secara berulang-ulang kan? Pertama kita pasti akan ambil kentang terus kita kupas. Kemudian kita ambil lagi kentang lalu dikupas. Kita mengupas kentang terus-terusan sampai kentang dalam kantong sudah tidak ada lagi (habis).

Dari kasus di atas sebenarnya kita bisa sederhanakan seperti ini, kita mengupas kentang satu persatu sampai kentang dalam kantong habis atau kantong kentang kosong. Nah, coba perhatikan. Proses pengupasan kentang ditentukan oleh keadaan habis tidaknya kentang dalam kantong. Keadaan ini disebut sebagai keadaan pembatas. Jika keadaan pembatas ini dipenuhi maka kita tidak perlu melakukan perulangan lagi (soalnya udah gak ada yang dilakukan).

Sama dengan konsep di atas, perulangan di bahasa pemrograman adalah melakukan aksi yang diulang-ulang pengerjaannya sampai keadaan tertentu dipenuhi (keadaan batas).

Contoh lain adalah ketika kita menghitung. Misal kita disuruh menghitung angka dari 1 sampai 10 maka kita akan menghitung angka-angka seperti 1,2,3,..9,10. Proses menghitung itu akan berhenti jika perhitungan kita sudah mencapai nilai 10. Untuk mencapai nilai 10 atau angka 10 itu kita akan terus menghitung yaitu angka sebelumnya ditambah dengan 1. Inilah yang disebut dengan proses.

Secara umum, di pemrograman dikenal 3 bentuk umum perulangan. Mungkin implementasinya akan berbeda di beberapa bahasa pemrograman tapi sistemnya tetaplah sama. OK, langsung saja kita bahas satu persatu šŸ˜€

Bentuk pertama adalah perulangan yang sudah ditentukan secara pasti jumlah perulangannya. Contohnya pada menghitung angka dari 1 sampai 10. Kita sudah tahu dengan pasti bahwa kita akan melakukan 10 buah perulangan dengan setiap perulangan melakukan aksi menghitung pertambahan angka dengan 1 (alias 1,2,3,4,5 dst sampai 10).

Prinsipnya adalah kita menyediakan sebuah variabel sebagai counter / pencacah. Ibaratnya kayak orang yang menghitung tadi. Setiap kali dia menghitung dia akan melakukan sesuatu. Nilai di counter akan dirubah secara teratur dengan jumlah tertentu. Misal dalam kasus menghitung tadi, setiap kita menghitung kita selalu menambahkan angka sebelumnya dengan 1. Jika di bahasa pemrograman kita akan dapatkan seperti ini (notasi algoritma)

untuk a = 0 sampai 10 lakukan sesuatu

Maksudnya adalah kita menggunakan variabel a sebagai pencacah / counter. Variabel a tersebut kita isikan pertama kali dengan nilai 0 dan kemudian kita mulai menghitung. Hitungan kita akan berakhir jika hitungan kita mencapai nilai 9. Dan di setiap hitungan itu kita melakukan sesuatu. Kalau telusuri, maka sebenarnya kita menghitung dari 0,1,2,3,4,5,6,7,8,9,10. Lho, ada 11? Iya… Kan kita menghitung dari 0 sampai 10 maka akan ada 11 kali perulangan. Karena itu sebaiknya teman-teman berhati-hati dalam menentukan batas perulangan.

 

Selain perulangan dengan jumlah perulangan yang sudah dipastikan berapa kali seringkali kita akan menjumpai permasalahan yang tidak dapat ditentukan secara pasti berapa kali perulangan itu terjadi. Tapi yang pasti kita mengetahui batas perulangan itu. Contohnya pada kasus mengupas kentang. Kita hanya diberikan sebuah kantong berisi kentang dan disuruh mengupas kentang. Kita tidak tahu berapa banyak jumlah kentang di sana. 10? 100? Tidak dapat dipastikan. Tapi kita hanya tahu bahwa kita akan mengupas kentang tersebut selama kentang masih ada atau sampai jumlah kentang itu habis. Nah kita dapat menyebut perulangan ini sebagai perulangan bersyarat / perulangan dengan kondisi tertentu.

Karena kita melakukan perulangan menurut kondisi tertentu, so pasti kita harus memantau kondisi itu kan? Nah ada dua macam perulangan berdasarkan pemeriksaan kondisi itu, yaitu memeriksa di awal dan memeriksa di akhir. Beda nggak hasilnya?

Untuk perulangan yang pemeriksaannya dilakukan di awal, jika kondisi untuk melakukan perulangan terpenuhi maka perulangan terjadi. Contohnya pada kasus mengupas kentang tadi.

selama masih ada kentang lakukan mengupas kentang

Jika sudah tidak ada kentang maka bagaimana bisa melakukan pengupasan kentang? karena itu jika kondisi yang menjadi batas tidak dipenuhi di awal-awal maka perulangan tidak akan pernah terjadi.

Model kedua adalah pengecekan yang dilakukan di akhir. Karena pengecekan di akhir maka otomatis perulangan akan terjadi minimal sekali. Model ini dituliskan sebagai berikut (mengacu pada kasus kupas kentang)

lakukan kupas kentang sampai kantong kentang kosong

Di sini terlihat bahwa kondisi yang menjadi kondisi batas adalah kantong kentang kosong (panjang amat ya).

Bagaimana implementasi dalam bahasa pascal dan C?

Untuk perulangan tentu:

Pada Pascal sintaksnya hampir sama yaitu:

for i := nilai-1 to nilai-2 do aksi;

Sedangkan pada C sintaksnya sedikit berbeda yaitu:

for( i = nilai-1; i <= nilai-2; i++) { aksi; }

Maksudnya hampir sama. Jika dilihat dalam tanda kurung itu terdapat 3 buah statement. Statement pertama (i = nilai-1) adalah bagian inisialisasi variabel pencacah. Sedangkan statement kedua (i <= nilai) adalah kondisi perulangan itu terjadi. Sedangkan statement ketiga (i++) adalah besar bilangan yang ditambahkan ke bilangan pencacah untuk tiap perulangan.

 

Untuk perulangan tak tentu dengan pemeriksaan kondisi di awal relatif sama yaitu:

Untuk Pascal

while kondisi do aksi;

sedangkan untuk C

while(kondisi) { aksi }

Keduanya akan mengeksekusi aksi selama kondisi terpenuhi.

 

Perbedaan terjadi dalam implementasi perulangan tak tentu dengan pemeriksaan kondisi di akhir. Pada pascal:

repeat aksi until kondisi;

Sedangkan pada C

do { aksi; } while(kondisi);

Pada pascal, kondisi yang dimaksud adalah kondisi berhenti (penghentian perulangan). Jadi perulangan akan terus terjadi sampai kondisi berhenti ditemui / kondisi berhenti terjadi. Sedangkan pada C, kondisi yang dimaksud adalah kondisi terjadinya perulangan. Dengan kata lain perulangan akan terus dilakukan jika kondisi perulangan terjadi. Misalnya pada kasus mengupas kentang (lagi), pada pascal kalimatnya menjadi demikian:

repeat kupas kentang until kantong kentang kosong

atau kalo bahasa Indonesianya

ulangi kupas kentang sampai kantong kentang kosong

Sedangkan bila di bahasa C, kalimat tersebut akan berubah namun tetap memiliki makna sama yaitu

do kupas kentang while kentang masih tersisa

atau jika diartikan

lakukan kupas kentang selama kentang masih tersisa

 

Jadi, itu cuman perbedaan sudut pandang aja šŸ˜€

3 Comments

  1. padhil

    perulangan yg terjadi kan hanya untuk proses penghitungan . .

    sedangkan untuk pengunaan program yg berulang lebih dari satu klai gmn gan. .?? mohon pencerahannya..
    please send email gua ya gan..
    makasih sebelumny….

  2. penggunaan program berulang maksudnya kayak gimana?
    maksudnya dia akan eksekusi program utama secara berulang-ulang gitu?

    coba ini, aq tulis pake C++ ya

    #include
    using namespace std;

    int main() {
    char yesno=’n’;

    do {
    cout<>yesno;
    } while(yesno != ‘Y’ || yesno != ‘y’);

    }

    Dia akan mengulangi perintah utama, di mana bagian itu adalah bagian menu atau semacamnya.

Trackbacks

  1. Perulangan For Positif dan Negatif pada Pascal dan CC++ « Another Satria's Project

Leave a comment