Anda di halaman 1dari 30

Pertemuan - 6

“Array of ADT &Matrix”

Hartanto SN
tantoantonov23@gmail.com
Review Array of Record
◇ Dalam array of record di materi sebelumnya, array yang digunakan untuk menyimpan data
dideklarasikan secara langsung.
typedef char string[255];
typedef struct{
string nama[255];
string prodi;
float ipk;
}Mahasiswa;

//DEKLARASI array bertipe Mahasiswa


Mahasiswa m[5];

2
Array of ADT
◇ Pada dasarnya ADT membungkus (encapsulates) data dan operasi yang memanipulasi
data tersebut Data tersebut juga hanya bisa diakses lewat operasi tersebut.
◇ Konsep array of ADT adalah ADT yang mengenkapsulasi/membungkus data array yang
bertipe data abstrak.

3
Definisi Array of ADT
◇ Contoh:

ADT Data_Mahasiswa.

Array yang dienkapsulasi di


dalam ADT Mahasiswa.

Lebar array juga dapat ditentukan dengan menggunakan


syntax #define
4
Pengelolaan Data Dalam Array

◇ Seperti dalam array of record, operasi yang dapat dilakukan untuk melakukan pengelolaan
data:
a. Inisialisasi Data
b. Memasukkan (Input/Create) Data
c. Menampilkan (Show) Data
d. Mengubah (Update) Data
e. Menghapus (Delete) Data
f. Mencari (Search) Data
g. Mengurutkan (Sorting) Data

5
Contoh – Membuat Struct
◇ Ada 2 tipe data abstrak yang didefinisikan: Data_Buku dan Buku.
◇ Data_Buku berisi atribut-atribut buku yang perlu dicatat.
◇ Buku berisi array of Data_Buku dengan jumlah data 5.

6
Contoh – Deklarasi Fungsi & Prosedur

◇ Deklarasikan terlebih dahulu nama-nama fungsi dan prosedur yang akan dibuat.

7
Contoh – Prosedur init

◇ Prosedur “init” digunakan untuk menginisialisasi nilai awal untuk semua item data yang ada
di dalam array.
◇ Nilai awal yang diberikan disesuaikan dengan tipe data masing-masing atribut.

8
Contoh – Prosedur Insert

◇ Prosedur “insertBuku” digunakan untuk memasukkan data ke dalam array.

◇ Ada beberapa case tambahan yang perlu diperhatikan saat memasukkan data, misalnya:
1. Data yang dimasukkan harus unik berdasarkan ID, Nama, atau atribut yang lain
2. Data dapat dimungkinkan untuk dimasukkan satu-persatu.

9
Contoh AADT – Prosedur Insert

10
Contoh – Prosedur Update

◇ Prosedur “updateBukuByISBN” digunakan untuk mengubah/mengupdate data buku


berdasarkan ISBN yang dimasukkan.

◇ Pada prinsipnya dalam prosedur/fungsi update selalu ada parameter yang digunakan
sebagai alat untuk mengubah data.

11
Contoh – Prosedur Update

12
Contoh – Prosedur Update
◇ Prosedur “deleteBukuByISBN” digunakan untuk menghapus data buku berdasarkan ISBN
yang dimasukkan.

◇ Karena menggunakan array, maka proses penghapusan dilakukan dengan cara


menginisialisasi ulang nilai data pada index yang ditentukan.

13
Contoh – Prosedur Update

14
Contoh – Prosedur Display

◇ Prosedur “displayBuku” digunakan menampilkan item data yang disimpan di dalam array.

15
Contoh – Prosedur Sorting
◇ Prosedur “sortingByYearAsc” digunakan untuk mengurutkan data buku berdasarkan tahun
terbitnya secara Ascending.
■ Ascending: dari kecil ke besar
■ Descending: dari besar ke kecil
◇ Dalam contoh kode berikut, algoritma sorting yang digunakan adalah algoritma ’Bubble
Sort’.

16
Contoh – Main Function

17
Latihan

1. Modifikasi prosedur insert agar buku yang dimasukkan ke array bersifat unik (tidak memiliki
ISBN yang sama)!

2. Buatlah prosedur untuk melakukan pencarian berdasarkan nama buku. Hasil pencarian
menampilkan buku yang namanya sesuai dengan yang diinputkan!

3. Buatlah tipe data abstrak ‘Date’ yang terdiri dari tanggal, bulan, dan tahun bertipe
integer. Kemudian tambahkan atribut tanggal_publikasi bertipe data ’Date’ pada struct
Data_Buku. Sesuaikan kembali seluruh operasi yang sudah anda buat!

