Anda di halaman 1dari 14

PENGALAMATAN Array / Larik LOK(LA[K]) = Awal(LA) + W(K - LB) Contoh: Misalkan Awal (Jual) = 100 dan W= 4, maka LOK

(JUAL[1990]) = 100 LOK (JUAL[1991]) = 104 LOK (JUAL[1992]) = 108 Berapa lokasi JUAL[2000] ? untuk mendapat lokasi tersebut LOK(LA[K]) = Awal(LA) + W(K - LB) = 100 + 4 * (2000 1990) = 140 PENGALAMATAN Array / Larik Lokasi Memori Array Awal - 100 Jual(1990) 104 Jual(1991) 108 Jual(1992) 112 Jual(1993) 116 Jual(1994) 112 Jual(1995) 124 Jual(1996) 128 Jual(1997) 132 Jual(1998) 136 Jual(1999) 140 Jual(2000)

Struktur Data : Matriks Definisi


struktur data yang mengacu pada sekumpulan elemen yang diakses melalui indeks Array dua dimensi, yang memiliki indeks baris dan Kolom

Proses Matriks 1. Elemen Matriks diproses Baris demi Baris 2. Elemen Matriks diproses Baris demi Baris

PROSES MATRIKS :

INISIALISASI Matriks
18 03 69 24 08 70 1 Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70. 2 123 For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = 0 Endfor Endfor

Isi dengan 1,2,3,4,5,6 Matriks 18 03 69 24 08 70 1 Array B dua dimensi (matriks) : - jumlah baris 2, kolom 3 - data 18, 03, 69, 24, 08, 70. 2

123 Indeks = 1 For Baris = 1 to 2 do For Kolom = 1 to 3 do A(Baris, Kolom) = Indeks Indeks = Indeks + 1 Endfor Endfor 123 456 Menjumlahkan setiap baris For Baris = 1 to 2 do Matriks TotalBaris = 0 For Kolom = 1 to 3 do TotalBaris = TotalBaris + A[Baris,Kolom] Endfor Print Total Baris Endfor

Menjumlahkan C = A + B Dua buah Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do C[Baris,Kolom] =A[Baris,Kolom]+ B[Baris,Kolom] Endfor Endfor

Mengalikan Matriks For Baris = 1 to 2 do For Kolom = 1 to 3 do C[Baris, Kolom] = 0 For K = 1 to P do C[Baris,Kolom] =C[Baris,Kolom]+ A[Baris,K] + B[K,Kolom] Endfor Endfor Endfor

Matriks Jarang
Sparse Matrix : matriks yang elemennyabanyak bernilai o (nol). Idenya : bgm mengkonversinya supaya lebih hemat memori

Contoh Matriks Jarang Sparse Matrix

Matriks Segitiga

Matriks Tridiagonal

Konversi Matriks Jarang Sparse Matrix 9 data menjadi 6 data

Konversi Matriks Jarang Sparse Matrix 16 data menjadi 10 data

Ubah Matriks Segitiga jadi Array Sparse Matrix Program Ubah_Matrik_Segitiga_jadi_Array KAMUS Baris, Kolom : integer A : array [1..3, 1..3] of integer S : array [1..6] of integer ALGORITMA JLH 0 For Baris 1 to 3 do For Kolom 1 to Baris do JLH JLH + 1 S[JLH] A[Baris, Kolom] Endfor Endfor Lokasi Elemen Matriks Segitiga Lokasi pada array : L = Baris ( Baris 1 ) ________________ + Kolom 2

Pengalamatan Matriks Ordering 90 102 123 1 A[1,1] A[1,2] A[1,3] 2 A[2,1] A[2,2] A[2,3] A[1,1], A[1,2], A[1,3], A[2,1], A[1,1], A[2,1], A[1,2], A[2,2], Pengalamatan Matriks Row Ordering A[1,1], A[1,2], A[1,3], A[2,1], A[1,1], A[2,1], A[1,2], A[2,2],

A[2,2],A[2,3]... jika row major A[1,3],A[2,3].. jika column major

A[2,2],A[2,3]... jika row major A[2,2],A[2,3].. jika column major

