Anda di halaman 1dari 16

ALGORITMA DAN

STRUKTUR DATA
IRSAN JAELANI, S.T., M.KOM

PERTEMUAN 2
REVIEW ARRAY

1. Buat sebuah program dengan menggunakan bahasa pemrograman C++


untuk membaca banyaknya inputan yang kita tentukan dan masukan
kedalam array kemudian hitung rata-rata dari nilai yang kita inputkan!
ARRAY 2 DIMENSI
• Array dua dimensi sering digambarkan sebagai sebuah matriks
• Jika array satu dimensi terdiri dari satu baris dan beberapa kolom,
maka array dua dimensi tediri dari beberapa baris dan beberapa
kolom, dimana indeks pertama menyatakan baris dan indeks kedua
menyatakan kolom.
GAMBARAN ARRAY 2 DIMENSI
Kolom Elemen(1,2)

0 1 2 3

1
Baris
2

Baris 0 Baris 1 Baris 2 Baris 3 Baris 4

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
GAMBARAN ARRAY 2 DIMENSI
0 1 2 3 Kimia Fisika Biologi

0 M[0,0] M[0,1] M[0,2] M[0,3] Andi A A C

Rini B C B
1 M[1,0] M[1,1] M[1,2] M[1,3]
Sinta A B B
2 M[2,0] M[2,1] M[2,2] M[2,3]
Zulkifli C A A
3 M[3,0] M[3,1] M[3,2] M[3,3]
Asep C A C
4 M[4,0] M[4,1] M[4,2] M[4,3] A B B
Randi

Matriks M dengan notasi setiap Nilai[0..5,0..2]: matriks yang menyatakan


elemen-elemennya Nilai ujian 6 orang mahasiswa untuk
Tiga buah mata kuliah
DEKLARASI ARRAY 2 DIMENSI
1. Sebagai nama peubah
DEKLARASI
M : Array [0..4, 0..4] of integer

2. Sebagai tipe bentukan


DEKLARASI
type Mat : array [0..5, 0..4] of integer
M : Mat { M adalah nama matriks yang bertipe Mat }

3. Mendefinisikan ukuran maksimum matriks sebagai sebuah konstanta


DEKLARASI
const NbarisMaks = 20 { jumlah baris maksimum }
const NkolomMaks = 20 { jumlah kolom maksimum }
type Mat : array [1..NbarisMaks, 1..NkomlomMaks] of integer
M : Mat
Pemrosesan Matriks Algoritma pemrosesan “per baris-per kolom:

Mengunjungi elemen-elemen matriks. Untuk setiap baris i = 0,1,2,3,4 lakukan:


Tinjaulah matriks M[0..4, 0..3] dibawah ini, untuk setiap kolom j = 0,1,2,3 lakukan:
Dengan i adalah indeks baris dan j adalah indeks kolom proses M[ i , j ]
0 1 2 3
Hasil pemrosesan:
0 10 4 45 30 i=0, elemen yang diproses berturut-turut: 10, 4, 45, 30
i=1, elemen yang diproses berturut-turut: 20, 16, 18, 23
1 20 16 18 23 i=2, elemen yang diproses berturut-turut: 29, 98, 19, 27
i=3, elemen yang diproses berturut-turut: 2, 15, 26, 65
2 29 98 19 27
i=4, elemen yang diproses berturut-turut: 21, 8, 13, 7
3 2 15 26 65
4 21 8 13 7
ALGORITMA:
for i  0 to Nbar do
Mengunjungi elemen-elemen matriks.
for j  0 to Nkol do
Tinjaulah matriks M[0..4, 0..3] dibawah ini,
Dengan i adalah indeks baris dan j adalah indeks kolom Proses( M[i,j] )
endfor
endfor
Pemrosesan Matriks Algoritma pemrosesan “per kolom-per baris:

Untuk setiap kolom j = 0,1,2,3 lakukan:


untuk setiap baris i = 0,1,2,3,4 lakukan:
proses M[ i , j ]

