├── README.md
├── absensi.py
├── barbershop.py
├── barbersop.py
├── bioskop.py
├── dealerkartu(blackjacksimplified).py
├── dilerkendaraan.py
├── gaji.py
├── index.html
├── kafe.py
├── kalkulator.py
├── kasir.py
├── kereta.py
├── parkir.py
├── perpustakaan.py
├── raffneptune.jpg
├── rental.py
├── restoran.py
├── spbu.py
├── supermarket.py
├── tictactoe.py
├── timezonegame.py
├── tol.py
└── warnet.py
/README.md:
--------------------------------------------------------------------------------
1 |
python
2 | tap link
3 |
--------------------------------------------------------------------------------
/absensi.py:
--------------------------------------------------------------------------------
1 | # Program Absensi Sederhana
2 |
3 | # Daftar nama siswa/pegawai
4 | daftar_nama = ["Ali", "Budi", "Citra", "Dewi", "Eka"]
5 |
6 | # Menyimpan data absensi
7 | absensi = {}
8 |
9 | # Fungsi untuk mencatat absensi
10 | def catat_absensi():
11 | print("Daftar Nama:")
12 | for i, nama in enumerate(daftar_nama, 1):
13 | print(f"{i}. {nama}")
14 |
15 | for nama in daftar_nama:
16 | status = input(f"Apakah {nama} hadir? (y/n): ").strip().lower()
17 | if status == 'y':
18 | absensi[nama] = "Hadir"
19 | elif status == 'n':
20 | absensi[nama] = "Tidak Hadir"
21 | else:
22 | absensi[nama] = "Tidak Valid"
23 |
24 | print("\nAbsensi Hari Ini:")
25 | for nama, status in absensi.items():
26 | print(f"{nama}: {status}")
27 |
28 | # Memulai pencatatan absensi
29 | catat_absensi()
--------------------------------------------------------------------------------
/barbershop.py:
--------------------------------------------------------------------------------
1 | import time
2 |
3 | class Barbershop:
4 | def __init__(self):
5 | self.queue = [] # Antrian pelanggan
6 | self.is_open = True # Status barbershop
7 |
8 | def buka_barbershop(self):
9 | print("Barbershop sedang buka, silakan masuk!")
10 |
11 | def tutup_barbershop(self):
12 | self.is_open = False
13 | print("Barbershop sudah tutup. Terima kasih sudah datang!")
14 |
15 | def tambah_pelanggan(self, nama):
16 | if self.is_open:
17 | self.queue.append(nama)
18 | print(f"{nama} telah masuk ke antrian.")
19 | else:
20 | print("Barbershop sudah tutup. Anda tidak bisa mendaftar.")
21 |
22 | def proses_pelanggan(self):
23 | if self.queue:
24 | pelanggan = self.queue.pop(0)
25 | print(f"Sedang melayani {pelanggan}...")
26 | time.sleep(2) # Simulasi waktu pemotongan rambut
27 | print(f"{pelanggan} telah selesai dilayani.")
28 | else:
29 | print("Tidak ada pelanggan di antrian.")
30 |
31 | def tampilkan_antrian(self):
32 | if self.queue:
33 | print("Antrian pelanggan:")
34 | for i, pelanggan in enumerate(self.queue, start=1):
35 | print(f"{i}. {pelanggan}")
36 | else:
37 | print("Tidak ada pelanggan di antrian.")
38 |
39 | def main():
40 | barbershop = Barbershop()
41 | barbershop.buka_barbershop()
42 |
43 | while True:
44 | print("\n--- Menu ---")
45 | print("1. Tambah Pelanggan")
46 | print("2. Proses Pelanggan")
47 | print("3. Lihat Antrian")
48 | print("4. Tutup Barbershop")
49 | print("5. Keluar")
50 |
51 | pilihan = input("Pilih menu (1-5): ")
52 |
53 | if pilihan == '1':
54 | nama = input("Masukkan nama pelanggan: ")
55 | barbershop.tambah_pelanggan(nama)
56 |
57 | elif pilihan == '2':
58 | barbershop.proses_pelanggan()
59 |
60 | elif pilihan == '3':
61 | barbershop.tampilkan_antrian()
62 |
63 | elif pilihan == '4':
64 | barbershop.tutup_barbershop()
65 | break
66 |
67 | elif pilihan == '5':
68 | print("Terima kasih telah menggunakan program ini!")
69 | break
70 |
71 | else:
72 | print("Pilihan tidak valid, coba lagi.")
73 |
74 | if __name__ == "__main__":
75 | main()
--------------------------------------------------------------------------------
/barbersop.py:
--------------------------------------------------------------------------------
1 | import time
2 |
3 | class Barbershop:
4 | def __init__(self):
5 | self.queue = [] # Antrian pelanggan
6 | self.is_open = True # Status barbershop
7 |
8 | def buka_barbershop(self):
9 | print("Barbershop sedang buka, silakan masuk!")
10 |
11 | def tutup_barbershop(self):
12 | self.is_open = False
13 | print("Barbershop sudah tutup. Terima kasih sudah datang!")
14 |
15 | def tambah_pelanggan(self, nama):
16 | if self.is_open:
17 | self.queue.append(nama)
18 | print(f"{nama} telah masuk ke antrian.")
19 | else:
20 | print("Barbershop sudah tutup. Anda tidak bisa mendaftar.")
21 |
22 | def proses_pelanggan(self):
23 | if self.queue:
24 | pelanggan = self.queue.pop(0)
25 | print(f"Sedang melayani {pelanggan}...")
26 | time.sleep(2) # Simulasi waktu pemotongan rambut
27 | print(f"{pelanggan} telah selesai dilayani.")
28 | else:
29 | print("Tidak ada pelanggan di antrian.")
30 |
31 | def tampilkan_antrian(self):
32 | if self.queue:
33 | print("Antrian pelanggan:")
34 | for i, pelanggan in enumerate(self.queue, start=1):
35 | print(f"{i}. {pelanggan}")
36 | else:
37 | print("Tidak ada pelanggan di antrian.")
38 |
39 | def main():
40 | barbershop = Barbershop()
41 | barbershop.buka_barbershop()
42 |
43 | while True:
44 | print("\n--- Menu ---")
45 | print("1. Tambah Pelanggan")
46 | print("2. Proses Pelanggan")
47 | print("3. Lihat Antrian")
48 | print("4. Tutup Barbershop")
49 | print("5. Keluar")
50 |
51 | pilihan = input("Pilih menu (1-5): ")
52 |
53 | if pilihan == '1':
54 | nama = input("Masukkan nama pelanggan: ")
55 | barbershop.tambah_pelanggan(nama)
56 |
57 | elif pilihan == '2':
58 | barbershop.proses_pelanggan()
59 |
60 | elif pilihan == '3':
61 | barbershop.tampilkan_antrian()
62 |
63 | elif pilihan == '4':
64 | barbershop.tutup_barbershop()
65 | break
66 |
67 | elif pilihan == '5':
68 | print("Terima kasih telah menggunakan program ini!")
69 | break
70 |
71 | else:
72 | print("Pilihan tidak valid, coba lagi.")
73 |
74 | if __name__ == "__main__":
75 | main()
--------------------------------------------------------------------------------
/bioskop.py:
--------------------------------------------------------------------------------
1 | # Daftar film yang tersedia di bioskop
2 | films = {
3 | 1: {"judul": "Film A", "harga": 50000},
4 | 2: {"judul": "Film B", "harga": 60000},
5 | 3: {"judul": "Film C", "harga": 70000},
6 | 4: {"judul": "Film D", "harga": 55000}
7 | }
8 |
9 | def show_films():
10 | print("Daftar Film yang Tersedia:")
11 | for key, value in films.items():
12 | print(f"{key}. {value['judul']} - Harga: Rp {value['harga']}")
13 |
14 | def pilih_film():
15 | while True:
16 | try:
17 | pilihan = int(input("\nPilih film (1-4): "))
18 | if pilihan in films:
19 | return pilihan
20 | else:
21 | print("Pilihan tidak valid, coba lagi.")
22 | except ValueError:
23 | print("Masukkan angka yang valid.")
24 |
25 | def beli_tiket():
26 | show_films()
27 | pilihan = pilih_film()
28 | jumlah_tiket = int(input("Masukkan jumlah tiket yang ingin dibeli: "))
29 |
30 | film_terpilih = films[pilihan]
31 | total_harga = film_terpilih["harga"] * jumlah_tiket
32 |
33 | print(f"\nTiket untuk film {film_terpilih['judul']} ({jumlah_tiket} tiket) berhasil dipesan.")
34 | print(f"Total harga: Rp {total_harga}")
35 |
36 | lagi = input("\nApakah Anda ingin membeli tiket lagi? (ya/tidak): ").strip().lower()
37 | if lagi == 'ya':
38 | beli_tiket()
39 | else:
40 | print("Terima kasih telah membeli tiket di bioskop kami!")
41 |
42 | # Mulai program
43 | beli_tiket()
--------------------------------------------------------------------------------
/dealerkartu(blackjacksimplified).py:
--------------------------------------------------------------------------------
1 | import random
2 |
3 | # Daftar kartu yang ada di dalam deck
4 | deck = [
5 | '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'
6 | ] * 4 # Empat set kartu untuk deck standar
7 |
8 | # Fungsi untuk menghitung nilai kartu
9 | def card_value(card):
10 | if card in ['J', 'Q', 'K']:
11 | return 10
12 | elif card == 'A':
13 | return 11 # Untuk kesederhanaan, kita anggap Ace = 11, tidak memikirkan kemungkinan Ace = 1
14 | else:
15 | return int(card)
16 |
17 | # Fungsi untuk membagikan kartu
18 | def deal_card():
19 | card = random.choice(deck)
20 | deck.remove(card) # Menghapus kartu yang sudah dibagikan dari deck
21 | return card
22 |
23 | # Fungsi untuk menghitung nilai total kartu
24 | def calculate_hand(hand):
25 | total = sum(card_value(card) for card in hand)
26 | return total
27 |
28 | # Fungsi untuk bermain game sederhana
29 | def start_game():
30 | print("Selamat datang di permainan Dealer Kartu!")
31 |
32 | # Membagikan dua kartu untuk pemain dan dealer
33 | player_hand = [deal_card(), deal_card()]
34 | dealer_hand = [deal_card(), deal_card()]
35 |
36 | # Menampilkan kartu pemain dan satu kartu dealer
37 | print(f"Kartu Anda: {player_hand} dengan nilai {calculate_hand(player_hand)}")
38 | print(f"Kartu Dealer: {dealer_hand[0]} dan kartu tersembunyi")
39 |
40 | # Giliran pemain
41 | while calculate_hand(player_hand) < 21:
42 | action = input("Apakah Anda ingin 'Hit' atau 'Stand'? ").lower()
43 | if action == 'hit':
44 | player_hand.append(deal_card())
45 | print(f"Kartu Anda sekarang: {player_hand} dengan nilai {calculate_hand(player_hand)}")
46 | elif action == 'stand':
47 | break
48 | else:
49 | print("Pilihan tidak valid. Pilih 'Hit' atau 'Stand'.")
50 |
51 | # Cek apakah pemain melebihi 21
52 | if calculate_hand(player_hand) > 21:
53 | print(f"Nilai kartu Anda melebihi 21! Anda kalah!")
54 | return
55 |
56 | # Giliran dealer (dealer harus 'hit' sampai total nilai kartu >= 17)
57 | print(f"Kartu Dealer sekarang: {dealer_hand} dengan nilai {calculate_hand(dealer_hand)}")
58 | while calculate_hand(dealer_hand) < 17:
59 | print("Dealer memukul kartu...")
60 | dealer_hand.append(deal_card())
61 | print(f"Kartu Dealer sekarang: {dealer_hand} dengan nilai {calculate_hand(dealer_hand)}")
62 |
63 | # Tentukan pemenang
64 | player_total = calculate_hand(player_hand)
65 | dealer_total = calculate_hand(dealer_hand)
66 |
67 | if dealer_total > 21:
68 | print("Dealer melebihi 21! Anda menang!")
69 | elif player_total > dealer_total:
70 | print("Anda menang!")
71 | elif player_total < dealer_total:
72 | print("Dealer menang!")
73 | else:
74 | print("Hasil seri!")
75 |
76 | # Memulai permainan
77 | start_game()
--------------------------------------------------------------------------------
/dilerkendaraan.py:
--------------------------------------------------------------------------------
1 | class Vehicle:
2 | def __init__(self, model, price, stock):
3 | self.model = model
4 | self.price = price
5 | self.stock = stock
6 |
7 | def display_info(self):
8 | print(f"Model: {self.model}, Harga: Rp{self.price}, Stok: {self.stock}")
9 |
10 | def update_stock(self, quantity):
11 | self.stock -= quantity
12 | if self.stock < 0:
13 | self.stock = 0
14 |
15 | def is_available(self, quantity):
16 | return self.stock >= quantity
17 |
18 |
19 | class VehicleDealer:
20 | def __init__(self):
21 | self.vehicles = []
22 |
23 | def add_vehicle(self, model, price, stock):
24 | vehicle = Vehicle(model, price, stock)
25 | self.vehicles.append(vehicle)
26 |
27 | def display_vehicles(self):
28 | if not self.vehicles:
29 | print("Tidak ada kendaraan di diler.")
30 | return
31 | print("\nKendaraan yang Tersedia di Diler:")
32 | for idx, vehicle in enumerate(self.vehicles, 1):
33 | print(f"{idx}. ", end="")
34 | vehicle.display_info()
35 |
36 | def purchase_vehicle(self):
37 | self.display_vehicles()
38 | if not self.vehicles:
39 | return
40 |
41 | try:
42 | choice = int(input("\nPilih kendaraan (masukkan nomor): "))
43 | quantity = int(input("Berapa banyak yang ingin dibeli? "))
44 |
45 | selected_vehicle = self.vehicles[choice - 1]
46 | if selected_vehicle.is_available(quantity):
47 | total_price = selected_vehicle.price * quantity
48 | print(f"\nPembelian Sukses! Total Harga: Rp{total_price}")
49 | selected_vehicle.update_stock(quantity)
50 | else:
51 | print("\nStok tidak cukup.")
52 | except (ValueError, IndexError):
53 | print("\nPilihan tidak valid.")
54 |
55 | def main():
56 | dealer = VehicleDealer()
57 |
58 | # Menambahkan beberapa kendaraan ke diler
59 | dealer.add_vehicle("Mobil Sedan", 300000000, 10)
60 | dealer.add_vehicle("Motor Sport", 100000000, 5)
61 | dealer.add_vehicle("Mobil SUV", 500000000, 3)
62 |
63 | while True:
64 | print("\n--- Menu Diler Kendaraan ---")
65 | print("1. Lihat kendaraan yang tersedia")
66 | print("2. Pembelian kendaraan")
67 | print("3. Keluar")
68 |
69 | try:
70 | choice = int(input("\nPilih menu: "))
71 |
72 | if choice == 1:
73 | dealer.display_vehicles()
74 | elif choice == 2:
75 | dealer.purchase_vehicle()
76 | elif choice == 3:
77 | print("Terima kasih telah mengunjungi diler kami!")
78 | break
79 | else:
80 | print("\nPilihan tidak valid.")
81 | except ValueError:
82 | print("\nMasukkan angka yang valid.")
83 |
84 | if __name__ == "__main__":
85 | main()
--------------------------------------------------------------------------------
/gaji.py:
--------------------------------------------------------------------------------
1 | def hitung_gaji_pokok(gaji_pokok, tunjangan, potongan):
2 | gaji_total = gaji_pokok + tunjangan - potongan
3 | return gaji_total
4 |
5 | def main():
6 | print("Program Perhitungan Gaji Karyawan")
7 |
8 | # Input data
9 | gaji_pokok = float(input("Masukkan gaji pokok: Rp "))
10 | tunjangan = float(input("Masukkan tunjangan: Rp "))
11 | potongan = float(input("Masukkan potongan: Rp "))
12 |
13 | # Menghitung gaji total
14 | gaji_total = hitung_gaji_pokok(gaji_pokok, tunjangan, potongan)
15 |
16 | # Menampilkan hasil
17 | print("\nRingkasan Gaji:")
18 | print(f"Gaji Pokok: Rp {gaji_pokok}")
19 | print(f"Tunjangan: Rp {tunjangan}")
20 | print(f"Potongan: Rp {potongan}")
21 | print(f"Gaji Total: Rp {gaji_total}")
22 |
23 | if __name__ == "__main__":
24 | main()
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Raff | Python
8 |
45 |
46 |
47 |
48 | Kumpulan Kode Python
49 |
50 | 1. Absensi
51 |
52 | # Program Absensi Sederhana
53 |
54 | # Daftar nama siswa/pegawai
55 | daftar_nama = ["Ali", "Budi", "Citra", "Dewi", "Eka"]
56 |
57 | # Menyimpan data absensi
58 | absensi = {}
59 |
60 | # Fungsi untuk mencatat absensi
61 | def catat_absensi():
62 | print("Daftar Nama:")
63 | for i, nama in enumerate(daftar_nama, 1):
64 | print(f"{i}. {nama}")
65 |
66 | for nama in daftar_nama:
67 | status = input(f"Apakah {nama} hadir? (y/n): ").strip().lower()
68 | if status == 'y':
69 | absensi[nama] = "Hadir"
70 | elif status == 'n':
71 | absensi[nama] = "Tidak Hadir"
72 | else:
73 | absensi[nama] = "Tidak Valid"
74 |
75 | print("\nAbsensi Hari Ini:")
76 | for nama, status in absensi.items():
77 | print(f"{nama}: {status}")
78 |
79 | # Memulai pencatatan absensi
80 | catat_absensi()
81 |
82 |
83 | 2. Barbershop
84 |
85 | import time
86 |
87 | class Barbershop:
88 | def __init__(self):
89 | self.queue = [] # Antrian pelanggan
90 | self.is_open = True # Status barbershop
91 |
92 | def buka_barbershop(self):
93 | print("Barbershop sedang buka, silakan masuk!")
94 |
95 | def tutup_barbershop(self):
96 | self.is_open = False
97 | print("Barbershop sudah tutup. Terima kasih sudah datang!")
98 |
99 | def tambah_pelanggan(self, nama):
100 | if self.is_open:
101 | self.queue.append(nama)
102 | print(f"{nama} telah masuk ke antrian.")
103 | else:
104 | print("Barbershop sudah tutup. Anda tidak bisa mendaftar.")
105 |
106 | def proses_pelanggan(self):
107 | if self.queue:
108 | pelanggan = self.queue.pop(0)
109 | print(f"Sedang melayani {pelanggan}...")
110 | time.sleep(2) # Simulasi waktu pemotongan rambut
111 | print(f"{pelanggan} telah selesai dilayani.")
112 | else:
113 | print("Tidak ada pelanggan di antrian.")
114 |
115 | def tampilkan_antrian(self):
116 | if self.queue:
117 | print("Antrian pelanggan:")
118 | for i, pelanggan in enumerate(self.queue, start=1):
119 | print(f"{i}. {pelanggan}")
120 | else:
121 | print("Tidak ada pelanggan di antrian.")
122 |
123 | def main():
124 | barbershop = Barbershop()
125 | barbershop.buka_barbershop()
126 |
127 | while True:
128 | print("\n--- Menu ---")
129 | print("1. Tambah Pelanggan")
130 | print("2. Proses Pelanggan")
131 | print("3. Lihat Antrian")
132 | print("4. Tutup Barbershop")
133 | print("5. Keluar")
134 |
135 | pilihan = input("Pilih menu (1-5): ")
136 |
137 | if pilihan == '1':
138 | nama = input("Masukkan nama pelanggan: ")
139 | barbershop.tambah_pelanggan(nama)
140 |
141 | elif pilihan == '2':
142 | barbershop.proses_pelanggan()
143 |
144 | elif pilihan == '3':
145 | barbershop.tampilkan_antrian()
146 |
147 | elif pilihan == '4':
148 | barbershop.tutup_barbershop()
149 | break
150 |
151 | elif pilihan == '5':
152 | print("Terima kasih telah menggunakan program ini!")
153 | break
154 |
155 | else:
156 | print("Pilihan tidak valid, coba lagi.")
157 |
158 | if __name__ == "__main__":
159 | main()
160 |
161 |
162 | 3. Bioskop
163 |
164 | # Daftar film yang tersedia di bioskop
165 | films = {
166 | 1: {"judul": "Film A", "harga": 50000},
167 | 2: {"judul": "Film B", "harga": 60000},
168 | 3: {"judul": "Film C", "harga": 70000},
169 | 4: {"judul": "Film D", "harga": 55000}
170 | }
171 |
172 | def show_films():
173 | print("Daftar Film yang Tersedia:")
174 | for key, value in films.items():
175 | print(f"{key}. {value['judul']} - Harga: Rp {value['harga']}")
176 |
177 | def pilih_film():
178 | while True:
179 | try:
180 | pilihan = int(input("\nPilih film (1-4): "))
181 | if pilihan in films:
182 | return pilihan
183 | else:
184 | print("Pilihan tidak valid, coba lagi.")
185 | except ValueError:
186 | print("Masukkan angka yang valid.")
187 |
188 | def beli_tiket():
189 | show_films()
190 | pilihan = pilih_film()
191 | jumlah_tiket = int(input("Masukkan jumlah tiket yang ingin dibeli: "))
192 |
193 | film_terpilih = films[pilihan]
194 | total_harga = film_terpilih["harga"] * jumlah_tiket
195 |
196 | print(f"\nTiket untuk film {film_terpilih['judul']} ({jumlah_tiket} tiket) berhasil dipesan.")
197 | print(f"Total harga: Rp {total_harga}")
198 |
199 | lagi = input("\nApakah Anda ingin membeli tiket lagi? (ya/tidak): ").strip().lower()
200 | if lagi == 'ya':
201 | beli_tiket()
202 | else:
203 | print("Terima kasih telah membeli tiket di bioskop kami!")
204 |
205 | # Mulai program
206 | beli_tiket()
207 |
208 |
209 | 4. Dealer Kartu (Black Jack Simplified)
210 |
211 | import random
212 |
213 | # Daftar kartu yang ada di dalam deck
214 | deck = [
215 | '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'
216 | ] * 4 # Empat set kartu untuk deck standar
217 |
218 | # Fungsi untuk menghitung nilai kartu
219 | def card_value(card):
220 | if card in ['J', 'Q', 'K']:
221 | return 10
222 | elif card == 'A':
223 | return 11 # Untuk kesederhanaan, kita anggap Ace = 11, tidak memikirkan kemungkinan Ace = 1
224 | else:
225 | return int(card)
226 |
227 | # Fungsi untuk membagikan kartu
228 | def deal_card():
229 | card = random.choice(deck)
230 | deck.remove(card) # Menghapus kartu yang sudah dibagikan dari deck
231 | return card
232 |
233 | # Fungsi untuk menghitung nilai total kartu
234 | def calculate_hand(hand):
235 | total = sum(card_value(card) for card in hand)
236 | return total
237 |
238 | # Fungsi untuk bermain game sederhana
239 | def start_game():
240 | print("Selamat datang di permainan Dealer Kartu!")
241 |
242 | # Membagikan dua kartu untuk pemain dan dealer
243 | player_hand = [deal_card(), deal_card()]
244 | dealer_hand = [deal_card(), deal_card()]
245 |
246 | # Menampilkan kartu pemain dan satu kartu dealer
247 | print(f"Kartu Anda: {player_hand} dengan nilai {calculate_hand(player_hand)}")
248 | print(f"Kartu Dealer: {dealer_hand[0]} dan kartu tersembunyi")
249 |
250 | # Giliran pemain
251 | while calculate_hand(player_hand) < 21:
252 | action = input("Apakah Anda ingin 'Hit' atau 'Stand'? ").lower()
253 | if action == 'hit':
254 | player_hand.append(deal_card())
255 | print(f"Kartu Anda sekarang: {player_hand} dengan nilai {calculate_hand(player_hand)}")
256 | elif action == 'stand':
257 | break
258 | else:
259 | print("Pilihan tidak valid. Pilih 'Hit' atau 'Stand'.")
260 |
261 | # Cek apakah pemain melebihi 21
262 | if calculate_hand(player_hand) > 21:
263 | print(f"Nilai kartu Anda melebihi 21! Anda kalah!")
264 | return
265 |
266 | # Giliran dealer (dealer harus 'hit' sampai total nilai kartu >= 17)
267 | print(f"Kartu Dealer sekarang: {dealer_hand} dengan nilai {calculate_hand(dealer_hand)}")
268 | while calculate_hand(dealer_hand) < 17:
269 | print("Dealer memukul kartu...")
270 | dealer_hand.append(deal_card())
271 | print(f"Kartu Dealer sekarang: {dealer_hand} dengan nilai {calculate_hand(dealer_hand)}")
272 |
273 | # Tentukan pemenang
274 | player_total = calculate_hand(player_hand)
275 | dealer_total = calculate_hand(dealer_hand)
276 |
277 | if dealer_total > 21:
278 | print("Dealer melebihi 21! Anda menang!")
279 | elif player_total > dealer_total:
280 | print("Anda menang!")
281 | elif player_total < dealer_total:
282 | print("Dealer menang!")
283 | else:
284 | print("Hasil seri!")
285 |
286 | # Memulai permainan
287 | start_game()
288 |
289 |
290 | 5. Diler Kendaraan
291 |
292 | class Vehicle:
293 | def __init__(self, model, price, stock):
294 | self.model = model
295 | self.price = price
296 | self.stock = stock
297 |
298 | def display_info(self):
299 | print(f"Model: {self.model}, Harga: Rp{self.price}, Stok: {self.stock}")
300 |
301 | def update_stock(self, quantity):
302 | self.stock -= quantity
303 | if self.stock < 0:
304 | self.stock = 0
305 |
306 | def is_available(self, quantity):
307 | return self.stock >= quantity
308 |
309 |
310 | class VehicleDealer:
311 | def __init__(self):
312 | self.vehicles = []
313 |
314 | def add_vehicle(self, model, price, stock):
315 | vehicle = Vehicle(model, price, stock)
316 | self.vehicles.append(vehicle)
317 |
318 | def display_vehicles(self):
319 | if not self.vehicles:
320 | print("Tidak ada kendaraan di diler.")
321 | return
322 | print("\nKendaraan yang Tersedia di Diler:")
323 | for idx, vehicle in enumerate(self.vehicles, 1):
324 | print(f"{idx}. ", end="")
325 | vehicle.display_info()
326 |
327 | def purchase_vehicle(self):
328 | self.display_vehicles()
329 | if not self.vehicles:
330 | return
331 |
332 | try:
333 | choice = int(input("\nPilih kendaraan (masukkan nomor): "))
334 | quantity = int(input("Berapa banyak yang ingin dibeli? "))
335 |
336 | selected_vehicle = self.vehicles[choice - 1]
337 | if selected_vehicle.is_available(quantity):
338 | total_price = selected_vehicle.price * quantity
339 | print(f"\nPembelian Sukses! Total Harga: Rp{total_price}")
340 | selected_vehicle.update_stock(quantity)
341 | else:
342 | print("\nStok tidak cukup.")
343 | except (ValueError, IndexError):
344 | print("\nPilihan tidak valid.")
345 |
346 | def main():
347 | dealer = VehicleDealer()
348 |
349 | # Menambahkan beberapa kendaraan ke diler
350 | dealer.add_vehicle("Mobil Sedan", 300000000, 10)
351 | dealer.add_vehicle("Motor Sport", 100000000, 5)
352 | dealer.add_vehicle("Mobil SUV", 500000000, 3)
353 |
354 | while True:
355 | print("\n--- Menu Diler Kendaraan ---")
356 | print("1. Lihat kendaraan yang tersedia")
357 | print("2. Pembelian kendaraan")
358 | print("3. Keluar")
359 |
360 | try:
361 | choice = int(input("\nPilih menu: "))
362 |
363 | if choice == 1:
364 | dealer.display_vehicles()
365 | elif choice == 2:
366 | dealer.purchase_vehicle()
367 | elif choice == 3:
368 | print("Terima kasih telah mengunjungi diler kami!")
369 | break
370 | else:
371 | print("\nPilihan tidak valid.")
372 | except ValueError:
373 | print("\nMasukkan angka yang valid.")
374 |
375 | if __name__ == "__main__":
376 | main()
377 |
378 |
379 | 6. Gaji
380 |
381 | def hitung_gaji_pokok(gaji_pokok, tunjangan, potongan):
382 | gaji_total = gaji_pokok + tunjangan - potongan
383 | return gaji_total
384 |
385 | def main():
386 | print("Program Perhitungan Gaji Karyawan")
387 |
388 | # Input data
389 | gaji_pokok = float(input("Masukkan gaji pokok: Rp "))
390 | tunjangan = float(input("Masukkan tunjangan: Rp "))
391 | potongan = float(input("Masukkan potongan: Rp "))
392 |
393 | # Menghitung gaji total
394 | gaji_total = hitung_gaji_pokok(gaji_pokok, tunjangan, potongan)
395 |
396 | # Menampilkan hasil
397 | print("\nRingkasan Gaji:")
398 | print(f"Gaji Pokok: Rp {gaji_pokok}")
399 | print(f"Tunjangan: Rp {tunjangan}")
400 | print(f"Potongan: Rp {potongan}")
401 | print(f"Gaji Total: Rp {gaji_total}")
402 |
403 | if __name__ == "__main__":
404 | main()
405 |
406 |
407 | 7. Kafe
408 |
409 | class Cafe:
410 | def __init__(self):
411 | self.menu = {
412 | "Kopi": 15000,
413 | "Teh": 10000,
414 | "Espresso": 20000,
415 | "Cappuccino": 25000,
416 | "Kue": 12000
417 | }
418 | self.pesanan = {}
419 |
420 | def tampilkan_menu(self):
421 | print("\n--- Menu Kafe ---")
422 | for item, harga in self.menu.items():
423 | print(f"{item}: Rp {harga}")
424 |
425 | def tambah_pesanan(self):
426 | while True:
427 | self.tampilkan_menu()
428 | pesanan = input("\nMasukkan nama item yang ingin dipesan (ketik 'selesai' untuk mengakhiri): ").capitalize()
429 | if pesanan == 'Selesai':
430 | break
431 | elif pesanan in self.menu:
432 | jumlah = int(input(f"Berapa banyak {pesanan} yang ingin dipesan? "))
433 | if pesanan in self.pesanan:
434 | self.pesanan[pesanan] += jumlah
435 | else:
436 | self.pesanan[pesanan] = jumlah
437 | print(f"{jumlah} {pesanan} telah ditambahkan ke pesanan.")
438 | else:
439 | print("Item tidak ada dalam menu. Silakan coba lagi.")
440 |
441 | def hitung_total(self):
442 | total = 0
443 | for item, jumlah in self.pesanan.items():
444 | total += self.menu[item] * jumlah
445 | return total
446 |
447 | def tampilkan_pesanan(self):
448 | if not self.pesanan:
449 | print("\nTidak ada pesanan.")
450 | else:
451 | print("\n--- Pesanan Anda ---")
452 | for item, jumlah in self.pesanan.items():
453 | print(f"{item} x {jumlah} = Rp {self.menu[item] * jumlah}")
454 | print(f"\nTotal yang harus dibayar: Rp {self.hitung_total()}")
455 |
456 | def main():
457 | cafe = Cafe()
458 | while True:
459 | print("\n--- Selamat Datang di Kafe! ---")
460 | print("1. Lihat Menu")
461 | print("2. Tambah Pesanan")
462 | print("3. Lihat Pesanan dan Total")
463 | print("4. Keluar")
464 |
465 | pilihan = input("Pilih menu (1-4): ")
466 |
467 | if pilihan == "1":
468 | cafe.tampilkan_menu()
469 | elif pilihan == "2":
470 | cafe.tambah_pesanan()
471 | elif pilihan == "3":
472 | cafe.tampilkan_pesanan()
473 | elif pilihan == "4":
474 | print("Terima kasih telah mengunjungi kafe kami. Sampai jumpa!")
475 | break
476 | else:
477 | print("Pilihan tidak valid. Silakan coba lagi.")
478 |
479 | if __name__ == "__main__":
480 | main()
481 |
482 |
483 | 8. Kalkulator
484 |
485 | # Fungsi untuk penjumlahan
486 | def tambah(x, y):
487 | return x + y
488 |
489 | # Fungsi untuk pengurangan
490 | def kurang(x, y):
491 | return x - y
492 |
493 | # Fungsi untuk perkalian
494 | def kali(x, y):
495 | return x * y
496 |
497 | # Fungsi untuk pembagian
498 | def bagi(x, y):
499 | if y != 0:
500 | return x / y
501 | else:
502 | return "Tidak bisa membagi dengan nol"
503 |
504 | # Menu utama
505 | def main():
506 | print("Pilih operasi:")
507 | print("1. Tambah")
508 | print("2. Kurang")
509 | print("3. Kali")
510 | print("4. Bagi")
511 |
512 | # Meminta input dari pengguna
513 | pilihan = input("Masukkan pilihan (1/2/3/4): ")
514 |
515 | if pilihan in ['1', '2', '3', '4']:
516 | num1 = float(input("Masukkan angka pertama: "))
517 | num2 = float(input("Masukkan angka kedua: "))
518 |
519 | if pilihan == '1':
520 | print(f"{num1} + {num2} = {tambah(num1, num2)}")
521 | elif pilihan == '2':
522 | print(f"{num1} - {num2} = {kurang(num1, num2)}")
523 | elif pilihan == '3':
524 | print(f"{num1} * {num2} = {kali(num1, num2)}")
525 | elif pilihan == '4':
526 | print(f"{num1} / {num2} = {bagi(num1, num2)}")
527 | else:
528 | print("Pilihan tidak valid!")
529 |
530 | # Menjalankan program
531 | if __name__ == "__main__":
532 | main()
533 |
534 |
535 | 9. Kasir
536 |
537 | class Kasir:
538 | def __init__(self):
539 | self.daftar_barang = []
540 | self.total_harga = 0
541 |
542 | def tambah_barang(self, nama_barang, harga, jumlah):
543 | barang = {
544 | 'nama': nama_barang,
545 | 'harga': harga,
546 | 'jumlah': jumlah,
547 | 'total': harga * jumlah
548 | }
549 | self.daftar_barang.append(barang)
550 | self.total_harga += barang['total']
551 | print(f"{nama_barang} x{jumlah} ditambahkan ke daftar belanja.")
552 |
553 | def tampilkan_rincian(self):
554 | print("\n--- Rincian Belanja ---")
555 | for barang in self.daftar_barang:
556 | print(f"{barang['nama']} - Harga: {barang['harga']} - Jumlah: {barang['jumlah']} - Total: {barang['total']}")
557 | print(f"\nTotal Belanja: {self.total_harga}")
558 |
559 | def bayar(self, uang_dibayar):
560 | if uang_dibayar >= self.total_harga:
561 | kembalian = uang_dibayar - self.total_harga
562 | print(f"\nTotal yang harus dibayar: {self.total_harga}")
563 | print(f"Uang yang dibayar: {uang_dibayar}")
564 | print(f"Kembalian: {kembalian}")
565 | else:
566 | print("\nUang yang dibayar kurang dari total belanja. Transaksi dibatalkan.")
567 |
568 | # Program utama
569 | def main():
570 | kasir = Kasir()
571 |
572 | while True:
573 | print("\nMenu Kasir")
574 | print("1. Tambah barang")
575 | print("2. Tampilkan rincian belanja")
576 | print("3. Bayar")
577 | print("4. Keluar")
578 |
579 | pilihan = input("Pilih menu (1/2/3/4): ")
580 |
581 | if pilihan == '1':
582 | nama_barang = input("Masukkan nama barang: ")
583 | harga = float(input("Masukkan harga barang: "))
584 | jumlah = int(input("Masukkan jumlah barang: "))
585 | kasir.tambah_barang(nama_barang, harga, jumlah)
586 |
587 | elif pilihan == '2':
588 | kasir.tampilkan_rincian()
589 |
590 | elif pilihan == '3':
591 | kasir.tampilkan_rincian()
592 | uang_dibayar = float(input("Masukkan uang yang dibayar: "))
593 | kasir.bayar(uang_dibayar)
594 |
595 | elif pilihan == '4':
596 | print("Terima kasih, sampai jumpa!")
597 | break
598 |
599 | else:
600 | print("Pilihan tidak valid, coba lagi.")
601 |
602 | if __name__ == "__main__":
603 | main()
604 |
605 |
606 | 10. Kereta
607 |
608 | class Kereta:
609 | def __init__(self, nama_kereta, tujuan, waktu_berangkat, kapasitas):
610 | self.nama_kereta = nama_kereta
611 | self.tujuan = tujuan
612 | self.waktu_berangkat = waktu_berangkat
613 | self.kapasitas = kapasitas
614 | self.terisi = 0
615 |
616 | def tampilkan_info(self):
617 | print(f"Nama Kereta: {self.nama_kereta}")
618 | print(f"Tujuan: {self.tujuan}")
619 | print(f"Waktu Berangkat: {self.waktu_berangkat}")
620 | print(f"Kapasitas: {self.kapasitas}")
621 | print(f"Terisi: {self.terisi}/{self.kapasitas}")
622 | print("")
623 |
624 | def pesan_tiket(self, jumlah_tiket):
625 | if self.terisi + jumlah_tiket <= self.kapasitas:
626 | self.terisi += jumlah_tiket
627 | print(f"Berhasil memesan {jumlah_tiket} tiket untuk {self.nama_kereta}.")
628 | else:
629 | print(f"Maaf, hanya tersisa {self.kapasitas - self.terisi} tiket untuk {self.nama_kereta}.")
630 |
631 | class SistemKereta:
632 | def __init__(self):
633 | self.kereta_list = []
634 |
635 | def tambah_kereta(self, kereta):
636 | self.kereta_list.append(kereta)
637 |
638 | def tampilkan_jadwal(self):
639 | print("Jadwal Kereta:")
640 | for kereta in self.kereta_list:
641 | kereta.tampilkan_info()
642 |
643 | def pesan_tiket_kereta(self, nama_kereta, jumlah_tiket):
644 | for kereta in self.kereta_list:
645 | if kereta.nama_kereta == nama_kereta:
646 | kereta.pesan_tiket(jumlah_tiket)
647 | return
648 | print(f"Kereta dengan nama {nama_kereta} tidak ditemukan.")
649 |
650 | def main():
651 | sistem_kereta = SistemKereta()
652 |
653 | # Menambahkan kereta ke sistem
654 | kereta1 = Kereta("Ekspres Jakarta", "Bandung", "10:00", 100)
655 | kereta2 = Kereta("Argo Bromo", "Surabaya", "15:00", 150)
656 | kereta3 = Kereta("Kelas Ekonomi", "Yogyakarta", "12:00", 200)
657 |
658 | sistem_kereta.tambah_kereta(kereta1)
659 | sistem_kereta.tambah_kereta(kereta2)
660 | sistem_kereta.tambah_kereta(kereta3)
661 |
662 | while True:
663 | print("\nMenu:")
664 | print("1. Tampilkan Jadwal Kereta")
665 | print("2. Pesan Tiket Kereta")
666 | print("3. Keluar")
667 |
668 | pilihan = input("Pilih menu (1/2/3): ")
669 |
670 | if pilihan == "1":
671 | sistem_kereta.tampilkan_jadwal()
672 | elif pilihan == "2":
673 | nama_kereta = input("Masukkan nama kereta yang ingin dipesan: ")
674 | jumlah_tiket = int(input("Masukkan jumlah tiket yang ingin dipesan: "))
675 | sistem_kereta.pesan_tiket_kereta(nama_kereta, jumlah_tiket)
676 | elif pilihan == "3":
677 | print("Terima kasih telah menggunakan sistem kereta.")
678 | break
679 | else:
680 | print("Pilihan tidak valid. Silakan coba lagi.")
681 |
682 | if __name__ == "__main__":
683 | main()
684 |
685 |
686 | Mau Lebih Banyak Kode? Lihat Di Github Saya (Kode 11 - 20)
687 | Klik Disini
688 |
689 |
710 |
711 |
712 |
713 |
--------------------------------------------------------------------------------
/kafe.py:
--------------------------------------------------------------------------------
1 | class Cafe:
2 | def __init__(self):
3 | self.menu = {
4 | "Kopi": 15000,
5 | "Teh": 10000,
6 | "Espresso": 20000,
7 | "Cappuccino": 25000,
8 | "Kue": 12000
9 | }
10 | self.pesanan = {}
11 |
12 | def tampilkan_menu(self):
13 | print("\n--- Menu Kafe ---")
14 | for item, harga in self.menu.items():
15 | print(f"{item}: Rp {harga}")
16 |
17 | def tambah_pesanan(self):
18 | while True:
19 | self.tampilkan_menu()
20 | pesanan = input("\nMasukkan nama item yang ingin dipesan (ketik 'selesai' untuk mengakhiri): ").capitalize()
21 | if pesanan == 'Selesai':
22 | break
23 | elif pesanan in self.menu:
24 | jumlah = int(input(f"Berapa banyak {pesanan} yang ingin dipesan? "))
25 | if pesanan in self.pesanan:
26 | self.pesanan[pesanan] += jumlah
27 | else:
28 | self.pesanan[pesanan] = jumlah
29 | print(f"{jumlah} {pesanan} telah ditambahkan ke pesanan.")
30 | else:
31 | print("Item tidak ada dalam menu. Silakan coba lagi.")
32 |
33 | def hitung_total(self):
34 | total = 0
35 | for item, jumlah in self.pesanan.items():
36 | total += self.menu[item] * jumlah
37 | return total
38 |
39 | def tampilkan_pesanan(self):
40 | if not self.pesanan:
41 | print("\nTidak ada pesanan.")
42 | else:
43 | print("\n--- Pesanan Anda ---")
44 | for item, jumlah in self.pesanan.items():
45 | print(f"{item} x {jumlah} = Rp {self.menu[item] * jumlah}")
46 | print(f"\nTotal yang harus dibayar: Rp {self.hitung_total()}")
47 |
48 | def main():
49 | cafe = Cafe()
50 | while True:
51 | print("\n--- Selamat Datang di Kafe! ---")
52 | print("1. Lihat Menu")
53 | print("2. Tambah Pesanan")
54 | print("3. Lihat Pesanan dan Total")
55 | print("4. Keluar")
56 |
57 | pilihan = input("Pilih menu (1-4): ")
58 |
59 | if pilihan == "1":
60 | cafe.tampilkan_menu()
61 | elif pilihan == "2":
62 | cafe.tambah_pesanan()
63 | elif pilihan == "3":
64 | cafe.tampilkan_pesanan()
65 | elif pilihan == "4":
66 | print("Terima kasih telah mengunjungi kafe kami. Sampai jumpa!")
67 | break
68 | else:
69 | print("Pilihan tidak valid. Silakan coba lagi.")
70 |
71 | if __name__ == "__main__":
72 | main()
73 |
--------------------------------------------------------------------------------
/kalkulator.py:
--------------------------------------------------------------------------------
1 | # Fungsi untuk penjumlahan
2 | def tambah(x, y):
3 | return x + y
4 |
5 | # Fungsi untuk pengurangan
6 | def kurang(x, y):
7 | return x - y
8 |
9 | # Fungsi untuk perkalian
10 | def kali(x, y):
11 | return x * y
12 |
13 | # Fungsi untuk pembagian
14 | def bagi(x, y):
15 | if y != 0:
16 | return x / y
17 | else:
18 | return "Tidak bisa membagi dengan nol"
19 |
20 | # Menu utama
21 | def main():
22 | print("Pilih operasi:")
23 | print("1. Tambah")
24 | print("2. Kurang")
25 | print("3. Kali")
26 | print("4. Bagi")
27 |
28 | # Meminta input dari pengguna
29 | pilihan = input("Masukkan pilihan (1/2/3/4): ")
30 |
31 | if pilihan in ['1', '2', '3', '4']:
32 | num1 = float(input("Masukkan angka pertama: "))
33 | num2 = float(input("Masukkan angka kedua: "))
34 |
35 | if pilihan == '1':
36 | print(f"{num1} + {num2} = {tambah(num1, num2)}")
37 | elif pilihan == '2':
38 | print(f"{num1} - {num2} = {kurang(num1, num2)}")
39 | elif pilihan == '3':
40 | print(f"{num1} * {num2} = {kali(num1, num2)}")
41 | elif pilihan == '4':
42 | print(f"{num1} / {num2} = {bagi(num1, num2)}")
43 | else:
44 | print("Pilihan tidak valid!")
45 |
46 | # Menjalankan program
47 | if __name__ == "__main__":
48 | main()
--------------------------------------------------------------------------------
/kasir.py:
--------------------------------------------------------------------------------
1 | class Kasir:
2 | def __init__(self):
3 | self.daftar_barang = []
4 | self.total_harga = 0
5 |
6 | def tambah_barang(self, nama_barang, harga, jumlah):
7 | barang = {
8 | 'nama': nama_barang,
9 | 'harga': harga,
10 | 'jumlah': jumlah,
11 | 'total': harga * jumlah
12 | }
13 | self.daftar_barang.append(barang)
14 | self.total_harga += barang['total']
15 | print(f"{nama_barang} x{jumlah} ditambahkan ke daftar belanja.")
16 |
17 | def tampilkan_rincian(self):
18 | print("\n--- Rincian Belanja ---")
19 | for barang in self.daftar_barang:
20 | print(f"{barang['nama']} - Harga: {barang['harga']} - Jumlah: {barang['jumlah']} - Total: {barang['total']}")
21 | print(f"\nTotal Belanja: {self.total_harga}")
22 |
23 | def bayar(self, uang_dibayar):
24 | if uang_dibayar >= self.total_harga:
25 | kembalian = uang_dibayar - self.total_harga
26 | print(f"\nTotal yang harus dibayar: {self.total_harga}")
27 | print(f"Uang yang dibayar: {uang_dibayar}")
28 | print(f"Kembalian: {kembalian}")
29 | else:
30 | print("\nUang yang dibayar kurang dari total belanja. Transaksi dibatalkan.")
31 |
32 | # Program utama
33 | def main():
34 | kasir = Kasir()
35 |
36 | while True:
37 | print("\nMenu Kasir")
38 | print("1. Tambah barang")
39 | print("2. Tampilkan rincian belanja")
40 | print("3. Bayar")
41 | print("4. Keluar")
42 |
43 | pilihan = input("Pilih menu (1/2/3/4): ")
44 |
45 | if pilihan == '1':
46 | nama_barang = input("Masukkan nama barang: ")
47 | harga = float(input("Masukkan harga barang: "))
48 | jumlah = int(input("Masukkan jumlah barang: "))
49 | kasir.tambah_barang(nama_barang, harga, jumlah)
50 |
51 | elif pilihan == '2':
52 | kasir.tampilkan_rincian()
53 |
54 | elif pilihan == '3':
55 | kasir.tampilkan_rincian()
56 | uang_dibayar = float(input("Masukkan uang yang dibayar: "))
57 | kasir.bayar(uang_dibayar)
58 |
59 | elif pilihan == '4':
60 | print("Terima kasih, sampai jumpa!")
61 | break
62 |
63 | else:
64 | print("Pilihan tidak valid, coba lagi.")
65 |
66 | if __name__ == "__main__":
67 | main()
--------------------------------------------------------------------------------
/kereta.py:
--------------------------------------------------------------------------------
1 | class Kereta:
2 | def __init__(self, nama_kereta, tujuan, waktu_berangkat, kapasitas):
3 | self.nama_kereta = nama_kereta
4 | self.tujuan = tujuan
5 | self.waktu_berangkat = waktu_berangkat
6 | self.kapasitas = kapasitas
7 | self.terisi = 0
8 |
9 | def tampilkan_info(self):
10 | print(f"Nama Kereta: {self.nama_kereta}")
11 | print(f"Tujuan: {self.tujuan}")
12 | print(f"Waktu Berangkat: {self.waktu_berangkat}")
13 | print(f"Kapasitas: {self.kapasitas}")
14 | print(f"Terisi: {self.terisi}/{self.kapasitas}")
15 | print("")
16 |
17 | def pesan_tiket(self, jumlah_tiket):
18 | if self.terisi + jumlah_tiket <= self.kapasitas:
19 | self.terisi += jumlah_tiket
20 | print(f"Berhasil memesan {jumlah_tiket} tiket untuk {self.nama_kereta}.")
21 | else:
22 | print(f"Maaf, hanya tersisa {self.kapasitas - self.terisi} tiket untuk {self.nama_kereta}.")
23 |
24 | class SistemKereta:
25 | def __init__(self):
26 | self.kereta_list = []
27 |
28 | def tambah_kereta(self, kereta):
29 | self.kereta_list.append(kereta)
30 |
31 | def tampilkan_jadwal(self):
32 | print("Jadwal Kereta:")
33 | for kereta in self.kereta_list:
34 | kereta.tampilkan_info()
35 |
36 | def pesan_tiket_kereta(self, nama_kereta, jumlah_tiket):
37 | for kereta in self.kereta_list:
38 | if kereta.nama_kereta == nama_kereta:
39 | kereta.pesan_tiket(jumlah_tiket)
40 | return
41 | print(f"Kereta dengan nama {nama_kereta} tidak ditemukan.")
42 |
43 | def main():
44 | sistem_kereta = SistemKereta()
45 |
46 | # Menambahkan kereta ke sistem
47 | kereta1 = Kereta("Ekspres Jakarta", "Bandung", "10:00", 100)
48 | kereta2 = Kereta("Argo Bromo", "Surabaya", "15:00", 150)
49 | kereta3 = Kereta("Kelas Ekonomi", "Yogyakarta", "12:00", 200)
50 |
51 | sistem_kereta.tambah_kereta(kereta1)
52 | sistem_kereta.tambah_kereta(kereta2)
53 | sistem_kereta.tambah_kereta(kereta3)
54 |
55 | while True:
56 | print("\nMenu:")
57 | print("1. Tampilkan Jadwal Kereta")
58 | print("2. Pesan Tiket Kereta")
59 | print("3. Keluar")
60 |
61 | pilihan = input("Pilih menu (1/2/3): ")
62 |
63 | if pilihan == "1":
64 | sistem_kereta.tampilkan_jadwal()
65 | elif pilihan == "2":
66 | nama_kereta = input("Masukkan nama kereta yang ingin dipesan: ")
67 | jumlah_tiket = int(input("Masukkan jumlah tiket yang ingin dipesan: "))
68 | sistem_kereta.pesan_tiket_kereta(nama_kereta, jumlah_tiket)
69 | elif pilihan == "3":
70 | print("Terima kasih telah menggunakan sistem kereta.")
71 | break
72 | else:
73 | print("Pilihan tidak valid. Silakan coba lagi.")
74 |
75 | if __name__ == "__main__":
76 | main()
--------------------------------------------------------------------------------
/parkir.py:
--------------------------------------------------------------------------------
1 | class Parkir:
2 | def __init__(self, kapasitas):
3 | self.kapasitas = kapasitas
4 | self.parkir = []
5 |
6 | def masuk_parkir(self, kendaraan):
7 | if len(self.parkir) < self.kapasitas:
8 | self.parkir.append(kendaraan)
9 | print(f"{kendaraan} berhasil masuk ke area parkir.")
10 | else:
11 | print("Parkir sudah penuh!")
12 |
13 | def keluar_parkir(self, kendaraan):
14 | if kendaraan in self.parkir:
15 | self.parkir.remove(kendaraan)
16 | print(f"{kendaraan} telah keluar dari area parkir.")
17 | else:
18 | print(f"{kendaraan} tidak ditemukan di parkir.")
19 |
20 | def status_parkir(self):
21 | if self.parkir:
22 | print("Kendaraan yang terparkir:")
23 | for kendaraan in self.parkir:
24 | print(kendaraan)
25 | else:
26 | print("Area parkir kosong.")
27 |
28 | def main():
29 | kapasitas_parkir = int(input("Masukkan kapasitas parkir: "))
30 | parkir = Parkir(kapasitas_parkir)
31 |
32 | while True:
33 | print("\nPilih menu:")
34 | print("1. Masukkan kendaraan")
35 | print("2. Keluarkan kendaraan")
36 | print("3. Lihat status parkir")
37 | print("4. Keluar")
38 |
39 | pilihan = input("Pilihan Anda: ")
40 |
41 | if pilihan == '1':
42 | kendaraan = input("Masukkan nama kendaraan yang ingin parkir: ")
43 | parkir.masuk_parkir(kendaraan)
44 | elif pilihan == '2':
45 | kendaraan = input("Masukkan nama kendaraan yang ingin keluar: ")
46 | parkir.keluar_parkir(kendaraan)
47 | elif pilihan == '3':
48 | parkir.status_parkir()
49 | elif pilihan == '4':
50 | print("Terima kasih telah menggunakan sistem parkir!")
51 | break
52 | else:
53 | print("Pilihan tidak valid, coba lagi.")
54 |
55 | if __name__ == "__main__":
56 | main()
--------------------------------------------------------------------------------
/perpustakaan.py:
--------------------------------------------------------------------------------
1 | class Buku:
2 | def __init__(self, judul, penulis, tahun_terbit):
3 | self.judul = judul
4 | self.penulis = penulis
5 | self.tahun_terbit = tahun_terbit
6 |
7 | def __str__(self):
8 | return f"Judul: {self.judul}, Penulis: {self.penulis}, Tahun Terbit: {self.tahun_terbit}"
9 |
10 | class Perpustakaan:
11 | def __init__(self):
12 | self.daftar_buku = []
13 |
14 | def tambah_buku(self, buku):
15 | self.daftar_buku.append(buku)
16 | print(f"Buku '{buku.judul}' berhasil ditambahkan.")
17 |
18 | def hapus_buku(self, judul):
19 | for buku in self.daftar_buku:
20 | if buku.judul == judul:
21 | self.daftar_buku.remove(buku)
22 | print(f"Buku '{judul}' berhasil dihapus.")
23 | return
24 | print(f"Buku '{judul}' tidak ditemukan.")
25 |
26 | def tampilkan_buku(self):
27 | if len(self.daftar_buku) == 0:
28 | print("Tidak ada buku di perpustakaan.")
29 | else:
30 | print("Daftar Buku Perpustakaan:")
31 | for buku in self.daftar_buku:
32 | print(buku)
33 |
34 | def menu():
35 | perpustakaan = Perpustakaan()
36 |
37 | while True:
38 | print("\nMenu Perpustakaan:")
39 | print("1. Tambah Buku")
40 | print("2. Hapus Buku")
41 | print("3. Tampilkan Daftar Buku")
42 | print("4. Keluar")
43 |
44 | pilihan = input("Pilih menu (1/2/3/4): ")
45 |
46 | if pilihan == '1':
47 | judul = input("Masukkan judul buku: ")
48 | penulis = input("Masukkan penulis buku: ")
49 | tahun_terbit = input("Masukkan tahun terbit buku: ")
50 |
51 | buku_baru = Buku(judul, penulis, tahun_terbit)
52 | perpustakaan.tambah_buku(buku_baru)
53 |
54 | elif pilihan == '2':
55 | judul = input("Masukkan judul buku yang akan dihapus: ")
56 | perpustakaan.hapus_buku(judul)
57 |
58 | elif pilihan == '3':
59 | perpustakaan.tampilkan_buku()
60 |
61 | elif pilihan == '4':
62 | print("Terima kasih! Keluar dari program.")
63 | break
64 |
65 | else:
66 | print("Pilihan tidak valid, coba lagi.")
67 |
68 | if __name__ == "__main__":
69 | menu()
--------------------------------------------------------------------------------
/raffneptune.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raffneptune/py/bd6b4b4814ae7db1246b8b990ef7fdd8d1ee4909/raffneptune.jpg
--------------------------------------------------------------------------------
/rental.py:
--------------------------------------------------------------------------------
1 | class RentalItem:
2 | def __init__(self, name, rate_per_hour):
3 | self.name = name
4 | self.rate_per_hour = rate_per_hour
5 |
6 | def calculate_cost(self, hours):
7 | return self.rate_per_hour * hours
8 |
9 | class RentalSystem:
10 | def __init__(self):
11 | self.items = [
12 | RentalItem("Sepeda", 5000),
13 | RentalItem("Skuter", 10000),
14 | RentalItem("Mobil", 50000)
15 | ]
16 |
17 | def display_items(self):
18 | print("Barang yang tersedia untuk disewa:")
19 | for i, item in enumerate(self.items, 1):
20 | print(f"{i}. {item.name} - Rp{item.rate_per_hour} per jam")
21 |
22 | def rent_item(self):
23 | self.display_items()
24 |
25 | try:
26 | choice = int(input("Pilih barang yang ingin disewa (1/2/3): "))
27 | if choice < 1 or choice > len(self.items):
28 | print("Pilihan tidak valid!")
29 | return
30 |
31 | item = self.items[choice - 1]
32 | hours = int(input(f"Berapa jam Anda ingin menyewa {item.name}? "))
33 | total_cost = item.calculate_cost(hours)
34 | print(f"Total biaya untuk menyewa {item.name} selama {hours} jam adalah: Rp{total_cost}")
35 |
36 | except ValueError:
37 | print("Input tidak valid, pastikan Anda memasukkan angka.")
38 |
39 | def main():
40 | rental_system = RentalSystem()
41 |
42 | while True:
43 | print("\nSelamat datang di sistem rental!")
44 | print("1. Sewa barang")
45 | print("2. Keluar")
46 | choice = input("Pilih menu: ")
47 |
48 | if choice == '1':
49 | rental_system.rent_item()
50 | elif choice == '2':
51 | print("Terima kasih telah menggunakan sistem rental!")
52 | break
53 | else:
54 | print("Pilihan tidak valid, coba lagi.")
55 |
56 | if __name__ == "__main__":
57 | main()
--------------------------------------------------------------------------------
/restoran.py:
--------------------------------------------------------------------------------
1 | class Menu:
2 | def __init__(self, nama, harga):
3 | self.nama = nama
4 | self.harga = harga
5 |
6 | class Restoran:
7 | def __init__(self):
8 | self.menu = [
9 | Menu("Nasi Goreng", 25000),
10 | Menu("Mie Goreng", 20000),
11 | Menu("Sate Ayam", 30000),
12 | Menu("Ayam Penyet", 35000),
13 | Menu("Es Teh", 5000),
14 | Menu("Es Jeruk", 7000)
15 | ]
16 | self.pesanan = []
17 |
18 | def tampilkan_menu(self):
19 | print("\nMenu Restoran:")
20 | for idx, item in enumerate(self.menu, 1):
21 | print(f"{idx}. {item.nama} - Rp{item.harga}")
22 |
23 | def tambah_pesanan(self):
24 | self.tampilkan_menu()
25 | try:
26 | pilihan = int(input("\nPilih nomor menu untuk dipesan (0 untuk selesai): "))
27 | if pilihan == 0:
28 | return
29 | elif 1 <= pilihan <= len(self.menu):
30 | jumlah = int(input(f"Berapa banyak {self.menu[pilihan - 1].nama} yang ingin dipesan? "))
31 | self.pesanan.append((self.menu[pilihan - 1], jumlah))
32 | print(f"{jumlah} {self.menu[pilihan - 1].nama} ditambahkan ke pesanan.")
33 | else:
34 | print("Nomor menu tidak valid!")
35 | except ValueError:
36 | print("Input tidak valid!")
37 |
38 | def hitung_total(self):
39 | total = 0
40 | for item, jumlah in self.pesanan:
41 | total += item.harga * jumlah
42 | return total
43 |
44 | def tampilkan_pesanan(self):
45 | if not self.pesanan:
46 | print("\nBelum ada pesanan.")
47 | else:
48 | print("\nPesanan Anda:")
49 | for item, jumlah in self.pesanan:
50 | print(f"{item.nama} x {jumlah} - Rp{item.harga * jumlah}")
51 | print(f"Total Harga: Rp{self.hitung_total()}")
52 |
53 | def main():
54 | restoran = Restoran()
55 |
56 | while True:
57 | print("\n-- Menu Utama --")
58 | print("1. Lihat Menu")
59 | print("2. Tambah Pesanan")
60 | print("3. Tampilkan Pesanan")
61 | print("4. Hitung Total")
62 | print("5. Keluar")
63 |
64 | try:
65 | pilihan = int(input("Pilih opsi (1-5): "))
66 | if pilihan == 1:
67 | restoran.tampilkan_menu()
68 | elif pilihan == 2:
69 | restoran.tambah_pesanan()
70 | elif pilihan == 3:
71 | restoran.tampilkan_pesanan()
72 | elif pilihan == 4:
73 | print(f"Total Harga: Rp{restoran.hitung_total()}")
74 | elif pilihan == 5:
75 | print("Terima kasih telah berkunjung!")
76 | break
77 | else:
78 | print("Opsi tidak valid!")
79 | except ValueError:
80 | print("Input tidak valid!")
81 |
82 | if __name__ == "__main__":
83 | main()
--------------------------------------------------------------------------------
/spbu.py:
--------------------------------------------------------------------------------
1 | def display_menu():
2 | print("Selamat datang di SPBU!")
3 | print("Pilih jenis bahan bakar:")
4 | print("1. Premium (Rp 10.000 per liter)")
5 | print("2. Pertalite (Rp 12.000 per liter)")
6 | print("3. Pertamax (Rp 15.000 per liter)")
7 |
8 | def calculate_total_price(fuel_type, liters):
9 | price_per_liter = 0
10 | if fuel_type == 1:
11 | price_per_liter = 10000 # Harga Premium
12 | elif fuel_type == 2:
13 | price_per_liter = 12000 # Harga Pertalite
14 | elif fuel_type == 3:
15 | price_per_liter = 15000 # Harga Pertamax
16 |
17 | total_price = price_per_liter * liters
18 | return total_price
19 |
20 | def main():
21 | display_menu()
22 |
23 | # Input pilihan bahan bakar
24 | try:
25 | fuel_type = int(input("Masukkan pilihan (1/2/3): "))
26 | if fuel_type not in [1, 2, 3]:
27 | print("Pilihan tidak valid.")
28 | return
29 | except ValueError:
30 | print("Input tidak valid. Harap masukkan angka.")
31 | return
32 |
33 | # Input jumlah liter yang ingin dibeli
34 | try:
35 | liters = float(input("Masukkan jumlah liter: "))
36 | if liters <= 0:
37 | print("Jumlah liter harus lebih dari 0.")
38 | return
39 | except ValueError:
40 | print("Input tidak valid. Harap masukkan angka.")
41 | return
42 |
43 | # Menghitung total harga
44 | total_price = calculate_total_price(fuel_type, liters)
45 |
46 | # Menampilkan struk pembayaran
47 | fuel_names = {1: "Premium", 2: "Pertalite", 3: "Pertamax"}
48 | print("\n--- STRUK PEMBAYARAN ---")
49 | print(f"Bahan Bakar: {fuel_names[fuel_type]}")
50 | print(f"Jumlah Liter: {liters} liter")
51 | print(f"Total Pembayaran: Rp {total_price:,.0f}")
52 | print("-------------------------")
53 | print("Terima kasih telah menggunakan layanan kami!")
54 |
55 | if __name__ == "__main__":
56 | main()
--------------------------------------------------------------------------------
/supermarket.py:
--------------------------------------------------------------------------------
1 | # Daftar produk supermarket dan harga
2 | produk = {
3 | "Apel": 10000,
4 | "Pisang": 8000,
5 | "Jeruk": 12000,
6 | "Mangga": 15000,
7 | "Semangka": 20000
8 | }
9 |
10 | # Fungsi untuk menampilkan daftar produk
11 | def tampilkan_produk():
12 | print("\nDaftar Produk Supermarket:")
13 | for nama, harga in produk.items():
14 | print(f"{nama}: Rp {harga}")
15 |
16 | # Fungsi untuk menambah barang ke keranjang
17 | def tambah_ke_keranjang(keranjang, produk, jumlah):
18 | if produk in keranjang:
19 | keranjang[produk] += jumlah
20 | else:
21 | keranjang[produk] = jumlah
22 |
23 | # Fungsi untuk menghitung total belanjaan
24 | def hitung_total(keranjang):
25 | total = 0
26 | for produk, jumlah in keranjang.items():
27 | total += produk[produk] * jumlah
28 | return total
29 |
30 | def main():
31 | keranjang = {}
32 | while True:
33 | tampilkan_produk()
34 | pilihan = input("\nMasukkan nama produk yang ingin dibeli (atau ketik 'selesai' untuk keluar): ").capitalize()
35 |
36 | if pilihan == 'Selesai':
37 | break
38 |
39 | if pilihan not in produk:
40 | print("Produk tidak tersedia. Silakan pilih produk yang ada.")
41 | continue
42 |
43 | jumlah = int(input(f"Berapa banyak {pilihan} yang ingin Anda beli? "))
44 |
45 | tambah_ke_keranjang(keranjang, pilihan, jumlah)
46 |
47 | print("\nKeranjang Belanja Anda:")
48 | total = 0
49 | for produk, jumlah in keranjang.items():
50 | print(f"{produk}: {jumlah} x Rp {produk[produk]} = Rp {produk[produk] * jumlah}")
51 | total += produk[produk] * jumlah
52 |
53 | print(f"\nTotal Belanja: Rp {total}")
54 |
55 | if __name__ == "__main__":
56 | main()
--------------------------------------------------------------------------------
/tictactoe.py:
--------------------------------------------------------------------------------
1 | # Fungsi untuk menampilkan papan permainan
2 | def print_board(board):
3 | print("\n" + " | ".join(board[0:3]))
4 | print("-" * 5)
5 | print(" | ".join(board[3:6]))
6 | print("-" * 5)
7 | print(" | ".join(board[6:9]))
8 | print("\n")
9 |
10 | # Fungsi untuk mengecek apakah pemain menang
11 | def check_win(board, player):
12 | win_conditions = [
13 | [0, 1, 2], [3, 4, 5], [6, 7, 8], # baris
14 | [0, 3, 6], [1, 4, 7], [2, 5, 8], # kolom
15 | [0, 4, 8], [2, 4, 6] # diagonal
16 | ]
17 |
18 | for condition in win_conditions:
19 | if all(board[i] == player for i in condition):
20 | return True
21 | return False
22 |
23 | # Fungsi untuk mengecek apakah papan penuh
24 | def is_board_full(board):
25 | return all(space != ' ' for space in board)
26 |
27 | # Fungsi utama permainan
28 | def play_game():
29 | board = [' ' for _ in range(9)] # papan Tic Tac Toe kosong
30 | current_player = 'X'
31 |
32 | while True:
33 | print_board(board)
34 |
35 | # Meminta pemain untuk memilih posisi
36 | try:
37 | move = int(input(f"Player {current_player}, pilih posisi (1-9): ")) - 1
38 | if board[move] != ' ':
39 | print("Posisi sudah terisi, coba lagi.")
40 | continue
41 | except (ValueError, IndexError):
42 | print("Input tidak valid. Pilih angka antara 1-9.")
43 | continue
44 |
45 | # Menandai posisi dengan simbol pemain saat ini
46 | board[move] = current_player
47 |
48 | # Mengecek apakah pemain menang
49 | if check_win(board, current_player):
50 | print_board(board)
51 | print(f"Selamat! Pemain {current_player} menang!")
52 | break
53 |
54 | # Mengecek apakah papan penuh (seri)
55 | if is_board_full(board):
56 | print_board(board)
57 | print("Permainan berakhir dengan seri!")
58 | break
59 |
60 | # Ganti giliran pemain
61 | current_player = 'O' if current_player == 'X' else 'X'
62 |
63 | # Memulai permainan
64 | if __name__ == "__main__":
65 | play_game()
--------------------------------------------------------------------------------
/timezonegame.py:
--------------------------------------------------------------------------------
1 | import random
2 | import time
3 |
4 | # Database pengguna
5 | users = {}
6 |
7 | def register_user():
8 | """Fungsi untuk mendaftar pengguna baru"""
9 | name = input("Masukkan nama pengguna: ")
10 | if name in users:
11 | print(f"Pengguna dengan nama {name} sudah terdaftar.")
12 | else:
13 | users[name] = {'kredit': 0, 'permainan': []}
14 | print(f"Selamat datang, {name}! Akun Anda telah dibuat.")
15 |
16 | def buy_credits(user_name):
17 | """Fungsi untuk membeli kredit"""
18 | try:
19 | credit_amount = int(input("Berapa banyak kredit yang ingin Anda beli? (1 kredit = 5000 IDR): "))
20 | users[user_name]['kredit'] += credit_amount
21 | print(f"{credit_amount} kredit telah ditambahkan ke akun Anda.")
22 | except ValueError:
23 | print("Input tidak valid. Mohon masukkan angka yang valid.")
24 |
25 | def play_game(user_name):
26 | """Simulasi bermain game"""
27 | if users[user_name]['kredit'] < 1:
28 | print("Anda tidak memiliki kredit cukup untuk bermain game. Silakan beli kredit terlebih dahulu.")
29 | return
30 |
31 | print("Pilih permainan yang ingin dimainkan:")
32 | print("1. Pac-Man (1 kredit)")
33 | print("2. Street Fighter (2 kredit)")
34 | print("3. Racing Game (3 kredit)")
35 |
36 | try:
37 | game_choice = int(input("Masukkan nomor permainan: "))
38 | if game_choice == 1 and users[user_name]['kredit'] >= 1:
39 | users[user_name]['kredit'] -= 1
40 | print("Anda sedang bermain Pac-Man! Semoga berhasil!")
41 | elif game_choice == 2 and users[user_name]['kredit'] >= 2:
42 | users[user_name]['kredit'] -= 2
43 | print("Anda sedang bermain Street Fighter! Bertarunglah dengan kuat!")
44 | elif game_choice == 3 and users[user_name]['kredit'] >= 3:
45 | users[user_name]['kredit'] -= 3
46 | print("Anda sedang bermain Racing Game! Gaspol!")
47 | else:
48 | print("Anda tidak memiliki kredit cukup untuk memilih permainan ini.")
49 | return
50 | except ValueError:
51 | print("Input tidak valid. Mohon masukkan nomor permainan yang benar.")
52 | return
53 |
54 | # Simulasi hasil permainan (acak)
55 | print("Memulai permainan...")
56 | time.sleep(2) # Menunggu 2 detik untuk efek
57 | game_result = random.choice(["Menang", "Kalah"])
58 | print(f"Hasil permainan: {game_result}")
59 | users[user_name]['permainan'].append(game_result)
60 |
61 | def check_balance(user_name):
62 | """Fungsi untuk mengecek saldo kredit pengguna"""
63 | print(f"Sisa kredit Anda: {users[user_name]['kredit']} kredit.")
64 |
65 | def main():
66 | print("Selamat datang di Timezone Mall!")
67 | while True:
68 | print("\nMenu Utama:")
69 | print("1. Daftar pengguna baru")
70 | print("2. Beli kredit")
71 | print("3. Mainkan game")
72 | print("4. Cek saldo kredit")
73 | print("5. Keluar")
74 |
75 | try:
76 | choice = int(input("Pilih menu (1/2/3/4/5): "))
77 | if choice == 1:
78 | register_user()
79 | elif choice == 2:
80 | user_name = input("Masukkan nama pengguna untuk membeli kredit: ")
81 | if user_name in users:
82 | buy_credits(user_name)
83 | else:
84 | print("Pengguna tidak ditemukan. Silakan mendaftar terlebih dahulu.")
85 | elif choice == 3:
86 | user_name = input("Masukkan nama pengguna untuk bermain game: ")
87 | if user_name in users:
88 | play_game(user_name)
89 | else:
90 | print("Pengguna tidak ditemukan. Silakan mendaftar terlebih dahulu.")
91 | elif choice == 4:
92 | user_name = input("Masukkan nama pengguna untuk cek saldo: ")
93 | if user_name in users:
94 | check_balance(user_name)
95 | else:
96 | print("Pengguna tidak ditemukan. Silakan mendaftar terlebih dahulu.")
97 | elif choice == 5:
98 | print("Terima kasih telah bermain di Timezone Mall! Sampai jumpa lagi!")
99 | break
100 | else:
101 | print("Pilihan tidak valid. Silakan pilih lagi.")
102 | except ValueError:
103 | print("Input tidak valid. Pilih menu dengan benar.")
104 |
105 | if __name__ == "__main__":
106 | main()
--------------------------------------------------------------------------------
/tol.py:
--------------------------------------------------------------------------------
1 | class GerbangTol:
2 | def __init__(self):
3 | self.antrian = []
4 |
5 | def tambah_antrian(self, kendaraan):
6 | """Menambah kendaraan ke antrian"""
7 | self.antrian.append(kendaraan)
8 | print(f"{kendaraan} ditambahkan ke antrian.")
9 |
10 | def proses_kendaraan(self):
11 | """Memproses kendaraan yang ada di antrian"""
12 | if self.antrian:
13 | kendaraan = self.antrian.pop(0)
14 | print(f"{kendaraan} sedang diproses.")
15 | else:
16 | print("Antrian kosong, tidak ada kendaraan yang diproses.")
17 |
18 | def tampilkan_antrian(self):
19 | """Menampilkan antrian kendaraan"""
20 | print("Antrian kendaraan saat ini:")
21 | for kendaraan in self.antrian:
22 | print(kendaraan)
23 |
24 | class SistemTol:
25 | def __init__(self):
26 | # Tarif untuk masing-masing golongan kendaraan
27 | self.tarif = {
28 | "golongan_1": 5000, # Golongan 1 (misalnya motor atau mobil kecil)
29 | "golongan_2": 10000, # Golongan 2 (misalnya truk kecil)
30 | "golongan_3": 15000, # Golongan 3 (misalnya truk besar)
31 | }
32 |
33 | def hitung_biaya(self, golongan, jarak):
34 | """Menghitung biaya tol berdasarkan golongan kendaraan dan jarak"""
35 | if golongan in self.tarif:
36 | biaya = self.tarif[golongan] * jarak
37 | print(f"Biaya tol untuk {golongan} dengan jarak {jarak} km adalah: {biaya} IDR")
38 | else:
39 | print("Golongan kendaraan tidak valid!")
40 |
41 | # Program utama
42 | def main():
43 | # Inisialisasi sistem tol dan gerbang tol
44 | sistem_tol = SistemTol()
45 | gerbang_tol = GerbangTol()
46 |
47 | # Menambah kendaraan ke antrian
48 | gerbang_tol.tambah_antrian("Mobil Kecil - Golongan 1")
49 | gerbang_tol.tambah_antrian("Truk Kecil - Golongan 2")
50 | gerbang_tol.tambah_antrian("Truk Besar - Golongan 3")
51 |
52 | # Menampilkan antrian kendaraan
53 | gerbang_tol.tampilkan_antrian()
54 |
55 | # Proses kendaraan pertama
56 | gerbang_tol.proses_kendaraan()
57 |
58 | # Menghitung biaya tol untuk kendaraan di antrian
59 | sistem_tol.hitung_biaya("golongan_1", 10) # Misalnya jarak 10 km
60 |
61 | if __name__ == "__main__":
62 | main()
--------------------------------------------------------------------------------
/warnet.py:
--------------------------------------------------------------------------------
1 | import time
2 |
3 | class Komputer:
4 | def __init__(self, nomor):
5 | self.nomor = nomor
6 | self.tersedia = True
7 | self.mulai_sewa = None
8 | self.durasi_sewa = 0
9 |
10 | def sewa(self):
11 | if self.tersedia:
12 | self.tersedia = False
13 | self.mulai_sewa = time.time() # mencatat waktu mulai sewa
14 | print(f"Komputer {self.nomor} telah disewa.")
15 | else:
16 | print(f"Komputer {self.nomor} sedang disewa.")
17 |
18 | def selesai_sewa(self):
19 | if not self.tersedia:
20 | waktu_sewa = time.time() - self.mulai_sewa # menghitung durasi sewa dalam detik
21 | self.durasi_sewa = waktu_sewa / 60 # durasi dalam menit
22 | biaya = self.durasi_sewa * 2000 # biaya sewa per menit misalnya 2000 IDR
23 | self.tersedia = True
24 | self.mulai_sewa = None
25 | print(f"Komputer {self.nomor} selesai disewa. Durasi: {self.durasi_sewa:.2f} menit.")
26 | print(f"Biaya yang harus dibayar: Rp {biaya:.2f}")
27 | else:
28 | print(f"Komputer {self.nomor} belum disewa.")
29 |
30 | class Warnet:
31 | def __init__(self, jumlah_komputer):
32 | self.komputers = [Komputer(i) for i in range(1, jumlah_komputer + 1)]
33 |
34 | def tampilkan_komputer(self):
35 | print("Daftar Komputer:")
36 | for komputer in self.komputers:
37 | status = "Tersedia" if komputer.tersedia else "Sedang disewa"
38 | print(f"Komputer {komputer.nomor}: {status}")
39 |
40 | def sewa_komputer(self, nomor):
41 | if 1 <= nomor <= len(self.komputers):
42 | self.komputers[nomor - 1].sewa()
43 | else:
44 | print("Nomor komputer tidak valid!")
45 |
46 | def selesai_komputer(self, nomor):
47 | if 1 <= nomor <= len(self.komputers):
48 | self.komputers[nomor - 1].selesai_sewa()
49 | else:
50 | print("Nomor komputer tidak valid!")
51 |
52 | def menu():
53 | warnet = Warnet(5) # Misalkan ada 5 komputer di warnet
54 | while True:
55 | print("\n--- Menu Warnet ---")
56 | print("1. Tampilkan Daftar Komputer")
57 | print("2. Sewa Komputer")
58 | print("3. Selesai Sewa Komputer")
59 | print("4. Keluar")
60 | pilihan = input("Pilih menu: ")
61 |
62 | if pilihan == "1":
63 | warnet.tampilkan_komputer()
64 | elif pilihan == "2":
65 | nomor_komputer = int(input("Masukkan nomor komputer yang ingin disewa: "))
66 | warnet.sewa_komputer(nomor_komputer)
67 | elif pilihan == "3":
68 | nomor_komputer = int(input("Masukkan nomor komputer yang selesai disewa: "))
69 | warnet.selesai_komputer(nomor_komputer)
70 | elif pilihan == "4":
71 | print("Terima kasih telah menggunakan layanan warnet!")
72 | break
73 | else:
74 | print("Pilihan tidak valid!")
75 |
76 | if __name__ == "__main__":
77 | menu()
--------------------------------------------------------------------------------