Pertemuan Enam Dan Tujuh

58
KONSEP ARRAY Elin Haerani, ST, M.Kom

Transcript of Pertemuan Enam Dan Tujuh

Page 1: Pertemuan Enam Dan Tujuh

KONSEP ARRAY

Elin Haerani, ST, M.Kom

Page 2: Pertemuan Enam Dan Tujuh

Array (Larik)

Array yaitu yang berbaris-baris atau berderet-deret.

Dalam pemrograman : deretan data yang mempunyai jenis atau tipe data yang sama.

Nama Array mewakili deret data dia miliki. Contoh: A:array[1..5] of integer

A adalah nama array

Page 3: Pertemuan Enam Dan Tujuh

Definisi Array

Adalah sebuah peubah (variabel) yang mempunyai struktur data yang dapat menyimpan lebih dari satu nilai yang sejenis (tipe data yang sama), setiap elemen diacu melalui indeksnya.

Elemen array tersusun di memori secara berurutan (sekuensial), oleh sebab itu indeks array(larik) haruslah tipe data yang menyatakan keterurutan, misalnya integer atau karakter.

Page 4: Pertemuan Enam Dan Tujuh

Elemen ArrayI n d e k s

A

I n d e k s

A

1 1 158

2 2 157

3 3 162

4 4 170

5 5 163

Elemen Array kosong Elemen Array yg sudah disi nilai A[1], A[2], A[3], A[4], A[5]

Page 5: Pertemuan Enam Dan Tujuh

Variabel array vs variabel biasa

Variabel array Variabel biasa

Dapat menyimpan lebih dari satu nilai yg sejenis

Contoh:

Deklarasi:

A:array[1..5] of integer

Hanya dapat menyimpan satu nilai walaupun sejenis

Contoh :

Deklarasi:

A1 : integer

A2 : integer

A3 : integer

A4 : integer

A5 : integer

Page 6: Pertemuan Enam Dan Tujuh

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 sudah diketahui sebelum program dieksekusi. Jumlah elemen larik tidak dapat diubah (ditambah/dikurangi) selama pelaksanaan program (program running).

Mendeklarasikan larik di dalam bagian deklarasi berarti : mendefinisikan banyaknya elemen larik (memesan tempat di

memori) mendefinisikan tipe elemen larik (menetapkan tipe nilai yg dapat

disimpan oleh larik (array).--> tipe data dapat berupa : tipe dasar/sederhana (integer, real, char, string, Boolean), tipe bentukan (tipe terstruktur :record)

Page 7: Pertemuan Enam Dan Tujuh

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}

Page 8: Pertemuan Enam Dan Tujuh

Deklarasi Array -next

Sebagai sebuah konstanta :Mendefinisikan ukuran array (larik) sebagai sebuah konstantaDEKLARASI:Const max= 10N: array[1..max] of realI: integer

ALGORITMA :For i:=1 to max doread(n[i])Endfor

Page 9: Pertemuan Enam Dan Tujuh

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 : integer NAMA : String

IPK : 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)

Page 10: Pertemuan Enam Dan Tujuh

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

sudah terdefinisi. Memanipulasi elemen array (larik) :

A[4] 10 NamaMhs[i] ‘Achmad’

Read(A[i]) If A[i] < 10 then A[i] A[i] + 10 Else .……

Page 11: Pertemuan Enam Dan Tujuh

Pemrosesan Array (Larik)

Elemen array diproses secara beruntun melalu indeks yang terurut mulai dari elemen pertama sampai elemen terakhir.

Skema umum pemrosesan array:PROGRAM ProsesArray

DEKLARASI:Const max= 10Type LarikInt : array[1..max] of integer

A : LarikInt I: integer {indeks Array}

ALGORITMA :For i:=1 to max do pemrosesan terhadap A[i])Endfor

Pemrosesan pengisian nilai, pembacaan, penulisan, komputasi, dan manipulasi lainnya.

Page 12: Pertemuan Enam Dan Tujuh

Pengisian Elemen Array (Larik) :

Secara Lansung : Contoh

A[i] 10 Inisialisasi :

For I 1 to n do A[i] IEndfor

Dengan pembacaan (dari keyboard) : Contoh :

For I 1 to n do read(A[i])Endfor

Page 13: Pertemuan Enam Dan Tujuh

Ukuran efektif Array (Larik)

