Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehPeter Kece Telah diubah "9 tahun yang lalu
1
PERTEMUAN KE-5 Kamis, 7 Oktober 2010
2
Pemetaan Trianguler Array ABCDE FGHI JKL MN O A B C D E F G H I J K L M N O 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 MemoriABCDEF GHI ABCDEF GHI ABCDEFGHI ADGBEHCFI Row major order B + (i-L 1 ) * (U 2 -L 2 +1) * S + (j-L 2 ) * S Column major order B + (j-L 2 ) * (U 1 -L 1 +1) * S + (i-L 1 ) * S Baris 1 Baris 2 Baris 3 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
CREATE(S) NOEL(S) = 0 TOP(S) tidak terdefinisi Stack S = [] PUSH elemen A NOEL(S) = 1 TOP(S) = A Stack S = [A] A
7
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] G A K G A
8
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] G A M G A
9
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] W M G A F W M G A
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: 1)Jika dibaca tanda “(“ maka PUSH ke stack 2)Jika dibaca tanda “)” maka POP semua elemen dari stack sampai ditemukan tanda “(“ 3)Semua elemen yang di-POP ditulis kembali, kecuali tanda “(“ 4)Jika simbol adalah operan maka operan tersebut langsung di- output. 5)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 Ekspresi dibaca dari kiri ke kanan((A+B)*C/D+E^F)/G TOP (((++(**//++^^// ((((((((((++ (((( OutputAB+C*D/EF^+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
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.