Berlangganan

About Me


PERULANGAN

PERULANGAN

8

Tujuan Instruksi Umum (TIU):

Mampu mengetahui dan menggunakan statemen perulangan yang dapat digunakan untuk membantu dalam memecahkan masalah.

Tujuan Instruksi Khusus (TIK):

• Mengetahui statemen-statemen perulangan.

• Dapat memilih statemen perulangan yang tepat untuk membantu memecahkan masalah.

Pembahasan Materi:

• Statemen for

• Statemen Nested for • Statemen while

• Statemen do while

Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Proses yang berulang adalah suatu urut-urutan pernyataan yang akan dieksekusi terus menerus selama kondisi yang disyaratkan terpenuhi. Pengulangan proses merupakan suatu kemampuan yang dimiliki oleh semua compiler bahasa pemrograman. Terdapat banyak jenis pengulangan proses, tetapi paling tidak akan dibahas dua buah bentuk jenis pengulangan :

1. FOR. Pengulangan dengan besarnya nilai integer sebagai kondisi (biasanya berbentuk for) 2. WHILE. Pengulangan dengan kondisi pernyataan boolean (biasanya berbentuk while)

Gambaran Flowchart dari perulangan adalah sebagai berikut :

Kondisi = nilai awal

Perulangan akan berhenti saat nilai akhir terpenuhi

False

Kondisi = Nilai Akhir

True

Pernyataan……;

Pernyataan……;

Blok Perulangan (dapat berisi banyak statemen)

Kondisi di increment

67

-----------------------------------------------------Page 1-----------------------------------------------------

8.1 Pernyataan for

Pernyataan dengan for biasanya digunakan untuk pernyataan yang sudah ditentukan jumlah

pengulangannya.

Pernyataan for dengan kondisi numerik yang menaik ( increment ). Pada looping yang berbentuk seperti ini terdapat pernyataan increment atau penambahan yang berbentuk sebagai berikut : Kondisi = Kondisi + n, dimana n adalah bilangan yang bernilai positif, sebagai contoh pernyataan berikut: j = j + 1; atau j++;

Bentuk umum pernyataan for dalam bahasa C adalah sebagai berikut:

for (inisialisasi nilai_awal; kondisiPembatas_perulangan; increment / decrement ) {

instruksi-instruksi;

}

Contoh dari pernyataan for dalam bahasa C diperlihatkan pada program 8.1 :

Listing Program 8.1 Contoh bentuk for

#include <stdio.h>

void main(void) {

for(int j = 1; j <= 4; j= j+1) {

printf("%d\n",j); }

1

2

3

4

}

Perhatikanlah didalam pengulangan dengan for , pernyataan yang berada didalam loop akan dieksekusi sampai kondisi loop tersebut tidak terpenuhi.

Catatan:

• •

Nilai untuk perulangan dalam for tidak dibenarkan bertipe float.

Di akhir penulisan statemen for tidak menggunakan tanda titik koma (;)

contoh: for (int j = 1 ; j < = 4 ; j = j+1);
 tidak dibenarkan



Penggunaan tanda titik koma setelah statemen for tidak menimbulkan pesan kesalahan tetapi akan

menghasilkan keluaran yang tidak sesuai karena statemen for tersebut tidak dianggap pernyataan perulangan, hanya akan dinyatakan sebagai pernyataan biasa (perhatikan listing program 8.2 dan bandingkan dengan listing program 8.1)

Listing Program 8.2 Contoh for dengan titik koma

#include <stdio.h>

void main(void) {

Menggunakan tanda titik koma

Hasil yang di dapat adalah 5, karena

}

for(int j = 1; j <= 4; j= j+1); {

printf("%d\n",j); }

5

hanya nilai j akhir yaitu 5 yang tercetak, sedang saat j bernilai 1 hingga 4 tidak tercetak.

68

-----------------------------------------------------Page 2-----------------------------------------------------

8.2 Pernyataan for bersarang

Pernyataan for dapat dituliskan di dalam pernyataan for lagi. Hal semacam ini sering disebut dengan

pernyataan for bersarang ( nested for ).

Bentuk umum pernyataan nested for dalam bahasa C adalah sebagai berikut:

for (inisialisasi_1; kondisi_1; increment / decrement _1) {

for (inisialisasi_2; kondisi_2; increment / decrement _2)

{

Blok for ke-2 (blok di dalam

}

instruksi-instruksi;

for ke-1)

Blok for ke-1

(blok di luar )

instruksi-instruksi;

}

Contoh dari pernyataan for bersarang dalam bahasa C diperlihatkan pada program 8.3 :

