Download - Pengalamatan Array

Transcript
Page 1: Pengalamatan Array

PENGALAMATAN Array / Larik

LOK(LA[K]) = Awal(LA) + W(K - LB)Contoh:Misalkan Awal (Jual) = 100 dan W= 4, makaLOK (JUAL[1990]) = 100LOK (JUAL[1991]) = 104LOK (JUAL[1992]) = 108Berapa lokasi JUAL[2000] ? untuk mendapat lokasi tersebutLOK(LA[K]) = Awal(LA) + W(K - LB)= 100 + 4 * (2000 – 1990)= 140PENGALAMATANArray / LarikLokasi Memori ArrayAwal - 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 : MatriksDefinisi•struktur data yang mengacu pada sekumpulan elemen yang diakses melalui indeks•Array dua dimensi, yang memiliki indeks baris dan Kolom

Proses Matriks1. Elemen Matriks diproses Baris demi Baris2. Elemen Matriks diproses Baris demi Baris

Page 2: Pengalamatan Array

PROSES MATRIKS :

INISIALISASI Matriks18 03 6924 08 701Array B dua dimensi (matriks) :- jumlah baris 2, kolom 3- data 18, 03, 69, 24, 08, 70.21 2 3For Baris = 1 to 2 doFor Kolom = 1 to 3 doA(Baris, Kolom) = 0EndforEndfor

Isi dengan 1,2,3,4,5,6Matriks18 03 6924 08 701Array B dua dimensi (matriks) :- jumlah baris 2, kolom 3- data 18, 03, 69, 24, 08, 70.21 2 3

Page 3: Pengalamatan Array

Indeks = 1For Baris = 1 to 2 doFor Kolom = 1 to 3 doA(Baris, Kolom) = IndeksIndeks = Indeks + 1EndforEndfor1 2 34 5 6

Menjumlahkan setiap barisFor Baris = 1 to 2 do MatriksTotalBaris = 0For Kolom = 1 to 3 doTotalBaris = TotalBaris + A[Baris,Kolom]EndforPrint Total BarisEndfor

Menjumlahkan C = A + BDua buah MatriksFor Baris = 1 to 2 doFor Kolom = 1 to 3 doC[Baris,Kolom] =A[Baris,Kolom]+ B[Baris,Kolom]EndforEndfor

Mengalikan MatriksFor Baris = 1 to 2 doFor Kolom = 1 to 3 doC[Baris, Kolom] = 0For K = 1 to P doC[Baris,Kolom] =C[Baris,Kolom]+ A[Baris,K] + B[K,Kolom]EndforEndforEndfor

Matriks Jarang

Page 4: Pengalamatan Array

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

Contoh Matriks JarangSparse Matrix

Matriks Segitiga Matriks Tridiagonal

Konversi Matriks Jarang Sparse Matrix9 data menjadi 6 data

Konversi Matriks Jarang Sparse Matrix16 data menjadi 10 data

Ubah Matriks Segitiga jadi Array

Page 5: Pengalamatan Array

Sparse MatrixProgram Ubah_Matrik_Segitiga_jadi_ArrayKAMUSBaris, Kolom : integerA : array [1..3, 1..3] of integerS : array [1..6] of integerALGORITMAJLH 0For Baris 1 to 3 doFor Kolom 1 to Baris doJLH JLH + 1S[JLH] A[Baris, Kolom]EndforEndfor

Lokasi Elemen Matriks SegitigaLokasi pada array :L = Baris ( Baris – 1 )________________ + Kolom 2

Pengalamatan MatriksOrdering901021 2 31 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[2,2],A[2,3]…... jika row majorA[1,1], A[2,1], A[1,2], A[2,2], A[1,3],A[2,3]….. jika column majorPengalamatan MatriksRow OrderingA[1,1], A[1,2], A[1,3], A[2,1], A[2,2],A[2,3]…... jika row majorA[1,1], A[2,1], A[1,2], A[2,2], A[2,2],A[2,3]….. jika column majorX[1,1] Baris ke –1X[1,2] Baris ke –1X[1,3] Baris ke –1X[2,1] Baris ke-2

Page 6: Pengalamatan Array

X[2,2] Baris ke-2X[2,3] Baris ke-2Pengalamatan MatriksColumn OrderingA[1,1], A[1,2], A[1,3], A[2,1], A[2,2],A[2,3]…... jika row majorA[1,1], A[2,1], A[1,2], A[2,2], A[2,2],A[2,3]….. jika column majorX[1,1] Kolom ke –1X[2,1] Kolom ke –1X[1,2] Kolom ke –2X[2,2] Kolom ke –2X[1,3] Kolom ke –3X[2,3] Kolom ke –3

Pengalamatan MatriksOrdering