0 1 2 3 Hasil pemrosesan:
j=0, elemen yang diproses berturut-turut: 10, 20, 29, 2, 21
0 10 4 45 30 j=1, elemen yang diproses berturut-turut: 4, 16, 98, 15, 8
j=2, elemen yang diproses berturut-turut: 45, 18, 19, 26, 13
1 20 16 18 23
j=3, elemen yang diproses berturut-turut: 30, 23, 27, 65, 7
2 29 98 19 27
3 2 15 26 65 ALGORITMA:
for j  0 to Nkol do
4 21 8 13 7 for i  0 to Nbar do
Proses( M[i,j] )
endfor
endfor
Menginisialisasi Array 2 Dimensi / Matriks
• Statis
Int Mat_A={{2,3,9,2},{7,5,6,8},{3,2,3,4}} 2 3 9 2
Mat_A = 7 5 6 8
3 2 3 4

• Dinamis
for i  o to Nbar do
for j  0 to Nkol do 0 0 0 0
Mat_A[i,j]  0 Mat_A = 0 0 0 0
endfor 0 0 0 0
endfor
• Buat program untuk mencetak elemen-elemen matriks A berukuran
3x4 yang telah diinisialisasikan secara statis
#include <iostream.h>
#include <conio.h>

Main()
{
int Mat_A[3][4]={{3,1,6,8},{5,2,4,3},{6,2,4,5}
int i,j;
//Mencetak elemen matriks
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
{
cout<<Mat_A[i][j]<<“ “;
cout<<endl;
}
}
getch();
}
Membaca Inputan Array 2 Dimensi / Matriks
ALGORITMA:
for i  0 to Nbar do
for j  0 to Nkol do
write(“Ketikkan elemen M[ ‘ , i , ’ , ’ , j , ’ ]: “)
read ( M[i,j] )
endfor
endfor

C++:
for(i=0;i<Nbar;i++)
{
for(j=0;j<Nkol;j++)
{
cout<<"Masukkan Elemen A["<<i<< "]["<< j<< "]: ";
cin >> A[i][j];
}
}
• Buat program untuk membaca dari inputan elemen-elemen matriks A
berukuran 3x4, kemudian tampilkan nilai dari elemen A tersebut!
#include<iostream.h>
#include<conio.h>
main()
{
int A[3][2];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
cout<<"Masukkan Elemen A["<<i<< "]["<< j<< "]: ";
cin >> A[i][j];
}
}

for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
cout<<"Nilai Elemen A["<<i<< "]["<< j<< "]: ";
cout<<A[i][j]<<endl;
}
}
getch();
}
• Buat program untuk menjumlahkan matriks A dan B berukuran 3x3
yang sudah diinisialisasi, kemudian tampilkan hasil pada matriks C!
Latihan
1. Mencari elemen terbesar di dalam matriks
• Elemen maksimum matriks adalah elemen matriks yang mempunyai nilai terbesar. Elemen
maksimum matriks dicari dengan menelusuri semua elemen matriks, mulai dari elemen A[0,0]
sampai elemen A[Nbar,Nkol]
2. Menjumlahkan baris dan kolom matriks
• Asumsikan ukuran matriks tidak melebihi NbarisMaks dan NkolomMaks . Jumlahkan elemen-
elemen pada setiap baris dan setiap kolom. Hasil penjumlahan disimpan pada kolom tambahan dan
baris tambahan.Jadi, hasil penjumlahan suatu baris disimpan pada kolom paling kanan (Nkol+1),
dan hasil penjumlahan suatu kolom disimpan pada baris paling bawah(Nbar+1) 0 1 2 3 4

3. Mencari elemen tertentu di dalam matriks 0 12 45 16 9 82


Mencari nilai tertentu (misalkan x) di dalm matriks. Bila x ditemukan, maka 1 17 15 15 1 48
keluaran yang diinginkan adalah indeks baris dan indeks kolomnya. Bila x tidak 2 10 15 1 9 35
ditemukan di dalam matriks, maka indeks baris dan indeks kolom yang 12 7 0 3 22
3
dihasilkan masing-masing bernilai -1
4 21 16 13 19 69
5 72 98 45 41

Anda mungkin juga menyukai