Listing Program 8.3 Contoh for-bersarang

void main(void) {

int x,y;

for(x=1; x<=3;x++)

{
 for(y=1; y<=2; y++)

{
 printf("%d %d ",x, y);
 /* perintah ini dilakukan selama kondisi

y masih terpenuhi */

}

}

}

printf("\n");

11 12 21 22

31 32

Kalang/looping for yang luar (dengan pencacah variable x ) akan menjalankan kalang yang dalam (dengan

pencacah y ) sebanyak 3 kali. Dan pada setiap pengulangan di layar akan dituliskan nilai x dan y .

Pada saat x bernilai 1, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis 1 1 dan 1 2. demikian juga pada saat x bernilai 2, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis 2 1 dan 2 2. hal yang sama terjadi pada saat x bernilai 3.

8.3 Pernyataan while

Pernyataan pengulangan ini biasanya digunakan bila belum diketahui pasti berapa banyak akan dilakukan pengulangan pernyataan-pernyatan. Berakhirnya pengulangan ini ditentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi maka pengulangan akan berakhir. Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan.

69

-----------------------------------------------------Page 3-----------------------------------------------------

Bentuk umum pernyataan while dalam bahasa C adalah sebagai berikut:

while (kondisi)

{

instruksi;

}

kondisi sendiri merupakan suatu ekspresi boolean, artinya hanya dapat bernilai benar (true) atau salah (false).

Contoh dari pernyataan while dalam bahasa C diperlihatkan pada program 8.4 :

Listing Program 8.4 Contoh while

#include <stdio.h>

void main(void) {

int j; j = 1;

while (j < 10) /* Perulangan akan dilakukan selama kondisi terpenuhi */ {

printf("%d ",j);

j = j + 1; /* Menaikkan nilai j agar perulangan dapat berakhir */

} }

1
 2
 3
 4
 5
 6
 7
 8
 9

Perhatikan listing 8.4, jika dilihat hasil yang didapat dari program tersebut dapat dilihat program menampilkan nilai j dari j bernilai awal 1 hingga saat j bernilai 9. Jika dilihat kondisi yang membatasi adalah (j < 10) sehingga saat j sudah bernilai 10, perulangan selesai dan program keluar dari blok while .

8.4 Penyataan do-while

Pernyataan pengulangan do-while hampir sama dengan pernyataan pengulangan while , dan biasanya

digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis.

Struktur do-while digunakan untuk melaksanakan ( do ) statemen atau blok statemen selama ( while ) kondisi

yang diseleksi pada while tidak terpenuhi. Sintaks dari struktur ini adalah :

Bentuk umum pernyataan do-while dalam bahasa C adalah sebagai berikut:

do {

instruksi;

}

while (kondisi);

70

-----------------------------------------------------Page 4-----------------------------------------------------

Catatan:





Perbedaan pernyataan do-while dan while terletak pada pengecekan kondisi. Jika pada pernyataan while , kondisi dicek pada awal blok, pada pernyataan do-while , kondisi dicek pada akhir blok.

struktur do-while paling tidak akan mengerjakan satu kali instruksi meskipun kondisi tidak terpenuhi karena pengecekan kondisi dilakukan di akhir blok.

Contoh dari pernyataan do-while dalam bahasa C diperlihatkan pada program 8.5 dan 8.6:

Listing Program 8.5 Contoh do-while1

#include <stdio.h>

void main(void) {

int j; j = 1;

do {

}

printf("%d ",j); j = j + 1;

// akan dikerjakan statemen-statemen di bawah ini

while(j < 10);

/* Pengecekan kondisi, jika masih terpenuhi maka perulangan akan

dilanjutkan, jika tidak keluar dari blok perulangan */

}

1
 2
 3
 4
 5
 6
 7
 8
 9

Hasil yang didapat dari listing program 8.4 dan 8.5 tidak berbeda, meskipun menggunakan jenis perulangan yang berbeda, lalu pada saat kapan kita harus memilih statemen do-while? Untuk menjawab pertanyaan tersebut lihatlah listing program 8.6 di bawah ini.

Listing Program 8.6 Contoh do-while2

#include <stdio.h>

void main(void) {

int j; j = 1;

do {

1

printf("%d ",j); j = j + 1;

} while(j > 10);

}

Perhatikan listing 8.6, jika dilihat hasil yang didapat dari program tersebut dapat dilihat program hanya menampilkan nilai j awal yaitu 1. Jika dilihat kondisi yang membatasi adalah (j > 10) sehingga saat dilakukan pengecekan ternyata nilai j tidak memenuhi kondisi, perulangan selesai dan program keluar dari blok while , tetapi meskipun kondisi tidak terpenuhi pencetakan nilai j telah dikerjakan.

