Anda di halaman 1dari 8

Nama : Sandrianus Marten Bau

Kelas : 2E
Npm : 2213020028

Tugas Struktur Data QUEUE

1. Buatlah program Queue dengan operasi enqueue NPM kalian masing-masing

Kelas Queue:
• __init__ method: Inisialisasi objek antrian dengan membuat atribut items yang merupakan
daftar kosong.
• is_empty method: Mengembalikan True jika antrian kosong, False jika tidak.
• enqueue method: Menambahkan elemen ke dalam antrian (diakhir antrian) dan mencetak
pesan bahwa elemen tersebut telah ditambahkan ke dalam antrian.
• dequeue method: Menghapus dan mengembalikan elemen pertama dari antrian. Jika
antrian kosong, mencetak pesan bahwa antrian kosong dan tidak dapat melakukan dequeue.
• size method: Mengembalikan jumlah elemen dalam antrian.
Menggunakan Kelas Queue:
• Inisialisasi NPM dan Objek Queue: Mendefinisikan NPM sebagai string dan membuat objek
antrian (queue) menggunakan kelas Queue.
• Operasi Enqueue: Untuk setiap digit dalam NPM, melakukan operasi enqueue untuk
menambahkannya ke dalam antrian.
• Menampilkan Isi Antrian: Mencetak isi antrian setelah semua operasi enqueue selesai.
• Operasi Dequeue: Melakukan operasi dequeue untuk mengeluarkan elemen pertama dari
antrian.
• Menampilkan Isi Antrian Setelah Dequeue: Mencetak isi antrian setelah operasi dequeue
selesai.

2. Buatlah program Queue menggunakan operasi enqueue, dan lakukan dequeue sebanyak 5,
serta tampilkan sisa dari daftar Queue! (Inputan menggunakan tanggal lahir masing-masing)

Kelas Queue :

• __init__: Metode inisialisasi untuk membuat objek queue dengan atribut items yang awalnya
kosong.
• enqueue: Metode untuk menambahkan elemen ke dalam antrian dengan menambahkannya
ke akhir daftar (self.items).
• dequeue: Metode untuk menghapus elemen dari awal antrian. Jika antrian tidak kosong,
elemen dihapus dan dikembalikan; jika kosong, None dikembalikan.
• is_empty: Metode untuk memeriksa apakah antrian kosong atau tidak.
Fungsi display_queue :
Fungsi ini digunakan untuk menampilkan sisa elemen dalam antrian.
Main Program:
• Program utama membuat objek my_queue dari kelas Queue.
• Menggunakan metode enqueue, tanggal lahir dimasukkan ke dalam antrian.
• Menampilkan sisa elemen dalam antrian setelah operasi enqueue menggunakan fungsi
display_queue.
• Melakukan operasi dequeue sebanyak 5 kali, dan menampilkan elemen yang di-dequeue
atau mencetak "Queue kosong." jika antrian kosong.
• Menampilkan sisa elemen dalam antrian setelah operasi dequeue menggunakan fungsi
display_queue.

