SlideShare a Scribd company logo
1 of 22
ADT PADA
STACK DAN QUEUE
ADT
ADT (Pengertian)
• ADT=Abstrack Data Type/Tipe Data Abstrak
• Tipe data yang merupakan hasil imajinasi pemrogram/manusia
dengan memberikan Batasan domain maupun operasinya.
• Abstract Data Type (ADT) umumnya yaitu sekumpulan objek
dengan sekumpulan operasi.
• ADT memungkinkan pendefinisian suatu himpunan nilai di variable
disertai operasi yang digunakan.
ADT (Pengertian)
ADT biasanya diimplementasikan menjadi dua modul:
• Definisi/Spesifikasi dari TYPE dan PRIMITIF
• Spesifikasi TYPE disesuaikan pada bahasa
• Spesifikasi PRIMITIF sesuai konteks (fungsi ataukah prosedur)
• Body, berupa kode program
Supaya ADT dapat diuji tuntas, maka harus dilengkapi dengan
program utama yang mengandung pemakaian (call) terhadap setiap
PRIMITIF dalam ADT. Disebut sebagai DRIVER.
ADT dalam Bahasa pemrograman
BAHASA SPESIFIKASI BODY
PASCAL Unit Interface Implementasi
C File header *.h File Kode Program (*.c)
C++ File header *.h File Kode Program (*.cpp)
JAVA Class Public Class
ADT dalam struktur data
• ADT dan struktur data adalah hal yang berbeda
• Struktur data lebih konkret dan jelas, sedangkan ADT lebih
merupakan sebuah skripsi logika
• ADT : stack, queue, priority queue, dictionary,
sequence, set.
• Struktur Data : array, linked list, hash table (open, closed,
circular hashing), trees (binary search trees, heaps, AVL trees, 2-3
trees, tries, red/black trees, B-trees)
STACK
STACK (Pengertian)
• Stack/tumpukan adalah kumpulan item di mana item data baru
dapat ditambahkan/dimasukkan pada bagian atas tumpukan. Item
yang dapat dihapus hanya pada tempat paling atas
• Secara formal stack adalah Abstract Data Type (ADT)
• Stack adalah wadah yang mengimplementasikan Last-In-First-Out
(LIFO) protocol
STACK (Pengertian)
• LIFO (Last In Fist Out) artinya elemen dari struktur (node) yang
dimasukkan pertama kali ke dalam rangkaian akan dikeluarkan
(diproses) terakhir kali sedangkan elemen yang masuk terakhir
akan diproses / dikeluarkan pertama.
• Dengan kata lain setiap transaksi atau aktifitas yang ada dalam
stack dilakukan pada kepalanya (head) saja.
Perintah pada Stack
Pada Stack dikenal beberapa perintah untuk memanipulasi datanya,
seperti Push, Pop, IsEmpty, Peek, Print/Display.
• Push untuk menambah data,
• Pop untuk menghapus data,
• IsEmpty untuk mengecek apakah Stack kosong atau terisi,
• Peek untuk mengecek nilai Top dari Stack,
• Print/Display untuk melihat isi dari Stack.
Ilustrasi Stack
Ilustrasi dari Stack dapat dilihat pada gambar berikut.
| |
| |
| |
| 7 |
| 6|
Jika ditambahkan data baru, misal 3, maka akan menjadi seperti gambar berikut.
| |
| |
| 3 |
| 7 |
| 6 |
Jika dihapus, maka data 3 akan hilang, dan Stack akan menjadi seperti pada gambar pertama. Jadi, semua aktifitas
penambahan dan penghapusan data selalu dimulai dari atas.
Implementasi Stack (Array)
• Implementasi dan digunakan perintah push() dan pop() dengan
insert dan delete pada akhir array.
• Karena array terbatas muatannya, maka ada kemungkinan array
akan terisi penuh ketika sejumlah elemen diisikan kedalamnya.
• Fungsi boolean IsFull() akan mengembalikan true jika stack (array)
penuh dan sebaliknya false.
• Minus: mengakibatkan semua elemen yang tersisa akan bergeser
ke kiri.
• Plus: tidak perlu menggeser elemen.
Implementasi Stack (List)
• Implementasi dan digunakan perintah push() dan pop() dengan
insert dan delete pada akhir array.
• Seperti pada array, perlu diketahui dimana akan menyisipkan
elemen pada list dan dimana yang akan dihapus sehingga push dan
pop akan berjalan dengan cepat.
• Insert pada awal atau akhir list akan memiliki waktu yang tetap
• Menghapus elemen pada akhir list membutuhkan waktu yang
cukup lama karena proses perjalanan dari awal sampai akhir list
QUEUE
QUEUE (Pengertian)
• Queue/antrian adalah kumpulan item di mana item data baru
dapat ditambahkan/dimasukkan pada bagian belakang (rear). Item
yang dapat dihapus hanya pada tempat paling depan (front)
• Secara formal queue adalah Abstract Data Type (ADT)
• Queue adalah wadah yang mengimplementasikan First-In-First-Out
(FIFO) protocol
QUEUE (Pengertian)
• Queue merupakan jenis Linked list yang menerapkan konsep FIFO
(First In First Out) atau kebalikan dari Stack (LIFO).
• Pada Queue elemen yang dimasukkan pertama kali apabila
dilakukan pemrosesan maka elemen tersebut yang akan diproses
terlebih dahulu.
Aplikasi Kehidupan
Contoh yang paling banyak kita lihat adalah
• Ketika kita sedang antri di Bank. Orang pertama akan langsung
berada di posisi paling depan, orang selanjutnya akan berada di
belakangnya.
• Jika orang pertama sudah selesai transaksi, maka orang pertama
akan keluar dan orang kedua akan maju menjadi paling depan,
begitu seterusnya.
• Saat kita akan membeli tiket di Bioskop, disitu orang yang datang
untuk mengantri pertama kali akan dilayani terlebih dahulu dan
yang mengantri terakhir akan dilayani terakhir.
Perintah pada Queue
Pada Stack dikenal beberapa perintah untuk memanipulasi datanya,
seperti Enqueue, Dequeue, IsEmpty, Peek, Print/Display.
• Enqueue: proses penambahan elemen di posisi belakang
• Dequeue: proses pengambilan elemen di posisi depan
• IsEmpty untuk mengecek apakah queue kosong atau terisi,
• Peek untuk mengecek nilai Top dari queue,
• Print/Display untuk melihat isi dari queue.
Deklarasi dalam Queue
• Sebuah queue di dalam program komputer dideklarasikan sebagai
sebuah tipe bentukan baru, di dalam Bahasa C, biasa disebut
struct.
• Sebuah struktur data dari sebuah queue setidaknya harus
mengandung tiga variable:
• variabel HEAD yang akan berguna sebagai penanda bagian depan antrian,
• variabel TAIL yang akan berguna sebagai penanda bagian belakang antrian
• ARRAY DATA dari yang akan menyimpan data-data yang dimasukkan ke dalam
queue tersebut.
Implementasi Queue (Deque)
• DEQUE (Double-ended queue) adalah antrian dimana elemennya
bisa masuk dan keluar lewat kedua ujungnya (berbeda dengan
queue yang hanya bisa masuk lewat ujung belakang dan keluar
lewat ujung depan).
Variasi pada Deque
DEQUE juga mempunyai dua jenis variasi yaitu :
• Deque input terbatas : suatu deque yang membatasi
pemasukkan elemen hanya pada satu ujung dari list, sementara
penghapusan elemen boleh dilakukan pada kedua ujung list.
• Deque output terbatas : merupakan kebalikan dari deque input
terbatas yaitu suatu deque yang membatasi penghapusan elemen
hanya pada satu ujung dari list, sementara pemasukkan elemen
boleh dilakukan pada kedua ujung list
REFERENSI
•Bambangwirawan, Paulus. 2004. Struktur Data dengan C. Yogyakarta: Penerbit Andi.
•Deitel,Paul,Deitel,Harvey.2014.C++HowtoProgram-NinthEdition.Harlow:Pearson Education Limited.
•Kadir,Abdul.2003.PemrogramanC++.Yogyakarta:PenerbitAndi.
•Munir,Rinaldi.2009.AlgoritmaPemrogramandalamBahasaPascaldanC.Bandung: Penerbit INFORMATIKA.
•Rahmat C., Antonius. 2010. Algoritma dan Pemrograman dengan Bahasa C - Konsep, Teori, dan Implementasi.
Yogyakarta: Penerbit Andi.
•Suarga. 2012. Algoritma dan Pemrograman. Yogyakarta: Penerbit Andi.