Jumlah elemen larik sudah ditentukan (statis), tapi belum tentu semua digunakan/dipakai

Jumlah elemen yang dipakai itulah yang disebut dengan ukuran/jumlah efektif array.

Ukuran efektif dapat dicatat di dalam peubah (variabel) tertentu, misalnya n.

Page 14: Pertemuan Enam Dan Tujuh

tiga cara untuk menentukan jumlah elemen efektif dari array(Larik) :

1. Jika Jumlah elemen efektif ditentukan di awal

2. Jika Jumkah elemen efektif diketahui di akhir pembacaan

3. Jika Jumlah elemen efektif baru diketahui di akhir pembacaan (variasi dari versi 2)

Page 15: Pertemuan Enam Dan Tujuh

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

Page 16: Pertemuan Enam Dan Tujuh

Jumlah elemen efektif diketahui di akhir pembacaan

Setiap kali selesai pembacaan satu buah elemen, akan dilakukan konfirmasi 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 proses pembacaan dihentikan. Jumlah elemen yang dibaca di catat di dalam suatu variabel (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 + 1

Read(A[n])Write(‘Lagi? (y/t)’)Read(jawab)

Until jawab = ‘t’

Page 17: Pertemuan Enam Dan Tujuh

Jumlah elemen efektif baru diketahui di akhir pembacaan (variasi dari versi 2)

Proses pembacaan dianggap selesai jika nilai yang dibaca adalah suatu 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}

ALGORITMA n 0 read(x) while x 9999 do

n n +1 A[n] x read(x) endwhile {x = 9999}

Page 18: Pertemuan Enam Dan Tujuh

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

Page 19: Pertemuan Enam Dan Tujuh

Notasi Algoritma – hitung rata rata

PROGRAM Rerata

DEKLARASIconst

NMaks = 100type

LarikInt : array[1..NMaks] of integerA : LArikIntn : integeru : 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)

Page 20: Pertemuan Enam Dan Tujuh

Kapan menggunakan Larik (array):

Untuk menyimpan sejumlah data yang bertipe sama.

Untuk menghindari penggunaan nama-nama peubah(variabel) yang banyak.

Agar penulisan program lebih efisien dalam penulisan kode programnya.

Page 21: Pertemuan Enam Dan Tujuh

latihan

Buatlah algoritma untuk menghitung nilai-nilai rata-rata dari data yang tersimpan pada elemen array(larik) yang bertipe integer.

Konversikan algoritma tersebut ke dalam bahasa java.

Page 22: Pertemuan Enam Dan Tujuh

ARRAY KONSTAN :

Nilai yang terkandung di dalam sebuah array dapat bernilai konstan,

artinya nilai-nilai tersebut tidak dapat diubah. mendeklarasikan array bersangkutan dengan kata

kunci CONST.

Bentuk umumnya adalah sbb: Const NamaArray : array[IndekAwal..IndekAkhir] of

tipe_data = (nilai1, nilai2, ...);

Page 23: Pertemuan Enam Dan Tujuh

Bentuk umum array konstan

Const NamaArray : array[IndekAwal..IndekAkhir] of tipe_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 digantikan

dengan 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’}

Page 24: Pertemuan Enam Dan Tujuh

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]);

Page 25: Pertemuan Enam Dan Tujuh

MENCARI NILAI MAKSIMUM ARRAY :

Nilai maksimum pada sebuah variabel Array adalah elemen array yang mempunyai 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 maupun descending, 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 seluruh elemen array.

A 158 157 162 169 172 155 170 163

Page 26: Pertemuan Enam Dan Tujuh

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, bandingkan

elemen tersebut dengan nilai maksimum sementara.4. Jika elemen array yang sedang dintinjau lebih besar

dari nilai maksimum sementara, maka (maks) diganti dengan elemen tersebut.

5. pada akhir kunjungan (setelah seluruh elemen array dikunjungi), nilai maksimum semntara menjadi nilai maksimum sebenarnya.

Page 27: Pertemuan Enam Dan Tujuh

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)

Page 28: Pertemuan Enam Dan Tujuh

Algoritma untuk maks = -999

Program NilaiMaksimumDEKLARASI :Const N = 8 A : 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 then Maks A[i] endif endfor Write(maks)

Page 29: Pertemuan Enam Dan Tujuh

Cara 2: Mencari nilai Maksimal

1. Nilai maksimum sementara diinisialisasikan dengan elemen pertama array.

