Evaluasi Tengah Semester (ETS)
| Nama | : Jonathan Evan Roestamadji |
| NRP | : 5025251026 |
| Kelas | : Struktur Data (D) |
1. Penjelasan Struktur Data Array
Apa itu Array?
Struktur data Array adalah sekumpulan elemen data dengan tipe yang sama yang disimpan dalam lokasi memori yang berurutan. Semua data ini disimpan dalam satu variabel tunggal, di mana setiap elemen dapat diakses secara spesifik menggunakan nomor posisi atau yang disebut dengan index (dimulai dari angka 0).
Contoh Implementasi Real-World:
"Pada aplikasi E-commerce, Array digunakan untuk menyimpan daftar barang dalam keranjang belanja (shopping cart) sebelum pengguna melakukan proses checkout."
Contoh Kode Pemrograman:
Cara Mengakses Data Array:
Data diambil berdasarkan nomor indeksnya di dalam kurung siku []:
2. Visualisasi Stack (Doubly Linked List) - Updated
a. Push(60), Push(40), Pop(Item)
Proses: 60 masuk, 40 masuk di atas 60, lalu 40 dikeluarkan.
Kondisi Akhir: Stack berisi 60. Top menunjuk ke node 60.
b. Push(25), Pop(Item), Pop(Item)
Proses: Melanjutkan (a), 25 masuk lalu di-pop, terakhir 60 di-pop.
Kondisi Akhir: Semua elemen telah keluar, penunjuk Top kembali ke NULL.
c. Pop(Item), Pop(Item), Push(50)
Proses: Dua kali Pop pada stack kosong (Underflow), lalu Push 50.
Kondisi Akhir: Stack berisi 50. Top menunjuk ke node 50.
Top selalu menyimpan alamat memori dari node paling atas. Jika node tersebut adalah satu-satunya elemen, maka pointer next dan prev pada node itu akan bernilai NULL.
3. Notasi Postfix & Implementasi Stack
A. Konversi Infix ke Postfix
Infix: a + (2 * b^3) / (f - g) + d * h
Postfix: a 2 b 3 ^ * f g - / + d h * +
B. Alur Kerja Stack
- Operand (a, b, 2, dll) langsung dikirim ke output.
- Operator disimpan di dalam Stack berdasarkan urutan prioritas (Presedensi).
- Jika operator baru memiliki prioritas lebih rendah/sama, operator di dalam stack di-pop ke output.
- Tanda kurung
()memastikan operasi di dalamnya diselesaikan terlebih dahulu.
C. Screenshot Eksekusi Program (C++)
Terminal output menunjukkan hasil konversi yang sesuai.
4. Visualisasi Operasi Queue (Maks 9 Elemen)
Aturan Queue: Data masuk dari arah Rear (Kanan → Kiri) dan keluar dari arah Front (Kiri).
a. Tambah Angka 19
b. Tambah Angka 7
c. Hapus 2 Angka
d. Tambah Angka 40
e. Hapus 3 Angka
(Hanya ada angka 40, sisa 2 penghapusan menyebabkan Underflow)
f. Tambah Angka 18
Kondisi Akhir: Queue berisi 18 di posisi Front sekaligus Rear.
5. Studi Kasus: Antrian Layanan Akademik
1. Penggunaan Queue dalam Sistem
Dalam sistem layanan akademik ini, Queue digunakan untuk mengelola urutan kedatangan mahasiswa secara adil. Prinsip FIFO (First In First Out) memastikan bahwa mahasiswa yang mengambil nomor antrian lebih awal akan mendapatkan pelayanan terlebih dahulu. Struktur ini mencegah terjadinya penumpukan yang tidak teratur di meja petugas.
2. Algoritma Sistem
- Cek apakah kapasitas antrian mencukupi.
- Jika tersedia, masukkan data mahasiswa di posisi Rear (belakang).
- Update penunjuk Rear ke elemen baru tersebut.
B. Melayani Mahasiswa (Dequeue):
- Cek apakah antrian kosong (IsEmpty).
- Jika tidak kosong, panggil data mahasiswa di posisi Front (depan).
- Hapus elemen terdepan dan geser penunjuk Front ke mahasiswa berikutnya.
3. Implementasi Program (C++)
Implementasi menggunakan library <queue> untuk manajemen data dinamis:
Output Program:
Kondisi Antrian saat ini: [Mahasiswa A] [Mahasiswa B] [Mahasiswa C]
--- Melayani: Mahasiswa A ---
Kondisi Antrian saat ini: [Mahasiswa B] [Mahasiswa C]
--- Mahasiswa D masuk antrian ---
Kondisi Antrian saat ini: [Mahasiswa B] [Mahasiswa C] [Mahasiswa D]
Mahasiswa di antrian paling depan (Front): Mahasiswa B
Mahasiswa di antrian paling belakang (Rear): Mahasiswa D
4. Simulasi Proses
Berdasarkan simulasi program:
- Antrian Awal: Tiga mahasiswa masuk (A, B, C). Front di A, Rear di C.
- Proses Layanan: Mahasiswa A dipanggil (pop), sehingga Front berpindah ke B.
- Penambahan: Mahasiswa D masuk dan menempati posisi Rear yang baru.
- Hasil Akhir: Antrian menyisakan B, C, D secara berurutan.
Comments
Post a Comment