ALGORITMA PEMPROGRAMAN-2
1
KATA PENGANTAR
Laporan ini disusun untuk memenuhi tugas mata kuliah Algoritma dan
Pemprograman Dasar. Tak lupa pula saya ucapkan terima kasih kepada dosen
pengampuh saya yaitu Bapak YUSUF RAMADHAN NASUTION M.KOM yang
telah membimbing saya dalam mata pelajaran tersebut.
Laporan praktikum ini masih jauh dari kata sempurna, oleh karena itu saya
mengharap kritik dan saran yang bersifat membangun demi kesempurnaan ini.Semoga
laporan praktikum ini dapat berguna dan bermanfaat bagi pembaca.
2
DAFTAR ISI
KATA PENGANTAR...............................................................................2
DAFTAR ISI.............................................................................................3
DAFTAR GAMBAR.................................................................................5
DAFTAR TABEL.....................................................................................7
MODUL 1 Pemprograman Bahasa C......................................................8
A. Sejarah Bahasa C....................................................................8
B. Kelebihan Bahasa C................................................................8
C. Kekurangan Bahasa C............................................................8
LEMBAR PENGESAHAN.......................................................................10
MODUL 2 Konstanta................................................................................11
A. Definisi Konstanta...................................................................11
B. Struktur Dasar Bahasa C.......................................................11
LEMBAR PENGESAHAN.......................................................................14
MODUL 3 Operator..................................................................................15
A. Definisi Operator Penugasan.................................................15
B. Operator Aritmatika...............................................................15
C. Operator Hubungan (Perbandingan)....................................15
LEMBAR PENGESAHAN.......................................................................17
MODUL 4 Input Dan Output...................................................................18
A. Scanf()......................................................................................18
B. gets().........................................................................................19
C. getchar()...................................................................................20
D. Getch() dan getche()................................................................20
LEMBAR PENGESAHAN.......................................................................22
MODUL 5 Penyeleksian Kondisi..............................................................23
A. Kegunaan Penyeleksian Kondisi............................................23
LEMBAR PENGESAHAN.......................................................................30
MODUL 6 Perulangan..............................................................................31
A. Penjelasan................................................................................31
3
B. Struktur Perulangan “WHILE”............................................31
C. Struktur Perulangan “FOR”.................................................33
D. Goto Dan Label.......................................................................34
LEMBAR PENGESAHAN.......................................................................37
MODUL 7 Format Dasar Penulisan Array Dalam Bahasa C...................38
A. Format Pendefinisian Array Dalam Bahsa C.......................38
LEMBAR PENGESAHAN.......................................................................41
MODUL 8 Array 2 Dimensi Bahasa C......................................................42
A. Pengertian................................................................................42
LEMBAR PENGESAHAN.......................................................................45
MODUL 9 Membaca String Dengan Scanf Dan Gets...............................46
A. Pembahasan.............................................................................46
B. Membaca String dengan gets.................................................47
LEMBAR PENGESAHAN.......................................................................48
MODUL 10 Cara Mengubah Isi String Dengan Fungsi Strcpy................49
A. Penjelasan................................................................................49
B. Cara penggunaan function strcpy.........................................49
LEMBAR PENGESAHAN.......................................................................52
MODUL 11 Perulangan Bersarang (Nested Loop)...................................53
A. Definisi Perulangan Bersarang..................................................53
B.Contoh Kode Program Perulangan Bersarang (Nested Loop)53
LEMBAR PENGESAHAN.......................................................................57
DAFTAR GAMBAR
4
Gambar 1.1.................................................................................................9
Gambar 1.2.................................................................................................9
Gambar 2.1.................................................................................................13
Gambar 2.2.................................................................................................13
Gambar 3.1.................................................................................................16
Gambar 3.2.................................................................................................16
Gambar 4.1.................................................................................................19
Gambar 4.2.................................................................................................19
Gambar 4.3.................................................................................................20
Gambar 4.4.................................................................................................20
Gambar 4.5.................................................................................................21
Gambar 4.6.................................................................................................21
Gambar 5.1.................................................................................................23
Gambar 5.2.................................................................................................23
Gambar 5.3.................................................................................................25
Gambar 5.4.................................................................................................25
Gambar 5.5.................................................................................................26
Gambar 5.6.................................................................................................27
Gambar 5.7.................................................................................................27
Gambar 5.8.................................................................................................28
Gambar 5.9.................................................................................................29
Gambar 6.1.................................................................................................31
Gambar 6.2.................................................................................................32
Gambar 6.3.................................................................................................32
Gambar 6.4.................................................................................................33
Gambar 6.5.................................................................................................34
Gambar 6.6.................................................................................................34
Gambar 6.7.................................................................................................35
Gambar 6.8.................................................................................................36
Gambar 7.1.................................................................................................38
5
Gambar 7.2.................................................................................................39
Gambar 7.3.................................................................................................39
Gambar 7.4.................................................................................................39
Gambar 7.5.................................................................................................40
Gambar 7.6.................................................................................................40
Gambar 8.1.................................................................................................43
Gambar 8.2.................................................................................................43
Gambar 8.3.................................................................................................44
Gambar 8.4.................................................................................................44
Gambar 9.1.................................................................................................46
Gambar 9.2.................................................................................................46
Gambar 9.3.................................................................................................47
Gambar 9.4.................................................................................................47
Gambar 10.1...............................................................................................49
Gambar 10.2...............................................................................................49
Gambar 11.1...............................................................................................54
Gambar 11.2...............................................................................................54
Gambar 11.3...............................................................................................55
Gambar 11.4...............................................................................................56
DAFTAR TABEL
6
Tabel 3.1155
Tabel 4.2 19
7
MODUL 1
PEMPROGRAMAN BAHASA C
A. Sejarah Bahasa C
Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan
oleh Martin Richards pada tahun 1967. Selanjutnya bahasa ini memberikan ide kepada
Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada
tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis
Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah
AT&T Bell Laboratories). Bahasa C pertama kali digunakan di computer Digital
Equipment Corporation PDP-11 yang menggunakan system operasi UNIX. Hingga saat
ini penggunaan bahasa C telah merata di seluruh dunia. Hampir semua perguruan tinggi
di dunia menjadikan bahasa C sebagai salah satu mata kuliah wajib.
B. Kelebihan Bahasa C
• Bahasa C tersedia hampir di semua jenis computer.
• Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua jenis computer.
• Bahasa C hanya menyediakan sedikit kata-kata kunci, hanya terdapat 32 kata kunci.
• Proses executable program bahasa C lebih cepat
• Dukungan pustaka yang banyak.
• C adalah bahasa yang terstruktur.
• Bahasa C termasuk bahasa tingkat menengah.
C. Kekurangan Bahasa C
• Banyaknya Operator serta fleksibilitas penulisan program kadang-kadang
membingungkan pemakai.
• Bagi pemula pada umumnya akan kesulitan menggunakan pointer.
8
Percobaan 1
Program
Gambar 1.1
Output
Gambar 1.2
9
LEMBAR PENGESAHAN
Menyetujui,
Mengetahui,
10
Yusuf Ramadhan Nasution, M.Kom
MODUL 2
KONSTANTA
A. Definisi Konstanta
Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program
berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebih
dahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string.
Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’. Selain itu, bahasa C juga
menyediakan beberapa karakter khusus yang disebut karakter escape, antara lain :
\a : untuk bunyi bell (alert)
\b : mundur satu spasi (backspace)
\f : ganti halaman (form feed)
\n : ganti baris baru (new line)
\r : ke kolom pertama, baris yang sama (carriage return)
\v : tabulasi vertical
\0: nilai kosong (null)
\’ : karakter petik tunggal
\” : karakter petik ganda
\\ : karakter garis miring
Tipe Data
Tipe data merupakan bagian program yang paling penting karena tipe data
mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja 5
dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5 dan 2
bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe float
maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan membuat
proses operasi data menjadi lebih efisien dan efektif.
11
Dalam Bahasa C terdapat 5 tipe data dasar, yaitu:
1. Char : (ukuran:1 byte), (Range/jangkauan:-128 s/d 127), (format:%c), dan
(keterangan:karakter/string).
2. Int : (ukuran:2 byte), (Range/jangkaun: -32768 s/d 32767), (format:%i,%d),
dan (keterangan:Integer/bilangan bulat).
3. Float : (ukuran:4 byte), (Range/jangkauan: -3.4E-38 s/d 3.4E +38), (format:%f), dan
(keterangan:Float/bilangan pecahan).
4. Double : (ukuran:8 byte), (Range/jangkauan: -1.7E-308 s/d 1.7 + 308), (format:
%If), dan (keterangan:Pecahan presisi ganda).
5. Void : (ukuran:0 byte), (Range/jangkauan:-), (format:-), dan (keterangan:tidal bertipe).
A. Variable
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap,
nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable
dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut:
1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.
Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi
antara nim, NIM dan Nim dianggap berbeda.
2. Tidak boleh mengandung spasi.
3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah
(underscore).Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?,
%, #, !, &, * ,(, ), -, +, = dsb
4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
• Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilai, budi,
dsb.
• Contoh penamaan variable yang salah : %nilai_mahasiswa, 80mahasiswa,rata-rata,
ada spasi, penting!, dsb.
12
Percobaan 1
Program
Gambar 2.1
Output
13
Gambar 2.2
14
LEMBAR PENGESAHAN
Judul : Konstanta
Nama : Cindya Putri Hidayat Siregar
NIM : 0701213101
Program Studi : Ilmu Komputer
Menyetujui,
Mengetahui,
15
Yusuf Ramadhan Nasution, M.Kom
MODUL 3
OPERATOR
B. Operator Aritmatika
Bahasa C menyediakan lima operator aritmatika, yaitu :
* : untuk perkalian
/ : untuk pembagian
Operator Arti Contoh
< Kurang dari x < y (apakah x kurang dari y)
<= Kurang dari sama dengan x <= y (apakah x kurang dari sama dengan y)
> Lebih dari x > y (apakah x lebih dari y)
>= Lebih dari sama dengan x >= y (apakah x lebih dari sama dengan y)
== Sama dengan x == y (apakah x sama dengan y)
!= Tidak sama dengan x != y (apakah x tidak sama dengan y)
% : untuk sisa pembagian (modulus)
+ : untuk pertambahan
- : untuk pengurangan
Catatan : operator % digunakan untuk mencari sisa pembagian antara dua bilangan.
Misalnya :
9%2=19%3=0
9%5=49%6=3
16
Table 3.1
Percobaan 1
Program
Gambar 3.1
Output
17
Gambar 3.2
LEMBAR PENGESAHAN
Judul : Operator
Nama : Cindya Putri Hidayat Siregar
NIM : 0701213101
Program Studi : Ilmu Komputer
Menyetujui,
Mengetahui,
18
Yusuf Ramadhan Nasution, M.Kom
MODUL 4
INPUT DAN OUTPUT
Dalam bahasa C proses memasukkan suatu data bisa menggunakan beberapa fungsi
pustaka yang telah tersedia. Beberapa fungsi pustaka yang bisa digunakan adalah :
A. Scanf()
Fungsi pustaka scanf() digunakan untuk menginput data berupa data numerik, karakter
dan string secara terformat.
Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() :
0 Fungsi scanf() memakai penentu format
0 Fungsi scanf() memberi pergantian baris secara otomatis
0 Fungsi scanf() tidak memerlukan penentu lebar field 0Variabelnya harus
menggunakan operator alamat &
Kode penentu format:
%c = membaca sebuah karakter
%s = membaca sebuah string
%i, %j = membaca sebuah bilang bulat (integer)
%f, %e = membaca sebuah bilangan pecahan (real)
%o = membaca sebuah bilangan octal
%x = membaca sebuah bilangan heksdesimal
%u = membaca sebuah bilangan tak bertanda
Tabel 4.2
19
Percobaan 1
Program
Gambar 4.1
Output
Gambar 4.2
B. gets()
20
Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat
digunakan untuk memasukkan data numerik. Harus diakhiri dengan penekanan tombol
enter , Cursor secara otomatis akan pindah baris dan Tidak memerlukan penentu format.
Percobaan 2
Program
Gambar 4.3
Output
Gambar 4.4
C. getchar()
• Fungsi getchar() digunakan untuk membaca data yang bertipe karakter
• Harus diakhiri dengan penekanan tombol enter
• Karakter yang dimasukkan terlihat pada layer
• Pergantian baris secara otomatis
21
D. Getch() dan getche()
• Fungsi getch() dan getche() digunakan untuk membaca data karakter.
• Karakter yang dimasukkan tidak perlu diakhiri dengan penekanan tombol enter.
• Tidak memberikan efek pergantian baris secara otomatis
• Jika menggunakan fungsi getch() karakter yang dimasukkan tidak akan ditampilkan
pada layer sehingga sering digunakan untuk meminta inputan berupa password.
• Sedangkan pada getche() karakter yang dimasukkan akan ditampilkan pada layer.
Percobaan 3
Program
Gambar 4.5
22
Output
Gambar 4.6
LEMBAR PENGESAHAN
Menyetujui,
23
Koordinator Asisten Asisten
Mengetahui,
MODUL 5
PENYELEKSIAN KONDISI
24
pernyataan yang ada di dalam blok if akan diproses dan dikerjakan. Bentuk umum
struktur kondisi if adalah : if(kondisi) pernyataan;
Percobaan 1
Program
Gambar 5.1
Output
Gambar 5.2
2. Struktur Kondisi “IF ELSE....”
Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika kondisi yang
diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan
jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang
dilaksanakan.
3. Struktur Kondisi “ELSE IF....”
Logika Else If disebut juga IF bertingkat, digunakan untuk menangani beberapa kondisi
yang berbeda dalam satu rutin pengecekan. Pada logika else If, statemen pad amasing-
masing IF akan dijalankan hanya jika kondisi didalam logika IF masing-masing bernilai
benar. Pada akhir Else IF bias ditambahkan Else saja untuk menangani jika semua
kondisi IF danElse IF diatasnya bernilai salah.
Cara penulisan :
25
If (kondisi 1)
{
Pernyataan
}
Else if (kondisi 2)
{
Pernyataan
}
Else (kondisi)
{
Pernyataan
}
Percobaan 2
Program
26
Gambar 5.3
Output
Gambar 5.4
switch(kondisi)
{
case 1 : pernyataan-1;
break;
case 2 : pernyataan-2;
break;
.....
.....
case n : pernyataan-n;
break;
default : pernyataan-m
27
}
Percobaan 3
Program 1
Gambar 5.5
Program 2
28
Gambar 5.6
Output
Gambar 5.7
Percobaan 4
Program
29
Gambar 5.8
Output
Gambar 5.9
30
LEMBAR PENGESAHAN
Menyetujui,
Khalid Hidayatullah
Muhammad Fauzi
Mengetahui,
31
Dosen Penanggung Jawab
MODUL 6
PERULANGAN
A. Penjelasan
Dalam bahasa C tersedia suatu fasilitas yang digunakan untuk melakukan proses
yang berulangulang sebanyak keinginan kita. Misalnya saja, bila kita ingin menginput
dan mencetak bilangan dari1 sampai 100 bahkan 1000, tentunya kita akan merasa
kesulitan. Namun dengan struktur perulangan proses, kita tidak perlu menuliskan
perintah sampai 100 atau 1000 kali, cukup dengan beberapa perintah saja. Struktur
perulangan dalam bahasa C mempunyai bentuk yang bermacam-macam.
Percobaan 1
Program
32
Gambar 6.1
Output
Gambar 6.2
A. Struktur Perulangan “DO.....WHILE… ”
Pada dasarnya struktur perulangan do....while sama saja dengan
struktur while, hanya saja pada proses perulangan dengan while, seleksi berada di while
yang letaknya di atas sementara pada perulangan do....while, seleksi while berada di
bawah batas perulangan. Jadi dengan menggunakan struktur do…while sekurang-
kurangnya akan terjadi satu kali perulangan.
Percobaan 2
Program
33
Gambar 6.3
Output
Gambar 6.4
34
Percobaan 3
Program
Gambar 6.5
35
Output
Gambar 6.6
Percobaan 4
Program
36
Gambar 6.7
Output
Gambar 6.8
37
LEMBAR PENGESAHAN
Judul : Perulangan
Nama : Cindya Putri Hidayat Siregar
NIM : 0701213101
Program Studi : Ilmu Komputer
Menyetujui,
Mengetahui,
38
Yusuf Ramadhan Nasution, M.Kom
MODUL 7
FORMAT DASAR PENULISAN ARRAY DALAM BAHASA C
Percobaan 1
Program
39
Gambar 7.1
Output
Gambar 7.2
Di awal kode program, baris int bilangan[5] dipakai untuk membuat sebuah array
bernama bilangan dengan 5 element atau 5 anggota. Array bilangan ini di set sebagai
int, yang artinya setiap element array hanya bisa diisi dengan bilangan bulat (integer).
Setelah pendefinisian array bilangan,selanjutnya saya mengisi setiap element array
dengan angka. Kembali diingat bahwa index array dimulai dari 0,sehingga untuk
mengakses element pertama dari array bilangan, penulisannya adalah bilangan[0].
Dalam contoh diatas, pengisian nilai array diproses satu persatu. Namun kita juga bisa
mengisi element array langsung pada saat pendefinisiannya,seperti contoh berikut:
Percobaan 2
Program
Gambar 7.3
Output
40
Gambar 7.4
Kali ini,semua isi array diinput sekaligus pada saat pembuatan, yakni dengan perintah
int bilangan[5] = {8, 11, -15, 40, -115}.Tanda koma dipakai sebagai pemisah antara satu
nilai dengan nilai lain. Hasil kode program diatas akan sama persis seperti contoh kode
program pertama. Yang cukup unik, kita juga bisa mendefiniskan array tanpa harus
menulis jumlah elemen anggotanya, seperti contoh berikut:
Percobaan 3 :
Program
Gambar 7.5
Output
Gambar 7.6
Perhatikan cara pendefinisian array ini, yakni:
char kumpulan_huruf[] = {'a' , 'C' , ' x '};
Disini kita tidak menginput angka apapun sebagai penentu jumlah element. Jumlah
element akan digenerate secara otomatis dari banyaknya nilai yang diinput ke dalam
array tersebut. Dalam contoh ini terdapat 3 nilai sehingga array kumpulan_huruf akan
berisi 3 element. Pendefinisian array seperti ini hanya bisa dibuat jika nilai untuk
element array langsung ditulis pada saat pendefinisian. Kita tidak bisa menggunakan
cara diatas jika element array diisi secara terpisah, seperti contoh kode program pertama
sebelumnya.
41
LEMBAR PENGESAHAN
Menyetujui,
Mengetahui,
42
Yusuf Ramadhan Nasution, M.Kom
MODUL 8
ARRAY 2 DIMENSI BAHASA C
A. Pengertian
Array dua dimensi adalah sebutan untuk array yang penomoran index-nya
menggunakan 2 buah angka.Analogi yang sering dipakai seperti titik koordinat dalam
diagram kartesius. Diagram kartesius merupakan diagram yang biasa kita pakai untuk
membuat grafik. Disini terdapat sumbu X dan sumbuY. Sebuah titik dalam diagram
kartesius ini harus disebut secara berpasangan,seperti (2,3) atau (-3, 1).
Contoh bentuk diagram kartesius
Analogi lain adalah matriks. Dalam matematika, matrik terdiri dari kolom dan baris.
Kembali, untuk menentukan nilai dari sebuah matriks, kita harus sebut secara
berpasangan seperti baris 1 kolom 2, atau baris 3 kolom 1. Konsep seperti inilah yang
menjadi dasar dari array 2 dimensi. Untuk membuat array 2 dimensi di dalam bahasa C,
kita membuat 2 kali tanda kurung siku setelah nama variabel, seperti contoh berikut:
43
int bilangan[2][2];
Baris diatas akan membuat array 2 dimensi dengan nama variabel: bilangan.
Variabel bilangan ini akan berisi 4 element (2 x 2). Atau jika diibaratkan sebagai
matriks, disini kita membuat matriks 2 x 2.
Untuk mengakses setiap element array, penulisan index juga harus ditulis 2 kali,
seperti contoh berikut:
bilangan[0][0] = 100;
bilangan[0][1] = 101;
bilangan[1][0] = 110;
bilangan[1][1] = 111;
Contoh Kode Program Array 2 Dimensi Bahasa C. Berikut contoh kode program
pertama dari pembuatan array 2 dimensi di dalam bahasa C:
Percobaan 1
Program
Gambar 8.1
Output
Gambar 8.2
Di awal kode program, kita membuat array bilangan dengan perintah int bilangan[2]
[2];. Artinya, array bilangan adalah sebuah array 2 dimensi dengan 4 element. Proses
44
pengisian setiap element array dilakukan setelahnya, kemudian ditampilkan dengan
perintah printf. Pengisian element array 2 dimensi juga bisa dilakukan pada saat array
itu di definisikan,seperti percobaan ke 2 berikut ini:
Percobaan 2
Program
Gambar 8.3
Output
Gambar 8.4
45
LEMBAR PENGESAHAN
Mengetahui,
46
Dosen Penanggung Jawab
MODUL 9
MEMBACA STRING DENGAN SCANF DAN GETS
A. Pembahasan
Di materi sebelumnya, kita pernah membahas tentang perintah scanf yang dipakai untuk
meminta input dari user. Cara yang sama juga bisa dipakai untuk tipe data string,seperti
contoh berikut:
Percobaan 1
Program
Gambar 9.1
Output
Gambar 9.2
47
Di baris 5 kita mendefinisikan sebuah variabel nama sebagai char nama[20]. Artinya,
variabel nama bisa menampung 19 karakter (ingat, 1 karakter lagi menjadi jatah untuk
null). Di baris 7, perintah scanf dipakai untuk menerima inputan dari user. Inputan ini
kemudian disimpan ke dalam variabel nama yang selanjutnya ditampilkan kembali
dengan perintah printf di baris 10. Meskipun nama “Andika” yang kita input tidak
persis 19 karakter, ini tidak menjadi masalah selama panjang inputan tetap kurang dari
19 karakter. Perhatikan juga bahwa di sini perintah scanf tidak butuh tanda ‘&’
sebagaimana tipe data dasar seperti int, float dan char. Tanda ‘&’ merujuk ke pointer
yang berisi alamat memory dari variabel tersebut. Namun karena variabel nama adalah
array of char, pointer ini tidak diperlukan.
Percobaan 2
Program
Gambar 9.3
Output
48
Gambar 9.4
LEMBAR PENGESAHAN
Menyetujui,
49
Muhammad Fauzi Khalid Hidayatullah
Mengetahui,
MODUL 10
CARA MENGUBAH ISI STRING DENGAN FUNGSI STRCPY
A. Penjelasan
Error Pada Saat Mengubah Isi String : Dalam beberapa materi sebelumnya, kita secara
langsung mengisi string pada saat proses deklarasi atau menggunakan perintah scanf /
gets. Misalnya: char nama[20]= “Cindya Putri”. Tapi ketika isi string diisi setelah di
deklarasikan, akan terjadi error.
Percobaan 1
Program
50
Gambar 10.1
Output
Gambar 10.2
LEMBAR PENGESAHAN
Menyetujui,
51
Mengetahui,
MODUL 11
PERULANGAN BERSARANG (NESTED LOOP)
52
Mari kita masuk ke contoh kode program dari perulangan bersarang dalam bahasa C.
Namun sebelum itu, kita
berangkat dari perulangan “normal” terlebih dahulu.
Latihan pertama, bisakah anda merancang kode program untuk membuat daftar
perkalian 3 dari 1 sampai 10?
Hasil akhir yang kita inginkan adalah seperti ini:
3*1=3
3*2=6
3*3=9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
3 * 10 = 30
Tentu saja baris di atas bisa dihasilkan dengan membuat perintah printf sebanyak 10
kali, namun hal itu tidak
efisien.Hasil di atas harus dibuat menggunakan perulangan FOR.
berikut kode program yang kita gunakan:
Percobaan 1
Program
53
Gambar 11.1
Output
Gambar 11.2
Berikutnya, bagaimana dengan membuat kode program untuk menghasilkan daftar
perkalian yang sama seperti di atas, tapi kali ini bukan hanya perulangan 3 saja, tapi
dari 1 – 10. Maksudnya, kita ingin membuat kode
program yang menghasilkan 100 baris daftar perkalian,mulai dari:
1*1=1
1*2=2
1*3=3
....
....
Sampai dengan:
....
....
10 * 8 = 80
10 * 9 = 90
10 * 10 = 100
Ada beberapa cara untuk membuat daftar perkalian seperti ini, misalnya bisa
dengan membuat 10 kali perulangan FOR (1 perulangan untuk setiap angka).
Namun cara paling efisien adalah menggunakan perulangan
bersarang.
Berikut contoh kode program yang bisa dipakai:
54
Percobaan 2
Program
Gambar 11.3
Output
Gambar 11.4
Untuk membuat perulangan bersarang, kita butuh 2 buah variabel counter, yakni 1
untuk outer loop, dan 1 untuk inner loop. Dalam contoh ini saya menggunakan
variabel i dan j.
Perulangan i (outer loop) akan diulang sebanyak 10 kali, yakni dari i = 1 sampai i
<= 10. Di dalam setiap perulangan i ini, akan di proses perulangan j (inner loop).
55
Perulangan j juga akan di proses sebanyak 10 kali. Dengan demikian, perintah
printf di baris 7 akan dijalankan sebanyak 100 kali, yakni total dari i * j. Inilah
salah satu contoh penerapan perulangan bersarang dalam bahas
LEMBAR PENGESAHAN
Menyetujui,
56
Muhammad Fauzi Khalid Hidayatullah
Mengetahui,
57