3. teknik looping dalam_pemrograman

8

Click here to load reader

description

Bahasa C

Transcript of 3. teknik looping dalam_pemrograman

Page 1: 3. teknik looping dalam_pemrograman

1

BAB V PROSES PENGULANGAN DALAM PEMROGRAMAN

Pertemuan Minggu V dan VI

Alokasi Waktu : 4 Jam Pertemuan

Standar Kompetensi : Mahasiswa dapat membuat program komputer sederhana dengan menggunakan bahasa C

Kompetensi Dasar : Memahami program komputer yang mengandung unsur Pengulangan (looping)

Indikator : Mahasiswa dapat memahami struktur program bahasa C yang mengandung unsur do while, while do, for

: Mahasiswa dapat membuat program dengan melibatkan struktur pengulangan

Proses pengulangan pada suatu program merupakan salah satu kekuatan yang dimiliki ketika kita mengembangan suatu program komputer. Proses pengulangan merupakan suatu proses yang dilakukan oleh komputer secara berulang-ulang hingga kondisi yang diinginkan terpenuhi. Dalam beberapa buku proses pengulangan diistilahkan sebagai proses looping atau kalang. Bahasa C mempunyai tiga struktur untuk melakukan proses pengulangan yaitu struktur while do, do while, dan for.

Sebelum membahas lebih jauh tentang proses looping, terlebih dahulu akan dibahas mengenai operator decrement (--) dan operator increment (++). Operator decrement adalah operator dimana variabel yang dirujuk akan melakukan pengurangan secara otomatis satu angka untuk seitap kali proses looping. Operator increment adalah sebaliknya akan menambah angka satu pada variable yang dirujuk setiap kali proses looping. Pada pemakaiannya operator ini dapat dituliskan dibelakang ataupun di depan sebuah variabel yang dirujuk sebagai contoh

Int i; i ++ , i-- penulisan setelah variabel

++ i , -- I penulisan sebelum variabel

Diagram Alir Struktur Umum Pengulangan (looping)

Gambar 5.1

Periksa Logika?

Pernyataan 1

Ya

Tidak

Tambahkan angka 1 untuk looping

Pernyataan 2

Pernyataan 3

Page 2: 3. teknik looping dalam_pemrograman

2

Penerapan kedua operator diatas akan dibahas lebih lanjut dalam penggunaannya dalam proses pengembagan program dengan melibatkan proses looping.

Tiga struktur ini mempunyai karakteristik masing-masing, untuk struktur for dan while do proses pengulangan mengisyaratkan untuk mengevaluasi kondisi masukan terlebih dahulu kemudian baru menjalankan pernyataan yang sesuai dengan kondisi yang terpenuhi. Berikut adalah struktur umum dari for

1.1. LOOPING DENGAN MENGGUNAKAN STRUKTUR FOR for (batas awal ; batas akhir ; increment/decrement) { }

Batas awal mengisyaratkan bahwa proses pengulangan dimulai pada angka 1, 2,atau 3, batas akhir mengisyaratkan batas atas dari suatu kondisi dimana proses pengulangan harus berhenti. increment/decrement adalah proses untuk melakukan penambahan/pengurangan satu demi satu saat melakukan proses pengulangan. Berikut adalah contoh penggunaan stuktur for dalam pemrograman

Contoh 5.1. #include <stdio.h> #include <conio.h> main() { int digit; for (digit=1; digit<=10; digit++) { printf(“%d”\n,digit); printf(“\nSelesai\n”); } getch(); } Program diatas akan mengeluarkan output program sebagai berikut: 1 2 3 4 5 6 7 8 9 10 Selesai Looping for mengisyaratkan bahwa program akan menampilkan angka di layar monitor dengan dimulai dengan angka 1 melaui perintah digit=1, kemudian digit akan berangsur – angsur meningkat setiap kelipatan 1 melalui perintah digit++, sedangkan perintah digit<= 10 mengisyratkan kapan berakhirnya proses looping, dalam hal ini dinyatakan proses looping berhenti pada angka 10, karena angka yang lebih dari 10 yaitu 11 keatas mempunyai logika yang salah dari pernyataan digit <= 10. Kata Selesai akan di cetak pada layar

Page 3: 3. teknik looping dalam_pemrograman

3

monitor ketika logika program digit < = 10 bernilai salah yang berarti akan keluar dari proses looping. Kemdian program akan berlanjut secara sequence mengerjakan instruksi berikutnya yang dalam hal ini adalah intruksi printf(“\nSelesai\n”), dimana perintah tersebut memerintahkan program untuk menampilkan kata Selesai dilayar monitor. Berikut adalah diagram alir dari contoh program diatas

