la #1 strukdat - array sederhana

38
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

Upload: -

Post on 06-Aug-2015

67 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: LA #1 StrukDat - Array Sederhana

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

Page 2: LA #1 StrukDat - Array Sederhana

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

Page 3: LA #1 StrukDat - Array Sederhana

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

Page 4: LA #1 StrukDat - Array Sederhana

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

Page 5: LA #1 StrukDat - Array Sederhana

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

Page 6: LA #1 StrukDat - Array Sederhana

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

Page 7: LA #1 StrukDat - Array Sederhana

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

Page 8: LA #1 StrukDat - Array Sederhana

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

Page 9: LA #1 StrukDat - Array Sederhana

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

Page 10: LA #1 StrukDat - Array Sederhana

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

Page 11: LA #1 StrukDat - Array Sederhana

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

Page 12: LA #1 StrukDat - Array Sederhana

}}

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

Page 13: LA #1 StrukDat - Array Sederhana

(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

Page 14: LA #1 StrukDat - Array Sederhana

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

Page 15: LA #1 StrukDat - Array Sederhana

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

Page 16: LA #1 StrukDat - Array Sederhana

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

Page 17: LA #1 StrukDat - Array Sederhana

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

Page 18: LA #1 StrukDat - Array Sederhana

(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

Page 19: LA #1 StrukDat - Array Sederhana

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

Page 20: LA #1 StrukDat - Array Sederhana

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

Page 21: LA #1 StrukDat - Array Sederhana

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

Page 22: LA #1 StrukDat - Array Sederhana

OUTPUT PROGRAM II

Halaman| 22

Page 23: LA #1 StrukDat - Array Sederhana

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

Page 24: LA #1 StrukDat - Array Sederhana

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

Page 25: LA #1 StrukDat - Array Sederhana

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

Page 26: LA #1 StrukDat - Array Sederhana

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