Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
Bab. 4 Percabangan Bersyarat 4.1 Tujuan Instruksional Khusus 1.
Mahasiswa dapat membuat program menggunakan percabangan menggunakan if .. else.
2.
Mahasiswa dapat membuat program menggunakan percabangan bertingkat menggunakan if .. e lse if.
3.
Mahasiswa dapat membuat program menggunakan percabangan menggunakan switch .. case.
4.2 Pendahuluan Percabangan bersyarat memungkinkan pemrogram
untuk memilih suatu alternatif dari
beberapa alternatif yang disediaka n be rdasarka n ko ndisi yang sesuai.
4.2.1 Ope rator Relasi Operator relasi digunakan untuk membandingkan nilai dua ekspresi aritmatika yang berbeda. Kedua nilai ekspresi yang dibandingkan tersebut dapat sama, lebih besar, atau lebih kecil atau tidak sama dan sebagainya. Tabel 4.1. Operator Relasi OPERATOR RELASI < >
ARTI
== <=
Sama de ngan Lebih kecil atau sama dengan
>=
Lebih besar atau dengan Tidak sama dengan
!=
Lebih kecil Lebih besar
sama
Kesalahan yang sering terjadi dalam menggunakan operator relasi ini adalah penggunaan tanda sama dengan (==). Sering pemrogram menggunakan notasi ‘=’ untuk menunjukkan relasi sama dengan (==). Hal ini dapat dimaklumi karena dalam bahasa pemrograman yang lain tanda relasi sama dengan yang banyak digunakan ada lah ‘=’. C ontoh da ri ekspresi sama: Ekspresi pertama : x + 5 Hal. 54
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
Ekspresi kedua :
y + 10
Pernyataan yang benar adalah : x+5==y+10 Bila pernyataan tersebut dituliskan x+5=y+10 Akan muncul pesan kesalahan Lvalue required in function… /* Contoh Program BENAR dan SALAH */ main() { int hasil1,hasil2; clrscr(); /* Contoh ekspresi relasional yang salah */ hasil1=(18<4); /* Contoh ekspresi relasional yang benar */ hasil2=(18>4); /* Cetak nilai numerik BENAR dan SALAH */ printf("\nEkspresi relasional yang salah = %d",hasil1); printf("\nEkspresi relasional yang benar = %d",hasil2); getche(); } Keluaran program adalah: Ekspresi relasional yang salah = 0 Ekspresi relasional yang benar = 1 4.2.2 Ope rator Lojik Operator lojik umumnya digunakan untuk membandingkan dua ekspresi relasional atau lebih dalam suatu ekspresi logik. Operator Logik yang dikenal oleh Turbo C diberikan dalam Tabel 4.2 Tabel4.2 Operator Lojik OPERATOR LOGIK && || !
ARTI Lojik AND Logik OR Lojik NOT
Suatu ekspresi lojik yang terdiri dari dua ekspresi realsional atau lebih yang dihubungkan oled DAN (logical AND) akan dianggap BENAR bila semua ekspresi relasional tadi BENAR. Tinjau dari tiga ekspresi relasional berikut ini merupaka n contoh da ri ekspresi lojik: 1. X+5<10 2. Y>x+3 Hal. 55
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
3. Z-2>3 Bila ketiga ekspresi relasional ini digabungkan dengan && (x+5<10 && y>x+3 && z-2>3) Jika nilai- nilai x=1, y=5, z=10, maka ekspresi-ekspresi relasional tersebut akan memiliki nilai: X+5<10 → BENAR Y>x+3 → BENAR → BENAR
Z-2>3
Berhubung ketiga ekspresi relasional BENAR, maka: (x+5<10 && y>x+3 && z-2>3) → juga BENAR Untuk nilai x,y,, dan z yang brbeda, misalkan x=2, y=2, dan z=10, maka: X+5<10 → BENAR Y>x+3 → SALAH → BENAR
Z-2>3
Karena di sini ada ekpresi relasional yang SALAH, maka : (x+5<10 && y>x+3 && z-2>3) → SALAH Dua atau lebih ekspresi realsional yagn dihubungkan oleh loj ik OR akan BENAR, bila minimum salah satu ekspresi relasional tersebut Benar. Bila semua relasi memiliki nilai SALAH, abru pernyataan tersebut akan Salah. Dari contoh tersebut, penggabungan beberapa ekpresi relasional dalam suatu ekspresi lojik dengan menggunakan && dan ||, akan mengikuti aturan seperti yang ditunjukkan dalam Tabel.4.3. Tabel 4.3 Operator lojik OPERATOR LOGIK &&
||
!
EKSPRESI LOGIK
HASIL
(benar) && (benar) (benar) && (salah) (salah) && (benar) (salah) && (salah) (benar) || (benar) (benar) || (salah) (salah) || (benar) (salah) || (salah ! (be nar) ! (salah)
BENAR SALAH SALAH SALAH BENAR BENAR BENAR SALAH SALAH BENAR
Hal. 56
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
Bila && dan || digunakan secara bersama-sama da lam suatu pernyataan untuk menggabungkan beberapa relasi, maka && akan dipriotaskan lebih dahulu, baru kemudian menyusul ||. . 4.2.3 Pernyataan if Pernyataan if membagi suatu alur proses menjadi dua cabang, berdasarkan persyaratan yang diberikan. Cabang yang pertama dijalankan bila persyaratan dipenuhi, sedangkan cabang yang kedua akan dipilih bila persyaratan tidak dipenuhi. Dalam bentuk diagram alir, proses percabangan if dapat digambarkan sebagai berikut (lihat gambar 4.1.)
Ya
Tidak IF
PERINTAH PERINTAH
Gambar 4.1. Digram Alir Percabangan if Diagram alir yang diberikan dalam gambar 4.1. menggambarkan proses percabangan if yang paling sederhana, yaitu bila cabang yang kedua (persyaratan tidak dipenuhi) tidak memiliki perintah. Dengan kata lain, sekumpulan perintah akan dijalankan bila syarat dipenuhi, sedangkan bila syarat tidak dipenuhi, sekumpulan perintah tadi akan dilewati atau diabaikan, proses akan langsung dialnjutkan pada perintah-perintah berikutnya. Struktur if dapat dituliskan dalam dua bentuk penulisan. Pertama, pada if hanya mengandung sebuah perintah atau pernyataan dengan format perintah seperti berikut: if(syarat) ……perintah; Hal. 57
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
Terlihat bahwa baris if tidak diakhiri oleh ‘;’, notasi ‘;’ baru diberikan pada akhir perintah baris di bawah if. Bentuk penulisan kedua digunakan bila perintah yang terdapapat di dalam if merupakan sekumpulan perintah. if(syarat) { ……perintah; ……perintah; ……perintah; } Pada setiap baris perintah diakhiri oleh ‘;’. Kumpulan perintah yang termasuk di dalam if diletakkan di antara ‘{‘ dan ’}’. 4.2.4 Pernyataan if else Pernyataan if else sebenarnya merupakan pengembangan dari pernyataan if. Disini kedua cabang, yaitu syarat dipenuhi dan syarat tidak dipenuhi, masing- masing memiliki perintah yang harus dijalanka n. Diagram alir untuk pernyataan if else dilukiskan dalam Gambar 4.2.
Ya
Tidak IF
PERINTAH PERINTAH
PERINTAH PERINTAH
Gambar 4.2. Diagram Alir untuk pernyataan if .. else Seperti halnya pernyataan if.cara menuliskan struktur if else ini juga dibedakan dalam dua bentuk.Yang pertama yaitu bila masing- masing a lternative hanya terdiri dari satu perintah atau pernyataan. if (syarat) ….perintah; else ….perintah; Hal. 58
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
Bila setiap alternatif terdiri lebih dari satu perintah,maka perintah-perintah tadi harus diletakkan diantara tanda kurung ’{ }’. if (syarat) { ....perintah; ....perintah; ....perintah; } else { ….perintah; ….perintah; ….perintah; } 4.2.5 Nested if Untuk masalah-masalah yang memiliki lebih dari dua cabang,nested if merupakan salah satu alternative yang dapat digunakan, nested if sebenarnya adalah suatu bentuk struktur if di dalam if,ifyang kedua ini dapat merupakan bagian dari if,atau else atau kedua-duanya if dan else,dari struktur if else yang pertama.Diagram alir struktur nested if ini dilukiskan dalam Gambar 4.3. Cara menuliskan struktur nested if ini juga dibedakan dalam dua bentuk. Bentuk yang pertama yaitu bila setiap alternatif hanya terdiri da ri sebuah perintah.
if(syarat) if(syarat) ....perintah; else ....perintah; else if(syarat) ....perintah; else ....perintah;
Hal. 59
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
Ya
Ya
IF
IF
Tidak
Tidak
Ya
IF
Tidak
Gambar 4.3. D iagram Alir Struktur Nested if. Bentuk yang kedua yaitu bila setiap alternatif terdiri lebih dari satu perintah. if(syarat) { ….perintah; ….perintah; } else { ….perintah; ….perintah; } } else { ….perintah; ….perintah; if(syarat) { ….perintah; ….perintah; } else { ….perintah; ….perintah; } } Hal. 60
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
4.2.6 Bentuk Percabanga n if else if Bentuk else if sebenarnya mirip dengan nested if, bahkan dalam aplikasinya seringkali sturktur ini digunakan untuk menggantikan struktur nested if. Keuntungan struktur else if dibandingka n de ngan nested if adalah struktur ini menghasilkan bentuk penulisan program yang lebih sederhana. Diagram alir untuk struktur else if ini di lukiskan dalam Gambar 4.4.
if
else if
else if
else
Gambar 4.4. Diagram alir struktur else if Struktur pertanyaan if else if dapat dituliskan sebagai berikut: if (syarat) { …..perintah; …..perintah; } else if (syarat) { …..perintah; …..perintah; Hal. 61
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
} else if (syarat) { …..perintah; …..perintah; { else { …..perintah; …..perintah; } Bagian program ini akan dijalankan bila semua syarat if da n else if di atasnya tidak dipenuhi. Jadi alternative else yang terakhir ini akan dipilih bila semua alternative yang diberikan sebe lumnya bukan merupaka n piliha n yang sesuai. 4.2.7 Switch dan break Perintah switch dan break memiliki sifat yang hamper sama dengan else if, namun penggunaanya lebih sempit, karena perintah ini hanya khusus untuk memeriksa data yang bertipe karakter atau integer. Perintah switch dan break ini juga digunakan untuk menyelesaikan program yang memiliki banyak cabang atau alternative. Bentuk penulisan perintah ini: switch (variable integer atau karakte r) { case nilai pertama variable : …..perintah; …..perintah; break; Case nilai kedua: …..perintah; …..perintah; Break; Case nilai ketiga: …..perintah; …..perintah; break; default: …..perintah; …..perintah; } Tanda kurung kurawal ‘{ }’ menunjukkan batas jangkauan switch. Setiap cabang akan dijalankan bila syarat nilai variable tersebut dipenuhi. Default akan dijalankan bila semua
Hal. 62
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
cabang di atasnya tidak dipenuhi. Pertanyaan break menunjukkan bahwa kita siap keluar dari switch. Bila pertanyaanya ini tidak ada, maka program akan diteruskan ke cabang-cabang di bawahnya. 4.2.8 Ope rator Kondisi (Conditional Operator) Operator kondisi diperkenalkan oleh Turbo C untuk menyediakan penulisan program yang sedang disusun. K ita tinjau contoh pe nggalan program di bawah ini. if (nilai>=60) Status=’L’; else Status=’G’; Dimana ‘L’ dan ‘G’ masing- masing menyatakan ‘lulus’ dan ‘gugur’. Penggalan program di atas ini dapat disederhanakan menjadi: status = nilai>60 ? ‘ L’ : ‘G’; Bentuk umum dari operator kondisi:
TRUE nama_variabel = ekspresi logic atau relasi ? ekspresi 1 : ekspresi 2; FALSE
Nama_variabel: adalah variable yang akan menerima nilai ekspresi 1 atau ekspresi 2. Ekspresi lojik atau relasi: merupakan ekspresi yang akan memeriksa apakah kondisi yang ada BENAR atau SALAH. Jadi hasil ekspresi ini adalah ‘TRUE’ (BENAR) atau ‘FALSE’ (SALAH). Kondisi yang BENAR apabila memenuhi syarat yang diberikan dalam ekspresi lojik atau relasi, sedangkan kondisi yang SALAH tidak memenuhi kreteria ini.
4.3 Peralatan 1.
1 set computer
2.
Software turbo C
Hal. 63
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
4.4 Langkah Kerja 1.
Aktifkanlah editor Turbo C, kemudian lakukanlah konfigurasi directory.
2.
Buatlah program seperti Berikut ini yang digunakan untuk menghitung jumlah belanja yang harus diba yar, bila berlaku ke tentua n: Discount 10% diberlakukan bagi pembeli yang berbelanja Rp.100.000,- ke atas. Program disimpa n de ngan nama Con41. C. Input program: Jumlah belanja Output program: Discount da n Jumlah yang harus dibayar Ketentuan tentang nama dan tipe variabel yang dugunakan adalah sebagai berikut: Variabel untuk Jumalh belanja Discount Jumlah yang harus diba yar
Nama variabel jml_be lanja discount jml_bayar
Tipe float float float
/* Program menghitung uang pembelian */ main() { float jml_be lanja, discount=0,jml_ba yar; /* Input Jumlah Belanja */ printf("\nBesarnya Belanja : "); scanf("%f",&jml_belanja); /* Menghitung Discount */ if (jml_belanja>=100000) discount=0.10*jml_belanja; /* Menghitung Uang Pembayaran */ jml_bayar=jml_belanja-discount; /* Cetak Discount dan Uang Pembayaran */ printf("\nDiscount : %10.2f",discount); printf("\nUang Pembayaran : %10.2f",jml_bayar); getche(); } 3.
Buatlah program seperti dibawah ini dan simpan dengan nama Con42.C. /* Struktur if yang terdiri dari sekumpulan perintah */ main() { int usia; clrscr();
Hal. 64
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
printf("Berapakah usia Anda? : "); scanf("%d",&usia); if(usia>=40) { printf("\nWah, Anda suda h cukup tua"); printf("\nJangan maka n maka nan yang banyak mengandung kolesterol"); printf("\nTidak baik untuk kesehatan Anda"); } getche(); } 4.
Buatlah program seperti dibawah ini dan simpan dengan nama Con43.C. /* struktur if else yang terdiri da ri sebuah perintah */ main() { char jawab; printf(“\nanda mau ikut ? ”); jawab=getche(); if(jawab==’Y’ | | jawab==’Y’) printf(“\nCepat ganti pakaian”); else printf(“\nTolong jaga rumah”); getche(); }
5.
Buatlah program seperti dibawah ini dan simpan dengan nama Con44.C. Kemudian isikanlah angka 30 dan tuliskan hasilnya pada lembar kerja, coba pula untuk angka 60. /* Penggunaan nested if */ main() { int umur; clrscr(); printf(‘’\nBerpakah usia Anda ? : ‘’); scanf(‘’%d’’,&umur); if (umur<50) if (umur>21) printf(‘’\nAnda sudah dewasa’’); else pr intf(“\nAnda suda h tua“); getche(); }
Hal. 65
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
6.
Buatlah program seperti dibawah ini dan simpan dengan nama Con45.C. Saat program dijalankan cobalah dengan mengisikan angka 60, 30 dan 15 secara bergantian saat ada pertanyaan Berapakah usia an da ? . /* Penggunan nested if */ main() { int umur; clrscr(); printf(“\nBerapakah usia anda ? : ”); scanf(“%d”,&umur); if (umur<50) if (umur>20) printf(“\nAnda suda h dewasa”); else printf(“\nAnda masih muda”); else printf(“\nAnda suda h tua”); getche(); }
7.
Buatlah program seperti dibawah ini dan simpan dengan nama Con46.C. Saat program dijalankan cobalah dengan mengisikan angka 60, 30 dan 15 secara bergantian saat ada pertanyaan Berapakah usia an da ? . /* Penggunaan nested if */ main() { int umur; clrscr(); printf("\nBerapakah usia Anda ? : "); scanf("%d",&umur); if (umur<50) { if (umur>21) printf("\nAnda suda h de wasa"); } else printf("\nAnda suda h tua"); getche(); }
8.
Buatlah program seperti dibawah ini dan simpan dengan nama Con47.C. Saat program dijalankan cobalah dengan mengisikan angka 1, 2, 3, 4, dan 5 secara bergantian saat ada pertanyaan Pilihlah angka antara 1 sampai dengan 5 ? .
Hal. 66
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
/* penggunaan switch */ main() { int bil; printf(“\nPilihlah angka antara 1 sampai dengan 5 ? “); scanf(“%d”,&bil); switch(bil) { case 1 : printf(“\nanda mengetikkan satu”); break; case 2 : printf(“\nanda mengetikkan dua”); break; case 3 : pr intf(“\nanda mengetikkan tiga”); break; case 4 : printf(“\nanda mengetikkan empat”); break; case 5 : printf(“\nanda mengetikkan lima”); break; default: printf(\nanda mengetikkan bilangan yang salah”); } getche(); } 9.
Buatlah program seperti dibawah ini dan simpan dengan nama Con48.C. Saat program dijalankan cobalah dengan mengisikan angka 1, 2, 3, 4, dan 5 secara bergantian saat ada pertanyaan Pilihlah angka antara 1 sampai dengan 5 ? . /* penggunaan switch */ main() { int bil; printf(“\n Pilihlah angka antara 1 sampai dengan 5 ? “); scanf(“%d”,&bil); switch(bil) { case 1 : printf(“\nanda mengetikkan satu”); case 2 : printf(“\nanda mengetikkan dua”); case 3 : printf(“\nanda mengetikkan tiga”); case 4 : printf(“\nanda mengetikkan empat”); case 5 : printf(“\nanda mengetikkan lima”); default: printf(\nanda mengetikkan bilangan yang salah”); } getche(); }
10. Buatlah program seperti dibawah ini dan simpan dengan nama Con49.C. Saat program dijalankan cobalah dengan menginputkan dengan salah satu bulan dan tahun dan tuliskanlah hasilnya pada lembar kerja.
Hal. 67
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
/* menentukan jumlah hari pada bulan tertentu */ main() { int bulan,tahun,hari; clrscr(); /* input bulan dan tahun */ printf(“\n\ninputkan bulan dan tahun (xx-xxxx) “); scanf(“%d-%d”, &bulan,& tahun); if (bulan==1) hari=31; else if (bulan==2) { if (tahun % 4 == 0) /* tahun kabisat */ hari=29; else /* tahun biasa */ hari=28; } else if (bulan==3) hari=31; else if (bulan==4) hari=30; else if (bulan==5) hari=31; else if (bulan==6) hari=30; else if (bulan==7) hari=31; else if (bulan==8) hari=31; else if (bulan==9) hari=30; else if (bulan==10) hari=31; else if (bulan==11) hari=30; else if (bulan==12) hari=31; else printf(“\n\n bulannya ngaco, bos!!!\n\n”); /* cetak output */ printf(“\n\nbulan %2d tahun %4d memiliki %d hari “,bulan ,tahun,hari); getche(); } 11. Buatlah program seperti dibawah ini dan simpan dengan nama Con410.C. Saat program dijalankan cobalah dengan menginputkan dengan salah satu bulan dan tahun dan tuliskanlah hasilnya pada lembar kerja.
Hal. 68
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
/* menentukan jumlah hari pada bulan tertentu */ main() { int bulan,tahun,hari; clrscr(); /* input bulan dan tahun */ printf(“\n\ninputkan bulan dan tahun (xx-xxxx) “); scanf(“%d-%d”, &bulan,& tahun); if (bulan<=12) { if (bulan<=7) hari= bulan % 2 == 0 ? 30 : 31 ; else hari=bulan % 2 == 0 ? 30 : 31 ; } else printf(“\n\n bulannya ngaco bos!!!\n\n”); if (bulan==2) hari= tahun % 4 == 0 ? 29 : 28 ; /* cetak output */ printf(“\n\nbulan %2d tahun %4d memiliki %d hari “,bulan,tahun,hari); getche(); }
4.5 Lembar Kerja No
Nama File
Keluaran
Hal. 69
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
4.6 Pertanyaa n dan Tugas 1.
Buatlah program untuk membantu menyelesaikan persoalan pada sebuah de velope r menjual dua tipe rumah,Tipe A dengan harga tanah 40000 dan harga bangunan 150000,sedamgkan Tipe B dijual dengan harga tanah 50000 dan harga bangunan 200000. Sebagai input: luas tanah, luas bangunan, tipe Sebagai output: harga tanah, harga bangunan, harga total Ketentuan tentang variable- variabel yang digunakan: Variable untuk Luas tanah Luas bangunan Harga satuan tanah Harga satuan ba ng. Harga tanah Harga bangunan Harga total Tipe
2.
nama variable luas_tanah luas_bang harga_sat_tnh harga_sat_bang harga_tnh harga_bang harga_total tipe
tipe float float float float float float float char
Buatlah program untuk menyelesaikan permasalahan pada PT CEPAT KAYA yang memberikan komisi kepada para salesmannya dengan ketentuan sebagai berikut: a. Bila seorang salesman dapat menjual menjual barang hingga Rp.200.000,- dia akan mendapat uang jasa sebesar Rp.10.000,- ditambah dengan uang komisi sebesar 10% dari pendapa tan yan dipe roleh hari itu. b. Bila seorang salesman menjual barang diatas Rp.200.000,- hingga Rp.500.000,- maka uang jasa yang diterima sebesar Rp.20.000,- ditambah dengan 15% dari pendapatan yang dieroleh. c. Bila seorang salesman menjual barang di atas Rp.500.000,- maka uang jasa yang diperoleh sebesar Rp.30.000,- ditambah dengan 20% dari pendapatan yang didapat.
Sebagai input: Pendapatan Sebagai output: Uang jasa, Komisi, Total uang
Hal. 70
Jobsheet Dasar Pemrogaman, Bab. 4: Percabangan Bersyarat
Ketentuan-ketentuan variable yang digunakan: Variabel untuk Pendapatan Uang jasa Komisi Total Uang
nama variable p_dptan jasa komisi total
tipe float float float float
3. Buatlah program untuk mengkonversikan nilai angka menjadi nilai huruf akan dibuat berdasarkan ketentuan sebagai berikut:
Nilai Angka <50 50-59 60-69 70-84 85-100
Nilai huruf E D C B A
Sebagai input: Nilai Angka Sebagai Output: Nilai Huruf Ketentuan variable Variable untuk Nilai Angka Nilai Huruf
nama variable angka huruf
tipe float char
Daftar Pustaka ++
1. Al Fatt, Hanif. Dasar Pemrograman C . Andi Offset, Jogyakarta, 2007. 2. Hartanto, Jogiyanto. Buku Konsep Dasar Pemrograman Bahasa C. Ando Offset, Jogyakarta, 2006. 3. Kadir, Abdul. Algoritma Pemrograman Menggunakan C++. Andi Offset, Jogyakarta, 2007. 4. Ngeon, Thomson Susabda . Pengantar Algoritma Dengan Bahasa C. Salemba Infotek, Jakarta, 2006. 5.
Nugroho, Adi. Algoritma dan Struktur Dara Dengan C. Andi Offset, Jogyakarta, 2009.
6. Partoharsojo, Hartono. Tuntunan Praktis Pemrograman Bahasa C 2.0. PT Elex Media Komputindo, Jakarta, Indonesia, 1989. 7.
Supardi, Yuniar. Cara Mudah Belajar Bahasa C dan Flow Chart Dalam Praktek. Dinastindo, Jakarta, 2006. Hal. 71