3. Buatlah program yang menunjukkan bahwa Queue dalam keadaan Overflow dan Underflow!
(Inputan menggunakan NPM)
Kelas Queue:
• __init__(self, capacity): Konstruktor kelas Queue digunakan untuk inisialisasi objek
queue dengan kapasitas tertentu. Queue diimplementasikan sebagai array dengan
ukuran tertentu (capacity), dan dua pointer front dan rear yang menunjukkan posisi
awal dan akhir dari elemen-elemen dalam queue.
• is_full(self): Method ini mengembalikan True jika queue penuh (overflow), yaitu jika
ukuran queue sama dengan kapasitasnya.
• is_empty(self): Method ini mengembalikan True jika queue kosong (underflow), yaitu
jika ukuran queue sama dengan 0.
• enqueue(self, item): Method ini menambahkan elemen ke dalam queue. Jika queue
sudah penuh, method mengembalikan True untuk menandakan overflow. Jika tidak,
elemen ditambahkan di posisi rear yang sesuai dengan aturan circular queue.
• dequeue(self): Method ini menghapus elemen dari depan queue. Jika queue kosong,
method mengembalikan True bersama dengan None untuk menandakan underflow.
Jika tidak, elemen dihapus dari posisi front yang sesuai dengan aturan circular queue.
Input NPM dari Pengguna:
• Baris kode npm = input("Masukkan NPM: ") meminta pengguna untuk memasukkan
NPM (Nomor Pokok Mahasiswa).
• Membuat Objek Queue dan Menambahkan NPM ke dalam Queue:
• Baris kode queue_capacity = 5 menentukan kapasitas queue sebesar 5.
• Baris kode queue = Queue(queue_capacity) membuat objek queue dengan kapasitas
yang telah ditentukan.
• Baris kode berikutnya menggunakan loop untuk menambahkan setiap digit dari NPM
ke dalam queue. Jika terjadi overflow (queue penuh), pesan "Overflow terjadi!
Queue penuh." akan dicetak.
Menghapus NPM dari Queue:
• Baris kode while not queue.is_empty(): menggunakan loop untuk menghapus setiap
digit dari queue. Jika queue kosong, pesan "Underflow terjadi! Queue kosong." akan
dicetak. Setiap digit yang dihapus dicetak dengan pesan "Menghapus digit: {digit}".
4. . Buatlah program Queue operasi euqueue dan dequeue menggunakan Linked List!
Class Node:
• Ini adalah simpul (node) dalam linked list yang digunakan untuk merepresentasikan
elemen dalam antrian.
• Setiap simpul memiliki dua atribut: data (yang menyimpan nilai elemen) dan next
(yang menyimpan referensi ke simpul berikutnya dalam linked list).
Class Queue:
• Ini adalah implementasi dari struktur data antrian.
• Metode __init__: Menginisialisasi antrian dengan menetapkan front dan rear ke nilai
awal None.
• Metode is_empty: Mengembalikan True jika antrian kosong (tidak ada elemen), dan
False sebaliknya.
• Metode enqueue: Menambahkan elemen baru ke dalam antrian. Jika antrian kosong,
front dan rear diatur ke simpul baru. Jika tidak, simpul baru ditambahkan ke bagian
belakang antrian.
• Metode dequeue: Menghapus dan mengembalikan elemen dari depan antrian. Jika
antrian kosong, mengembalikan None.
Metode display:
Menampilkan semua elemen dalam antrian.
Penggunaan pada blok kode terakhir:
Membuat objek queue dari kelas Queue.
Menambahkan beberapa elemen ke dalam antrian menggunakan metode enqueue.
Menampilkan antrian setelah proses enqueue menggunakan metode display.
Menghapus elemen dari depan antrian menggunakan metode dequeue.
Menampilkan antrian setelah proses dequeue menggunakan metode display.
Contoh Penggunaan:
• Menggambarkan cara menggunakan objek Queue dengan mengisi dan
mengosongkan antrian.

5. Buatlah program Queue yang ketika dijalankan terdapat 3 Menu:


1) Tambah Data: Ketika memilih menu 1, maka user akan menginputkan nama
(bebas). Beri kapasitas 5 inputan, jika Queue penuh tampilkan pesan “Daftar Queue
penuh, maaf tidak bisa melakukan input”.
2) Hapus Data: Ketika memilih menu 2, maka user akan melakukan delete data
berdasarkan prinsip Queue (FIFO). Jika tidak ada data dan user melakukan delete
data, maka tampilakan pesan “Data kosong, tidak bisa melakukan delete”.
3) Tampilkan Data: Ketika user memilih menu 3, maka akan menampilkan data yang
sudah diinput oleh user. Kalau data kosong, maka tampilkan pesan “Data Kosong”
Kelas Queue:
• __init__(self, capacity): Metode inisialisasi (constructor) yang digunakan untuk
membuat objek antrian baru. capacity adalah parameter yang menentukan kapasitas
maksimum antrian, yaitu berapa banyak elemen yang dapat dimasukkan ke dalam
antrian.
• is_full(self): Metode yang mengembalikan True jika antrian penuh (sudah mencapai
kapasitas maksimum), dan False jika tidak.
• is_empty(self): Metode yang mengembalikan True jika antrian kosong (tidak ada
elemen di dalamnya), dan False jika tidak.
• enqueue(self, data): Metode untuk menambahkan data ke dalam antrian. Jika antrian
penuh, pesan kesalahan akan dicetak. Jika tidak, data akan ditambahkan ke dalam
antrian dan pesan sukses dicetak.
• dequeue(self): Metode untuk menghapus data dari antrian. Jika antrian kosong,
pesan kesalahan akan dicetak. Jika tidak, data pertama dari antrian akan dihapus,
dan pesan sukses dicetak.
• display(self): Metode untuk menampilkan isi antrian. Jika antrian kosong, pesan
bahwa data kosong akan dicetak. Jika tidak, data dalam antrian akan dicetak satu per
satu.
Fungsi Utama main():
• Pertama-tama, objek Queue dibuat dengan kapasitas 5.
• Program berjalan dalam loop tak terbatas yang menampilkan menu pilihan kepada
pengguna.
• Pengguna dapat memilih untuk menambahkan data ke dalam antrian (1), menghapus
data dari antrian (2), menampilkan data dalam antrian (3), atau keluar dari program
(0).
• Input pengguna kemudian diolah sesuai pilihan yang dipilih.
• Program akan terus berjalan hingga pengguna memilih untuk keluar (0).
Eksekusi:
Fungsi utama (main()) dijalankan jika skrip dieksekusi sebagai program utama.
Contoh Penggunaan:
Pengguna dapat menjalankan program ini untuk mengelola suatu antrian dengan
batas kapasitas 5. Program menyediakan opsi untuk menambah, menghapus, dan
menampilkan data dalam antrian.

Anda mungkin juga menyukai