Tuesday, February 2, 2010

Perulangan/Looping dalam Bahasa C

Bahasa kerennya looping. Temen-temen di kampus sering bilang, "Eh, program itu kamu bikin pake looping ga?", "Wah, perkalian matriks tuh programnya harus pake looping dua kali ya?". Menurutku tujuan sebenarnya penggunaan kata "looping" hanya pengen terlihat keren aja, artinya ya perulangan itu. :D

Perulangan atau loop adalah sebuah blok program yang mengerjakan proses/statement yang sama secara berulang-ulang. Loop ini digunakan agar kita tidak perlu susah-susah menulis statement di dalam program hanya untuk mengerjakan fungsi yang sama. Contoh kasus seperti ini, kamu disuruh membuat program yang menampilkan kata "hello" sebanyak lima kali. Source tanpa perulangan akan tampak seperti ini:

#include<stdio.h>

void main(){
printf("hello\n");
printf("hello\n");
printf("hello\n");
printf("hello\n");
printf("hello\n");
}

Hmm, memang bisa saja kita pakai source seperti di atas. Tapi bagaimana jika kita disuruh menampilkan kata hello sebanyak 20 kali? 50 kali? 100 kali? Pasti akan melelahkan bukan? Lagi pula source akan menjadi panjang dan ukuran file semakin membesar. Well, yeah! Inilah gunanya perulangan atau looping itu. Kita tidak perlu menuliskan statement berulang-ulang seperti contoh di atas. Dengan looping, kita hanya perlu menuliskan statement tersebut satu kali saja! Oke, akan aku coba jelaskan macam-macam looping terlebih dahulu.

Perintah perulangan ada tiga macam:
1. for
2. while
3. do while

1. for
Syntax untuk menuliskan perintah for adalah sebagai berikut:
for(inisialisasi nilai; syarat pengulangan; perubahan nilai){
statement-yang-akan-diulang;
}

Untuk kasus di atas tadi, kita bisa menuliskannya seperti ini:
#include<stdio.h>

void main(){
int i;
for(i=0; i<5; i++){
printf("hello\n");
}
}
Nah, coba lihat bedanya dengan source di awal tadi. Lebih praktis seperti ini kan? Jadi kalau kita ingin menampilkan teks hello sebanyak 100 kali, kita hanya mengganti nilai 5 menjadi 100. 2. while Syntax penulisan while sebagai berikut:
while(syarat-pengulangan){
statement-yang-akan-diulang; 
}
Mari kita coba menyelesaikan kasus di atas dengan bentuk perulangan yang kedua. Here the source:
#include<stdio.h>

void main(){
int i=0;
while(i<5){
printf("hello\n");
i++;
}
}
Memang agak berbeda dengan for, perintah while tidak memiliki inisialisasi. Jadi inisialisasi harus dilakukan di awal sebelum melakukan perintah while. 3. do while Syntax penulisannya sebagai berikut:
do{
statement-yang-akan-diulang;
}while(syarat-pengulangan);
Perintah do while ini mirip sekali dengan perintah while. Hanya saja perintah do while akan mengerjakan statement minimal satu kali. Jadi, jika syarat pengulangan tidak terpenuhi, perintah do while akan tetap mengerjakan statement tersebut satu kali. Oke, kasus tadi kita coba memakai perintah do while:
#include<stdio.h>

void main(){
int i=0;
do{
printf("hello\n");
i++;
}while(i<5);
}
Well, itu tadi sekelumit tentang perulangan. Oh ya, ada sedikit catatan neh. Hati-hati dalam penggunaan perintah perulangan ini. Jika kita tidak teliti dalam pengkondisian syarat perulangan, maka akan terjadi perulangan yang tidak ada habisnya (infinite looping). Coba lihat contoh berikut:
for(i=0; i>5; i--){
printf("hello\n");
}
Contoh di atas adalah contoh perulangan tanpa henti. Ini disebabkan nilai i akan selalu dikurangi setiap setelah melakukan statement. Akibatnya nilai i tidak akan mencapai nilai lebih besar dari 5 yang merupakan syarat berhentinya perulangan tersebut.

9 comment(s):

spyc0dz said...

Siiippp dahhh... ;P

Nikka said...

thx info.a...
^,^

Ilham Hasymi Effendi said...

OK, thx ya semuanya udah mampir + komen.. :D

Anonymous said...

Makasih..
Aku minta ya.. di save gpp kan?? hehehe

Ilham Hasymi Effendi said...

iya, gpp.. gratis.. :)

Anonymous said...

hi, nice info. mudah dimengerti penjelasannya.. ^_^
mo tanya ni...
klo misalnya mo nampilin:

55555
4444
333
22
1

bagaimana ya klo menggunakan "for" nya. coba koq ga bs2.. :P
tengkyu ya..

Anonymous said...

well sebenarnya seh bukan gt tp,

/* Membuat tampilan berikut menggunakan Loop
* 5 5 5 5 5
* 4 4 4 4
* 3 3 3
* 2 2
* 1
*/

jadi bila dibahasakan:
di depan baris angka 4, hilang satu angka 4
di depan baris angka 3, hilang dua angka 3
di depan baris angka 2, hilang tiga angka 2
di depan baris angka 1, hilang empat angka 1

bagaimana ya mengerjakan soal di atas menggunakan "for". trims yaa

Anonymous said...

Hy tlong di bantu,,,,
Gmn sich program yg bentuk nya model gini diagonal. :
A
A
A
A
A
A

Mengunakan program C++
Trims,,,

Veru Gege said...

apakah bisa gunakan label pada program fungsi kemudian label tersebut digunakan pada program main atau sebaliknya?

main()
{
ulang:
}

fungsi()
{
goto ulang:
}

Post a Comment

feel free to write your comment here.. :)