Skip to content

nicholaswisee/Tubes-Alpro-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sistem Manajemen Rumah Sakit Nimons

Tugas Besar IF1210 Algoritma dan Pemrograman 1

πŸ“ Description

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.

βš™οΈ Project Structure

β”œβ”€β”€ 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               

πŸ₯ Features

User Management

  • Register: Pendaftaran user baru (Manager, Dokter, Pasien)
  • Login/Logout: Sistem autentikasi user
  • Search User: Pencarian user berdasarkan kriteria tertentu

Denah Management

  • 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

Doctor Features

  • Diagnosis: Mendiagnosis pasien berdasarkan gejala
  • Ngobatin: Memberikan obat kepada pasien

Patient Features

  • 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

Financial Features

  • Lihat Dompet: Melihat saldo Banarich
  • Lihat Finansial: Melihat detail keuangan
  • Ngemis: Mendapatkan Banarich tambahan
  • Slot Machine: Permainan untuk mendapatkan Banarich

Data Management

  • Save: Menyimpan data ke folder tertentu
  • Load: Memuat data dari folder

❗ Getting Started

Requirements

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

Installation

  1. 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
  1. Bersihkan directory build sebelum compile.
make clean
  1. Build/Compile program
make main
  1. Jalankan program dengan salah satu folder dalam /data.
make run-file1

*contoh: jalankan dengan folder /file1

Usage

Untuk menjalankan program, masukkan input dengan format yang valid seperti pada spesifikasi.

Basic Commands:

  • HELP - Melihat daftar command yang tersedia
  • REGISTER - Daftar sebagai pasien baru
  • LOGIN - Masuk ke sistem
  • LOGOUT - Keluar dari sistem
  • EXIT - Keluar dari program

Role-Specific Commands:

Manager:

  • TAMBAH_DOKTER - Menambah dokter baru
  • ASSIGN_DOKTER - Menugaskan dokter ke ruangan
  • UBAH_DENAH <rows> <cols> - Mengubah dimensi denah
  • LIHAT_SEMUA_ANTRIAN - Melihat semua antrian

Dokter:

  • DIAGNOSIS - Mendiagnosis pasien
  • NGOBATIN - Memberikan obat ke pasien

Pasien:

  • DAFTAR_CHECKUP - Daftar pemeriksaan
  • MINUM_OBAT - Minum obat dari inventory
  • PULANGDOK - Proses kepulangan

Tambahan:

  • NGEMIS - Mendapatkan Banarich secara gratis (maksimal 99 Banarich)
  • SLOT - Bermain slot untuk mendapatkan Banarich (minimal 100 Banarich)

Authors

Nama NIM
Bryan Pratama Putra Hendra 13524067
Daniel Putra Rywandi S 13524143
Nicholas Wise Saragih Sumbayak 13524037
Mahatma Brahmana 13524015
Marcel Luther Sitorus 13524063

About

🌐 Command-Line Interface Hospital Simulator built in C

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6