1 / 16

STRUKTUR DATA

PERTEMUAN KE-5 Kamis, 7 Oktober 2010. STRUKTUR DATA. Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) Palangka Raya. Pemetaan Trianguler Array. T(1,1)  S(1) T(2,1)  S(N+1) T(1,2)  S(2) T(2,2)  S(N+1) T(1,3)  S(3) T(2,3)  S(N+2) … …

Download Presentation

STRUKTUR DATA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PERTEMUAN KE-5 Kamis, 7 Oktober 2010 STRUKTUR DATA Sekolah Tinggi Manajemen Informatika dan Komputer (STMIK) Palangka Raya

  2. Pemetaan Trianguler Array T(1,1)  S(1) T(2,1)  S(N+1) T(1,2)  S(2) T(2,2)  S(N+1) T(1,3)  S(3) T(2,3)  S(N+2) … … T(1,N)  S(N) T(2,N)  S(2N) T(i,j)  S((i-1)*N+j-i*(i-1)/2)

  3. Pemetaan Array ke Memori Row major order B + (i-L1) * (U2-L2+1) * S + (j-L2) * S Baris 1 Baris 2 Baris 3 Column major order B + (j-L2) * (U1-L1+1) * S + (i-L1) * S Kolom 1 Kolom 2 Kolom 3

  4. STACK (Tumpukan) • Stack atau Tumpukan adalah bentuk khusus dari list linier (linear list) yang penambahan dan penghapusan elemennya hanya boleh melalui salah satu sisi. • Posisi untuk menambah dan menghapus elemen pada stack disebut TOP atau puncak. • Elemen pada puncak stack diacu dengan TOP(S). Bila stack kosong, maka TOP(S) tidak terdefinisi. • Penambahan dan pengurangan elemen pada STACK menggunakan prinsip LIFO (Last In First Out).

  5. STACK (Tumpukan) • Operasi-operasi pada struktur data STACK: CREATE = pembentukan stack (alokasi memori) PUSH = menambah elemen baru POP = mengambil/menghapus elemen dari stack ISEMPTY = memeriksa apakah stack kosong • Fungsi-fungsi untuk operasi stack adalah TOP = menunjuk kepada elemen puncak pada stack jika stack kosong maka TOP(S) tidak terdefinisi NOEL = jumlah elemen dalam stack (Number Of ELements)

  6. STACK • CREATE(S) • NOEL(S) = 0 • TOP(S) tidak terdefinisi • Stack S = [] • PUSH elemen A • NOEL(S) = 1 • TOP(S) = A • Stack S = [A]

  7. STACK • PUSH elemen G • NOEL(S) = 2 • TOP(S) = G • Stack S = [A,G] • PUSH elemen K • NOEL(S) = 3 • TOP(S) = K • Stack S = [A,G,K]

  8. STACK • POP • NOEL(S) = 2 • TOP(S) = G • Stack S = [A,G] • PUSH elemen M • NOEL(S) = 3 • TOP(S) = M • Stack S = [A,G,M]

  9. STACK • PUSH elemen W • NOEL(S) = 4 • TOP(S) = W • Stack S = [A,G,M,W] • PUSH elemen F • NOEL(S) = 5 • TOP(S) = F • Stack S = [A,G,M,W,F]

  10. Aplikasi Stack • Stack sangat luas pemakaiannya dalam penyelesaian berbagai macam problem. Misalnya pada compiler, sistem operasi, dsb. • Kasus yang sering menggunakan stack adalah penjodohan tanda kurung (matching parentheses)

  11. Aplikasi Stack • Algoritma matching parentheses: Amati barisan elemen dari kiri ke kanan. Jika ditemukan parenthesis kiri, maka PUSH parenthesis kiri ke stack. Jika ditemukan parenthesis kanan, maka periksa apakah stack kosong. Jika ya  error, jika tidak, POP elemen dari stack. Jika penelusuran barisan elemen selesai tetapi stack tidak kosong  error.

  12. Aplikasi Stack • Pembentukan Notasi Postfix • Pembentukan Notasi Postfix bertujuan untuk mempermudah pembentukan kode obyek pada proses kompilasi bahasa pemrograman tingkat tinggi (high level programming language) • Notasi Postfix berarti posisi operasi ditempatkan setelah operan-operannya. infixpostfix Contoh: A + B  A B + (A+B)*C  A B + C * Y=M/(X+C)-F  Y M X C + / F - = Pada notasi postfix, tanda kurung tidak digunakan.

  13. Mengubah Infix  Postfix Ekspresi dibaca per karakter dari kiri ke kanan. Algoritma: • Jika dibaca tanda “(“ maka PUSH ke stack • Jika dibaca tanda “)” maka POP semua elemen dari stack sampai ditemukan tanda “(“ • Semua elemen yang di-POP ditulis kembali, kecuali tanda “(“ • Jika simbol adalah operan maka operan tersebut langsung di-output. • Jika dibaca simbol operator maka periksa apakah elemen TOP merupakan operator yang levelnya sama atau lebih tinggi, jika ya, POP dan output-kan operator dari stack. Lanjutkan proses ini sampai TOP adalah “(“ atau operator dengan level lebih rendah. Jika hal ini terjadi, operator yang diamati di PUSH

  14. Mengubah Infix  Postfix • Ada 3 level operator: level tertinggi : pemangkatan level menengah : perkalian (*), pembagian (/) level terendah : penjumlahan (+), pengurangan (-) • Operator dengan level lebih tinggi selalu diproses lebih dulu. Contoh : 3 + 4 * 5 = 3 + 20 = 23 12 / 3 + 3 = 4 + 3 = 7 1 – 2 * 3 + 4 / 2 + 7 = 1 – 6 + 2 + 7 = 4

  15. Ubahlah ekspresi berikut menjadi notasi postfix ((A+B)*C/D+E^F)/G

  16. Bahan Bacaan • http://elearning.gunadarma.ac.id/docmodul/pengantar_struktur_data/ • http://elearning.gunadarma.ac.id/docmodul/ • http://kur2003.if.itb.ac.id/file/Cover_SD_Konsep.htm • http://kur2003.if.itb.ac.id/file/Cover_SD_StudiKasus.htm

More Related