Untitled
unknown
golang
5 months ago
5.0 kB
6
Indexable
package main import ( "fmt" "sort" "strings" "time" ) // Struct untuk data pasien dan paket layanan type PaketMCU struct { ID int Nama string Harga float64 } type Pasien struct { ID int Nama string Tanggal time.Time PaketID int HasilMCU string } var paketMCUs []PaketMCU var pasien []Pasien var nextPaketID, nextPasienID int = 1, 1 // Fungsi untuk menambah, mengedit, atau menghapus paket MCU func kelolaPaketMCU() { fmt.Println("\n-- Kelola Paket MCU --") fmt.Println("1. Tambah Paket") fmt.Println("2. Edit Paket") fmt.Println("3. Hapus Paket") var pilihan int fmt.Print("Pilih menu: ") fmt.Scanln(&pilihan) switch pilihan { case 1: // Tambah var nama string var harga float64 fmt.Print("Masukkan nama paket: ") fmt.Scanln(&nama) fmt.Print("Masukkan harga: ") fmt.Scanln(&harga) paketMCUs = append(paketMCUs, PaketMCU{ID: nextPaketID, Nama: nama, Harga: harga}) nextPaketID++ fmt.Println("Paket berhasil ditambahkan!") case 2: // Edit var id int fmt.Print("Masukkan ID paket yang ingin diubah: ") fmt.Scanln(&id) for i, paket := range paketMCUs { if paket.ID == id { fmt.Print("Masukkan nama baru: ") fmt.Scanln(&paketMCUs[i].Nama) fmt.Print("Masukkan harga baru: ") fmt.Scanln(&paketMCUs[i].Harga) fmt.Println("Paket berhasil diubah!") return } } fmt.Println("Paket tidak ditemukan.") case 3: // Hapus var id int fmt.Print("Masukkan ID paket yang ingin dihapus: ") fmt.Scanln(&id) for i, paket := range paketMCUs { if paket.ID == id { paketMCUs = append(paketMCUs[:i], paketMCUs[i+1:]...) fmt.Println("Paket berhasil dihapus!") return } } fmt.Println("Paket tidak ditemukan.") default: fmt.Println("Pilihan tidak valid.") } } // Fungsi untuk menambah pasien dan hasil MCU func tambahPasien() { var nama string var tanggal string var paketID int var hasil string fmt.Print("Masukkan nama pasien: ") fmt.Scanln(&nama) fmt.Print("Masukkan tanggal (YYYY-MM-DD): ") fmt.Scanln(&tanggal) fmt.Print("Masukkan ID paket MCU: ") fmt.Scanln(&paketID) fmt.Print("Masukkan hasil MCU: ") fmt.Scanln(&hasil) t, err := time.Parse("2006-01-02", tanggal) if err != nil { fmt.Println("Format tanggal salah.") return } pasien = append(pasien, Pasien{ID: nextPasienID, Nama: nama, Tanggal: t, PaketID: paketID, HasilMCU: hasil}) nextPasienID++ fmt.Println("Data pasien berhasil ditambahkan!") } // Fungsi untuk menampilkan laporan pemasukan func laporanPemasukan() { var startDate, endDate string fmt.Print("Masukkan tanggal awal (YYYY-MM-DD): ") fmt.Scanln(&startDate) fmt.Print("Masukkan tanggal akhir (YYYY-MM-DD): ") fmt.Scanln(&endDate) start, err1 := time.Parse("2006-01-02", startDate) end, err2 := time.Parse("2006-01-02", endDate) if err1 != nil || err2 != nil { fmt.Println("Format tanggal salah.") return } var total float64 for _, p := range pasien { if p.Tanggal.After(start) && p.Tanggal.Before(end) { for _, paket := range paketMCUs { if p.PaketID == paket.ID { total += paket.Harga } } } } fmt.Printf("Total pemasukan dari %s hingga %s adalah Rp%.2f\n", startDate, endDate, total) } // Fungsi untuk pencarian pasien func cariPasien() { fmt.Println("\n-- Cari Pasien --") fmt.Println("1. Berdasarkan Nama") fmt.Println("2. Berdasarkan Tanggal dan Paket MCU") var pilihan int fmt.Print("Pilih menu: ") fmt.Scanln(&pilihan) switch pilihan { case 1: // Berdasarkan Nama var nama string fmt.Print("Masukkan nama pasien: ") fmt.Scanln(&nama) for _, p := range pasien { if strings.Contains(strings.ToLower(p.Nama), strings.ToLower(nama)) { fmt.Printf("ID: %d, Nama: %s, Tanggal: %s, Paket ID: %d, Hasil: %s\n", p.ID, p.Nama, p.Tanggal.Format("2006-01-02"), p.PaketID, p.HasilMCU) } } case 2: // Berdasarkan Tanggal dan Paket MCU var tanggal string var paketID int fmt.Print("Masukkan tanggal (YYYY-MM-DD): ") fmt.Scanln(&tanggal) fmt.Print("Masukkan ID paket MCU: ") fmt.Scanln(&paketID) t, err := time.Parse("2006-01-02", tanggal) if err != nil { fmt.Println("Format tanggal salah.") return } for _, p := range pasien { if p.Tanggal.Equal(t) && p.PaketID == paketID { fmt.Printf("ID: %d, Nama: %s, Hasil: %s\n", p.ID, p.Nama, p.HasilMCU) } } default: fmt.Println("Pilihan tidak valid.") } } // Fungsi utama func main() { for { fmt.Println("\n-- Aplikasi Medical Check-Up --") fmt.Println("1. Kelola Paket MCU") fmt.Println("2. Tambah Pasien") fmt.Println("3. Laporan Pemasukan") fmt.Println("4. Cari Pasien") fmt.Println("5. Keluar") var pilihan int fmt.Print("Pilih menu: ") fmt.Scanln(&pilihan) switch pilihan { case 1: kelolaPaketMCU() case 2: tambahPasien() case 3: laporanPemasukan() case 4: cariPasien() case 5: fmt.Println("Terima kasih telah menggunakan aplikasi!") return default: fmt.Println("Pilihan tidak valid.") } } }
Editor is loading...
Leave a Comment