Mencari lokasi memori pada Row-major orderLokasi (A[B,K] = Base(A) + w [ N ( B-1) + (K-1) ]Mencari lokasi memori pada Column-major orderLokasi (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 elemenM: jumlah baris pada matriks AN: jumlah kolom pada matriks A

ANTRIAN / QUEUEDefinisi : 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 / QUEUEStruktur Data

Page 7: Pengalamatan Array

OPERASI DASARA n t r I a nDua operasi dasar ANTRIAN :TAMBAHAMBILAMBIL TAMBAH

TAMBAH ELEMENStruktur Data AntrianA B C DDepan = 0Belakang = 0

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

AMBIL ELEMENStruktur Data Antrian

Depan = 1 Belakang =3

Ambil 1 elemen Geser antrian

Depan = 1 Belakang = 2

Depan = 1 Belakang = 1

Depan = 0 Belakang = 0

Page 8: Pengalamatan Array

KAMUS DATAAntrianKamus Data :Q : array [1..4] of CharDepan : IntegerBelakang : Integer0DepanQ0Belakang

SENARAI / LINK LISTDefinisi : 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 SenaraiKamus Data :Info : array [1..4] of StringNext : array [1..4] of Integer

Dua Notasi :INFO (x) : Data yang ada di alamat XNEXT (x) : Alamat elemen berikut setelah X

1.Cipta_Senarai : membuat senarai kosong2.Sisip_Awal : menyisipkan elemen di awal3.Sisip_Akhir : menyisipkan elemen di akhir4.Hapus_Awal : menghapus elemen di awal5.Hapus_Akhir : menghapus elemen di akhir

Page 9: Pengalamatan Array

POHON / TREEStruktur DataStruktur data yang terdiri dari akar (root), dan subpohon-subpohon dalam susunan berhirarki

Cara penulisan / penggambaran suatu pohonStruktur Data PohonDiagram Pohon

NOTASI POHONCara penulisan / penggambaran suatu pohonStruktur Data PohonNotasi 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 BINERStruktur Data PohonKamus DataType BTree = record <Kiri : BTreeInfo : charKanan : BTree >P : BTree

OPERASI DASARStruktur Data PohonCreateTree(P) : membuat pohon biner baruEmptyTree(P) : memeriksa apakah pohon biner kosong ?InsertTree(P,N) : menyisipkan simpul baruDeleteTree(P,N) : menghapus simpulInfo(P) : mengetahui/mencetak isi simpul PTraversal : penelusuran pohon biner

Page 10: Pengalamatan Array

POHON BINER TERURUTmenyisipkan simpul dgn aturan : simpul yang lebih kecil diletakkan di sebelah kiri simpul

Procedure SisipUrutBTree(input/output P:BTree, input N:integer)If EmptyTree(P) thenCreateTree(P)InsertTree(P,N) {untuk info(P)}Else If N < info(P) thenSisipUrutBTree(P.kiri,N)elseSisipUrutBTree(P.kanan,N)EndifEndif

LATIHAN NOTASI POHONStruktur Data Pohon2, 3, 4, 5, 50, 10, 15,13, 20, 12, 10, 5, 7

KONVERSI POHONKE POHON BINERAnak pertama menjadi anak kiri, anak ke-2 menjadicucu kanan, ke-3 jadi cicit kanan dst

Page 11: Pengalamatan Array

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 nodenodeini :20, 30, 10,12,40, 50, 60

GRAFGraf 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 kosongEdge(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

Page 12: Pengalamatan Array

LINTASAN TERPENDEK GRAF

SORTING / PENGURUTAN DATAProses menyusun kumpulan data yang seragam dengan aturan urut menaik (ascending), atau urut menurun (descending)

Aturan :Menurun / ascending : a…z, 1…1003, 8, 18, 24, 69, 70Menaik / descending : z…a, 100…170, 69, 24, 18, 8, 3

KLASIFIKASI KE-1Berdasarkan 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-2Berdasarkan prioritas antrian(priority queue sorting method).- pengurutan seleksi (selection sort)- pengurutan himpun (heap sort)

KLASIFIKASI KE-3

Page 13: Pengalamatan Array

Berdasarkan penyisipan dan penjagaan terurut (insert and keep sortedmethod).- pengurutan sisip (insertion sort)- pengurutan pohon (tree sort)

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

BUBLE SORT

PASS PERTAMA

PASS KETUJUH

ALGORITMABUBLE SORTKamusConst N : integer = 8 { misalkan jumlah elemen array maksimum = 8 }Type A = array [ 1..N ] of integerVar I, J, bubble : integer

Page 14: Pengalamatan Array

ALGORITMAFor I 1 to (N-1) doFor J N downto (I+1) doIf A[J] < A[J-1] thenBubble A[J]A[J] A[J-1]A[J-1] BubbleEndifEndforEndforMERGE SORT YAITUpengurutan untuk data yang jumlahnya besar, dimana data tidak semuanya dapat dimuat dalammemori utama (main memory),sehingga harus disimpan dalampenyimpanan sekunder (secondarystorage) berupa berkas (file).