Kumpulan Kode C#
1. Absensi
using System;
using System.Collections.Generic;
class Program
{
// Daftar nama siswa/pegawai
static List daftarNama = new List { "Ali", "Budi", "Citra", "Dewi", "Eka" };
// Menyimpan status absensi
static Dictionary absensi = new Dictionary();
// Fungsi untuk mencatat absensi
static void CatatAbsensi()
{
Console.WriteLine("Daftar Nama:");
for (int i = 0; i < daftarNama.Count; i++)
{
Console.WriteLine($"{i + 1}. {daftarNama[i]}");
}
foreach (var nama in daftarNama)
{
Console.Write($"Apakah {nama} hadir? (y/n): ");
string status = Console.ReadLine().Trim().ToLower();
if (status == "y")
{
absensi[nama] = "Hadir";
}
else if (status == "n")
{
absensi[nama] = "Tidak Hadir";
}
else
{
absensi[nama] = "Status Tidak Valid";
}
}
Console.WriteLine("\nAbsensi Hari Ini:");
foreach (var entry in absensi)
{
Console.WriteLine($"{entry.Key}: {entry.Value}");
}
}
static void Main()
{
// Menjalankan fungsi untuk mencatat absensi
CatatAbsensi();
}
}
2. Barbershop
using System;
using System.Collections.Generic;
class Barbershop
{
private List antrian; // List untuk menyimpan nama pelanggan
private bool buka; // Status barbershop
public Barbershop()
{
antrian = new List();
buka = true;
}
// Fungsi untuk membuka Barbershop
public void BukaBarbershop()
{
Console.WriteLine("Barbershop sedang buka, silakan masuk!");
}
// Fungsi untuk menutup Barbershop
public void TutupBarbershop()
{
buka = false;
Console.WriteLine("Barbershop sudah tutup. Terima kasih sudah datang!");
}
// Fungsi untuk menambah pelanggan ke dalam antrian
public void TambahPelanggan(string nama)
{
if (buka)
{
if (antrian.Count < 10) // Maksimal antrian 10 pelanggan
{
antrian.Add(nama);
Console.WriteLine($"{nama} telah masuk ke antrian.");
}
else
{
Console.WriteLine("Antrian sudah penuh!");
}
}
else
{
Console.WriteLine("Barbershop sudah tutup. Anda tidak bisa mendaftar.");
}
}
// Fungsi untuk memproses pelanggan
public void ProsesPelanggan()
{
if (antrian.Count > 0)
{
string pelanggan = antrian[0];
Console.WriteLine($"Sedang melayani {pelanggan}...");
System.Threading.Thread.Sleep(2000); // Simulasi waktu pemotongan rambut
Console.WriteLine($"{pelanggan} telah selesai dilayani.");
// Menghapus pelanggan dari antrian
antrian.RemoveAt(0);
}
else
{
Console.WriteLine("Tidak ada pelanggan di antrian.");
}
}
// Fungsi untuk menampilkan antrian
public void TampilkanAntrian()
{
if (antrian.Count > 0)
{
Console.WriteLine("Antrian pelanggan:");
for (int i = 0; i < antrian.Count; i++)
{
Console.WriteLine($"{i + 1}. {antrian[i]}");
}
}
else
{
Console.WriteLine("Tidak ada pelanggan di antrian.");
}
}
}
class Program
{
static void Main()
{
Barbershop barbershop = new Barbershop();
barbershop.BukaBarbershop();
while (true)
{
Console.WriteLine("\n--- Menu ---");
Console.WriteLine("1. Tambah Pelanggan");
Console.WriteLine("2. Proses Pelanggan");
Console.WriteLine("3. Lihat Antrian");
Console.WriteLine("4. Tutup Barbershop");
Console.WriteLine("5. Keluar");
Console.Write("Pilih menu (1-5): ");
int pilihan = int.Parse(Console.ReadLine());
if (pilihan == 1)
{
Console.Write("Masukkan nama pelanggan: ");
string nama = Console.ReadLine();
barbershop.TambahPelanggan(nama);
}
else if (pilihan == 2)
{
barbershop.ProsesPelanggan();
}
else if (pilihan == 3)
{
barbershop.TampilkanAntrian();
}
else if (pilihan == 4)
{
barbershop.TutupBarbershop();
break;
}
else if (pilihan == 5)
{
Console.WriteLine("Terima kasih telah menggunakan program ini!");
break;
}
else
{
Console.WriteLine("Pilihan tidak valid, coba lagi.");
}
}
}
}
3. Bioskop
using System;
class Program
{
// Menampilkan daftar film yang tersedia
static void ShowFilms()
{
Console.WriteLine("Daftar Film yang Tersedia:");
Console.WriteLine("1. Film A - Harga: Rp 50000");
Console.WriteLine("2. Film B - Harga: Rp 60000");
Console.WriteLine("3. Film C - Harga: Rp 70000");
Console.WriteLine("4. Film D - Harga: Rp 55000");
}
// Memilih film yang diinginkan oleh pengguna
static int PilihFilm()
{
int pilihan;
while (true)
{
Console.Write("\nPilih film (1-4): ");
if (int.TryParse(Console.ReadLine(), out pilihan) && pilihan >= 1 && pilihan <= 4)
{
return pilihan;
}
else
{
Console.WriteLine("Pilihan tidak valid, coba lagi.");
}
}
}
// Proses membeli tiket
static void BeliTiket()
{
int pilihan, jumlahTiket, totalHarga;
while (true)
{
ShowFilms();
pilihan = PilihFilm();
// Menghitung harga berdasarkan film yang dipilih
switch (pilihan)
{
case 1:
totalHarga = 50000;
break;
case 2:
totalHarga = 60000;
break;
case 3:
totalHarga = 70000;
break;
case 4:
totalHarga = 55000;
break;
default:
totalHarga = 0;
break;
}
// Input jumlah tiket
Console.Write("Masukkan jumlah tiket yang ingin dibeli: ");
while (!int.TryParse(Console.ReadLine(), out jumlahTiket) || jumlahTiket <= 0)
{
Console.Write("Jumlah tiket tidak valid, coba lagi: ");
}
totalHarga *= jumlahTiket; // Menghitung total harga
// Menampilkan hasil pembelian
Console.WriteLine($"\nTiket untuk film {GetFilmName(pilihan)} ({jumlahTiket} tiket) berhasil dipesan.");
Console.WriteLine($"Total harga: Rp {totalHarga}");
// Tanya apakah ingin membeli tiket lagi
Console.Write("\nApakah Anda ingin membeli tiket lagi? (y/t): ");
char lagi = Char.ToLower(Console.ReadKey().KeyChar);
Console.WriteLine();
if (lagi == 't')
{
Console.WriteLine("Terima kasih telah membeli tiket di bioskop kami!");
break;
}
}
}
// Mendapatkan nama film berdasarkan pilihan
static string GetFilmName(int pilihan)
{
switch (pilihan)
{
case 1: return "Film A";
case 2: return "Film B";
case 3: return "Film C";
case 4: return "Film D";
default: return "Film Tidak Diketahui";
}
}
// Program utama
static void Main()
{
BeliTiket();
}
}
4. Dealer Kartu (Black Jack Simplified)
using System;
using System.Collections.Generic;
class Blackjack
{
// Daftar kartu dalam deck
static List deck = new List { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A" };
// Fungsi untuk menghitung nilai kartu
static int CardValue(string card)
{
if (card == "J" || card == "Q" || card == "K")
{
return 10;
}
else if (card == "A")
{
return 11; // Menganggap Ace = 11 untuk kesederhanaan
}
else
{
return int.Parse(card); // Kartu angka (2-10)
}
}
// Fungsi untuk membagikan kartu secara acak
static string DealCard(ref List deck)
{
Random rand = new Random();
int index = rand.Next(deck.Count);
string card = deck[index];
deck.RemoveAt(index); // Hapus kartu yang sudah dibagikan
return card;
}
// Fungsi untuk menghitung total nilai kartu dalam hand
static int CalculateHand(List hand)
{
int total = 0;
foreach (string card in hand)
{
total += CardValue(card);
}
return total;
}
// Fungsi utama untuk menjalankan permainan
static void StartGame()
{
List deckCopy = new List(deck); // Salinan deck untuk permainan
// Kartu untuk pemain dan dealer
List playerHand = new List();
List dealerHand = new List();
// Membagikan dua kartu untuk pemain dan dealer
playerHand.Add(DealCard(ref deckCopy));
playerHand.Add(DealCard(ref deckCopy));
dealerHand.Add(DealCard(ref deckCopy));
dealerHand.Add(DealCard(ref deckCopy));
// Menampilkan kartu awal pemain dan dealer (satu kartu dealer tersembunyi)
Console.WriteLine("Kartu Anda: " + string.Join(" ", playerHand) + " dengan nilai " + CalculateHand(playerHand));
Console.WriteLine("Kartu Dealer: " + dealerHand[0] + " dan kartu tersembunyi");
// Giliran pemain
while (CalculateHand(playerHand) < 21)
{
Console.Write("Apakah Anda ingin 'Hit' atau 'Stand'? ");
string action = Console.ReadLine().ToLower();
if (action == "hit")
{
playerHand.Add(DealCard(ref deckCopy));
Console.WriteLine("Kartu Anda sekarang: " + string.Join(" ", playerHand) + " dengan nilai " + CalculateHand(playerHand));
}
else if (action == "stand")
{
break;
}
else
{
Console.WriteLine("Pilihan tidak valid. Pilih 'Hit' atau 'Stand'.");
}
}
// Jika pemain melebihi 21
if (CalculateHand(playerHand) > 21)
{
Console.WriteLine("Nilai kartu Anda melebihi 21! Anda kalah!");
return;
}
// Giliran dealer (dealer akan 'hit' sampai total kartu >= 17)
Console.WriteLine("Kartu Dealer sekarang: " + string.Join(" ", dealerHand) + " dengan nilai " + CalculateHand(dealerHand));
while (CalculateHand(dealerHand) < 17)
{
Console.WriteLine("Dealer memukul kartu...");
dealerHand.Add(DealCard(ref deckCopy));
Console.WriteLine("Kartu Dealer sekarang: " + string.Join(" ", dealerHand) + " dengan nilai " + CalculateHand(dealerHand));
}
// Menentukan pemenang
int playerTotal = CalculateHand(playerHand);
int dealerTotal = CalculateHand(dealerHand);
if (dealerTotal > 21)
{
Console.WriteLine("Dealer melebihi 21! Anda menang!");
}
else if (playerTotal > dealerTotal)
{
Console.WriteLine("Anda menang!");
}
else if (playerTotal < dealerTotal)
{
Console.WriteLine("Dealer menang!");
}
else
{
Console.WriteLine("Hasil seri!");
}
}
// Fungsi utama untuk menjalankan permainan
static void Main()
{
Console.WriteLine("Selamat datang di permainan Dealer Kartu!");
StartGame();
}
}
5. Diler Kendaraan
using System;
using System.Collections.Generic;
class Vehicle
{
public string Model { get; private set; }
public int Price { get; private set; }
public int Stock { get; private set; }
public Vehicle(string model, int price, int stock)
{
Model = model;
Price = price;
Stock = stock;
}
// Menampilkan informasi kendaraan
public void DisplayInfo()
{
Console.WriteLine($"Model: {Model}, Harga: Rp{Price}, Stok: {Stock}");
}
// Mengupdate stok setelah pembelian
public void UpdateStock(int quantity)
{
Stock -= quantity;
if (Stock < 0)
{
Stock = 0;
}
}
// Memeriksa ketersediaan stok
public bool IsAvailable(int quantity)
{
return Stock >= quantity;
}
}
class VehicleDealer
{
private List vehicles = new List();
// Menambahkan kendaraan ke diler
public void AddVehicle(string model, int price, int stock)
{
Vehicle vehicle = new Vehicle(model, price, stock);
vehicles.Add(vehicle);
}
// Menampilkan semua kendaraan yang tersedia
public void DisplayVehicles()
{
if (vehicles.Count == 0)
{
Console.WriteLine("Tidak ada kendaraan di diler.");
return;
}
Console.WriteLine("\nKendaraan yang Tersedia di Diler:");
for (int i = 0; i < vehicles.Count; i++)
{
Console.Write($"{i + 1}. ");
vehicles[i].DisplayInfo();
}
}
// Pembelian kendaraan
public void PurchaseVehicle()
{
DisplayVehicles();
if (vehicles.Count == 0) return;
try
{
Console.Write("\nPilih kendaraan (masukkan nomor): ");
int choice = int.Parse(Console.ReadLine());
Console.Write("Berapa banyak yang ingin dibeli? ");
int quantity = int.Parse(Console.ReadLine());
if (choice < 1 || choice > vehicles.Count)
{
Console.WriteLine("Pilihan tidak valid.");
return;
}
Vehicle selectedVehicle = vehicles[choice - 1];
if (selectedVehicle.IsAvailable(quantity))
{
int totalPrice = selectedVehicle.Price * quantity;
Console.WriteLine($"\nPembelian Sukses! Total Harga: Rp{totalPrice}");
selectedVehicle.UpdateStock(quantity);
}
else
{
Console.WriteLine("\nStok tidak cukup.");
}
}
catch (FormatException)
{
Console.WriteLine("Input tidak valid.");
}
}
}
class Program
{
static void Main(string[] args)
{
VehicleDealer dealer = new VehicleDealer();
// Menambahkan beberapa kendaraan ke diler
dealer.AddVehicle("Mobil Sedan", 300000000, 10);
dealer.AddVehicle("Motor Sport", 100000000, 5);
dealer.AddVehicle("Mobil SUV", 500000000, 3);
while (true)
{
Console.WriteLine("\n--- Menu Diler Kendaraan ---");
Console.WriteLine("1. Lihat kendaraan yang tersedia");
Console.WriteLine("2. Pembelian kendaraan");
Console.WriteLine("3. Keluar");
Console.Write("\nPilih menu: ");
int choice;
if (int.TryParse(Console.ReadLine(), out choice))
{
switch (choice)
{
case 1:
dealer.DisplayVehicles();
break;
case 2:
dealer.PurchaseVehicle();
break;
case 3:
Console.WriteLine("Terima kasih telah mengunjungi diler kami!");
return;
default:
Console.WriteLine("Pilihan tidak valid.");
break;
}
}
else
{
Console.WriteLine("Masukkan pilihan yang valid.");
}
}
}
}
6. Gaji
using System;
class Program
{
// Fungsi untuk menghitung gaji total
static double HitungGaji(double gajiPokok, double tunjangan, double potongan)
{
return gajiPokok + tunjangan - potongan;
}
static void Main()
{
double gajiPokok, tunjangan, potongan, gajiTotal;
// Menampilkan judul program
Console.WriteLine("Program Perhitungan Gaji Karyawan");
// Input data
Console.Write("Masukkan gaji pokok: Rp ");
gajiPokok = Convert.ToDouble(Console.ReadLine());
Console.Write("Masukkan tunjangan: Rp ");
tunjangan = Convert.ToDouble(Console.ReadLine());
Console.Write("Masukkan potongan: Rp ");
potongan = Convert.ToDouble(Console.ReadLine());
// Menghitung gaji total
gajiTotal = HitungGaji(gajiPokok, tunjangan, potongan);
// Menampilkan hasil perhitungan
Console.WriteLine("\nRingkasan Gaji:");
Console.WriteLine($"Gaji Pokok: Rp {gajiPokok}");
Console.WriteLine($"Tunjangan: Rp {tunjangan}");
Console.WriteLine($"Potongan: Rp {potongan}");
Console.WriteLine($"Gaji Total: Rp {gajiTotal}");
}
}
7. Kafe
using System;
using System.Collections.Generic;
class Cafe
{
// Menyimpan menu dan harga
private Dictionary menu;
// Menyimpan pesanan dan jumlah item
private Dictionary pesanan;
public Cafe()
{
// Inisialisasi menu kafe dengan harga
menu = new Dictionary
{
{ "Kopi", 15000 },
{ "Teh", 10000 },
{ "Espresso", 20000 },
{ "Cappuccino", 25000 },
{ "Kue", 12000 }
};
pesanan = new Dictionary();
}
// Menampilkan menu kafe
public void TampilkanMenu()
{
Console.WriteLine("\n--- Menu Kafe ---");
foreach (var item in menu)
{
Console.WriteLine($"{item.Key}: Rp {item.Value}");
}
}
// Menambah pesanan
public void TambahPesanan()
{
while (true)
{
TampilkanMenu();
Console.Write("\nMasukkan nama item yang ingin dipesan (ketik 'selesai' untuk mengakhiri): ");
string pesananItem = Console.ReadLine().Trim();
if (pesananItem.ToLower() == "selesai")
{
break;
}
if (menu.ContainsKey(pesananItem))
{
Console.Write($"Berapa banyak {pesananItem} yang ingin dipesan? ");
int jumlah;
if (int.TryParse(Console.ReadLine(), out jumlah) && jumlah > 0)
{
if (pesanan.ContainsKey(pesananItem))
{
pesanan[pesananItem] += jumlah;
}
else
{
pesanan[pesananItem] = jumlah;
}
Console.WriteLine($"{jumlah} {pesananItem} telah ditambahkan ke pesanan.");
}
else
{
Console.WriteLine("Jumlah tidak valid. Silakan coba lagi.");
}
}
else
{
Console.WriteLine("Item tidak ada dalam menu. Silakan coba lagi.");
}
}
}
// Menghitung total harga pesanan
public int HitungTotal()
{
int total = 0;
foreach (var item in pesanan)
{
total += menu[item.Key] * item.Value;
}
return total;
}
// Menampilkan pesanan dan total harga
public void TampilkanPesanan()
{
if (pesanan.Count == 0)
{
Console.WriteLine("\nTidak ada pesanan.");
}
else
{
Console.WriteLine("\n--- Pesanan Anda ---");
foreach (var item in pesanan)
{
Console.WriteLine($"{item.Key} x {item.Value} = Rp {menu[item.Key] * item.Value}");
}
Console.WriteLine($"\nTotal yang harus dibayar: Rp {HitungTotal()}");
}
}
}
class Program
{
static void Main()
{
Cafe cafe = new Cafe();
int pilihan;
while (true)
{
Console.WriteLine("\n--- Selamat Datang di Kafe! ---");
Console.WriteLine("1. Lihat Menu");
Console.WriteLine("2. Tambah Pesanan");
Console.WriteLine("3. Lihat Pesanan dan Total");
Console.WriteLine("4. Keluar");
Console.Write("Pilih menu (1-4): ");
if (int.TryParse(Console.ReadLine(), out pilihan))
{
switch (pilihan)
{
case 1:
cafe.TampilkanMenu();
break;
case 2:
cafe.TambahPesanan();
break;
case 3:
cafe.TampilkanPesanan();
break;
case 4:
Console.WriteLine("Terima kasih telah mengunjungi kafe kami. Sampai jumpa!");
return;
default:
Console.WriteLine("Pilihan tidak valid. Silakan coba lagi.");
break;
}
}
else
{
Console.WriteLine("Pilihan tidak valid. Silakan coba lagi.");
}
}
}
}
8. Kalkulator
using System;
class Program
{
// Fungsi untuk penjumlahan
static double Tambah(double x, double y)
{
return x + y;
}
// Fungsi untuk pengurangan
static double Kurang(double x, double y)
{
return x - y;
}
// Fungsi untuk perkalian
static double Kali(double x, double y)
{
return x * y;
}
// Fungsi untuk pembagian
static double Bagi(double x, double y)
{
if (y != 0)
{
return x / y;
}
else
{
Console.WriteLine("Tidak bisa membagi dengan nol");
return 0; // Mengembalikan nilai 0 jika pembagian dengan nol
}
}
static void Main()
{
int pilihan;
double num1, num2;
// Menampilkan menu operasi
Console.WriteLine("Pilih operasi:");
Console.WriteLine("1. Tambah");
Console.WriteLine("2. Kurang");
Console.WriteLine("3. Kali");
Console.WriteLine("4. Bagi");
// Meminta input pilihan operasi
Console.Write("Masukkan pilihan (1/2/3/4): ");
pilihan = int.Parse(Console.ReadLine());
// Meminta input angka
Console.Write("Masukkan angka pertama: ");
num1 = double.Parse(Console.ReadLine());
Console.Write("Masukkan angka kedua: ");
num2 = double.Parse(Console.ReadLine());
// Melakukan operasi sesuai dengan pilihan pengguna
switch (pilihan)
{
case 1:
Console.WriteLine("{0} + {1} = {2:F2}", num1, num2, Tambah(num1, num2));
break;
case 2:
Console.WriteLine("{0} - {1} = {2:F2}", num1, num2, Kurang(num1, num2));
break;
case 3:
Console.WriteLine("{0} * {1} = {2:F2}", num1, num2, Kali(num1, num2));
break;
case 4:
double hasilBagi = Bagi(num1, num2);
if (num2 != 0) // Mengecek apakah pembagian berhasil
{
Console.WriteLine("{0} / {1} = {2:F2}", num1, num2, hasilBagi);
}
break;
default:
Console.WriteLine("Pilihan tidak valid!");
break;
}
}
}
9. Kasir
using System;
using System.Collections.Generic;
public class Barang
{
public string Nama { get; set; }
public double Harga { get; set; }
public int Jumlah { get; set; }
public double Total { get; set; }
}
class Program
{
static void Main()
{
List daftarBarang = new List();
double totalHarga = 0;
int pilihan;
string namaBarang;
double harga;
int jumlah;
double uangDibayar;
while (true)
{
Console.WriteLine("\nMenu Kasir");
Console.WriteLine("1. Tambah barang");
Console.WriteLine("2. Tampilkan rincian belanja");
Console.WriteLine("3. Bayar");
Console.WriteLine("4. Keluar");
Console.Write("Pilih menu (1/2/3/4): ");
pilihan = Convert.ToInt32(Console.ReadLine());
if (pilihan == 1)
{
Console.Write("Masukkan nama barang: ");
namaBarang = Console.ReadLine();
Console.Write("Masukkan harga barang: ");
harga = Convert.ToDouble(Console.ReadLine());
Console.Write("Masukkan jumlah barang: ");
jumlah = Convert.ToInt32(Console.ReadLine());
// Tambah barang
Barang barang = new Barang
{
Nama = namaBarang,
Harga = harga,
Jumlah = jumlah,
Total = harga * jumlah
};
daftarBarang.Add(barang);
totalHarga += barang.Total;
Console.WriteLine($"{namaBarang} x{jumlah} ditambahkan ke daftar belanja.");
}
else if (pilihan == 2)
{
// Tampilkan rincian belanja
Console.WriteLine("\n--- Rincian Belanja ---");
foreach (var barang in daftarBarang)
{
Console.WriteLine($"{barang.Nama} - Harga: {barang.Harga:F2} - Jumlah: {barang.Jumlah} - Total: {barang.Total:F2}");
}
Console.WriteLine($"\nTotal Belanja: {totalHarga:F2}");
}
else if (pilihan == 3)
{
// Tampilkan rincian belanja dan proses pembayaran
Console.WriteLine("\n--- Rincian Belanja ---");
foreach (var barang in daftarBarang)
{
Console.WriteLine($"{barang.Nama} - Harga: {barang.Harga:F2} - Jumlah: {barang.Jumlah} - Total: {barang.Total:F2}");
}
Console.WriteLine($"\nTotal Belanja: {totalHarga:F2}");
Console.Write("Masukkan uang yang dibayar: ");
uangDibayar = Convert.ToDouble(Console.ReadLine());
if (uangDibayar >= totalHarga)
{
double kembalian = uangDibayar - totalHarga;
Console.WriteLine($"\nTotal yang harus dibayar: {totalHarga:F2}");
Console.WriteLine($"Uang yang dibayar: {uangDibayar:F2}");
Console.WriteLine($"Kembalian: {kembalian:F2}");
}
else
{
Console.WriteLine("\nUang yang dibayar kurang dari total belanja. Transaksi dibatalkan.");
}
}
else if (pilihan == 4)
{
Console.WriteLine("Terima kasih, sampai jumpa!");
break;
}
else
{
Console.WriteLine("Pilihan tidak valid, coba lagi.");
}
}
}
}
10. Kereta
using System;
using System.Collections.Generic;
class Kereta
{
public string NamaKereta { get; set; }
public string Tujuan { get; set; }
public string WaktuBerangkat { get; set; }
public int Kapasitas { get; set; }
public int Terisi { get; set; }
public Kereta(string namaKereta, string tujuan, string waktuBerangkat, int kapasitas)
{
NamaKereta = namaKereta;
Tujuan = tujuan;
WaktuBerangkat = waktuBerangkat;
Kapasitas = kapasitas;
Terisi = 0;
}
public void TampilkanInfo()
{
Console.WriteLine($"Nama Kereta: {NamaKereta}");
Console.WriteLine($"Tujuan: {Tujuan}");
Console.WriteLine($"Waktu Berangkat: {WaktuBerangkat}");
Console.WriteLine($"Kapasitas: {Kapasitas}");
Console.WriteLine($"Terisi: {Terisi}/{Kapasitas}");
Console.WriteLine();
}
public void PesanTiket(int jumlahTiket)
{
if (Terisi + jumlahTiket <= Kapasitas)
{
Terisi += jumlahTiket;
Console.WriteLine($"Berhasil memesan {jumlahTiket} tiket untuk {NamaKereta}.");
}
else
{
Console.WriteLine($"Maaf, hanya tersisa {Kapasitas - Terisi} tiket untuk {NamaKereta}.");
}
}
}
class SistemKereta
{
private List keretaList;
public SistemKereta()
{
keretaList = new List();
}
public void TambahKereta(Kereta kereta)
{
keretaList.Add(kereta);
}
public void TampilkanJadwal()
{
Console.WriteLine("Jadwal Kereta:");
foreach (var kereta in keretaList)
{
kereta.TampilkanInfo();
}
}
public void PesanTiketKereta(string namaKereta, int jumlahTiket)
{
bool ditemukan = false;
foreach (var kereta in keretaList)
{
if (kereta.NamaKereta == namaKereta)
{
kereta.PesanTiket(jumlahTiket);
ditemukan = true;
break;
}
}
if (!ditemukan)
{
Console.WriteLine($"Kereta dengan nama {namaKereta} tidak ditemukan.");
}
}
}
class Program
{
static void Main()
{
SistemKereta sistemKereta = new SistemKereta();
// Menambahkan kereta ke sistem
Kereta kereta1 = new Kereta("Ekspres Jakarta", "Bandung", "10:00", 100);
Kereta kereta2 = new Kereta("Argo Bromo", "Surabaya", "15:00", 150);
Kereta kereta3 = new Kereta("Kelas Ekonomi", "Yogyakarta", "12:00", 200);
sistemKereta.TambahKereta(kereta1);
sistemKereta.TambahKereta(kereta2);
sistemKereta.TambahKereta(kereta3);
int pilihan;
string namaKereta;
int jumlahTiket;
while (true)
{
Console.WriteLine("\nMenu:");
Console.WriteLine("1. Tampilkan Jadwal Kereta");
Console.WriteLine("2. Pesan Tiket Kereta");
Console.WriteLine("3. Keluar");
Console.Write("Pilih menu (1/2/3): ");
pilihan = int.Parse(Console.ReadLine());
if (pilihan == 1)
{
sistemKereta.TampilkanJadwal();
}
else if (pilihan == 2)
{
Console.Write("Masukkan nama kereta yang ingin dipesan: ");
namaKereta = Console.ReadLine();
Console.Write("Masukkan jumlah tiket yang ingin dipesan: ");
jumlahTiket = int.Parse(Console.ReadLine());
sistemKereta.PesanTiketKereta(namaKereta, jumlahTiket);
}
else if (pilihan == 3)
{
Console.WriteLine("Terima kasih telah menggunakan sistem kereta.");
break;
}
else
{
Console.WriteLine("Pilihan tidak valid. Silakan coba lagi.");
}
}
}
}
Mau Lebih Banyak Kode? Lihat Di Github Saya (Kode 11 - 20)