Download - 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
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
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
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
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
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
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
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
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
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
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
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
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
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).