Jadi kita dapat menggunakan statemen do-while jika kita menginginkan proses perulangan dilakukan minimal

satu kali.

71

-----------------------------------------------------Page 5-----------------------------------------------------

8.5 Penyataan break dan continue

Pernyataan break akan menyebabkan proses keluar dari statemen berikut ini: for , while , do-while ,

switch .

Pernyataan continue menyebabkan proses mengabaikan instruksi selanjutnya dan melanjutkan proses

iterasi berikutnya pada statemen for , while , do-while .

Contoh dari penggunaan break dalam statemen for diperlihatkan pada program 8.7 :

Listing Program 8.7 Penggunaan break dalam for .

#include <stdio.h>

void main(void) {

for(int v = 1; v <= 10; v++) { if(v==5)

break;

Perintah ini akan menyebabkan proses menghentikan perulangan pada saat v bernilai sama dengan 5. Sehingga

program hanya mencetak nilai 1 hingga

}

}

printf("%d ", v);

4.

1
 2
 3
 4

Contoh dari penggunaan continue dalam statemen for diperlihatkan pada program 8.8 :

Listing Program 8.7 Penggunaan break dalam for .

#include <stdio.h>

void main(void) {

for(int v=1; v <= 10; v++) {

if(v == 5)

continue;

printf("%d ", v);

}

Perintah ini akan menyebabkan proses melewati proses perulangan pada saat v bernilai sama dengan 5, tetapi kemudian proses melanjutkan ke iterasi berikutnya. Sehingga program hanya mencetak nilai 1 hinga 4 dan nilai 6 hingga 10.

}

1
 2
 3
 4
 6
 7
 8
 9
 10

72

-----------------------------------------------------Page 6-----------------------------------------------------

Latihan:

1. Carilah kesalahan dari kode program di bawah ini dan jelaskan bagaimana memperbaiki kesalahan tersebut!

a) int x = 1;

while (x <= 10);

x++;

}

b) for (y = .1; y != 1.0; y+=.1)

printf(”%f\n”, y);

c) switch(n) {

case 1: printf(”Angkanya adalah 1\n”);

case 2: printf(”Angkanya adalah 2\n”);

break;

case 3: printf(”Angkanya adalah 3\n”);

break;

}

d) kode program dibawah ini harus mencetak nilai 1 hingga 10.

N = 1;

while (N < 10)

printf(”%d ”, n++);

2. Bandingkan kedua program dibawah ini apakah menghasilkan keluaran yang sama? Jelaskan alasannya!

void main(void) {

int j,k;

for(j=5; j>0; j--){ printf("j= %d ",j);

for(k=1; k<=5; k++) printf("k= %d ",k);

printf("\n");}

}

void main(void) {

int j,k;

for(j=5; j>0; j--) printf("j= %d ",j);

for(k=1; k<=5; k++) printf("k= %d ",k);

printf("\n");

}

Tugas Mandiri:

1. Buatlah program untuk membentuk segitiga samakaki dari karakter yang dimasukkan oleh pengguna. Tampilan

yang diharapkan dari program tersebut adalah sebagai berikut:

Masukkan karakter : #

Masukkan tinggi segitiga : 5

#

# #

# # #

# # # #

# # # # #

73

-----------------------------------------------------Page 7-----------------------------------------------------

2. Buatlah program untuk mencetak tabel perkalian, dimana batas perkalian dimasukkan oleh pengguna.

Tampilan program yang diharapkan adlah sebagai berikut:

Program Tabel Perkalian Masukkan batas tabel: 5

1 2 3 4 5
 2 4 6 8

10

3 4 5 6 8 10 9 12 15 12 16 20 15 20 25

3. Buatlah program untuk mencetak deret bilangan genap, banyaknya bilangan dalam deret dan jumlah deret bilangan genap tersebut. Batas deret ditentukan oleh pengguna dari masukan keyboard. Tampilan yang diharapkan adalah sebagai berikut:

Program Tabel Deret Bilangan Genap Masukkan batas deret: 20

2
 4
 6
 8
 10
 12
 14
 16
 18
 20

Banyaknya bilangan genap : 10

Jumlah total bilangan : 110

==============

Referensi:

Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997

Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001

Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993

Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004

☺☺☺

74

-----------------------------------------------------Page 8-----------------------------------------------------

0 Response to "PERULANGAN"

Post a Comment