More Related Content

Similar to Ketoprak_PPT ADT Stack dan Queue.pptx

Similar to Ketoprak_PPT ADT Stack dan Queue.pptx (20)

Struktur data
Struktur dataStruktur data
Struktur data
 
Queue
Queue Queue
Queue
 
2894065
28940652894065
2894065
 
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ix
 
Laporan praktikum modul viii
Laporan praktikum modul viiiLaporan praktikum modul viii
Laporan praktikum modul viii
 
Struktur data
Struktur dataStruktur data
Struktur data
 
Implementasi queue
Implementasi queueImplementasi queue
Implementasi queue
 
Algorithms and Data Structures
 Algorithms and Data Structures Algorithms and Data Structures
Algorithms and Data Structures
 
4 queue2
4 queue24 queue2
4 queue2
 
Fungsi rekursif, queue, stack
Fungsi rekursif, queue, stackFungsi rekursif, queue, stack
Fungsi rekursif, queue, stack
 
Kelompok 3
Kelompok 3Kelompok 3
Kelompok 3
 
Stack
StackStack
Stack
 
Stack
StackStack
Stack
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
 
ppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.pptppt_stack_kelompok_5_ppt.ppt
ppt_stack_kelompok_5_ppt.ppt
 
Chapter 4 stack and queue
Chapter 4   stack and queueChapter 4   stack and queue
Chapter 4 stack and queue
 
Presentasi lifo
Presentasi lifoPresentasi lifo
Presentasi lifo
 
IF2_Queues_Kel6_UTSStrukturData-dikompresi.pdf
IF2_Queues_Kel6_UTSStrukturData-dikompresi.pdfIF2_Queues_Kel6_UTSStrukturData-dikompresi.pdf
IF2_Queues_Kel6_UTSStrukturData-dikompresi.pdf
 
Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)Bab 4 stack (tumpukan)
Bab 4 stack (tumpukan)
 
Ifc modul 7 (queue)
Ifc   modul 7 (queue)Ifc   modul 7 (queue)
Ifc modul 7 (queue)
 

Ketoprak_PPT ADT Stack dan Queue.pptx

  • 2. ADT
  • 3. ADT (Pengertian) • ADT=Abstrack Data Type/Tipe Data Abstrak • Tipe data yang merupakan hasil imajinasi pemrogram/manusia dengan memberikan Batasan domain maupun operasinya. • Abstract Data Type (ADT) umumnya yaitu sekumpulan objek dengan sekumpulan operasi. • ADT memungkinkan pendefinisian suatu himpunan nilai di variable disertai operasi yang digunakan.
  • 4. ADT (Pengertian) ADT biasanya diimplementasikan menjadi dua modul: • Definisi/Spesifikasi dari TYPE dan PRIMITIF • Spesifikasi TYPE disesuaikan pada bahasa • Spesifikasi PRIMITIF sesuai konteks (fungsi ataukah prosedur) • Body, berupa kode program Supaya ADT dapat diuji tuntas, maka harus dilengkapi dengan program utama yang mengandung pemakaian (call) terhadap setiap PRIMITIF dalam ADT. Disebut sebagai DRIVER.
  • 5. ADT dalam Bahasa pemrograman BAHASA SPESIFIKASI BODY PASCAL Unit Interface Implementasi C File header *.h File Kode Program (*.c) C++ File header *.h File Kode Program (*.cpp) JAVA Class Public Class
  • 6. ADT dalam struktur data • ADT dan struktur data adalah hal yang berbeda • Struktur data lebih konkret dan jelas, sedangkan ADT lebih merupakan sebuah skripsi logika • ADT : stack, queue, priority queue, dictionary, sequence, set. • Struktur Data : array, linked list, hash table (open, closed, circular hashing), trees (binary search trees, heaps, AVL trees, 2-3 trees, tries, red/black trees, B-trees)
  • 8. STACK (Pengertian) • Stack/tumpukan adalah kumpulan item di mana item data baru dapat ditambahkan/dimasukkan pada bagian atas tumpukan. Item yang dapat dihapus hanya pada tempat paling atas • Secara formal stack adalah Abstract Data Type (ADT) • Stack adalah wadah yang mengimplementasikan Last-In-First-Out (LIFO) protocol
  • 9. STACK (Pengertian) • LIFO (Last In Fist Out) artinya elemen dari struktur (node) yang dimasukkan pertama kali ke dalam rangkaian akan dikeluarkan (diproses) terakhir kali sedangkan elemen yang masuk terakhir akan diproses / dikeluarkan pertama. • Dengan kata lain setiap transaksi atau aktifitas yang ada dalam stack dilakukan pada kepalanya (head) saja.
  • 10. Perintah pada Stack Pada Stack dikenal beberapa perintah untuk memanipulasi datanya, seperti Push, Pop, IsEmpty, Peek, Print/Display. • Push untuk menambah data, • Pop untuk menghapus data, • IsEmpty untuk mengecek apakah Stack kosong atau terisi, • Peek untuk mengecek nilai Top dari Stack, • Print/Display untuk melihat isi dari Stack.
  • 11. Ilustrasi Stack Ilustrasi dari Stack dapat dilihat pada gambar berikut. | | | | | | | 7 | | 6| Jika ditambahkan data baru, misal 3, maka akan menjadi seperti gambar berikut. | | | | | 3 | | 7 | | 6 | Jika dihapus, maka data 3 akan hilang, dan Stack akan menjadi seperti pada gambar pertama. Jadi, semua aktifitas penambahan dan penghapusan data selalu dimulai dari atas.
  • 12. Implementasi Stack (Array) • Implementasi dan digunakan perintah push() dan pop() dengan insert dan delete pada akhir array. • Karena array terbatas muatannya, maka ada kemungkinan array akan terisi penuh ketika sejumlah elemen diisikan kedalamnya. • Fungsi boolean IsFull() akan mengembalikan true jika stack (array) penuh dan sebaliknya false. • Minus: mengakibatkan semua elemen yang tersisa akan bergeser ke kiri. • Plus: tidak perlu menggeser elemen.
  • 13. Implementasi Stack (List) • Implementasi dan digunakan perintah push() dan pop() dengan insert dan delete pada akhir array. • Seperti pada array, perlu diketahui dimana akan menyisipkan elemen pada list dan dimana yang akan dihapus sehingga push dan pop akan berjalan dengan cepat. • Insert pada awal atau akhir list akan memiliki waktu yang tetap • Menghapus elemen pada akhir list membutuhkan waktu yang cukup lama karena proses perjalanan dari awal sampai akhir list
  • 14. QUEUE
  • 15. QUEUE (Pengertian) • Queue/antrian adalah kumpulan item di mana item data baru dapat ditambahkan/dimasukkan pada bagian belakang (rear). Item yang dapat dihapus hanya pada tempat paling depan (front) • Secara formal queue adalah Abstract Data Type (ADT) • Queue adalah wadah yang mengimplementasikan First-In-First-Out (FIFO) protocol
  • 16. QUEUE (Pengertian) • Queue merupakan jenis Linked list yang menerapkan konsep FIFO (First In First Out) atau kebalikan dari Stack (LIFO). • Pada Queue elemen yang dimasukkan pertama kali apabila dilakukan pemrosesan maka elemen tersebut yang akan diproses terlebih dahulu.
  • 17. Aplikasi Kehidupan Contoh yang paling banyak kita lihat adalah • Ketika kita sedang antri di Bank. Orang pertama akan langsung berada di posisi paling depan, orang selanjutnya akan berada di belakangnya. • Jika orang pertama sudah selesai transaksi, maka orang pertama akan keluar dan orang kedua akan maju menjadi paling depan, begitu seterusnya. • Saat kita akan membeli tiket di Bioskop, disitu orang yang datang untuk mengantri pertama kali akan dilayani terlebih dahulu dan yang mengantri terakhir akan dilayani terakhir.
  • 18. Perintah pada Queue Pada Stack dikenal beberapa perintah untuk memanipulasi datanya, seperti Enqueue, Dequeue, IsEmpty, Peek, Print/Display. • Enqueue: proses penambahan elemen di posisi belakang • Dequeue: proses pengambilan elemen di posisi depan • IsEmpty untuk mengecek apakah queue kosong atau terisi, • Peek untuk mengecek nilai Top dari queue, • Print/Display untuk melihat isi dari queue.
  • 19. Deklarasi dalam Queue • Sebuah queue di dalam program komputer dideklarasikan sebagai sebuah tipe bentukan baru, di dalam Bahasa C, biasa disebut struct. • Sebuah struktur data dari sebuah queue setidaknya harus mengandung tiga variable: • variabel HEAD yang akan berguna sebagai penanda bagian depan antrian, • variabel TAIL yang akan berguna sebagai penanda bagian belakang antrian • ARRAY DATA dari yang akan menyimpan data-data yang dimasukkan ke dalam queue tersebut.
  • 20. Implementasi Queue (Deque) • DEQUE (Double-ended queue) adalah antrian dimana elemennya bisa masuk dan keluar lewat kedua ujungnya (berbeda dengan queue yang hanya bisa masuk lewat ujung belakang dan keluar lewat ujung depan).
  • 21. Variasi pada Deque DEQUE juga mempunyai dua jenis variasi yaitu : • Deque input terbatas : suatu deque yang membatasi pemasukkan elemen hanya pada satu ujung dari list, sementara penghapusan elemen boleh dilakukan pada kedua ujung list. • Deque output terbatas : merupakan kebalikan dari deque input terbatas yaitu suatu deque yang membatasi penghapusan elemen hanya pada satu ujung dari list, sementara pemasukkan elemen boleh dilakukan pada kedua ujung list
  • 22. REFERENSI •Bambangwirawan, Paulus. 2004. Struktur Data dengan C. Yogyakarta: Penerbit Andi. •Deitel,Paul,Deitel,Harvey.2014.C++HowtoProgram-NinthEdition.Harlow:Pearson Education Limited. •Kadir,Abdul.2003.PemrogramanC++.Yogyakarta:PenerbitAndi. •Munir,Rinaldi.2009.AlgoritmaPemrogramandalamBahasaPascaldanC.Bandung: Penerbit INFORMATIKA. •Rahmat C., Antonius. 2010. Algoritma dan Pemrograman dengan Bahasa C - Konsep, Teori, dan Implementasi. Yogyakarta: Penerbit Andi. •Suarga. 2012. Algoritma dan Pemrograman. Yogyakarta: Penerbit Andi.