SD: Struktur Data

Struktur data merupakan matakuliah wajib bagi mahasiswa Informatika. Kali ini saya mendapatkan tugas mengampu matakuliah Struktur Data (SD) yang insya Allah akan mendiskusikan prinsip fundamental dan contoh implementasinya menggunakan bahasa pemrograman Python.

Berikut ini adalah rencana perkuliahan untuk 14 pertemuan:

1. Pengantar Perkuliahan
2. Starting Python Programming
3. Controlling & Conditions, String & Functions
4. File & Exceptions and Class (OOP): Intro. to Object Oriented Programming
Beberapa file modul Python yang diperlihatkan di kelas (versi .docx) adalah Mhsw01.py, Sapi.py, Lingkaran.py dan SegiEmpat.py.

5. List dan Stack (Tumpukan)
6. Dictionary & Antrian (Queue)
7. Review Pra-UTS

Ujian Tengah Semester (UTS):

UTS akan dilaksanakan pada tanggal 2 Mei (berubah, bukan 25 April). Sesuai dengan jadwal perkuliahan (dimulai 07.15 untuk kelas B dan 09.45 untuk kelas A). Mohon diingat sebaik-baiknya!

Sifat ujian terbuka untuk semua bahan kuliah pada media kertas (Buku, Paper, tulisan tangan). Tidak dibolehkan melihat/menggunakan smartphone, laptop dan kalkulator selama ujian di kelas.

Berikut ini adalah beberapa contoh soal yang dapat dicoba pelajari dan buatkan programnya:

—————————————————————————————————-
A. Stack

1. Buatlah kelas Stack yang mempunyai metode remove() yang dapat digunakan untuk menghapus item tertentu di dalam stack. Gunakan kombinasi push dan pop untuk mewujudkannya.
2. Implementasikan proses konversi ekspresi infix ke postfix menggunakan Python. Gunakan kelas Stack dan lengkapi metode-metode di dalammnya. Salah satu metodenya bernanama toPostfix(self, infix)
3. Implementasikan di dalam kelas Stack suatu metode bernama timeout() untuk memeriksa berapa lama suatu item telah ada di dalam Stack. Jika di sana ia telah menghuni dasar ( base) dari Stack lebih dari 1 menit (60 detik), maka pindahkan (buat metode baru jika diperlukan) item tersebut ke puncak Stack.
4. Berapa lama (waktu) yang diperlukan untuk memindahkan satu item di dasar Stack ke puncaknya?

B. Queue

1. Implementasikan kelas bernama Queue. Di dalamnya pastikan ada metode remove() yang dapat digunakan untuk menghapus item tertentu di dalam antrian. Jika item yang dihapus ada di posisi index 3 maka pastikan semua item di belakangnnya akan dimajukan satu langkah agar tidak ada posisi index yang kosong di dalam Queue.
2. Implementasikan Queue dari kasus antrian di Supermarket yang sedang menunggu selesainya transaksi di Kasir. Setiap pembeli dapat membeli lebih dari satu item. Transaksi satu item diperkirakan selesai dalam 5 detik. Lakukan simulasinya. Lihat solosi masalah antrian mencetak dokumen di dalam Modul Praktikum (Lab 3).
3. Bagaimana dengan antrian berprioritas?
4. Soal nomor 2, tetapi pembeli terdepan akan dihapus (otomatis) jika item yang dibelinya terlalu banyak dan diperkirakan waktu yang dibutuhkan untuk melayani transaksinya lebih dari 3 menit!

C. Kombinasi

Barang-barang yang dibeli di Supermarket diletakkan di dalam keranjang yang dapat dianggap Stack. Implementasikan Stack untuk menampung barang-barang belanjaan tersebut. Pastikan barang berbentuk cairan tidak diletakkan di atas benda bentuk lain. Barang yang paling atas akan diproses lebih dulu oleh Kasir. Antrian dari pembeli ditangani menggunakan konsep Queue seperti soal B.2 di atas.

Contoh-contoh lain yang lebih banyak dapat dilihat pada modul Praktikum Struktur Data, khususnya Lab 2 dan Lab 3.
—————————————————————————————————–

8. Queue dan Dequeue (lanjutan)
9. List Berkait (linked-list)
10. Tree (Pohon).

Rujukan utama adalah Based on Problem Solving with Algorithms & Data Structures – Release 3.0 – September 22, 2013 yang juga menjadi dasar penyusunan Modul Praktikum. Slide ini menyertakan contoh yang sedikit berbeda dengan buku tersebut.
Buku Fundamentals of Python: From First Programs Through Data Structures juga menjelaskan dengan baik dengan konsep Tree. Slide ini merupakan sari dari Bab 18 buku terakhir dan Ini adalah kode program (setelah download, silakan hapus ekstensi .pdf-nya) yang dijadikan contoh di dalamnya.

11. Sorting & Searching (Belajar mandiri, sudah termasuk topik di Dasar Algoritma)
12. Rekursi (Belajar mandiri)
13. Graf (Akhirnya tidak didiskusikan)
14. Review Pra-UAS

———————————————————————–
Ujian Akhir Semester (UAS): Terbuka, seperti pada UTS.

Rencana Pelaksanaan UAS:

Hari, Tanggal: Senin, 27 Juni 2016
Ruang Ujian: F404
Sifat Ujian: Boleh Melihat Buku dan Catatan Non-Digital
Waktu Kelas B: 09.00 – 10.00, Kelas A: 10.00 – 11.00
Cakupan Materi Uji: Konsep dan Aplikasi Tree (Pohon)

Silakan Download Soal UAS dan segera perbaiki jawaban yang sebelumnya dibuat di ruang kelas. Deadline Selasa, 28 Juni, jam 09.00 !
———————————————————————–

Kuliah ini harus diikuti dengan Praktikumnya. Silakan Download Modul Praktikum Struktur Data (versi 16.03 dengan Python) dan Dasar-dasar Python yang mendukungnya.

šŸ™‚

%d bloggers like this: