Stack
Stack adalah struktur data yang mengikuti prinsip LIFO (Last In, First Out), dimana elemen terakhir yang dimasukkan akan menjadi elemen pertama yang diambil.
Penjelasan Sintaks Stack
__init__
: Metode konstruktor untuk menginisialisasi stack dengan list kosong.is_empty
: Memeriksa apakah stack kosong.push
: Menambahkan elemen ke atas stack.pop
: Menghapus dan mengembalikan elemen teratas dari stack. Mengembalikan None
jika stack kosong.peek
: Mengembalikan elemen teratas dari stack tanpa menghapusnya. Mengembalikan None
jika stack kosong.size
: Mengembalikan jumlah elemen dalam stack.
__init__
: Metode konstruktor untuk menginisialisasi stack dengan list kosong.is_empty
: Memeriksa apakah stack kosong.push
: Menambahkan elemen ke atas stack.pop
: Menghapus dan mengembalikan elemen teratas dari stack. Mengembalikan None
jika stack kosong.peek
: Mengembalikan elemen teratas dari stack tanpa menghapusnya. Mengembalikan None
jika stack kosong.size
: Mengembalikan jumlah elemen dalam stack.Queue
Queue adalah struktur data yang mengikuti prinsip FIFO (First In, First Out), dimana elemen pertama yang dimasukkan akan menjadi elemen pertama yang diambil.
Implementasi Queue
Penjelasan Sintaks Queue
__init__
: Metode konstruktor untuk menginisialisasi queue dengan list kosong.is_empty
: Memeriksa apakah queue kosong.enqueue
: Menambahkan elemen ke belakang queue (dengan menggunakan insert
pada posisi 0).dequeue
: Menghapus dan mengembalikan elemen terdepan dari queue. Mengembalikan None
jika queue kosong.size
: Mengembalikan jumlah elemen dalam queue.
Contoh Penerapan Stack: Tumpukan piringImplementasi Stack untuk tumpukan piring
__init__
: Metode konstruktor untuk menginisialisasi queue dengan list kosong.is_empty
: Memeriksa apakah queue kosong.enqueue
: Menambahkan elemen ke belakang queue (dengan menggunakan insert
pada posisi 0).dequeue
: Menghapus dan mengembalikan elemen terdepan dari queue. Mengembalikan None
jika queue kosong.size
: Mengembalikan jumlah elemen dalam queue.class PiringStack: def __init__(self): self.items = []
def is_empty(self): return self.items == []
def taruh_piring(self, piring): self.items.append(piring) print(f"Piring {piring} ditaruh.")
def ambil_piring(self): if not self.is_empty(): piring = self.items.pop() print(f"Piring {piring} diambil.") return piring else: print("Tidak ada piring yang bisa diambil.") return None
def lihat_piring_teratas(self): if not self.is_empty(): return self.items[-1] else: return None
def jumlah_piring(self): return len(self.items)
# Contoh penggunaan PiringStacktumpukan_piring = PiringStack()tumpukan_piring.taruh_piring("Piring A")tumpukan_piring.taruh_piring("Piring B")tumpukan_piring.taruh_piring("Piring C")print("Piring teratas:", tumpukan_piring.lihat_piring_teratas()) # Output: Piring teratas: Piring Ctumpukan_piring.ambil_piring() # Output: Piring Piring C diambil.print("Jumlah piring:", tumpukan_piring.jumlah_piring()) # Output: Jumlah piring: 2
class PiringStack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def taruh_piring(self, piring):
self.items.append(piring)
print(f"Piring {piring} ditaruh.")
def ambil_piring(self):
if not self.is_empty():
piring = self.items.pop()
print(f"Piring {piring} diambil.")
return piring
else:
print("Tidak ada piring yang bisa diambil.")
return None
def lihat_piring_teratas(self):
if not self.is_empty():
return self.items[-1]
else:
return None
def jumlah_piring(self):
return len(self.items)
# Contoh penggunaan PiringStack
tumpukan_piring = PiringStack()
tumpukan_piring.taruh_piring("Piring A")
tumpukan_piring.taruh_piring("Piring B")
tumpukan_piring.taruh_piring("Piring C")
print("Piring teratas:", tumpukan_piring.lihat_piring_teratas()) # Output: Piring teratas: Piring C
tumpukan_piring.ambil_piring() # Output: Piring Piring C diambil.
print("Jumlah piring:", tumpukan_piring.jumlah_piring()) # Output: Jumlah piring: 2
Implementasi Queue untuk Antrian Supermarket
class AntrianSupermarket:def __init__(self):self.items = []def is_empty(self):return self.items == []def masuk_antrian(self, orang):self.items.insert(0, orang)print(f"{orang} masuk antrian.")def keluar_antrian(self):if not self.is_empty():orang = self.items.pop()print(f"{orang} keluar antrian.")return orangelse:print("Tidak ada orang di antrian.")return Nonedef jumlah_antrian(self):return len(self.items)# Contoh penggunaan AntrianSupermarketantrian = AntrianSupermarket()antrian.masuk_antrian("Orang A")antrian.masuk_antrian("Orang B")antrian.masuk_antrian("Orang C")print("Jumlah orang di antrian:", antrian.jumlah_antrian())antrian.keluar_antrian() # Output: Orang A keluar antrian.print("Jumlah orang di antrian setelah satu keluar:", antrian.jumlah_antrian())
Penjelasan Sintaks:
Stack (Tumpukan Piring)
taruh_piring
: Menambah piring ke tumpukan (push).ambil_piring
: Mengambil piring teratas dari tumpukan (pop).lihat_piring_teratas
: Melihat piring teratas tanpa mengambilnya (peek).jumlah_piring
: Menghitung jumlah piring dalam tumpukan.
Queue (Antrian di Supermarket)
masuk_antrian
: Menambah orang ke antrian (enqueue).keluar_antrian
: Mengeluarkan orang pertama dari antrian (dequeue).jumlah_antrian
: Menghitung jumlah orang dalam antrian.
Komentar
Posting Komentar