X[1,1] Baris ke 1 X[1,2] Baris ke 1 X[1,3] Baris ke 1 X[2,1] Baris ke-2 X[2,2] Baris ke-2 X[2,3] Baris ke-2 Pengalamatan Matriks Column Ordering A[1,1], A[1,2], A[1,3], A[2,1], A[2,2],A[2,3]... jika row major A[1,1], A[2,1], A[1,2], A[2,2], A[2,2],A[2,3].. jika column major X[1,1] Kolom ke 1 X[2,1] Kolom ke 1 X[1,2] Kolom ke 2 X[2,2] Kolom ke 2 X[1,3] Kolom ke 3 X[2,3] Kolom ke 3 Pengalamatan MatriksOrdering Mencari lokasi memori pada Row-major order Lokasi (A[B,K] = Base(A) + w [ N ( B-1) + (K-1) ] Mencari lokasi memori pada Column-major order Lokasi (A[B,K] = Base(A) + w [ M ( B-1) + (K-1) ] Base (a): lokasi awal di memori (alamat A[1,1]) W: jumlah word/byte utk menyimpan 1 elemen M: jumlah baris pada matriks A N: jumlah kolom pada matriks A ANTRIAN / QUEUE
Definisi : struktur data (mirip stack) yang memperbolehkan penyisipan di belakang (rear) dan penghapusan elemen di depan (front). Contoh : Penjualan karcis kereta, bioskop Penjadualan pencetakan (spooling system) Penjadualan pemakaian CPU Pemakaian I/O pada sistem komputer Penyimpan barang di Apotek

MODEL ANTRIAN / QUEUE Struktur Data

OPERASI DASAR AntrIan Dua operasi dasar ANTRIAN : TAMBAH AMBIL AMBIL TAMBAH
TAMBAH ELEMEN Struktur Data Antrian ABCD Depan = 0 Belakang = 0

Depan = 1 Belakang = 1

Depan = 1 Belakang = 4 Depan =1 Depan = 1 Belakang = 2 Belakang = 3

AMBIL ELEMEN Struktur Data Antrian

Depan = 1 Belakang =3 Ambil 1 elemen Geser antrian

Depan = 1 Belakang = 2

Depan = 1 Belakang = 1

Depan = 0 Belakang = 0

KAMUS DATA Antrian Kamus Data : Q : array [1..4] of Char Depan : Integer Belakang : Integer 0 Depan Q 0 Belakang
SENARAI / LINK LIST Definisi : struktur data yang terdiri dari rantaian elemen sejenis yang saling berhubungan. Setiap elemen memiliki pendahulu dan penerusnya (kecuali elemen terakhir) Contoh : Struktur ini mirip kereta api, dimana kepalanyaseperti lokomotif, elemennya seperti gerbong kereta dan datanya seperti penumpang/barang Elemen Senarai Kamus Data : Info : array [1..4] of String Next : array [1..4] of Integer
Dua Notasi : INFO (x) : Data yang ada di alamat X NEXT (x) : Alamat elemen berikut setelah X

1.Cipta_Senarai : membuat senarai kosong 2.Sisip_Awal : menyisipkan elemen di awal

3.Sisip_Akhir : menyisipkan elemen di akhir 4.Hapus_Awal : menghapus elemen di awal 5.Hapus_Akhir : menghapus elemen di akhir

POHON / TREE Struktur Data Struktur data yang terdiri dari akar (root), dan subpohonsubpohon dalam susunan berhirarki
Cara penulisan / penggambaran suatu pohon Struktur Data Pohon Diagram Pohon

NOTASI POHON Cara penulisan / penggambaran suatu pohon Struktur Data Pohon Notasi Kurung (A(B(D,E(I,J)),C(F,G,H))) atau (A (B(D)(E(I)(J))) (C(F)(G)(H))) Struktur Data Pohon yang maksimal memiliki 2 anak. KAMUS DATA POHON BINER Struktur Data Pohon Kamus Data Type BTree = record < Kiri : BTree Info : char Kanan : BTree > P : BTree OPERASI DASAR

Struktur Data Pohon CreateTree(P) : membuat pohon biner baru EmptyTree(P) : memeriksa apakah pohon biner kosong ? InsertTree(P,N) : menyisipkan simpul baru DeleteTree(P,N) : menghapus simpul Info(P) : mengetahui/mencetak isi simpul P Traversal : penelusuran pohon biner

POHON BINER TERURUT menyisipkan simpul dgn aturan : simpul yang lebih kecil diletakkan di sebelah kiri simpul Procedure SisipUrutBTree(input/output P:BTree, input N:integer) If EmptyTree(P) then CreateTree(P) InsertTree(P,N) {untuk info(P)} Else If N < info(P) then SisipUrutBTree(P.kiri,N) else SisipUrutBTree(P.kanan,N) Endif Endif

LATIHAN NOTASI POHON Struktur Data Pohon 2, 3, 4, 5, 50, 10, 15, 13, 20, 12, 10, 5, 7

KONVERSI POHON KE POHON BINER Anak pertama menjadi anak kiri, anak ke-2 menjadi cucu kanan, ke-3 jadi cicit kanan dst

Notasi aritmatik : (A*B+C)/(D^E) Notasi polish : - Pre-Fix : /+*ABC^DE - Post-Fix : AB*C+DE^/ - In-Fix : A*B+C/D^E

Buat pohon terurut dan buat menjadi pohon seimbang dari nodenode ini : 20, 30, 10,12,40, 50, 60

GRAF Graf adalah kumpulan simpul (vertices atau nodes) yang dihubungkan satu sama lain melalui sisi / busur (edges) Perbedaan graf dengan pohon : - graf mungkin terjadi siklus (cycle) - graf dapat terdiri lebih dari satusambungan

Graf G terdiri dua himpunan :


Verteks(simpul) : V = himpunan simpul yang terbatas dan tidak kosong Edge(sisi/busur): E = himpunan busur yang menghubungkan sepasang simpul

Siklus sederhana : (1,2,3,1), (4,5,6,7,4), (4,5,6,4) dan (4,6,7,4). Lintasan bukan siklus : (1,2,4,6,8). Siklus tidak sederhana : (1,2,1) dan (4,5,6,4,7,6,4).
REPRESENTASI GRAF / ADJENCY

LINTASAN TERPENDEK GRAF

SORTING / PENGURUTAN DATA Proses menyusun kumpulan data yang seragam dengan aturan urut menaik (ascending), atau urut menurun (descending) Aturan : Menurun / ascending : az, 1100 3, 8, 18, 24, 69, 70 Menaik / descending : za, 1001 70, 69, 24, 18, 8, 3 KLASIFIKASI KE-1 Berdasarkan perbandingan (comparison-based sorting). - pengurutan seleksi (selection sort) - pengurutan sisip (insertion sort) - pengurutan gabung (merge sort) - pengurutan cepat (quick sort) - pengurutan himpun (heap sort) - pengurutan gelembung (bubble sort)

- pengurutan shell (shell sort) - pengurutan pohon (tree sort) KLASIFIKASI KE-2 Berdasarkan prioritas antrian (priority queue sorting method). - pengurutan seleksi (selection sort) - pengurutan himpun (heap sort) KLASIFIKASI KE-3
Berdasarkan penyisipan dan penjagaan terurut (insert and keep sortedmethod).

- pengurutan sisip (insertion sort) - pengurutan pohon (tree sort)


KLASIFIKASI KE-4 Berdasarkan pembagian danpenguasaan (devide and conquer method). - pengurutan cepat (quick sort) - pengurutan gabung (merge sort) KLASIFIKASI KE-5 Berdasarkan pengurutan berkurangmenurun(diminishing increment sort method). - pengurutan shell (shell sort)

BUBLE SORT PASS PERTAMA

PASS KETUJUH

ALGORITMA BUBLE SORT Kamus Const N : integer = 8 { misalkan jumlah elemen array maksimum = 8 } Type A = array [ 1..N ] of integer Var I, J, bubble : integer ALGORITMA For I 1 to (N-1) do For J N downto (I+1) do If A[J] < A[J-1] then Bubble A[J] A[J] A[J-1] A[J-1] Bubble Endif Endfor Endfor MERGE SORT YAITU pengurutan untuk data yang jumlahnya besar, dimana data tidak semuanya dapat dimuat dalammemori utama (main memory),sehingga harus disimpan dalam penyimpanan sekunder (secondarystorage) berupa berkas (file).

Anda mungkin juga menyukai