la #1 strukdat - array sederhana
TRANSCRIPT
LAPORAN AKHIR PRAKTIKUM
Mata Praktikum : Struktur Data
Kelas : 2IA18
Praktikum ke- : 1
Tanggal : 16 Oktober 2012
Materi : OOP (Object Oriented Programming)
NPM : 54411484
Nama : Mike Pistar Namora
Ketua Asisten : Dwi Kartinah
Nama Asisten : Muhammad Agus M.
Paraf Asisten :
Jumlah Lembar : 25 (Dua puluh lima) lembar
LABORATORIUM INFORMATIKA
UNIVERSITAS GUNADARMA
2012
LISTING PROGRAM I
Keterangan
Nama Program : ArraySederhana.c
Tujuan Program : Membuat program peng-input data dari user berupa jumlah elemen array yang ingin dijumlahkan nilainya. Setelah jumlah elemen di--input, lalu muncul prompt lagi untuk meng-input nilai-nilai elemen sebanyak jumlah data tadi, kemudian dijumlahkan dan hasilnya dicetak ke layar.
LOGIKA PROGAM I
Halaman| 2
1. #include <stdio.h>#include <conio.h>
Logika : Kedua statement di atas merupakan pre-processor directive berfungsi
untuk mengambil pustaka header yang bernama stdio.h dan yang
berguna sebagai penyedia perintah printf() dan scanf(), dan pustaka
header conio.h yang berguna sebagai penyedia perintah getch() yang
akan dipergunakan ke dalam program ini. Kata include dalam
kedua statement berarti memasukkan atau mengambil.
2. int main(){
Logika : Statement int main() berguna untuk mendeklarasikan fungsi
utama di mana terdapat rutin program dilaksanakannya tujuan
program utama. Di dalam statement ini (ditunjukkan dengan adanya
tanda kurung), terdapat pernyataan-pernyataan sebagai berikut :
3. int indeks[100], jumlah=0, e, j;
Logika : Statement ini berguna untuk mendeklarasikan variabel indeks yang
berupa array satu dimensi yang memiliki 100 buah indeks elemen,
kemudian variabel jumlah yang bernilai integer 0, serta variabel
bernama e dan j. Sintaks int berfungsi sebagai pendeklarasi variabel
yang nilainya berupa nilai integer (bilangan bulat).
Keempat variabel ini nantinya akan dipergunakan sebagai penyimpan
nilai-nilai yang akan diolah program.
4. printf("\n PROGRAM ARRAY SEDERHANA");printf("\n =======================");
Logika : Statement ini bergunasebagai pemberi teks judul “PROGRAM
ARRAY SEDERHANA” dalam program saat sedang runtime.
Kemudian terdapat pencetakan string
“=======================” yang berguna sebagai pemberi
garis untuk memperindah tampilan program.
Adapun sintaks printf berfungsi sebagai pencetak string dengan
recognition bagi karakter spesial yang ingin disertakan pada layar.
Halaman| 3
Dalam statement di atas, karakter spesial yang dipakai adalah “\
n”yang diletakkan di depan masing-masing kedua string agar
memberi linefeed (baris kosong) sebelum keduanya dicetak ke layar.
5. printf("\n Masukkan jumlah elemen array : "); (a)scanf("%d", &e); (b)
Logika : (a) Statement ini bergunasebagai pencetak string “Masukkan
jumlah
elemen array : ” pada layar, sekaligus karakter spesial “\n” di
depan string tersebut yang pada layar akan berupa linefeed (baris
spasi kosong). Adapun string ini berguna sebagai prompt bagi
user untuk memasukkan nilai integer yang akan dipergunakan
sebagai jumlah elemen array yang akan dijumlahkan pada akhir
program nanti.
(b) Dan statement inilah yang berguna untuk meng-input-kan nilai
integer tersebut. Adapun perintah scanf berguna sebagai peng-
input data dari user. Pada statement ini terdapat karakter spesial
“%d” yang berfungsi untuk membaca nilai integer, jadi hanya
nilai integer saja yang bisa dimasukkan user untuk input jumlah
elemen array ini. Kemudian terdapat sintaks “&e” sebagai
pembantu perintah scanf yang berguna untuk memasukkan
input dari user ke dalam variabel e yang telah dideklarasikan
sebelumnya.
Jadi, inti dari kedua statement di atas adalah untuk memunculkan
prompt bagi user untuk memasukkan nilai integer sebagai jumlah
elemen array, kemudian di-input oleh program dan dimasukkan ke
dalam variabel e.
6. printf("\n Masukkan nilai : ");printf("\n =================\n");
Logika : Statement ini bergunasebagai pencetak string “Masukkan nilai : ”
yang berguna sebagai pemberi tanda bagi user untuk memasukkan
nilai-nilai bagi elemen array yang telah ditentukan jumlah elemennya
oleh user sebelumnya. String ini hanya pemberi tanda, bukan sebagai
Halaman| 4
prompt yang mengharuskan user untuk memasukkan input saat string
ini tercetak.
Kemudian terdapat pencetakan string
“=======================” yang berguna sebagai pemberi
garis untuk memperindah tampilan program.
Adapun sintaks printf berfungsi sebagai pencetak string dengan
recognition bagi karakter spesial yang ingin disertakan pada layar.
Dalam statement di atas, karakter spesial yang dipakai adalah “\n”
yang diletakkan di depan masing-masing kedua string agar memberi
linefeed (baris kosong) sebelum keduanya dicetak ke layar.
7. for (j=0;j<e;j++)(a)
{(b)
printf("Indeks [%d] = ", j);(c)
scanf("%d", &indeks[j]);(d)
jumlah += indeks[j]; (e)
}
(f)
Logika : Di bagian ini terdapat sebuah blok struktur perulangan for, yang akan
digunakan sebagai peng-input data elemen dari user sebanyak jumlah
yang telah ditentukan pula oleh user sebelumnya, dan dimasukkan ke
dalam suatu variabel untuk selanjutnya langsung dijumlahkan satu
sama lain terus-menerus sebanyak jumlah elemen itu lalu
diinisiasikan lagi ke suatu variabel lain untuk selanjutnya dicetak ke
layar.
Adapun kegunaan dari masing-masing statement di atas adalah
sebagai berikut :
(a) Mendefinisikan struktur perulangan for, yang memiliki batas
selama nilai dari variabel j adalah 0 dan terus bertambah sebanyak
+1 nilai per perulangan hingga sampai 1 nilai dibawah nilai yang
terdapat pada variabel e (nilai variabel e merupakan jumlah
elemen array yang ditentukan user sebelumnya), maka akan
Halaman| 5
melakukan perulangan eksekusi statement-statement sebagai
berikut :
(c) Mencetak prompt “Indeks [%d] : ” pada layar. Adapun
prompt ini berguna untuk memberitahukan pada user agar
memasukkan nilai integer bagi elemen array berurutan sesuai
dengan indeksnya. Pada statement ini terdapat karakter spesial
“%d” yang berfungsi untuk membaca nilai integer. Kemudian
terdapat sintaks di belakangnya, yaitu j yang berarti bahwa
karakter spesial “%d” mengambil nilai integer dari variabel j
yang tadi didefinisikan nilainya melalui statement (a).
Jadi, misalnya pada perulangan pertama, prompt ini akan
tercetak seperti berikut :
“Indeks [0] : ”
Dan pada perulangan kedua, akan terlihat seperti :
“Indeks [1] : ”
Jumlah indeks akan terus bertambah hingga batas perulangan
struktur for ini akan habis, yakni hingga -1 nilai dari variabel
e.
(d) Dan statement inilah yang berguna untuk meng-input-kan nilai
integer tersebut. Adapun perintah scanf berguna sebagai
peng-input data dari user. Pada statement ini terdapat karakter
spesial “%d” yang berfungsi untuk membaca nilai integer,
jadi hanya nilai integer saja yang bisa dimasukkan user untuk
input nilai elemen array ini. Kemudian terdapat sintaks
“&indeks[j]” sebagai pembantu perintah scanf yang
berguna untuk memasukkan input dari user ke dalam variabel
indeks[] yang telah dideklarasikan sebelumnya. Adapun
elemen array [j] yang terdapat pada sintaks ini berarti bahwa
nilai elemen yang user inputkan ke dalam variabel array yang
bernama indeks, akan sesuai dengan urutan indeks array pada
variabel ini pada masing-masing perulangan.
Jadi, misalnya pada perulangan pertama, compiler akan
menyimpan nilai yang di-input oleh user pada indeks ke-0
Halaman| 6
array pada variabel indeks, lalu pada perulangan kedua akan
menyimpan nilai lagi pada indeks ke-1 array pada variabel
indeks, dan begitu seterusnya hingga batas yang ditentukan
user.
nilai pertama nilai kedua nilai ketiga nilai keempat nilai kelima
indeks ke-0 indeks ke-1 indeks ke-2 indeks ke-3 indeks ke-4
(Ini asumsi kalau jumlah elemen yang user tentukan, adalah 5
buah)
Nilai elemen akan terus di-input hingga batas perulangan
struktur for ini akan habis, yakni hingga -1 nilai dari variabel
e.
Jadi, inti dari kedua statement di atas adalah untuk memunculkan
prompt bagi user untuk memasukkan nilai integer sebagai nilai
elemen array sebanyak yang telah ditentukan user sebelumnya,
kemudian di-input oleh program dan dimasukkan ke dalam
variabel indeks[] yang mengikuti urutan nilai variabel j.
(e)Statement ini sebetulnya dapat mempunyai bentuk lain seperti
ini :
jumlah = jumlah + indeks[j];
yang berarti bahwa variabel jumlah yang telah dideklarasikan
sebelumnya di awal rutin program akan berisi nilai hasil
pertambahan nilai dari dirinya sendiri, ditambah nilai dari
variabel indeks[] yang mengikuti urutan nilai variabel j.
Algoritmanya seperti ini, misalkan pada perulangan pertama,
setelah user memasukkan input nilai elemen yang diproses
oleh statement (c) dan (d), maka melalui statement (e) ini
input-an nilai tersebut akan diproses ditambah dengan nilai
dasar variabel jumlah (yaitu 0, nilai ini telah ditentukan saat
pendeklarasian di awal program), dan dimasukkan ke dalam
variabel jumlah itu sendiri. Ilustrasinya seperti ini :
jumlah = jumlah + indeks[j];
jumlah = nilai_dasar_jumlah + nilai_indeks ke-0
Halaman| 7
jumlah = 0 + (misalkan) 1
jumlah = 1
dan pada perulangan kedua, hal seperti di atas juga berlaku
demikian.
jumlah = jumlah + indeks[j];
jumlah = nilai_jumlah_sebelumnya + nilai_indeks ke-1
jumlah = 1 + (misalkan) 2
jumlah = 3
begitu seterusnya hingga batas perulangan struktur for ini
akan habis, yakni hingga -1 nilai dari variabel e.
Demikian statement-statement dalam perulangan for ini berguna
untuk meng-input nilai elemen dan langsung menjumlahkannya.
Adapun terdapat statement selanjutnya yang berada di luar perulangan
for ini yang berguna untuk mencetak total penjumlahan nilai elemen-
elemen array ini ke layar.
8. printf("\n\n Hasil penjumlahan elemen array : %d", jumlah); (a)
getch();
(b)
Logika : (a) Statement ini bergunasebagai pencetak string “Hasil
penjumlahan elemen array : %d” yang berguna untuk
memperlihatkan hasil penjumlahan nilai elemen-elemen array tadi
pada user, sekaligus dua karakter spesial “\n” di depan string
tersebut yang pada layar akan berupa dua linefeed (baris spasi
kosong). Pada statement ini terdapat karakter spesial “%d” yang
berfungsi untuk membaca nilai integer. Kemudian terdapat sintaks
di belakangnya, yaitu jumlah yang berarti bahwa karakter
spesial “%d” mengambil nilai integer dari variabel jumlah yang
menampung hasil –hasil penjumlahan nilai elemen array
sebelumnya.
(b) Perintah ini merupakan fungsi penahan tampilan program agar
tidak langsung menutup diri saat tujuan program selesai
dilakukan.
Halaman| 8
Fungsinya sama seperti readln(); di dalam bahasa
pemrograman Pascal. Setelah user menekan tombol Enter pada
keyboard, maka tampilan baru akan menutup diri.
Dengan demikian, berakhirlah penjelasan rutin program penjumlahan array sederhana ini.
LISTING PROGRAM II
Keterangan
Halaman| 9
Nama Program : Matriks.c
Tujuan Program : Membuat program peng-input nilai integer yang akan dimasukkan ke dalam dua array yang diimplementasikan sebagai matriks a dan matriks b, lalu menjumlahkan masing-masing elemen dari kedua matriks tersebut.
LOGIKA PROGRAM II
1. #include <stdio.h>#include <conio.h>
Logika : Kedua statement di atas merupakan pre-processor directive berfungsi
untuk mengambil pustaka header yang bernama stdio.h dan yang
berguna sebagai penyedia perintah printf() dan scanf(), dan pustaka
header conio.h yang berguna sebagai penyedia perintah getch() yang
akan dipergunakan ke dalam program ini. Kata include dalam
kedua statement berarti memasukkan atau mengambil.
2. int main(){
Logika : Statement int main() berguna untuk mendeklarasikan fungsi
utama di mana terdapat rutin program dilaksanakannya tujuan
program utama. Di dalam statement ini (ditunjukkan dengan adanya
tanda kurung), terdapat pernyataan-pernyataan sebagai berikut :
3. typedef struct{ int A[4][2]; int B[4][2]; int C[4][2];} Matriks;
Logika : Statement ini berguna untuk mendeklarasikan record (atau struct
dalam bahasa pemrograman C), dengan sintaks typedef struct.
Adapun isi dari struct ini antara lain variabel array dua dimensi
bertipe integer yang bernama A, B, dan C yang masing-masing
memiliki 4 elemen di dimensi pertamanya, dan 2 elemen di dimensi
Halaman| 10
keduanya. Adapun ketiga variabel ini akan tersimpan dalam sebuah
struct yang bernama Matriks.
4. int x, y;
Logika : Statement ini berguna untuk mendeklarasikan variabel bernama x dan
y yang akan digunakan sebagai titik tolak urutan elemen matriks
dalam struktur-struktur perulangan yang akan dilakukan oleh program
ini. Jadi, kedua variabel ini akan menyimpan nilai yang berubah oleh
struktur perulangan tersebut, dan menjadi urutan elemen matriks saat
peng-input-an dan pencetakan output. Adapun Sintaks int berfungsi
sebagai pendeklarasi variabel yang nilainya berupa nilai integer
(bilangan bulat).
5. Matriks mat;
Logika : Statement ini berguna untuk mendeklarasikan variabel baru bernama
mat, yang berguna sebagai perantara bagi rutin program untuk dapat
mengakses nilai record dari struct Matriks. Adapun maksud dari
perantara itu, adalah ketika suatu statement ingin mengakses variabel
A yang merupakan salah satu field dari struct Matriks, dapat
menggunakan sintaks sebagai berikut :
C = mat.A*2
Hal seperti ini memang perlu dilakukan dalam pemrograman bahasa
C, karena konsepnya yang demikian bila ingin melibatkan struct
dalam suatu program.
6. printf("\nMengisi elemen Matriks A : \n");(a)
for(x=0; x<4; x++)(b)
{ for(y=0; y<2; y++)
(c) { printf("A[%d][%d] = ", x, y);
(d) scanf("%d", &mat.A[x][y]);
(e)
Halaman| 11
}}
Logika : (a) Statement ini bergunasebagai pencetak string “Mengisi elemen
Matriks A : ” yang berguna sebagai pemberi tanda bagi user
untuk memasukkan nilai-nilai bagi elemen matriks A. String ini
hanya pemberi tanda, bukan sebagai prompt yang mengharuskan
user untuk memasukkan input saat string ini tercetak.
Adapun sintaks printf berfungsi sebagai pencetak string dengan
recognition bagi karakter spesial yang ingin disertakan pada layar.
Dalam statement di atas, karakter spesial yang dipakai adalah “\n”
yang diletakkan di depan masing-masing kedua string agar
memberi linefeed (baris kosong) sebelum keduanya dicetak ke
layar.
Selanjutnya, di sini terdapat sebuah blok struktur perulangan for,
yang akan digunakan sebagai peng-input data elemen matriks A
sebanyak nilai elemen pada pendeklarasian variabel A tadi, lalu
dimasukkan ke dalam suatu variabel untuk selanjutnya diproses lebih
lanjut.
Adapun kegunaan dari masing-masing statement di atas adalah
sebagai berikut :
(b) Mendefinisikan struktur perulangan for, yang memiliki batas
selama nilai dari variabel x (yang akan dijadikan sebagai nilai
baris matriks A) adalah 0 dan terus bertambah sebanyak +1 nilai
per perulangan hingga sampai 1 nilai dibawah 4 (nilai integer 4
merupakan batas elemen dimensi pertama dari variabel A), maka
akan melakukan perulangan eksekusi statement-statement sebagai
berikut :
(c) Mendefinisikan lagi struktur perulangan for, yang memiliki
batas selama nilai dari variabel y (yang akan dijadikan sebagai
nilai kolom matriks A) adalah 0 dan terus bertambah
sebanyak +1 nilai per perulangan hingga sampai 1 nilai
dibawah 2 (nilai integer 2 merupakan batas elemen dimensi
kedua dari variabel A), maka akan melakukan perulangan
eksekusi statement-statement sebagai berikut :
Halaman| 12
(d) Mencetak prompt “A[%d][%d] = ” pada layar. Adapun
prompt ini berguna untuk memberitahukan pada user agar
memasukkan nilai integer bagi elemen matriks berurutan
sesuai dengan indeksnya. Pada statement ini terdapat dua
karakter spesial “%d” yang berfungsi untuk membaca
nilai integer. Kemudian terdapat sintaks di belakangnya,
yaitu x dan y yang berarti bahwa dua karakter spesial
“%d” tadi mengambil nilai integer dari variabel x (nilai
baris) dan y (nilai kolom) yang tadi didefinisikan nilainya
melalui statement (b) dan statement (c). Dan karena
variabel A ini merupakan array dua dimensi, maka
melalui kedua perulangan tadi, elemen-elemen array
variabel A ini akan diputar terus dari awal hingga
mencapai batas yang ditentukan.
Ilustrasinya :
for pertama(baris)
for kedua(kolom)
output
nilai x = 0 nilai y = 0 A[0][0] =nilai y = 1 A[0][1] =
nilai x = 1 nilai y = 0 A[1][0] =nilai y = 1 A[1][1] =
nilai x = 2 nilai y = 0 A[2][0] =nilai y = 1 A[2][1] =
nilai x = 3 nilai y = 0 A[3][0] =nilai y = 1 A[3][1] =
Jadi, misalnya pada perulangan pertama, prompt ini akan
tercetak seperti berikut :
“A[0][0] = ”
Dan pada perulangan kedua, akan terlihat seperti :
“A[0][1] = ”
Jumlah indeks kolom matriks akan terus bertambah hingga
batas perulangan struktur for kedua akan habis, lalu struktur
for pertama akan melakukan perulangan kembali hingga
seluruh elemen di-input-kan oleh user.
(e) Dan statement inilah yang berguna untuk meng-input-kan nilai
Halaman| 13
integer tersebut. Adapun perintah scanf berguna sebagai
peng-input data dari user. Pada statement ini terdapat karakter
spesial “%d” yang berfungsi untuk membaca nilai integer,
jadi hanya nilai integer saja yang bisa dimasukkan user untuk
input nilai elemen array ini. Kemudian terdapat sintaks
“&mat.A[x][y] sebagai pembantu perintah scanf yang
berguna untuk memasukkan input dari user ke dalam variabel
array dua dimensi A yang dibaca melalui variabel tumpangan
mat yang telah dideklarasikan sebelumnya. Adapun elemen
array [x] dan [y] yang terdapat pada sintaks ini berarti bahwa
nilai elemen yang user inputkan ke dalam variabel A tadi,
akan sesuai dengan urutan indeks array pada variabel ini pada
masing-masing perulangan.
Jadi, inti dari keempat statement di atas adalah untuk
memunculkan prompt bagi user untuk memasukkan nilai integer
sebagai nilai elemen matriks A sebanyak 4 baris x 2 kolom,
kemudian di-input oleh program dan dimasukkan ke dalam
variabel A[][] yang mengikuti urutan nilai variabel x dan variabel
y yang dimanfaatkan sebagai batas dari struktur for pertama dan
kedua tadi.
7. printf("\nMengisi elemen Matriks B : \n");(a)
for(x=0; x<4; x++)(b)
{ for(y=0; y<2; y++)
(c) { printf("B[%d][%d] = ", x, y);
(d) scanf("%d", &mat.B[x][y]);
(e) }}
Logika : (a) Statement ini bergunasebagai pencetak string “Mengisi elemen
Matriks B : ” yang berguna sebagai pemberi tanda bagi user untuk
memasukkan nilai-nilai bagi elemen matriks B. String ini hanya
Halaman| 14
pemberi tanda, bukan sebagai prompt yang mengharuskan user
untuk memasukkan input saat string ini tercetak.
Adapun sintaks printf berfungsi sebagai pencetak string dengan
recognition bagi karakter spesial yang ingin disertakan pada layar.
Dalam statement di atas, karakter spesial yang dipakai adalah “\n”
yang diletakkan di depan masing-masing kedua string agar
memberi linefeed (baris kosong) sebelum keduanya dicetak ke
layar.
Selanjutnya, di sini terdapat sebuah blok struktur perulangan for,
yang akan digunakan sebagai peng-input data elemen matriks B
sebanyak nilai elemen pada pendeklarasian variabel B tadi, lalu
dimasukkan ke dalam suatu variabel untuk selanjutnya diproses lebih
lanjut.
Adapun kegunaan dari masing-masing statement di atas adalah
sebagai berikut :
(b) Mendefinisikan struktur perulangan for, yang memiliki batas
selama nilai dari variabel x (yang akan dijadikan sebagai nilai
baris matriks B) adalah 0 dan terus bertambah sebanyak +1 nilai
per perulangan hingga sampai 1 nilai dibawah 4 (nilai integer 4
merupakan batas elemen dimensi pertama dari variabel B), maka
akan melakukan perulangan eksekusi statement-statement sebagai
berikut :
(c) Mendefinisikan lagi struktur perulangan for, yang memiliki
batas selama nilai dari variabel y (yang akan dijadikan sebagai
nilai kolom matriks B) adalah 0 dan terus bertambah
sebanyak +1 nilai per perulangan hingga sampai 1 nilai
dibawah 2 (nilai integer 2 merupakan batas elemen dimensi
kedua dari variabel B), maka akan melakukan perulangan
eksekusi statement-statement sebagai berikut :
(d) Mencetak prompt “B[%d][%d] = ” pada layar. Adapun
prompt ini berguna untuk memberitahukan pada user agar
memasukkan nilai integer bagi elemen matriks berurutan
sesuai dengan indeksnya. Pada statement ini terdapat dua
karakter spesial “%d” yang berfungsi untuk membaca
Halaman| 15
nilai integer. Kemudian terdapat sintaks di belakangnya,
yaitu x dan y yang berarti bahwa dua karakter spesial
“%d” tadi mengambil nilai integer dari variabel x (nilai
baris) dan y (nilai kolom) yang tadi didefinisikan nilainya
melalui statement (b) dan statement (c). Dan karena
variabel B ini merupakan array dua dimensi, maka
melalui kedua perulangan tadi, elemen-elemen array
variabel B ini akan diputar terus dari awal hingga
mencapai batas yang ditentukan.
Ilustrasinya :
for pertama(baris)
for kedua(kolom)
output
nilai x = 0 nilai y = 0 B[0][0] =nilai y = 1 B[0][1] =
nilai x = 1 nilai y = 0 B[1][0] =nilai y = 1 B[1][1] =
nilai x = 2 nilai y = 0 B[2][0] =nilai y = 1 B[2][1] =
nilai x = 3 nilai y = 0 B[3][0] =nilai y = 1 B[3][1] =
Jadi, misalnya pada perulangan pertama, prompt ini akan
tercetak seperti berikut :
“B[0][0] = ”
Dan pada perulangan kedua, akan terlihat seperti :
“B[0][1] = ”
Jumlah indeks kolom matriks akan terus bertambah hingga
batas perulangan struktur for kedua akan habis, lalu struktur
for pertama akan melakukan perulangan kembali hingga
seluruh elemen di-input-kan oleh user.
(e) Dan statement inilah yang berguna untuk meng-input-kan nilai
integer tersebut. Adapun perintah scanf berguna sebagai
peng-input data dari user. Pada statement ini terdapat karakter
Halaman| 16
spesial “%d” yang berfungsi untuk membaca nilai integer,
jadi hanya nilai integer saja yang bisa dimasukkan user untuk
input nilai elemen array ini. Kemudian terdapat sintaks
“&mat.A[x][y] sebagai pembantu perintah scanf yang
berguna untuk memasukkan input dari user ke dalam variabel
array dua dimensi B yang dibaca melalui variabel tumpangan
mat yang telah dideklarasikan sebelumnya. Adapun elemen
array [x] dan [y] yang terdapat pada sintaks ini berarti bahwa
nilai elemen yang user inputkan ke dalam variabel B tadi,
akan sesuai dengan urutan indeks array pada variabel ini pada
masing-masing perulangan.
Jadi, inti dari keempat statement di atas adalah untuk
memunculkan prompt bagi user untuk memasukkan nilai integer
sebagai nilai elemen matriks B sebanyak 4 baris x 2 kolom,
kemudian di-input oleh program dan dimasukkan ke dalam
variabel B[][] yang mengikuti urutan nilai variabel x dan variabel
y yang dimanfaatkan sebagai batas dari struktur for pertama dan
kedua tadi.
8. //prosesfor(x=0; x<4; x++)
(a){ for(y=0; y<2; y++)
(b) { mat.C[x][y] = mat.A[x][y] + mat.B[x][y];
(c) }}
Logika : Di sini terdapat sebuah komentar //proses yang menandakan bahwa di
sini terdapat statement-statement yang berguna untuk memproses
kedua matriks tadi, dan juga blok struktur perulangan for, yang akan
digunakan sebagai pemrosesan penjumlahan nilai elemen kedua
matriks, lalu dimasukkan ke dalam suatu variabel untuk selanjutnya
diproses lebih lanjut.
Adapun kegunaan dari masing-masing statement di atas adalah
sebagai berikut :
Halaman| 17
(a) Mendefinisikan struktur perulangan for, yang memiliki batas
selama nilai dari variabel x (yang akan dijadikan sebagai nilai
baris kedua matriks) adalah 0 dan terus bertambah sebanyak +1
nilai per perulangan hingga sampai 1 nilai dibawah 4 (nilai
integer 4 merupakan batas elemen dimensi pertama dari variabel
A dan B), maka akan melakukan perulangan eksekusi statement-
statement sebagai berikut :
(b) Mendefinisikan lagi struktur perulangan for, yang memiliki
batas selama nilai dari variabel y (yang akan dijadikan sebagai
nilai kolom kedua matriks) adalah 0 dan terus bertambah
sebanyak +1 nilai per perulangan hingga sampai 1 nilai
dibawah 2 (nilai integer 2 merupakan batas elemen dimensi
kedua dari variabel A dan B), maka akan melakukan
perulangan eksekusi statement :
(c) Terdapat statement mat.C[x][y] = mat.A[x][y] +
mat.B[x][y]; yang berguna untuk menjumlahkan nilai
elemen matriks A dengan nilai elemen matriks B, lalu
menginisiasikannya satu per satu (seturut perulangan)
pada elemen matriks C, yang digunakan untuk
menampung hasil penjumlahan kedua matriks tersebut.
Dan karena ketiga variabel A, B, dan C ini merupakan
variabel array dua dimensi, maka melalui kedua
perulangan tadi, elemen-elemen array ketiga variabel ini
akan diputar terus dari awal hingga mencapai batas yang
ditentukan.
Ilustrasinya :
for pertama(baris)
for kedua(kolom)
proses
nilai x = 0 nilai y = 0 A[0][0] + B[0][0] → C[0][0]nilai y = 1 A[0][1] + B[0][1] → C[0][1]
nilai x = 1 nilai y = 0 A[1][0] + B[1][0] → C[1][0]nilai y = 1 A[1][1] + B[1][1] → C[1][1]
nilai x = 2 nilai y = 0 A[2][0] + B[2][0] → C[2][0]nilai y = 1 A[2][1] + B[2][1] → C[2][1]
nilai x = 3 nilai y = 0 A[3][0] + B[3][0] → C[3][0]nilai y = 1 A[3][1] + B[3][1] → C[3][1]
Halaman| 18
Jumlah indeks kolom matriks akan terus bertambah
hingga batas perulangan struktur for kedua akan habis,
lalu struktur for pertama akan melakukan perulangan
kembali hingga seluruh elemen di-input-kan oleh user.
Jadi, inti dari ketiga statement ini adalah untuk memunculkan
prompt bagi user untuk menjumlahkan nilai elemen kedua
matriks yang di-input oleh user sebelumnya, kemudian
dimasukkan ke dalam variabel C[][] yang mengikuti urutan nilai
variabel x dan variabel y yang dimanfaatkan sebagai batas dari
struktur for pertama dan kedua tadi.
9. printf("\nHasil penjumlahan Matriks A + B : \n");(a)
for(x=0; x<4; x++)(b)
{ for(y=0; y<2; y++)
(c) { printf("C[%d][%d] = %d\n", x, y, mat.C[x][y]);
(d) }}
Logika : (a) Di sini terdapat pencetakan string “Hasil penjumlahan Matriks
A + B : ” sebagai pertanda bahwa akan terdapat pencetakan-
pencetakan hasil penjumlahan nilai kedua matriks tadi. Adapun
prosesnya dilakukan oleh statement-statement di bawahnya, dan
akan dijelaskan sebagai berikut :
(b) Mendefinisikan struktur perulangan for, yang memiliki batas
selama nilai dari variabel x (yang akan dijadikan sebagai nilai
baris matriks C) adalah 0 dan terus bertambah sebanyak +1 nilai
per perulangan hingga sampai 1 nilai dibawah 4 (nilai integer 4
merupakan batas elemen dimensi pertama dari variabel C), maka
akan melakukan perulangan eksekusi statement-statement sebagai
berikut :
(c) Mendefinisikan lagi struktur perulangan for, yang memiliki
batas selama nilai dari variabel y (yang akan dijadikan sebagai
Halaman| 19
nilai kolom matriks C) adalah 0 dan terus bertambah
sebanyak +1 nilai per perulangan hingga sampai 1 nilai
dibawah 2 (nilai integer 2 merupakan batas elemen dimensi
kedua dari variabel C), maka akan melakukan perulangan
eksekusi statement :
(d) Terdapat statement printf("C[%d][%d] = %d\n",
x, y, mat.C[x][y]); yang berguna untuk mencetak
string “C[%d][%d] = %d” sebagai pengantar dari hasil
penjumlahan nilai kedua matriks tadi. Adapun tiga
karakter spesial “%d” pada string di atas berfungsi untuk
mengambil nilai dari variabel x (sebagai urut baris), y
(sebagai urut kolom), dan nilai elemen matriks C.
Dan karena variabel C ini merupakan variabel array dua
dimensi, maka melalui kedua perulangan tadi, elemen-
elemen array variabel ini akan diputar terus dari awal
hingga mencapai batas yang ditentukan.
Ilustrasinya :
for pertama(baris)
for kedua(kolom)
output
nilai x = 0 nilai y = 0 C[0][0] = (hasil A[0][0] + B[0][0])nilai y = 1 C[0][1] = (hasil A[0][1] + B[0][1])
nilai x = 1 nilai y = 0 C[1][0] = (hasil A[1][0] + B[1][0])nilai y = 1 C[1][1] = (hasil A[1][1] + B[1][1])
nilai x = 2 nilai y = 0 C[2][0] = (hasil A[2][0] + B[2][0])nilai y = 1 C[2][1] = (hasil A[2][1] + B[2][1])
nilai x = 3 nilai y = 0 C[3][0] = (hasil A[3][0] + B[3][0])nilai y = 1 C[3][1] = (hasil A[3][1] + B[3][1])
Jumlah indeks kolom matriks akan terus bertambah
hingga batas perulangan struktur for kedua akan habis,
lalu struktur for pertama akan melakukan perulangan
kembali hingga seluruh elemen tercetak di layar.
Jadi, inti dari ketiga statement di atas adalah untuk mencapai
tujuan utama program, yakni mencetak output hasil penjumlahan
matriks yang nilai-nilai elemennya di-input oleh user, dengan
memanfaatkan struktur for pertama dan kedua tadi.
Halaman| 20
Dengan demikian, berakhirlah penjelasan rutin program penjumlahan elemen matriks ini.
OUTPUT PROGRAM I
1. Sebelum di-input jumlah elemen array-nya :
2. Setelah di-input jumlah elemen array dan nilai masing-masing elemennya :
Halaman| 21
OUTPUT PROGRAM II
Halaman| 22
RANGKUMAN MATERI ARRAY & OOP
1. Array
Array (larik) adalah suatu variabel yang merepresentasikan daftar atau kumpulan data
yang memiliki tipe data yang sama (homogen). Setiap data yang terdapat dalam array
menempati alamat memori yang berbeda serta disebut dengan elemen array. Selanjutnya
untuk mengakses nilai dari suatu array, kita akan menggunakan indeks dari array
tersebut.
Bentuk umum array (satu dimensi) :
tipe_data nama_array [banyak_elemen];
Contoh : int belajar [100];
a. Array konstanSama seperti pada variabel biasa, elemen array dapat juga dibuat konstan, artinya nilainya tidak dapat diubah selama program berjalan.Bentuk umumnya :
const tipe_data nama_array [N] = {nilai 1, nilai 2, …, nilai N};
Halaman| 23
Contoh : const int belajar [5] = { 56, 89, 24, 90, 10};
b. Array dua dimensiAdalah array yang memiliki dua buah subskrip, yaitu baris dan kolom Bentuk umumnya :
tipe_data nama_array [banyak_baris] [banyak_kolom];
Contoh : int belajar [2] [3];
2. StructStruct sering disebut record adalah sekumpulan variabel yang dapat terdiri dari beberapa
tipe data berbeda dan dikelompokkan dalam satu nama untuk kemudian diakses oleh
program.
Kehadiran struct akan sangat membantu untuk menyederhanakan masalah dalam
pengaturan data yang relatif kompleks, karena dalam struktur seorang programmer
diizinkan untuk mengelompokkan data-data yang saling berhubungan tersebut kedalam
suatu entitas yang terpisah .
Untuk mendefinisikan sebuah struct dalam bahasa C, kita harus menggunaka kata kunci
struct yang diikuti dengan nama struct, kemudian diikuti dengan blok yang diapit
dengan tanda “{ }” dimana isinya adalah field yang akan dideklarasikan dalam struct
tersebut.
Bentuk umumnya : typedef struct nama_struktur {
tipe_data field1;tipe_data field2;…
} var;
Contoh :
typedef struct sudut
{
int A;
int B;
} Z;
Halaman| 24
3. OOP (Object Oriented Programming)
OOP adalah pemrograman yang berorientasi pada obyek. Ide dasar pada pemrograman
berorientasi obyek (OOP) adalah mengkombinasikan data dan fungsi menjadi satu
kesatuan unit.
Unit ini dikenal dengan nama obyek (object). Secara garis besar, obyek meliputi data
(variabel, konstanta, dan lain-lain), prosedur, fungsi dan hubungannya satu dengan yang
lain, yang pada akhirnya menghasilkan elemen tipe baru. Dengan kata lain obyek adalah
pembentukan struktur data baru.
Ada 3 (tiga) karakteristik / prinsip dasar yang dikenal di dalam pemrograman
berorientasi obyek :
a. Encapsulation (Pengkapsulan)
Adalah langkah dimana dilakukan pengkombinasian data dengan berbagai
prosedur dan fungsi yang berhubungan dengannya. Contoh dari encapsulation
dapat dilihat dari pendefinisian objek mahasiswa yang dimana didalamnya
terdapat beberapa atribut / field seperti nama, npm, alamat dan mungkin field-field
yang lainnya.
b. Inheritance (Penurunan sifat)
Langkah ini bertujuan membentuk objek baru yang memiliki sifat sama atau mirip
dengan objek yang sudah ada sebelumnya. Dalam hal ini dikenal adanya obyek
induk (ancestor) dan obyek anak (descendant).
Halaman| 25
Kakek
Ayah
Adik Kakak
Objek Induk
Objek Turunan 1
Objek Turunan 2
= Objek Manusia
c. Polymorphism
Merupakan suatu konsep yang menyatakan sesuatu yang sama dapat memiliki
berbagai bentuk dan perilaku yang berbeda. Istilah ini sendiri berasal dari Bahasa
Yunani, yang berarti “mempunyai banyak bentuk”. Contoh penerapan
polymorphism pada suatu program ialah pada fungsi-fungsi standar yang
disediakan oleh compiler seperti contohnya untuk melakukan operasi penambahan
satu terhadap suatu variabel (increment) digunakan fungsi inc(), contoh lainnya
seperti penggunaan fungsi-fungsi untuk aritmatika seperti sin(), cos(), dan masih
banyak yang lainnya.
Halaman| 26