Untitled
unknown
golang
a year ago
5.0 kB
7
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