Download - Array (Larik) New Mar11
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 1/57
Array (Larik)
• Array yaitu yang berbaris-baris atauberderet-deret.
• Dalam pemrograman : deretan data yangmempunyai jenis atau tipe data yangsama.
• Nama Array mewakili deret data dia miliki.
– Contoh: A:array[1..5] of integer
• A adalah nama array
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 2/57
Definisi Array
• Adalah sebuah peubah (variabel) yangmempunyai struktur data yang dapatmenyimpan lebih dari satu nilai yang sejenis
(tipe data yang sama), setiap elemen diacumelalui indeksnya.
• Elemen array tersusun di memori secaraberurutan (sekuensial), oleh sebab itu indeks
array(larik) haruslah tipe data yang menyatakanketerurutan, misalnya integer atau karakter.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 3/57
Elemen Array
In
deks A
In
deks A
1 1 158
2 2 157
3 3 162
4 4 170
5 5 163Elemen Array kosong Elemen Array yg sudah
disi nilai
A[1], A[2], A[3], A[4], A[5]
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 4/57
Variabel array vs variabel biasaVariabel array Variabel biasa
Dapat menyimpan lebihdari satu nilai yg sejenis
Contoh:Deklarasi:
A:array[1..5] of integer
Hanya dapat menyimpansatu nilai walaupun sejenis
Contoh :Deklarasi:
A1 : integer
A2 : integerA3 : integer
A4 : integer
A5 : integer
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 5/57
Deklarasi Array• Sesuatu yang akan digunakan/dipakai dalam
suatu program terlebih harus dideklarasikan • Array (Larik) adalah struktur(susunan) data yg
statis, artinya elemen larik harus sudahdiketahui sebelum program dieksekusi. Jumlah
elemen larik tidak dapat diubah(ditambah/dikurangi) selama pelaksanaanprogram (program running).
• Mendeklarasikan larik di dalam bagian deklarasiberarti : – mendefinisikan banyaknya elemen larik (memesan tempat di
memori)
– mendefinisikan tipe elemen larik (menetapkan tipe nilai yg dapatdisimpan oleh larik (array).--> tipe data dapat berupa : tipedasar/sederhana (integer, real, char, string, Boolean), tipebentukan (tipe terstruktur :record)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 6/57
Deklarasi Array -next
• Array dari tipe data dasar : DEKLARASI :
A : array[1.50] of integer
NamaMhs : array[1..10] of string
NilaiUjian : array[1..75} of real• Sebagai tipe bentukan :
membuat/medefinisikan tipe dasar dengan nama sebuah tipe baru
DEKLARASI :
Type
LarikInt : array[1..100] of integer { nama tipe baru}
A:LarikInt {A adalah sebuah variable (peubah) array dg 100 elemen
dan bertipe integer}
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 7/57
Deklarasi Array -next
• Sebagai sebuah konstanta :
Mendefinisikan ukuran array (larik) sebagaisebuah konstanta
DEKLARASI:Const max= 10
N: array[1..max] of real
I: integer
ALGORITMA :For i:=1 to max do
read(n[i])
Endfor
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 8/57
Deklarasi Array -next
• Sebagai tipe bentukan terstruktur (RECORD) : – Tipe yang berbentuk rekaman (record ), rekaman disusun oleh satu atau
lebih field. Setiap field menyimpan data dari tipe dasar tertentu.
DEKLARASI :Const NMaks = 100Type Mahasiswa : record<
NIM : integerNAMA : StringIPK : real >
Type tabmhs : array[1..maks] of mahasiswaMhs : TabMhs
Penulisan elemen mhs :Mhs[2] {elemen kedua dari array mhs}Mhs[2].NIM {mengacu field NIM dari elemen kedua dari array Mhs}Mhs[2].IPK {mengacu field IPK dari elemen kedua dari array Mhs}
Pengsian Nilai per field :Mhs[i].NIM 102131002Mhs{i].NAMA ‘BUDI UTOMO’ Mhs[i].IPK 3.6
Menampilkan hasil per field :
Output([Mhs[i].NIM, Mhs[i].NAMA, Mhs[i].IPK)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 9/57
Acuan Elemen Array(Larik)
• Elemen Array diacu melalui indeksnya, Nilai Indeks
harus terdefinisi. – A[4] mengacu elemen ke 4 dari larik A
– NamaMhs[2] mengacu elemen ke 2 dari larik namaMhs
– A[i] mencau elemen ke-I dari larik A, asalkan nilai I sudahterdefinisi.
• Memanipulasi elemen array (larik) : – A[4] 10
– NamaMhs[i] ‘Achmad’
– Read(A[i])
If A[i] < 10 then
A[i] A[i] + 10
Else
.……
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 10/57
Pemrosesan Array (Larik)
• Elemen array diproses secara beruntun melalu indeks yang terurutmulai dari elemen pertama sampai elemen terakhir.
• Skema umum pemrosesan array:PROGRAM ProsesArray
DEKLARASI:Const max= 10Type LarikInt : array[1..max] of integer
A : LarikIntI: integer {indeks Array}
ALGORITMA :For i:=1 to max do
pemrosesan terhadap A[i] )
Endfor
• Pemrosesan pengisian nilai, pembacaan, penulisan, komputasi,dan manipilasi lainnya.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 11/57
Pengisian Elemen Array (Larik) :
• Secara Lansung : – Contoh
• A[i] 10• Inisialisasi :
For I
1 to n doA[i] IEndfor
• Dengan pembacaan (dari keyboard) :
– Contoh :For I 1 to n doread(A[i])
Endfor
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 12/57
Ukuran efektif Array (Larik)
• Jumlah elemen larik sudah ditentukan(statis), tapi belum tentu semuadigunakan/dipakai
• Jumlah elemen yang dipakai itulah yangdisebut dengan ukuran/jumlah efektifarray.
• Ukuran efektif dapat dicatat di dalampeubah (variabel) tertentu, misalnya n.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 13/57
tiga cara untuk menentukan jumlahelemen efektif dari array(Larik) :
1. Jika Jumlah elemen efektif ditentukan diawal
2. Jika Jumkah elemen efektif diketahui diakhir pembacaan
3. Jika Jumlah elemen efektif barudiketahui di akhir pembacaan (variasidari versi 2)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 14/57
Jumlah elemen efektif ditentukan di awal
Procedure BacaLarik(Output A : LarikInt, input n :integer)
{Mengisi elemen-elemen larik A[1..n] dengan pembacaan}
{K. Awal : n adalah jumlah elemen efektif larik, nilainya terdefinisi}
{ K. Akhir : setelah pembacaan, seluruh elemen larik A berisi nilai-nilai
yang dibaca dari piranti masukan (keyboard)}
DEKLARASI
i : integer {pencatat indeks larik }
ALGORITMA
for i 1 to n do
read(A[i])
endfor
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 15/57
Jumlah elemen efektif diketahui di akhir pembacaan
• Setiap kali selesai pembacaan satu buah elemen, akan dilakukankonfirmasi apakah masih ada lagi elemen larik yang akan dimasukkan,seperti statement di bawah ini :
Write(‘Lagi? (y/t)’) JIka jawabnya ‘y’ maka pembacaan dilanjutkan, jika ‘t’ maka prosespembacaan dihentikan. Jumlah elemen yang dibaca di catat di dalam suatuvariabel (peubah)
Procedure BacaLarik2(Output A: Larikint, Output n: integer){K. Awal : sembarang}{K. Akhir : sebanyak n buah elemen larik A berisi nilai-nilai yang dibaca; n
berisi jumlah elemen larik yang diisi}DEKLARASI
Jawab : charALGORITMA
N 0Repeat
n n + 1Read(A[n])Write(‘Lagi? (y/t)’) Read(jawab)
Until jawab = ‘t’
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 16/57
Jumlah elemen efektif baru diketahui di akhir pembacaan(variasi dari versi 2)
• Proses pembacaan dianggap selesai jika nilai yang dibaca adalahsuatu tanda, misalnya 9999.
Procedure BacaLarik3(output A, LArikint, output n : integr){mengisi elemen-elemen larik A[1..n] dg cara pembacaan. Akhir pembacaan ditandai jika nilai yang
dibaca adalah 9999}{K.Awal : sembarang }K. Akhit : sebanyak n buah elemen larik A berisi nilai-nilai yang dibaca; n berisi jumlah larik yang diisi.}
DEKLARASIx : integer {menyimpan sementara nilai yang di baca}
ALGORITMAn 0read(x)while x 9999 do
n n +1A[n] xread(x)
endwhile
{x = 9999}
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 17/57
Menghitung Nilai Rata-rata
• Data yang sudah disimpan di dalam Larik, selanjutnya
data tersebut dapat dimanipulasi
Procedure hitungRataRata(input A:Larikint, input n:integer)DEKLARASI
I : integerJumlah : real
ALGORITMAI 1 {dimulai dari elemen pertama}
Jumlah 0 {jumlah total nilai mula mula}
For i 1 to n do jumlah jumlah + A[i]
EndforU jumlah/n
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 18/57
Notasi Algoritma – hitung rata rata
PROGRAM Rerata
DEKLARASIconst
NMaks = 100type
LarikInt : array[1..NMaks] of integerA : LArikIntn : integer
u : integer { nilai rata-rata }
procedure BacaLarik1(output A : Larikint, input n :integer){ mengisi elemen larik A[1..n] dengan pembacaan }
procedure HitungRataRata(input A : LArikint, input n : integer. Output u : real){menghitung nilai rata-rata larik A}
ALGORITMAread(n) {tentukan jumlah elemen larik yang akan digunakan }BacaLarik1(A, n)HitungRataRata(A, n, u)write(u)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 19/57
Kapan menggunakan Larik (array):
• Untuk menyimpan sejumlah data yangbertipe sama.
• Untuk menghindari penggunaan nama-nama peubah(variabel) yang banyak.
• Agar penulisan program lebih efisiendalam penulisan kode programnya.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 20/57
latihan
• Buatlah algoritma tanpa menggunakanprosedur (sub program) untuk menghitungnilai-nilai rata-rata dari data yang
tersimpan pada elemen array(larik) yangbertipe integer.
• Konversikan algoritma tersebut ke dalam
bahasa pascal.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 21/57
ARRAY KONSTAN :
• Nilai yang terkandung di dalam sebuah arraydapat bernilai konstan,
• artinya nilai-nilai tersebut tidak dapat diubah.
• mendeklarasikan array bersangkutan dengankata kunci CONST.
• Bentuk umumnya adalah sbb:
• Const• NamaArray : array[IndekAwal..IndekAkhir] of
tipe_data = (nilai1, nilai2, ...);
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 22/57
Bentuk umum array konstan
ConstNamaArray : array[IndekAwal..IndekAkhir] oftipe_data = (nilai1, nilai2, ...)
Contoh :
Const A: array[1..5] of char = (‘A’, ‘B’, ‘C’, ‘D’, ‘E’)’
Array A di atas bersifat konstan, maka nilai yang ada tidak digantikandengan nilai lainnya.
Contoh :
A[1] ‘V’ { SALAH, Karena elemen A[1] selalu bernilai ‘A’} A[2] ‘W’ {SALAH, Karena elemen A[2] selalu bernilai ‘B’} A[3] ‘X’ { SALAH, Karena elemen A[3] selalu bernilai ‘C’} A[4] ‘Y’ {SALAH, Karena elemen A[4] selalu bernilai ‘D’} A[5] ‘Z’ { SALAH, Karena elemen A[5] selalu bernilai ‘E’}
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 23/57
Algoritma penggunaan Array konstan
Program ArrayKonstan
DEKLARASI :
Const
BULAN : array[1..12] of string = (‘Januari’, ‘Februari’,
‘Maret’, ‘April’, ‘Mei’, ‘Juni’, ‘Juli’, ‘Agustus’, ‘September’,‘Oktober’, ‘Nopember’, ‘Desember’)
noBulan : integer;
ALGORITMA :
read(noBulan)
write(BULAN[noBulan]);
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 24/57
MENCARI NILAI MAKSIMUM ARRAY :
Nilai maksimum pada sebuah variabel Array adalah elemen array yangmempunyai nilai terbesar diantara elemen array lainnya.
1 2 3 4 5 6 7 8
Nilai maksimum adalah : 172 ada pada elemen A[5]
Kalau elemen larik sudah terurut baik secara ascending maupundescending, maka nilai maksimum langsung bisa diperoleh :Ascending pada elemen terakhir,Descending pada elemen pertama
Permasalahan muncul bila nilai elemen array tesusun secara acak,maka untuk mencari nilai maksimumnya harus mengunjungi seluruhelemen array.
A 158 157 162 169 172 155 170 163
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 25/57
Tiga versi algoritmauntuk mencari nilai maksimum
Cara 1 :1. Mengasumsikan nilai maksimum sementara (maks)
adalah yang sangat kecil (misal: -9999).
2. Selanjutnya array dikunjungi mulai dari elemen pertama,
3. setiap kali mengunjungi elemen array, bandingkanelemen tersebut dengan nilai maksimum sementara.
4. Jika elemen array yang sedang dintinjau lebih besar darinilai maksimum sementara, maka (maks) diganti denganelemen tersebut.
5. pada akhir kunjungan (setelah seluruh elemen arraydikunjungi), nilai maksimum semntara menjadi nilaimaksimum sebenarnya.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 26/57
Ilustrasi untuk maks : -999
A
`
158 157 162 169 172 155 170 163
1 2 3 4 5 6 7 8
Asumsi : maks = -9999 (nilai maksimum sementara)
A[1] > maks? Ya maks A[1] (maks=158)A[2] >maks? Tidak maks tidak berubahA[3] > maks? Ya maks A[3] (maks=162)A[4] > maks? Ya maks A[4] (maks=169)A[5] >maks? Ya maks A[5] (maks=172)
A[6] > maks? tidak maks tidak berubahA[7] > maks? tidak maks tidak berubahA[8] >maks? Tidak maks tidak berubah
(proses pembandingan selesai)Didapat : maks = 172 (nilai maksimum array yang ditemukan)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 27/57
Algoritma untuk maks = -999
Program NilaiMaksimum
DEKLARASI :Const N = 8A : array[1..N] of integer = (158, 157, 162, 169, 172, 155,
170, 163)I, maks : integer
ALGORITMA :Maks -9999 {nilai maksimum sementara}For i 1 to N do
If A[i] > maks thenMaksA[i]
endifendforWrite(maks)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 28/57
Cara 2: Mencari nilai Maksimal
1. Nilai maksimum sementara diinisialisasikan denganelemen pertama array.
2. selanjutnya, arrray dikunjungi mulai dari elemen kedua
3. setiap kali mengunjungi elemen array, bandingkan
elemen tersebut dengan nilai maksimum sementara.4. jika elemen array yang sedang dintinjau lebih besar dari
nilai maksimum sementara, maka (maks) diganti denganelemen tersebut.
5. pada akhir kunjungan (setelah seluruh elemen arraydikunjungi), nilai maksimum sementara menjadi nilaimaksimum sebenarnya.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 29/57
Ilustrasi untuk maks : elemen pertama
A
`
158 157 162 169 172 155 170 163
1 2 3 4 5 6 7 8
Asumsi : maks = A[1] (nilai maksimum sementara, maks=158)
A[2] >maks? Tidak maks tidak berubahA[3] > maks? Ya maks A[3] (maks=162)A[4] > maks? Ya maks A[4] (maks=169)A[5] >maks? Ya maks A[5] (maks=172)A[6] > maks? tidak maks tidak berubah
A[7] > maks? tidak maks tidak berubahA[8] >maks? Tidak maks tidak berubah
(proses pembandingan selesai)Didapat : maks = 172 (nilai maksimum array yang ditemukan)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 30/57
Algoritma untuk maks = Elemen pertama
Program NilaiMaksumum
DEKLARASI :Const N = 8A : array[1..N] of integer = (158, 157, 162, 169, 172, 155,
170, 163)I, maks : integer
ALGORITMA :Maks A[1] {nilai maksimum sementara}For i 2 to N do
If A[i] > maks thenMaksA[i]
endifendforWrite(maks)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 31/57
Cara 3: Mencari nilai Maksimal
• Mencari nilai maksimal berdasarkan nomorindeks array.
Algoritma :
idxMaks 1for I 2 to n do
if A[i] > A[idxMaks] then
idxMak
Iendifendfor
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 32/57
Mencari Nilai Minimum Array(Larik)
• Mencari elemen larik yang mempunyainilai terkecil di antara elemen larik lainnya.
• Konsepnya sama dengan Mencari nilaimaksimum array
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 33/57
Latihan
• Buatlah algoritma untuk mencari nilaiterbesar dari data yang sudah tersimpanpada elemen array, dimana nilai yang
tersimpan pada elemen array tersebut dibaca dari inputan eksternal (keyboard).
• Konversikan algoritma di atas ke dalam
Bahasa Pascal
M li L ik (A )
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 34/57
Menyalin Larik (Array)
A
`
158 157 162 169 172 155 170 163
B`
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 35/57
Algoritma Menyalin LarikProgram Salin
DEKLARASI:
Const maks=100A:array[1..maks] of integerB:array[1..maks] of integerI,n : integer
ALGORITMA:Read(n) {menentukan jumlah elemen yang akan digunakan}
{membaca nilai dari inputan eksternal (keyboard)}For I 1 to n do
read(A[i])Endfor
{menyalin Larik A ke Larik B}for I 1 to n do
B[i]
A[i]endfor
{Menampilkan nilai elemen array B setelah dilakukan penaylinan dari elemen array A}For I 1 to n do
write(B[i])endfor
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 36/57
Menguji kesamaan dua buah Larik
• Dilakukan dengan membandingkan setiapelemen yang berpadanan pada ke dualarik tersebut
• Jika ditemukan satu saja elemen yangtidak sama, maka dapat dipastikan duabuah larik tersebut tidak sama.
• Apabila semua elemen dari larik itu sama,maka dapat dikatakan dua buah larik itusama.
M ji k d b h L ik t
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 37/57
Menguji kesamaan dua buah Larik - next
A
`
123 130 140 160 180
B
`
123 130 140 160 180
1 2 3 4 5
1 2 3 4 5
Algoritma menguji kesamaan larik
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 38/57
Algoritma menguji kesamaan larikProgram ujiDEKLARASIConst maks=5
A:array[1..maks] of integer=(123,130,140,160,180)
B:array[1..maks] of integer=(123,130,140,160,180)I : integerSama : booleanALGORITMA:I 1
Sama true
While (I ≤ maks) and (sama) do if A[i] = B[i] thenI I + 1 {tinjau elemen berikutnya}
elsesama false
endif
Endwhile{ I > maks or sama=false }{tampilkan hasil}If sama true then
write(‘dua larik sama’) Else
write(‘dua larik berbeda’) endif
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 39/57
ARRAY DUA DIMENSI (MATRIKS)
Pengertian array dua dimensi :
• Array dua dimensi dapat dipandang sebagaigabungan array satu dimensi.
• Ilustrasi :Pandanglah tiga buah array satu
dimensi yang dibuat dengan: A1[4], A2[4], A3[4]: dengan tipe data yang sama
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 40/57
ARRAY DUA DIMENSI (MATRIKS)-next
• Ketiga buah array satu dimensi di atas, dapat digabung menjadi satu,sehingga terbentuk sebuah array yang disebut array dua dimensi, yang
dapat diilustrasikan sebagai berikut :
• Dari ilustrasi diatas, terlihat array tersebut terdiri dari 3 baris, dan 4kolom, dan jumlah elemennya = 3 x 4 = 12 elemen, karena terdiri
dari baris (row) dan kolom (column) maka arrray dua dimensi seringdisebut MATRIX.• Karena sudah menjadi satu buah array, maka nama array hanya
satu buah, Misalnya A[3] [4] yang maksudnya adalah terdiri barisnyaada 3, dan kolomnya ada 4.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 41/57
Bentuk Umum Array Dua Dimensi
A k t t k d di i ( t ik )
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 42/57
Array konstan untuk array dua dimensi (matriks )
Cotoh:
•Array Dua Dimensi dengan matriks : 3 x 5, dengan tipedata integer dan char :
Mengisi Elemen Array Dua Dimensi (MATRIKS)
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 43/57
Mengisi Elemen Array Dua Dimensi (MATRIKS)
Diketahui array dua dimensi :A : array[1..3, 1..4] of integer
• Untuk keperluan praktis dan keragaman, indeks untuk baris dankolom menggunakan variabel.
• Misal : i untuk baris dan J untuk kolom • Algoritmanya :
I 2J 3A[i, j] 17
I i El M t ik b i
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 44/57
Isi Elemen Matriks per barisatau per kolom
Pengisian semua elemen Matriks
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 45/57
Pengisian semua elemen Matriks
secara baris perbaris :
• Algoritmanya :N 1I 1While (i<=3)
J 1While ( j<= 4)
A[i, j] N
N++J++
EndwhileI++
Endwhile
Pengisian semua elemen Matriks
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 46/57
Pengisian semua elemen Matriks
secara kolom perkolom :
• Algoritmanya :X 1N XJ 1While (J <= 4)
i 1While ( i <= 3)
A[i, j] NN+4i++
EndwhileX++NXJ++
Endwhile
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 47/57
Mengisi Elemen Array Dua Dimensi, dengan Nilai yang diinput dari Keyboard :
• Misalnya Array Dua Dimensi dengan• Matrik 3 x 5. isikan nilai kedalam• elemen matrik tersebut.
• Algoritmanya :I 1
While (i<=3)J 1
While ( j<= 5)Read(nilai)A[i, j] nilaiJ++
EndwhileI++
endwhile
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 48/57
Latihan 1:
• diketahui matriks 3 x4 untuk array duadimensi, Buatlah algoritma untukmelakukan inisialisasi nilai (nilai konstan)
pada array dua dimensi tersebut dengantipe data integer. Dan cetak/tampilkanlahnilai dari masing-masing elemen darimatriks tersebut di atas.
• Transformasikanlah Algoritma di atas kedalam bahasa pemrogaram PASCAL.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 49/57
Latihan 2:
• diketahui matriks 3 x4 untuk array duadimensi, Buatlah algoritma denganmenginputkan nilai dari inputan eksternal
(keyboard) ke dalam masing elemenmatriks di atas dengan tipe data integer.Dan cetak/tampilkanlah nilai dari masing-masing elemen dari matriks tersebut.
• Transformasikanlah Algoritma di atas kedalam bahasa pemrogaram PASCAL.
MENYALIN ISI ARRAY DUA
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 50/57
MENYALIN ISI ARRAY DUADIMENSI
• Algoritmanya :
For i=1 to i<= 3 do
For j=1 to j <=4 doB[i,j] A[i,j]Endfor
Endfor
MENGHITUNG TOTAL ISI ARRAY DUA DIMENSI
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 51/57
MENGHITUNG TOTAL ISI ARRAY DUA DIMENSI
• Algoritmanya :
TOT
0I 1While (i<=3) do
J 1
While (J <= 4) doTOT TOT + A[i,j]
J++Endwhile
I++Endwhile
Write (TOT )
MENAMBAH ISI DUA BUAH ARRAY DUA DIMENSI
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 52/57
• Dua buah array Dua Dimensi yang dibuat A[3,4], dan B[3,4] dengan tipe data integer.
• Algoritmanya :I 1While (i <= 3 ) do
J 1
While ( J <= 4 ) doC[i,j] A[i,j] + B[i,j]J++
EndwhileI++
Endwhile
MENGALIKAN ISI DUA BUAH ARRAY DUA DIMENSI :
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 53/57
• Dua buah array Dua Dimensi A[2,3] dan B[3,4] yang dibuat dengantipe data integer :
Catatan :• Syarat dua buah matriks dapat dikalikan adalah : Jumlah kolom
matriks ke 1 harus sama dengan jumlah baris matriks ke 2.• Sedangkan hasilnya adalah matriks ke 3, yaitu jumlah baris matriks
ke 3 (matriks hasil) sama dengan jumlah baris matriks ke 1, dan jumlah kolomnya (matriks 3) sama dengan jumlah kolom matriks ke2.
Perkalian matriks next
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 54/57
Perkalian matriks - next
• Contoh :
A[2,3] x B[3,4] = c[2,4]
• Ilustrasi proses :2x3+4x2+3x3 =2x2+4x4+3x3 =2x5+4x6+3x2 =
2x7+4x3+3x5 =
3x3+2x2+5x3 =3x2+2x4+5x3 =3x5+2x6+5x2 =3x7+2x3+5x5 =
• Secara umum 8 persamaan di atas, dapat ditulis sebagai berikut :C[i,j] = ∑ (A[i,k] * b[k,j] ) Dimana :K dipakai untuk : COL pada array A dan ROW pada array B, dan untuksuatu nilai i dan j, nilai k bergerak 1 sd. 3
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 55/57
Latihan 1:
• diketahui matriks 3 x4 untuk array dua dimensi,Buatlah algoritma untuk menghitung nilai totaldari matriks tersebut sedang nilai didapat
dengan melakukan inisialisasi nilai (nilaikonstan) pada array dua dimensi tersebutdengan tipe data integer. Dancetak/tampilkanlah nilai total dari matriks di atas.
• Transformasikanlah Algoritma di atas ke dalambahasa pemrogaram PASCAL.
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 56/57
Latihan 2:
• diketahui matriks A=2 x3 dan matrisk B=3x4,Buatlah algoritma untuk menghitung hasilperkalian dua buah matriks. Sedang nilai dari
dua buah matriks tersebut didapat denganmelakukan inisialisasi nilai (nilai konstan) padadua matriks tersebut dengan tipe data integer.Dan cetak/tampilkanlah hasil perkalian dua
matriks tersebut.• Transformasikanlah Algoritma di atas ke dalam
bahasa pemrogaram PASCAL.
TUGAS
5/11/2018 Array (Larik) New Mar11 - slidepdf.com
http://slidepdf.com/reader/full/array-larik-new-mar11 57/57
TUGAS(dikumpulkan minggu depan, 20 april 2011)
• Buatlah tiga jenis algoritma untuk menentukanhasil perkalian dari dua buah matriks. Denganketentuan sebagai berikut : – Silahkan tentukan sendiri ukuran dari dua buah
matriks tersebut. – Tentukanlah nilai dari dua buah matriks tersebutdengan menggunakan inisialisasi atau inputan darikeyboard.
– Tipe data ke dua matriks tersebut adalah integer.
• Konversikanlah tiga jenis algoritma di atas kedalam bahasa pemrograman Pascal.