0% menganggap dokumen ini bermanfaat (0 suara)
51 tayangan14 halaman

Pemahaman Stack dan Queue dalam Data

Diunggah oleh

Irma Wati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
51 tayangan14 halaman

Pemahaman Stack dan Queue dalam Data

Diunggah oleh

Irma Wati
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

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]

Common questions

Didukung oleh AI

Contoh implementasi queue dalam Python melibatkan penggunaan list untuk menyimpan item, dengan operasi 'enqueue' untuk menambahkan item ke akhir dan 'dequeue' untuk menghapus item dari awal. Fungsi 'dequeue' biasanya memeriksa apakah queue tidak kosong sebelum menghapus elemen pertama menggunakan pop(0) method untuk menjaga urutan FIFO .

Prinsip LIFO dalam program stack di Python diterapkan dengan menggunakan operasi append() untuk menambahkan elemen ke atas tumpukan dan pop() untuk mengeluarkan elemen dari puncak tumpukan. Fungsi-fungsi ini memungkinkan elemen yang terakhir kali ditambahkan ke stack adalah yang pertama kali dihapus, sesuai dengan prinsip LIFO .

Konseptualisasi queue sebagai model antrian bermanfaat dalam aplikasi kehidupan nyata karena mirip dengan cara kerja antrian fisik, seperti yang ada di kasir supermarket atau pengelolaan tiket. Penggunaan queue dalam sistem komputer dapat meningkatkan efisiensi komunikasi antar proses, mengatur tugas-tugas dalam urutan yang tepat untuk diproses, dan menawarkan waktu respons yang lebih cepat dan lebih prediktif dalam berbagai sistem pengolahan data .

Penggunaan struktur data yang tepat sangat penting untuk efisiensi algoritma karena struktur data mempengaruhi kompleksitas waktu dan memori dari operasi yang dilakukan. Sebagai contoh, stack dan queue memungkinkan operasi pemrosesan elemen dengan cara yang lebih terstruktur dan efisien, sesuai dengan kebutuhan pemrosesan data linear. Dengan struktur data yang sesuai, algoritma dapat berjalan lebih efisien, mengurangi waktu eksekusi dan penggunaan sumber daya .

Queue dapat meningkatkan efisiensi penjadwalan proses dalam sistem operasi dengan memanfaatkan prinsip FIFO, dimana proses pertama yang dimasukkan ke dalam queue adalah yang pertama dikeluarkan untuk dieksekusi. Ini membantu dalam mengatur tugas-tugas secara adil dan terorganisir, memastikan bahwa semua proses mendapatkan giliran untuk dieksekusi, mengurangi kemungkinan kelaparan sumber daya, dan menjamin bahwa waktu sistem beroperasi secara optimal .

Operasi 'Clear' dalam stack sangat penting karena memungkinkan penghapusan semua elemen dari stack, mengosongkannya sehingga siap digunakan kembali. Ini tidak hanya membebaskan memori yang ditempati oleh elemen-elemen dalam stack, tetapi juga meningkatkan efisiensi dalam pengelolaan memori dan menyiapkan stack untuk kemungkinan operasi baru tanpa konflik residu data .

Operasi 'enQueue' yang menambahkan elemen ke belakang queue menjadikannya dinamis, memungkinkan queue untuk tumbuh seiring dengan kebutuhan aplikasi. Namun, jika tidak diterapkan dengan benar, hal ini dapat menyebabkan kesalahan seperti overflow apabila kapasitas queue terbatas tidak dikelola dengan baik, atau terjadi inkonsistensi elemen jika manipulasi elemen tidak dilakukan dengan urutan yang benar .

Dalam struktur data stack, operasi 'isFull' digunakan untuk memeriksa apakah stack sudah penuh dan tidak dapat menambah elemen baru. Sebaliknya, 'isEmpty' digunakan untuk menentukan apakah stack kosong, yang berarti tidak ada elemen dalam stack. Kedua operasi ini sangat penting untuk mencegah kesalahan program seperti stack overflow dan untuk memastikan bahwa operasi pop tidak dilakukan pada stack kosong .

Operasi 'retrieve' dalam stack memungkinkan pengambilan dan tampilan elemen-elemen tanpa mengeluarkannya dari stack, yang bermanfaat dalam debugging program dengan memberikan gambaran tentang status terkini stack hingga titik tertentu tanpa memodifikasi strukturnya. Ini dapat membantu dalam mengidentifikasi pola kesalahan atau perilaku yang tidak diinginkan dalam pengelolaan data yang dikelola oleh stack .

Perbedaan utama antara stack dan queue terletak pada aturan penambahan dan penghapusan elemen. Pada stack, operasi dilakukan menurut prinsip LIFO (Last In First Out), yaitu elemen yang terakhir kali dimasukkan adalah yang pertama kali dikeluarkan. Sebaliknya, queue menggunakan prinsip FIFO (First In First Out), yang berarti elemen yang pertama kali dimasukkan adalah yang pertama kali dikeluarkan .

Anda mungkin juga menyukai