MAKALAH STRUKTUR DATA
STACK DAN QUEUE
Dosen Pengampu:
Dian Christien Arisona , [Link]
OLEH:
NAMA : IRMAWATI
NIM : F1A2 23 035
PROGRAM STUDI STATISTIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HALU OLEO
KENDARI
2024
KATA PENGANTAR
Puji syukur selalu penulis panjatkan kepada kehadirat Tuhan Yang Maha
Esa. Dengan segala rahmat, petunjuk, dan karunianya akhirnya makalah ini dapat
diselesaikan.
Dengan segala kemampuan kami yang terbatas, makalah ini mencoba
menguraikan tentang Stack dan Queue. Dan dengan adanya makalah ini kami
berharap dapat membantu penyusun sendiri dalam memahami materi mengenai
stack dan queue tersebut. Olehnya itu, kami mengucapkan terimakasih kepada
Dosen Pengampu mata kuliah Struktur Data yang sudah memberikan tugas ini
sehingga dapat menambah pengetahuan dan wawasan kami. Namun demikian,
apabila dalam makalah ini dijumpai kekurangan dan kesalahan baik dalam
pengetikan maupun isinya, maka kami dengan senang hati menerima kritik dan
saran. Semoga makalah yang sederhana ini bermanfaat adanya
Kendari, 22 Oktober 2024
Penulis
DAFTAR ISI
KATA PENGANTAR ........................................................................................... II
DAFTAR ISI ......................................................................................................... iii
BAB I PENDAHULUAN ......................................................... 1
1.1 Latar Belakang ................................................................................................ 1
1.2 Rumusan Masalah ........................................................................................... 1
1.3 Tujuan Penulisan ............................................................................................. 2
BAB II PEMBAHASAN ....................................................................................... 3
2.1 Pengertian Stack.............................................................................................. 3
2.2 Operasi dasar pada stack ............................................................................... 4
2.3 contoh penggunaan stack pada python ......................................................... 5
2.4 Pengertian Queue ............................................................................................ 6
2.5 Operasi Dasar Pada Queue ............................................................................ 7
2.6 Contoh Penggunaan Queue pada python ..................................................... 8
BAB III PENUTUP ............................................................................................. 10
3.1 Kesimpulan .................................................................................................... 10
DAFTAR PUSTAKA...............................................................................................
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi pada era seperti ini terasa semakin cepat, tidak
hanya dibidang informasi dan komunikasi, melainkan dibeberapa aspek
kehidupan seperti transportasi, peralatan rumah tangga dan lainnya mengalami
perkembangan yang sangat signifikan. Khususnya perkembangan pada
teknologi tersebut, bukan hanya transportasi dan alat elektronik yang sudah
terbiasa bagi kita. Dalam pengolahan sebuah data pada manajemen tertentu juga
mengalami perkembangan, baik dari pengolahan data, penyimpanan data,
pengurusan data, pencarian data dan lainnya. Dahulu jika orang masih
menyimpan data dengan pengarsipan, pada saat ini hanya bermodalkan
penyimpanan elektronik seperti harddisk, flashdisk dan memory card. Pesatnya
pertumbuhan teknologi dan informasi ini juga mempengaruhi
perkembangannya dibidang internet, multimedia maupun program. Internet
yang dapat membantu kita dalam mencari media-media informasi dimana saja,
kapan saja, dengan kondisi bagaimana pun merupakan contoh dari
perkembangan teknologi disaat ini.
Pemakaian struktur data yang tepat di dalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadi program
secara keseluruhan lebih efisien dan sederhana seperti stack dan queue
merupakan bagian dari struktur data yang dikategorikan ke dalam bentuk linier
data, dimana operasi pemasukan maupun pengeluaran data selalu dilakukan
pada salah satu sisinya.
1.2 Rumusan Masalah
1. Apa pengertian stack?.
2. Apa operasi dasar pada stack?.
3. Contoh penggunaan stack pada python!
4. Apa pengertian queue?.
5. Apa saja operasi queue?.
6. Apa contoh penggunaan queue pada python?
1.3 Tujuan Penulisan
1. Mengetahui pengertian stack.
2. Mengetahui operasi dasar pada stack.
3. Contoh penggunaan stack pada python.
4. Mengetahui pengertian queue.
5. Mengetahui operasi queue.
6. Mengetahui contoh penggunaan queue pada python
BAB II
PEMBAHASAN
2.1 Pengertian Stack.
Stack adalah suatu koleksi atau kumpulan item data yang terorganisasi
dalam bentuk urutan linear, yang operasi pemasukan dan penghapusan datanya
dilakukan pada salah satu sisinya. Sedangkan pengertian stack pada struktur
data adalah sebagai tumpukan dari benda, sekumpulan data yang seolah-olah
diletakkan di atas data yang lain, koleksi dari objek-objek homogen, atau Suatu
urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi
akhir (top) saja. Stack merupakan bentuk khusus dari suatu struktur data,
dimana node yang ditambahkan ke dalam list dan diambil dari list hanya pada
kepalanya, atau dengan prinsip pengolahannya adalah last-in first-out (LIFO).
Pada struktur ini hanya ada dua fungsi utama, yaitu push (memasukkan node ke
dalam stack), dan pop (mengambil node dari stack).
Stack adalah suatu tumpukan dari benda. Konsep utamanya adalah
LIFO (Last In First Out), benda yang terakhir masuk dalam stack akan menjadi
benda pertama yang dikeluarkan dari stack. Tumpukan disebut juga “Push
Down Stack” yaitu penambahan elemen baru (PUSH) dan penghapusan elemen
dari tumpukan (POP). Contoh pada PDA (Push Down Automaton). Sistem pada
pengaksesan pada tumpukan menggunakn system LIFO (Last In First Out),
artinya elemen yang terakhir masuk itu yang akan pertama dikeluarkan dari
tumpukan (Stack). Ilustrasi tumpukan (Stack) dapat digambarkan seperti
tumpukan CD atau tumpukan sate. Stack merupakan suatu susunan koleksi data
dimana dapat ditambahkan dan dihapus selalu dilakukan pada bagian akhir data,
yang disebut dengan Top Of Stack.
2.2 Operasi Dasar Pada Stack.
1. Operasi Create
Merupakan operator yang berfungsi untuk membuat sebuah stack
kosong
struct STACK {
int top;
float data[5];
};
float dta;
struct STACK stackbaru;
2. Operasi Is Empty
Merupakan operator yang berfungsi untuk menentukan apakah suatu
stack merupakan stack kosong. Tanda bahwa sebuah stack kosong adalah
Top bernilai kurang dari nol (-1)
bool isempty () {
if ([Link]==1) return true;
else return false;
}
3. Operasi IsFull
bool isfull () {
if ([Link]==maxstack) return
true;
else return false;
}
4. Operasi Push
void push(float dta) {
if (isfull()==false) {
puts("stack penuh");
} else {
[Link]++;
[Link][top]=dta;
}
}
5. Operasi Pop
void pop() {
if (isempty()==false) {
cout<<"data kosong";
} else {
cout<<"data yang terambil :
"<<[Link][top]<<endl;
[Link]--;
}
}
6. Operasi Clear
void clear () {
top=-1
}
7. Operasi Retrieve
void print() {
for (int i=0; i<=top; i++) {
cout<<[Link] [i] <<"
";
}
}
2.3 contoh penggunaan stack pada python
Stack bekerja berdasarkan prinsip “Last-in, first-out”. Selain itu, fungsi
bawaan dalam Python membuat kode menjadi singkat dan sederhana.
Program:
# Python code to demonstrate Implementing
# stack using list
stack = ["Amar", "Akbar", "Anthony"]
[Link]("Ram")
[Link]("Iqbal")
print(stack)
# Removes the last item
print([Link]())
print(stack)
# Removes the last item
print([Link]())
print(stack)
Output:
['Amar', 'Akbar', 'Anthony', 'Ram', 'Iqbal']
Iqbal
['Amar', 'Akbar', 'Anthony', 'Ram']
Domba jantan
['Amar', 'Akbar', 'Anthony']
Untuk menambahkan item ke bagian atas daftar, yaitu, untuk
mendorong item, kita menggunakan fungsi append() dan untuk mengeluarkan
elemen kita menggunakan fungsi pop() . Fungsi-fungsi ini bekerja dengan
sangat efisien dan cepat dalam operasi akhir.
2.4 Pengertian Queue.
Secara harfiah queue dapat diartikan sebagai antrian. Queue merupakan
kumpulan data dengan penambahan data hanya melalui satu sisi, yaitu belakang
(tail) dan penghapusan data hanya melalui sisi depan (head). Berbeda dengan
stack yang bersifat LIFO (Last In First Out) maka queue bersifat FIFO (First In
First Out), yaitu data yang pertama masuk akan keluar terlebih dahulu dan data
yang terakhir masuk akan keluar terakhir. Berikut ini adalah gambaran struktur
data queue.
Elemen yang pertama kali masuk ke dalam queue disebut elemen depan
(front/head of queue), sedangkan elemen yang terakhir kali masuk ke queue
disebut elemen belakang (rear/tail of queue). Perbedaan antara stack dan queue
terdapat pada aturan penambahan dan penghapusan elemen. Pada stack, operasi
penambahan dan penghapusan elemen dilakukan di satu ujung. Elemen yang
terakhir kali dimasukkan akan berada paling dekat dengan ujung atau dianggap
paling atas sehingga pada operasi penghapusan, elemen teratas tersebut akan
dihapus paling awal, sifat demikian dikenal dengan LIFO. Pada queue, operasi
tersebut dilakukan di tempat yang berbeda. Penambahan elemen selalu
dilakukan melalui salah satu ujung, menempati posisi di belakang elemen-
elemen yang sudah masuk sebelumnya atau menjadi elemen paling belakang.
Sedangkan penghapusan elemen dilakukan di ujung yang berbeda, yaitu pada
posisi elemen yang masuk paling awal atau elemen terdepan. Sifat yang
demikian dikenal dengan FIFO.
2.5 Operasi Queue.
a. Operasi‐operasi standar pada queue adalah:
1. Membuat queue atau inisialisasi.
2. Mengecek apakah queue penuh.
3. Mengecek apakah queue kosong.
4. Memasukkan elemen ke dalam queue atau InQueue (Insert Queue).
5. Menghapus elemen queue atau DeQueue (Delete Queue).
b. Operasi - operasi pokok antrian sebagai berikut :
1. Create Queue (Q), atau constructor menciptakan antrian kosong Q.
2. Add Queue (Q, X) memasukkan elemen X sebagai elemen akhir di Q.
3. Remove Queue (Q, X)atau mengambil elemen depan di antrian Q ke
elemenX.
c. Operasi - operasi pengaksesan tambahan yang dapat dilakukan adalah :
1. Head Queue (Q), atau Front (Q, X) mengirim elemen terdepan tanpa
menghapus.
2. Tail Queue (Q), mengirim elemen tanpa menghapusnya.
d. Operasi - operasi Query tambahan yang dapat dilakukan adalah :
1. Is Empty Queue (Q), mengirim apakah antrian Q adalah kosong.
2. Is Full Queue (Q), mengirim apakah antrian Q adalah penuh bila
3. kapasitas antrian Q didefinisikan.
4. Is Overflow Queue (Q), mengirim apakah antrian Q telah
5. Is Underflow Queue (Q), mengirim apakah antrian Q
6. mengalami underflow.
e. Operasi - operasi terhadap seluruh antrian Q antara lain adalah :
1. Size Queue (Q), mengetahui jumlah elemen di antrian Q.
2. Is Equal Queue (Q1, Q2), mengirim apakah antrian Q1 dan Q2 sama
isinya.
3. Jumlah operasi pokok Queue tidak banyak. Dengan demikian, sangat
4. sederhana untuk menyatakan apa pun mengenai implementasinya.
2.6 contoh penggunaan queue pada python
Queue memiliki peran yang penting dalam berbagai aplikasi dan
algoritma. Salah satu fungsi utamanya adalah mengatur dan mengelola antrean
tugas atau operasi secara efisien. Dalam sistem komputasi, ia digunakan untuk
menangani tugas-tugas seperti penjadwalan proses, antrean pesan, dan
manajemen sumber daya.
Penerapannya dapat ditemukan dalam berbagai aspek pemrograman.
Misalnya, dalam simulasi antrean di kasir supermarket, seperti pemrosesan
tugas pada sistem operasi, sequence ketikan pada keyboard, dan masih banyak
lagi.
Program:
class Queue:
def __init__(self):
[Link] = []
def is_empty(self):
return len([Link]) == 0
def enqueue(self, item):
[Link](item)
def dequeue(self):
if not self.is_empty():
return [Link](0)
else:
return "Queue is empty"
def size(self):
return len([Link])
# Contoh penggunaan
antrian = Queue()
# Menambahkan elemen ke dalam antrian
[Link]("Pelanggan 1")
[Link]("Pelanggan 2")
[Link]("Pelanggan 3")
# Melihat ukuran antrian
print("Ukuran antrian:", [Link]())
# Mengambil elemen dari antrian
print("Panggilan ke kasir:", [Link]())
# Melihat ukuran antrian setelah panggilan pertama
print("Ukuran antrian setelah panggilan pertama:",
[Link]())
Output:
Ukuran antrian: 3
Panggilan ke kasir: Pelanggan 1
Ukuran antrian setelah panggilan pertama: 2
Pada contoh di atas, kita membuat class Queue dengan setiap method-
nya seperti enqueue (menambahkan elemen ke dalam antrean), dequeue
(mengambil elemen dari antrean), is_empty (memeriksa apakah antrean
kosong), dan size (mendapatkan ukuran antrean).
Penggunaan class tersebut kemudian diilustrasikan dengan membuat
objek antrean, menambahkan beberapa elemen ke dalamnya, serta melakukan
operasi enqueue dan dequeue. Implementasi ini mencerminkan konsep dasar
dari struktur data queue.
BAB III
PENUTUP
3.1 Kesimpulan.
Stack adalah suatu koleksi atau kumpulan item data yang terorganisasi
dalam bentuk urutan linear, yang operasi pemasukan dan penghapusan
datanya dilakukan pada salah satu sisinya. Stack merupakan bentuk khusus
dari suatu struktur data, dimana node yang ditambahkan ke dalam list dan
diambil dari list hanya pada kepalanya, atau dengan prinsip pengolahannya
adalah last-in first-out (LIFO). Pada struktur ini hanya ada dua fungsi utama,
yaitu push (memasukkan node ke dalam stack), dan pop (mengambil node dari
stack).
Secara harfiah queue dapat diartikan sebagai antrian. Queue
merupakan kumpulan data dengan penambahan data hanya melalui satu sisi,
yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan (head).
Berbeda dengan stack yang bersifat LIFO (Last In First Out) maka queue
bersifat FIFO (First In First Out), yaitu data yang pertama masuk akan keluar
terlebih dahulu dan data yang terakhir masuk akan keluar terakhir. Berikut ini
adalah gambaran struktur data queue.
DAFTAR PUSTAKA
Hartono, J. (2022). Studi Implementasi Queue Menggunakan Array dan Linked List
dalam Pemrograman. Jurnal Informatika, 11(3), 70-78.
[Link] [Link]
[Link] /lowongan/stack-adalah/#.YlK133hBy1s
[Link]
[Link]