Bab 5 – Perulangan dan Array________________________________________________66
BAB 5 PERULANGAN DAN ARRAY TUJUAN PRAKTIKUM 1. Praktikan mengerti apa yang dimaksud dengan perulangan 2. Praktikan mengerti apa yang dimaksud dengan seleksi kondisi 3. Praktikan dapat menggunakan statement perulangan dalam program sederhana 4. Praktikan dapat memaha mi pengertian larik/array 5. Praktikan dapat memahami jenis-jenis larik/array 6. Praktikan dapat memahami bentuk umum array dalam bahasa C 7. Praktikan dapat mengetahui tentang pointer 8. Praktikan dapat mengetahui operasi pointer dalam bahasa C 9. Praktikan dapat membua t program sederhana menggunakan pointer dan array dalam bahasa C
TEORI PENUNJANG 5.1. Mengendalikan Proses Program Untuk program yang sederhana, proses berurutan memang banyak dijumpai. Akan tetapi untuk program yang komplek, proses yang ada tidak hanya proses berurutan. Selain proses berurutan, proses yang dapat terjadi adalah penyeleksian kondisi, proses pengula ngan dan proses lompatan.
5.1.1 Penyeleksian Kondisi Dua buah statemen yang dapat digunakan untuk penyeleksian kondisi yaitu if dan switch. Selain itu juga ada operator ”?” sebagai pengganti elemen if.
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________67
5.1.1.1 Statement if 5.1.1.1.1. Bentuk if Tunggal Sederhana Bentuk umum dari if tunggal sederhana adalah sebagai berikutt :
Contoh :
Output :
Program tersebut untuk menghitung tunjangan yang akan diterima oleh pegawai dimana besarnya tergantung dari jumlah anaknya. Jika seorang pegawai mempunyai anak kuramg dari 3,maka tunjangannya adalah sebesar 20% dari gaji kotornya. Jika jumlah anaknya lebih besar atau sama dengan 3, maka besarnya tunjangan adalah sebesar 30% dari gaji kotornya.
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________68
5.1.1.1.2. Bentuk if Tunggal Blok Statemen Suatu blok statemen adalah statemen-statemen yang dikelompokkan dengan ditulis di antara tanda kurung kurawal ({}). Pada contoh sebelumnya, selain seorang pegawai mendapat tunjangan tergantung dari jumah anaknya, gaji pegawai bersangkutan juga akan dipotong untuk keperluan asuransi. Besarnya potongan adalah 5% dari gaji kotor untuk jumlah anak sama atau kurang dari dua dan sebesar 7% untuk jumlah anak lebih dari dua.
Output :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________69
5.1.1.1.3 Bentuk if – else Sintak dari bentuk statemen if-else adalah sebagai berikut ini :
Statemen setelah kondisi atau setelah else dapat berupa statemen kosong, statemen tunggal, atau blok statemen. Contoh program berikut ini akan menyeleksi nilai suatu pembagi. Jika nilai pembagi adalah nol, maka hasil pembagian dengan nilai nol akan didapatkan hasil tak berhingga. Jika ditemui nilai pembaginya nol, maka proses pembagian tidak akan dilakukan.
Output :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________70
5.1.1.1.4 Bentuk if-else-if ..... else Bentuk umum :
Penyeleksian dimulai dari kondisi 1, jika kondisi ini dipenuhi maka statemen yang mengikuti akan diproses dan penyeleksian dihentikan. Jika kondisi 1 tidak benar maka penyeleksian ke kondisi 2 begitu seterusnya. Contoh Listing Program:
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________71
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________72
Output :
5.1.1.1.5 Bentuk if Bersarang Statement if bersarang (nested if) merupakan statemen if yang berada di dalam (merupakan bagian dari) statemen if lainnya. Bentuk dari statemen ini adalah :
5.1.1.2. Statemen Switch 5.1.1.2.1. Switch Tunggal Sintaks dari statemen switch adalah sebagai berikut :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________73
Statemen switch akan menyeleksi kondisi yang diberikan dan kemudian membandingkan hasilnya dengan konstanta-konstanta yang berada di case. Pembandingan akan dimulai dari konstanta1 sampai dengan konstanta terakhir. Jika hasil dari kondisi sama dengan nilai konstanta tertentu, misalnya konstanta2, maka statemen-statemen yang ada di case konstanta2 akan diproses sampai ditemui statemen break yang akan membawa proses keluar dari penyeleksian switch. Contoh program:
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________74
Output :
5.1.1.2.2. Switch Bersarang Statemen switch bersarang adalah statemen switch yang satu berada di dalam statemen switch lainnya.
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________75
5.1.2. Perulangan Misal akan dibuat tampilan "Selamat Pagi Indonesia" sebanyak 20 kali. Tampilan-tampilan ini dapat dibuat dengan menggunakan fungsi printf() sebanyak 20 kali, tapi program semacam ini tidak efisien. Proses berulang-ulang ini disebut dengan proses PERULANGAN. Akan lebih praktis jika dilakukan dengan statemen perulangan. Statemen-statemen yang dapat digunakan adalah for, while, dan do-while.
5.1.2.1 Statemen for Statemen for mempunyai bentuk umum sebagai berikut :
Awal adalah suatu ungkapan yang memeberikan nilai awal suatu variabel untuk perulangannya (misal i=0). Akhir adalah suatu ungkapan yang menunjukkan suatu kondisi yang harus dipenuhi supaya perulangan masih dapat terus dilakukan (misalnya i<=20 berarti perulangan akan tetap terus dilakukan selama nilai variabel i masih lebih kecil atau sama dengan 20). Peningkatan adalah suatu ungkapan yang merubah nilai- nilai variabel pengontrol perulangan seetiap saat perulangan dilakukan (misal i++ berarti nilai i ditambah dengan 1 setiap saat perulangan dilakukan) . Contoh program :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________76
Output :
Berikut ini akan diberikan beberapa contoh perulangan dengan statemen for dan variasinya: 1.Perulangan Positif Merupakan perulangan yang peningkatannya positif untuk variabel pengontrol perulangannya (misal i++) Contoh :
Keterangan: Program di atas variabel i dimulai dari -2 dan perulangan dihentikan setelah nilai 3 dengan peningkatan nilai 1, sehingga variabel akan bernilai -2,-1,0,1,2, dan 3. Contoh :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________77
Keterangan: Program di atas dimulai dari i=0 dan diakhiri nilai i<=10 dengan peningkatan 3 2. Perulangan Negatif Contoh :
3. Perulangan dengan Blok Statemen Perulangan dengan blok statemen memungkinkan sejumlah statemen di dalam blok diproses berulang-ulang. Contoh :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________78
Output :
Keterangan : Banyaknya perulangan adalah sebanyak n kali dan n adalah banyaknya data. 4. for tanpa nilai awal Nilai awal dari variabel perulangan tidak harus ada di statemen for, tetapi dapat ditentukan sebelum statemen ini. Contoh :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________79
5. for tanpa peningkatan Contoh :
6. Perulangan tanpa nilai awal, akhir, dan peningkatan Contoh :
5.1.2.2 Statemen While Bentuk umum dari statemen while adalah sebagai berikut :
Proses perulangan akan dilakukan jika kondisi yang diseleksi di statemen while masih bernilai benar, dan perulangan akan dihentikan jika kondisinya sudah bernilai salah. Contoh :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________80
Output :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________81
5.1.2.3. Statemen do-while Bentuk umum dari perulangan ini adalah :
Perbedaan utama antara statemen do while dengan statemen while adalah letak kondisi yang akan diseleksinya. Untuk while kondisi yang diseleksi terletak di awal lingkup perulangan while, kondisinya harus benar dahulu. Contoh :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________82
Hasil :
5.2. Larik Array merupakan kumpulan dari nilai- nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Dilihat dari dimensinya array dapat dibagi menjadi Array dimensi satu, array dimensi dua dan array multi-dimensi. 5.2.1 Array Dimensi Satu ?Setiap elemen array dapat diakses melalui indeks ?Indeks array secara default dimulai dari 0. ?Deklarasi Array
Bentuk umum :
Contoh : Nilai[0] Nilai[1] Nilai[2] Nilai[3] Nilai[4] int Nilai [5];
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________83
Contoh Program :
Contoh aplikasi array satu dimensi:
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________84
2.1. Array Dimensi Dua •
Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom. Bentuknya dapat berupa matriks atau tabel.
? Deklarasi array :
Contoh : Int X[3][4];
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________85
•
Cara mengakses array : Untuk mengakses array, misalnya kita ingin mengisi elemen array baris 2 kolom 3 dengan 10 maka perintahnya adalah sbb :
•
Untuk mengisi dan menampilkan isi elemen array ada dua cara yaitu : -
Row Major Order (secara baris per baris)
-
Column Major Order (secara kolom per kolom)
Contoh Program 1 :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________86
Contoh aplikasi Array untuk menghitung invers suatu matriks dengan ukuran m x n dengan metode Gauss-Jordan :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________87
1.3 Array Multidimensi •
Array multi-dimensi merupakan array yang mempunyai ukuran lebih dari dua. Bentuk pendeklarasian array sama saja dengan array dimensi satu maupun array dimensi dua. Bentuk umumnya yaitu :
Contoh :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________88
Contoh Program :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________89
5.3. Pointer 5.3.1 Pengertian Pointer •
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam memori. Contoh, jika sebuah variabel berisi alamat dari variabel lain, variabel pertama dikatakan menunjuk ke variabel kedua.
•
Operator Pointer ada dua, yaitu : - Operator & Operator & bersifat unary (hanya memerlukan satu operand saja). Operator & menghasilkan alamat dari operandnya. - Operator * Operator * bersifat unary (hanya memerlukan satu operand saja). Operator * menghasilkan nilai yang berada pada sebuah alamat.
5.3.2 Deklarasi Pointer Seperti halnya variabel yang lain, variabel pointer juga harus dideklarasikan terlebih dahulu sebelum digunakan. Bentuk Umum :
Tipe data pointer mendefinisikan tipe dari obyek yang ditunjuk oleh pointer. Secara teknis, tipe apapun dari pointer dapat menunjukkan lokasi (dimanapun) dalam memori. Bahkan operasi pointer dapat dilaksanakan relatif terhadap tipe dasar apapun yang ditunjuk. Contoh, ketika kita mendeklarasikan pointer dengan tipe int*, kompiler akan menganggap alamat yang ditunjuk menyimpan nilai integer walaupun sebenarnya bukan (sebuah pointer int* selalu menganggap bahwa ia menunjuk ke sebuah obyek bertipe integer, tidak peduli isi sebenarnya). Karenanya, sebelum mendeklarasikan sebuah pointer, pastikan tipenya sesuai dengan tipe obyek yang akan ditunjuk.
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________90
Contoh :
Contoh Program :
5.3.3. Operasi Pointer •
Operasi Penugasan Suatu variable pointer seperti halnya variable yang lain, juga bisa mengalami operasi penugasan. Nilai dari suatu variable pointer dapat disalin ke variable pointer yang lain.
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________91
•
Operasi Aritmatika Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja. Operasi yang biasa dilakukan adalah operasi penambahan dan pengurangan. Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya
(index
selanjutnya)
dalam
memori.
pengurangan. Contoh Program :
•
Operasi Logika Suatu pointer juga dapat dikenai operasi logika. Contoh Program :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Begitu
juga
operasi
Bab 5 – Perulangan dan Array________________________________________________92
•
Pointer dan String
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________93
Contoh Program 2 :
•
Pointer Menunjukkan Suatu Array Contoh program :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________94
•
Memberi Nilai Array Dengan Pointer Contoh Program :
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________95
LATIHAN 1. Buatlah sebuah program untuk menginput, menghitung dan mencetak perkalian matriks 3 x 3 2. Apa yang tercetak dari program berikut ini :
3. Apa yang tercetak dari program-program berikut ini ? Program 1
Modul Praktikum Algoritma & Pemrograman 3 – IT045123
Bab 5 – Perulangan dan Array________________________________________________96
Program 2
Modul Praktikum Algoritma & Pemrograman 3 – IT045123