Contoh 5.2. #include <stdio.h> #include <conio.h> main() { int jumlah, counter, i; jumlah = 0; printf("Masukan angka yang akan anda hitung jumlah deretnya : "); scanf("%d",&counter); for (i=1; i<=counter; i++) jumlah = jumlah + i; printf("Total Jumlah Deret = %d",jumlah); getch(); }

Pada contoh 2 diatas program akan menghitung jumlah deret dari nilai yang dimasukan, semisal nilai yang dimasukan adalah 10 maka program akan melakukan proses penjumlahan yang berulang sebagai berikut; bertama variable jumlah bernilai 0, pada instruksi jumlah = jumlah + I menyatakan proses perhitungan sebagai berikut jumlah = 0 + 1 untuk proses looping yang pertama. Hasil dari perhitungan tersebut di simpan dalam variable jumlah, sehingga variable jumlah yang semula 0 sekarang bernilai 1. Program berlanjut untuk looping yang kedua, instruksi jumlah = jumlah + I sekarang menyatakan proses perhitungan jumlah = 1 + 2, varibel jumlah dari proses looping yang bertama mengakibatkan variable tersebut menyimpan angka 1 dan i pada proses looping yang kedua bernilai 2. Proses looping yang kedua akan disimpan dalam variable jumlah sehingga yang tadinya bernilai 1 pada proses looping yang kedua

Diagram Alir Struktur Program Penulisan Angka 1 – 10 (looping)

Gambar 5.2

Digit <= 10

digit = 1

Ya

Tidak

Tambahkan angka 1 ke variable digit untuk looping

printf(“%d”\n,digit);

printf(“\nSelesai\n”);

Page 4: 3. teknik looping dalam_pemrograman

4

akan bernilai 3. Demikian proses looping terus berlanjut hingga kondisi i <= 10 terpenuhi sebagai akhir dari looping.

1.2. LOOPING DENGAN MENGGUNAKAN STRUKTUR WHILE– DO Pernyataan while do pada C umumnya di ekspresikan dalam bentuk umum sebagai berikut :

while (ekspresi)

pernyataan ;

ekpresi yang dikandung di dalam tanda kurung akan di uji seperti halnya ekpresi pada struktur pemrograman if – else. Jika ekepresi tersebut bernilai benar maka pernyataan di bawah struktur while akan dijalankan, jika sebaliknya maka pernyataan tersebut tidak akan pernah dijalankan. Berikut adalah proses yang dijalankan oleh computer ketika untuk menguji while do statement. Uji ekspresi yang diberikan Jika ekspresi bernilai benar / true /1 maka a. Jalankan pernyataan b. kembali ke langkah 1 untuk kembali menguji eksprsi setelah menjalankan pernyataan else (jika ekspresi yang diuji bernilai salah / false / 0 maka keluar dari proses looping while do statement

Diagram alir struktur while do adalah sebagi berikut:

Diagram Alir untuk teknik looping dengan menggunakan struktur while – do sama dengan pola yang digunakan pada teknik looping dengan struktur for. Kedua pola looping ini akan menguji kondisi pengulangan terlebih dahulu sebelum mengekeskusi pernyataan yang terdapat dalam looping, lainnya halnya denga teknik looping dengan struktur do – while.

Contoh 5.3. #include <stdio.h> #include <conio.h> main() {

Periksa Logika?

Pernyataan 1

Ya

Tidak

Tambahkan angka 1 untuk looping

Pernyataan 2

Pernyataan 3

Diagram Alir Struktur looping while – do

Gambar 5.3

Page 5: 3. teknik looping dalam_pemrograman

5

int jumlah, counter, i; jumlah = 0; i = 1; printf("Masukan angka yang akan anda hitung jumlah deretnya : "); scanf("%d",&counter); while (i <= counter) { jumlah = jumlah + i; i++; } printf("Total Jumlah Deret = %d",jumlah); getch(); } Pada program contoh 5.3 program terlebih dahulu akan menginisialiasi variable jumlah = 0, dan i = 1, program akan menampilkan perintah pada layar monitor kepada pengguna untuk memasukan angka yang akan dihitung jumlah deretnya, angka yang dimasukan oleh pengguna akan ditangkap oleh variable counter. Pada instruksi selanjutnya program akan menguji dengan struktur pengulangan while do. Pernyataan while (i <= counter) mengisyaratkan pengecekan apakah I yang bernilai 1 yang diketahui pada saat inisialisasi awal akan dibandingkan dengan nilai yang tertera pada variable counter. Sebagai contoh pengguna memasukan angka 10, melalui pernyataan while akan diuji apakah 1 <= 10. Ketika logika dalam pernyataan tersebut bernilai benar maka instruksi jumlah = jumlah + i akan dijalankan, dari insruksi ini akan didapatkan hasil penjumlahan dari deret angka 1 sampai 10. Instruksi i++ mengisyaratkan varibel i melakukan proses increment dengan menambahkan nilai 1 setiap loopingnya. Sebagai contoh pada proses looping ke dua i akan bernilai 2, nilai ini kemudian akan dimasukan dalam pernyataan while (i <= counter) yang selanjutnya akan diuji apakah 2 <= 10, logika pernyataan tersebut masih bernilai benar maka program akan menjalankan instruksi dibawahnya. Instruksi i++ akan menyebabkan i bertambah dari 2 menjadi 3, nilai 3 tersebut kemudian diperiksa lagi dalam pernyataan while (i <= counter), demikian seterusnya hingga logika while (i <= counter) bernilai salah, sebagai contoh 11 <= 10. Ketika logika pernyataan bernilai salah maka proses loopig akan berakhir dan program akan mengeksekusi instruksi printf("Total Jumlah Deret = %d",jumlah).

