Proyek ini merupakan tugas besar mata kuliah Algoritma dan Pemrograman 1 di ITB. Program ini adalah simulasi sebuah sistem rumah sakit berbasis terminal yang digunakan untuk mengelola data pengguna, ruangan, dan fitur lainnya dalam sebuah rumah sakit.
βββ README.md
βββ doc
β βββ IF1210_LaporanTB_1_K01-B.pdf
βββ src
βββ data # Config files dan data rumah sakit
β βββ file1
β β βββ README.txt
β β βββ config.txt
β β βββ obat.csv
β β βββ obat_penyakit.csv
β β βββ penyakit.csv
β β βββ user.csv
β βββ file2
β βββ README.txt
β βββ config.txt
β βββ obat.csv
β βββ obat_penyakit.csv
β βββ penyakit.csv
β βββ user.csv
βββ entities # Definisi ADT (Abstract Data Types)
β βββ Boolean.h # Definisi tipe boolean
β βββ linkedqueue.c # Implementasi queue dengan linked list
β βββ linkedqueue.h
β βββ liststatik.c # Implementasi list statis
β βββ liststatik.h
β βββ map.h # Definisi ADT map
β βββ obat-penyakit.h # Definisi struktur obat dan penyakit
β βββ penyakit-obat-map.c # Implementasi mapping penyakit-obat
β βββ penyakit-obat-map.h
β βββ set.c # Implementasi ADT set
β βββ set.h
β βββ stackobat.c # Implementasi stack untuk obat
β βββ stackobat.h
β βββ user.h # Definisi struktur user
βββ features # Implementasi fitur utama sistem
β βββ denah.c # Manajemen denah ruangan rumah sakit
β βββ denah.h
β βββ dokter.c # Fitur khusus dokter (diagnosis, ngobatin)
β βββ dokter.h
β βββ pasien.c # Fitur khusus pasien (checkup, minum obat)
β βββ pasien.h
β βββ save.c # Sistem penyimpanan data
β βββ save.h
β βββ search-user.c # Pencarian dan filtering user
β βββ search-user.h
β βββ user-management.c # Manajemen user (register, login, dll)
β βββ user-management.h
βββ main.c # File driver utama program
βββ makefile # File untuk build automation
βββ utils # Fungsi utilitas/pembantu
βββ app.c # Pengendali command dan flow aplikasi
βββ app.h
βββ csv_parser.c # Parser untuk file CSV
βββ csv_parser.h
βββ casino.c # Fitur untuk mendapatkan Banarich
βββ casino.h
βββ user-interface.c # Interface dan tampilan user
βββ user-interface.h
βββ utility.c # Fungsi utility umum
βββ utility.h
- Register: Pendaftaran user baru (Manager, Dokter, Pasien)
- Login/Logout: Sistem autentikasi user
- Search User: Pencarian user berdasarkan kriteria tertentu
- Lihat Denah: Melihat layout ruangan rumah sakit
- Ubah Dimensi Denah: Mengubah ukuran denah ruangan
- Assign Dokter: Menugaskan dokter ke ruangan tertentu
- Pindah Dokter: Memindahkan dokter antar ruangan
- Lihat Ruangan: Melihat detail ruangan dan antrian pasien
- Lihat Semua Antrian: Melihat semua antrian di seluruh ruangan
- Diagnosis: Mendiagnosis pasien berdasarkan gejala
- Ngobatin: Memberikan obat kepada pasien
- Daftar Checkup: Mendaftar untuk pemeriksaan dengan dokter
- Cek Antrian: Mengecek posisi dalam antrian
- Skip Antrian: Maju ke depan antrian (dengan konsekuensi)
- Cancel Antrian: Membatalkan antrian
- Minum Obat: Mengkonsumsi obat dari inventory
- Minum Penawar: Mengeluarkan obat dari perut (antidote)
- Pulang Dok: Proses kepulangan setelah sembuh
- Lihat Dompet: Melihat saldo Banarich
- Lihat Finansial: Melihat detail keuangan
- Ngemis: Mendapatkan Banarich tambahan
- Slot Machine: Permainan untuk mendapatkan Banarich
- Save: Menyimpan data ke folder tertentu
- Load: Memuat data dari folder
Program ini dirancang untuk dapat dikompilasi dengan spesifikasi berikut.
- Compiler C (Untuk program ini, dirancangkan untuk dapat dikompilasi menggunakan GCC)
- Windows Subsystem for Linux (WSL 2) atau Unix-based OS lainnya.
Untuk menggunakan WSL untuk compilation, pastikan anda sudah install package-package essential.
make --version
gcc --version
Jika belum, update list package dan install package essential.
sudo apt update
sudo apt install build-essential
sudo apt install make gcc
sudo apt-get upgrade
- Clone repository ke dalam suatu folder dan masuk ke folder project.
git clone https://github.com/Labpro-22/if1210-tubes-2025-k01-b.git
cd if1210-tubes-2025-k01-b
- Bersihkan directory build sebelum compile.
make clean
- Build/Compile program
make main
- Jalankan program dengan salah satu folder dalam /data.
make run-file1
*contoh: jalankan dengan folder /file1
Untuk menjalankan program, masukkan input dengan format yang valid seperti pada spesifikasi.
HELP
- Melihat daftar command yang tersediaREGISTER
- Daftar sebagai pasien baruLOGIN
- Masuk ke sistemLOGOUT
- Keluar dari sistemEXIT
- Keluar dari program
TAMBAH_DOKTER
- Menambah dokter baruASSIGN_DOKTER
- Menugaskan dokter ke ruanganUBAH_DENAH <rows> <cols>
- Mengubah dimensi denahLIHAT_SEMUA_ANTRIAN
- Melihat semua antrian
DIAGNOSIS
- Mendiagnosis pasienNGOBATIN
- Memberikan obat ke pasien
DAFTAR_CHECKUP
- Daftar pemeriksaanMINUM_OBAT
- Minum obat dari inventoryPULANGDOK
- Proses kepulangan
NGEMIS
- Mendapatkan Banarich secara gratis (maksimal 99 Banarich)SLOT
- Bermain slot untuk mendapatkan Banarich (minimal 100 Banarich)
Nama | NIM |
---|---|
Bryan Pratama Putra Hendra | 13524067 |
Daniel Putra Rywandi S | 13524143 |
Nicholas Wise Saragih Sumbayak | 13524037 |
Mahatma Brahmana | 13524015 |
Marcel Luther Sitorus | 13524063 |