2. selanjutnya, arrray dikunjungi mulai dari elemen kedua3. 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 dengan elemen tersebut.

5. pada akhir kunjungan (setelah seluruh elemen array dikunjungi), nilai maksimum sementara menjadi nilai maksimum sebenarnya.

Page 30: Pertemuan Enam Dan Tujuh

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 berubahA[7] > maks? tidak maks tidak berubahA[8] >maks? Tidak maks tidak berubah (proses pembandingan selesai)Didapat : maks = 172 (nilai maksimum array yang ditemukan)

Page 31: Pertemuan Enam Dan Tujuh

Algoritma untuk maks = Elemen pertama

Program NilaiMaksumumDEKLARASI :Const N = 8 A : 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 then Maks A[i] endif endfor Write(maks)

Page 32: Pertemuan Enam Dan Tujuh

Cara 3: Mencari nilai Maksimal

Mencari nilai maksimal berdasarkan nomor indeks array.

Algoritma : idxMaks 1 for I 2 to n do if A[i] > A[idxMaks] then idxMak I endif endfor

Page 33: Pertemuan Enam Dan Tujuh

Mencari Nilai Minimum Array (Larik)

Mencari elemen larik yang mempunyai nilai terkecil di antara elemen larik lainnya.

Konsepnya sama dengan Mencari nilai maksimum array

Page 34: Pertemuan Enam Dan Tujuh

Latihan

Buatlah algoritma untuk mencari nilai terbesar dari data yang sudah tersimpan pada elemen array, dimana nilai yang tersimpan pada elemen array tersebut di baca dari inputan eksternal (keyboard).

Konversikan algoritma di atas ke dalam Bahasa Java

Page 35: Pertemuan Enam Dan Tujuh

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

Page 36: Pertemuan Enam Dan Tujuh

Algoritma Menyalin Larik

Program 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

Page 37: Pertemuan Enam Dan Tujuh

Menguji kesamaan dua buah Larik

Dilakukan dengan membandingkan setiap elemen yang berpadanan pada ke dua larik tersebut

Jika ditemukan satu saja elemen yang tidak sama, maka dapat dipastikan dua buah larik tersebut tidak sama.

Apabila semua elemen dari larik itu sama, maka dapat dikatakan dua buah larik itu sama.

Page 38: Pertemuan Enam Dan Tujuh

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

Page 39: Pertemuan Enam Dan Tujuh

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 1Sama trueWhile (I ≤ maks) and (sama) do if A[i] = B[i] then I I + 1 {tinjau elemen berikutnya} else sama false endifEndwhile { I > maks or sama=false }{tampilkan hasil}If sama true then write(‘dua larik sama’)Else write(‘dua larik berbeda’)endif

Page 40: Pertemuan Enam Dan Tujuh

ARRAY DUA DIMENSI (MATRIKS)

Pengertian array dua dimensi : Array dua dimensi dapat dipandang sebagai

gabungan array satu dimensi. Ilustrasi :Pandanglah tiga buah array satu dimensi

yang dibuat dengan: A1[4], A2[4], A3[4] : dengan tipe data yang sama

Page 41: Pertemuan Enam Dan Tujuh

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 4 kolom, dan jumlah elemennya = 3 x 4 = 12 elemen, karena terdiri dari baris (row) dan kolom (column) maka arrray dua dimensi sering disebut MATRIX.

Karena sudah menjadi satu buah array, maka nama array hanya satu buah, Misalnya A[3] [4] yang maksudnya adalah terdiri barisnya ada 3, dan kolomnya ada 4.

Page 42: Pertemuan Enam Dan Tujuh

Bentuk Umum Array Dua Dimensi

Page 43: Pertemuan Enam Dan Tujuh

Array konstan untuk array dua dimensi (matriks)

Cotoh: Array Dua Dimensi dengan matriks : 3 x 5, dengan tipe data

integer dan char :

Page 44: Pertemuan Enam Dan Tujuh

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 dan kolom menggunakan variabel.

Misal : i untuk baris dan J untuk kolom Algoritmanya : I 2 J 3 A[i, j] 17

Page 45: Pertemuan Enam Dan Tujuh

Isi Elemen Matriks per baris atau per kolom

Page 46: Pertemuan Enam Dan Tujuh

Pengisian semua elemen Matriks

secara baris perbaris :

Algoritmanya :N 1I 1While (i<=3) J 1 While ( j<= 4) A[i, j] N N++ J++ Endwhile I++Endwhile

Page 47: Pertemuan Enam Dan Tujuh

Pengisian semua elemen Matriks

secara kolom perkolom :

Algoritmanya : X 1N XJ 1While (J <= 4) i 1 While ( i <= 3) A[i, j] N N+4 i++ Endwhile X++ NX J++Endwhile

Page 48: Pertemuan Enam Dan Tujuh

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 1While (i<=3) J 1 While ( j<= 5) Read(nilai) A[i, j] nilai J++ Endwhile I++endwhile

Page 49: Pertemuan Enam Dan Tujuh

Latihan 1:

diketahui matriks 3 x4 untuk array dua dimensi, Buatlah algoritma untuk melakukan inisialisasi nilai (nilai konstan) pada array dua dimensi tersebut dengan tipe data integer. Dan cetak/tampilkanlah nilai dari masing-masing elemen dari matriks tersebut di atas.

Transformasikanlah Algoritma di atas ke dalam bahasa pemrograman java .

Page 50: Pertemuan Enam Dan Tujuh

Latihan 2:

diketahui matriks 3 x4 untuk array dua dimensi, Buatlah algoritma dengan menginputkan nilai dari inputan eksternal (keyboard) ke dalam masing elemen matriks di atas dengan tipe data integer. Dan cetak/tampilkanlah nilai dari masing-masing elemen dari matriks tersebut.

Transformasikanlah Algoritma di atas ke dalam bahasa pemrogaram java.

Page 51: Pertemuan Enam Dan Tujuh

MENYALIN ISI ARRAY DUA DIMENSI

Algoritmanya :

For i=1 to i<= 3 do For j=1 to j <=4 do B[i,j] A[i,j] EndforEndfor

Page 52: Pertemuan Enam Dan Tujuh

MENGHITUNG TOTAL ISI ARRAY DUA DIMENSI

Algoritmanya :TOT 0I 1 While (i<=3) do J 1 While (J <= 4) do TOT TOT + A[i,j] J++ Endwhile I++ EndwhileWrite (TOT )

Page 53: Pertemuan Enam Dan Tujuh

MENAMBAH ISI DUA BUAH ARRAY DUA DIMENSI

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 ) do C[i,j] A[i,j] + B[i,j] J++ Endwhile I++Endwhile

Page 54: Pertemuan Enam Dan Tujuh

MENGALIKAN ISI DUA BUAH ARRAY DUA DIMENSI :

Dua buah array Dua Dimensi A[2,3] dan B[3,4] yang dibuat dengan tipe 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 ke 2.

Page 55: Pertemuan Enam Dan Tujuh

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 untuk suatu

nilai i dan j, nilai k bergerak 1 sd. 3

Page 56: Pertemuan Enam Dan Tujuh

Latihan 1:

diketahui matriks 3 x4 untuk array dua dimensi, Buatlah algoritma untuk menghitung nilai total dari matriks tersebut sedang nilai didapat dengan melakukan inisialisasi nilai (nilai konstan) pada array dua dimensi tersebut dengan tipe data integer. Dan cetak/tampilkanlah nilai total dari matriks di atas.

Transformasikanlah Algoritma di atas ke dalam bahasa pemrogaram java.

Page 57: Pertemuan Enam Dan Tujuh

Latihan 2:

diketahui matriks A=2 x3 dan matrisk B=3x4, Buatlah algoritma untuk menghitung hasil perkalian dua buah matriks. Sedang nilai dari dua buah matriks tersebut didapat dengan melakukan inisialisasi nilai (nilai konstan) pada dua matriks tersebut dengan tipe data integer. Dan cetak/tampilkanlah hasil perkalian dua matriks tersebut.

Transformasikanlah Algoritma di atas ke dalam bahasa pemrogaram Java.

Page 58: Pertemuan Enam Dan Tujuh

TUGAS

Buatlah tiga jenis algoritma untuk menentukan hasil perkalian dari dua buah matriks. Dengan ketentuan sebagai berikut : Silahkan tentukan sendiri ukuran dari dua buah matriks

tersebut. Tentukanlah nilai dari dua buah matriks tersebut dengan

menggunakan inisialisasi atau inputan dari keyboard. Tipe data ke dua matriks tersebut adalah integer.

Konversikanlah tiga jenis algoritma di atas ke dalam bahasa pemrograman Java.