1.3. LOOPING DENGAN MENGGUNAKAN STRUKTUR DO-WHILE Teknik pemrograman yang dijelaskan diatas yaitu while do dan for, keduanya akan memeriksa suatu kondisi pengulangan di awal program,

for (ekspresi) while (ekspresi) ….. ….. …… …… …….. …….. Sedangkan struktur do while akan memeriksa kondisi pengulangan pada akhir program,

do ………. ………. ………. While (ekspresi)

Struktur ini akan memungkinkan program untuk di jalankan minimal sekali sebelum pernyataan dari program tersebut di periksa oleh kondisi while, jika kondisi yang diperiksa bernilai benar maka pernyataan diatas while akan di jalankan kembali hingga kondisi salah tercapai. Diagram alir struktur do while adalah sebagi berikut:

Pernyataan 1

Tambahkan angka 1 untuk looping

Pernyataan 2

Page 6: 3. teknik looping dalam_pemrograman

6

Contoh 5.4 #include <stdio.h> #include <conio.h> main() { int counter, jumlah, i; jumlah = 0; i = 1; printf("Masukan angka: "); scanf("%d",&counter); do { jumlah = jumlah + i; printf("\n%d",jumlah); i++; } while (i <= counter); getch(); } Contoh 5.5 #include <stdio.h> #include <conio.h> main() { int counter,i; i = 1; printf("Masukan Angka : "); scanf("%d",&counter); while(i <= counter) { printf("\nBelajar Pemrograman"); i++;

Diagram Alir Struktur looping do – while

Gambar 5.4

Page 7: 3. teknik looping dalam_pemrograman

7

} getch(); } Contoh 5.6 #include <stdio.h> #include <conio.h> main() { int counter,i; i = 1; printf("Masukan Angka : "); scanf("%d",&counter); do { printf("\nBelajar Pemrograman"); i++; } while(i <= counter); getch(); } Program contoh 5.5. dan 5.6 memperlihatkan perbedaan penggunaan teknik pengulangan while do dan do while. Dua program tersebut akan mengeluarkan hasil yang sama ketika kita memasukan angka lebih dari 0, akan tetapi ketika kita berikan angka 0 baru terlihat perbedaan yang mencolok tentang penggunaan kedua teknik looping tersebut.

Pengayaan Latihan 5.1 #include <stdio.h> #include <conio.h> main() { int n, count = 1; float x, average, sum = 0; printf("Berapa Angka yang Akan di hitung? " ) ; scanf ("%d", &n) ; while (count <= n) { printf (" x = "); scanf("%f", &x); sum += x; ++count; } average = sum/n; printf("\nRata-ratanya adalah %f\n", average);

Page 8: 3. teknik looping dalam_pemrograman

8

getch(); } Latihan 5.2 #include <stdio.h> #include <conio.h> main() { int n, count, loops, loopcount; float x, average, sum; /* read i n the number of l i s t s */ printf ("How many lists ? " ); scanf ("%d", &loops); /* outer loop (process each l i s t of numbers */ for (loopcount = 1; loopcount <= loops; ++loopcount) { /* initialize and read in a value for n */ sum = 0; printf ( " \n List number %d\nHow many numbers? ", loopcount); scanf ("%d", &n) ; /* read i n the numbers */ for (count = 1; count <= n; ++count) { printf ( " x = " ); scanf ( "%f", &x); sum += x; } /* end inner loop */ /* calculate the average and display the answer */ average = sum/n; printf ("\nThe average i s %f\n", average) ; } /* end outer loop */ getch(); }