├── 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() --------------------------------------------------------------------------------