18
Definisi Matriks

◇ Dalam matematika, matrix (bentuk jamak: matrices) adalah sebuah array of number,
simbol, atau ekspresi dalam sebuah segi empat yang disusun dalam baris dan kolom.

◇ Dalam pemrograman pembuatan matriks dapat dilakukan dengan menggunakan two-


dimensional array (array 2 dimensi).

◇ Isi dalam matriks disebut dengan Elemen dan dirujuk dengan 2 indeks, yaitu indeks baris
dan indeks kolom.

19
Operasi Dasar Matriks
1. Penjumlahan & Pengurangan
■ Matriks dapat dijumlahkan dan dikurangkan jika memiliki ordo atau besar baris dan
kolom yang sama.
■ Contoh: Matriks A + Matriks B = Matriks C

1 2 3 1 0 0 2 2 3
4 5 6 + 0 1 0 = 4 6 6
7 8 9 0 0 1 7 8 10
A B C

*) B adalah matriks identitas

20
Operasi Dasar Matriks
2. Perkalian
a. Perkalian Matriks dengan Bilangan Skalar
○ Caranya dapat dilakukan dengan mengalikan semua elemen matriks dengan
bilangan tersebut
○ Contoh:

1 2 3 5 10 15
4 5 6 . 5 = 20 25 30
7 8 9 35 40 45

21
Operasi Dasar Matriks
2. Perkalian
b. Perkalian Matriks dengan Matriks
○ Syaratnya: jumlah kolom di matriks pertama = jumlah baris di matriks kedua.
○ Contoh: Matriks A * Matriks B = Matriks C

1 2 3 1 2 1 ∗ 1 + 2 ∗ 1 + (3 ∗ 1) 1 ∗ 2 + 2 ∗ 2 + (3 ∗ 2)
4 5 6 . 1 2 = 4 ∗ 1 + 5 ∗ 1 + (6 ∗ 1) 4 ∗ 2 + 5 ∗ 2 + (6 ∗ 2)
7 8 9 1 2 7 ∗ 1 + 8 ∗ 1 + (9 ∗ 1) 7 ∗ 2 + 8 ∗ 2 + (9 ∗ 2)
A B

6 12
= 15 30
24 48
C

22
Operasi Dasar Matriks
3. Transpose
■ Baris menjadi kolom dan sebaliknya.
■ Contoh:
𝑎 𝑏 𝑐 𝑎 𝑑 𝑔
𝑑 𝑒 𝑓 −→ 𝑏 𝑒 ℎ
𝑔 ℎ 𝑖 𝑐 𝑓 𝑖
A A’
4. Determinan
■ Untuk matriks 2x2 cara mencari determinan adalah sebagai berikut:
𝑎 𝑏
𝐴=
𝑐 𝑑
■ Determinan Matriks 𝐴 = (𝑎𝑑 − 𝑏𝑐)

23
Matriks Tanpa ADT
◇ Contoh Deklarasi Matriks  Matriks m dengan jumlah baris 3 dan kolom 4.
int m[3][4];

◇ Indeks baris dan kolom setiap elemen:

Baris 1
m[0][0] m[0][1] m[0][2] m[0][3]
m[1][0] m[1][1] m[1][2] m[1][3] Baris 2
m[2][0] m[2][1] m[2][2] m[2][3]
Baris 3

Kolom 1 Kolom 2 Kolom 3 Kolom 4

24
Implementasi ADT Matriks

◇ ADT Matriks:

◇ Dari ADT di atas, misal terdapat deklarasi:


Matrix m;
◇ Maka, akses untuk indeks baris dan kolom setiap elemen:
m.elemen[0][0] m.elemen[0][1] Baris 1
m.elemen[1][0] m.elemen[1][1]
Baris 2

Kolom 1 Kolom 2
25
Inisialisasi Matriks

◇ Elemen matriks
■ Pada dasarnya ada dua perulangan yang digunakan untuk menentukan baris dan
kolom matriks.
◇ Inisialisasi Matrix

26
Input/Create Elemen Matriks

27
Display Matriks

28
Tugas

1. Buatlah fungsi/prosedur untuk melakukan:


a. Penjumlahan 2 buah matriks
b. Menghitung perkalian skalar dengan bilangan pengali yang bebas dimasukkan oleh
user!

29
SEKIAN
TERIMAKASIH

30

Anda mungkin juga menyukai