Skip to content

Commit 0bdb75f

Browse files
authored
Merge pull request #115 from Irfangitcl17/main
250441100006_MohammadIrfanHariyono_Modul5_AsprakKakSalman
2 parents c65cc9f + 48feef5 commit 0bdb75f

File tree

6 files changed

+391
-0
lines changed

6 files changed

+391
-0
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
n = int(input("Masukkan angka : "))
2+
3+
def faktorial(n):
4+
if n == 0:
5+
return 1
6+
else:
7+
return n * faktorial(n - 1)
8+
9+
hasil = faktorial(n)
10+
if n == 0:
11+
print(f"Faktorial {n} adalah {hasil} ")
12+
elif n < 0:
13+
print(f"Bilangan tidak boleh kurang dari 0 maupun bernilai negatif ")
14+
else:
15+
print(f"Faktorial dari {n}! adalah {hasil}")
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
def check_anagram (kata_1, kata_2):
2+
bersih1 = kata_1 .lower()
3+
bersih2 = kata_2 .lower()
4+
if len (bersih1) != len(bersih2):
5+
return False
6+
return sorted(bersih1) == sorted(bersih2)
7+
8+
# cek_lagi = True
9+
10+
# while cek_lagi:
11+
input1 = input("\nMasukkan kata pertama: ")
12+
input2 = input ("Masukkan kata kedua: ")
13+
14+
15+
apakah_anagram = check_anagram(input1, input2)
16+
17+
print("\n Hasil ")
18+
if apakah_anagram:
19+
print(f"Hasil: '{input1}' dan '{input2}' adalah anagram.")
20+
else:
21+
print(f"Hasil: '{input1}' dan '{input2}' bukan anagram.")
22+
23+
# mau_cek = input("\nKamu mau cek anagram lagi ? (ya/tidak)")
24+
25+
# if mau_cek != "ya":
26+
# cek_lagi = False
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
nama_karyawan = input("Masukkan nama Karyawan : ")
2+
jabatan_karyawan = input("Masukkan Jabatan Karyawan (Staff/Manager) : ")
3+
gaji_pokok = float(input("Masukkan Gaji Pokok Karyawan : "))
4+
5+
def hitung_gaji_bersih():
6+
pajak = gaji_pokok * 5 / 100
7+
8+
9+
if jabatan_karyawan == "Manager" or jabatan_karyawan == "manager":
10+
tunjangan = gaji_pokok * 0.1
11+
elif jabatan_karyawan == "Staff" or jabatan_karyawan == "staff":
12+
tunjangan = gaji_pokok * 0.05
13+
else:
14+
15+
tunjangan = 0
16+
17+
gaji_bersih = gaji_pokok - pajak + tunjangan
18+
19+
print("\n RINCIAN GAJI KARYAWAN ")
20+
print("=" * 30)
21+
print(f"Nama Karyawan : {nama_karyawan}")
22+
print(f"Jabatan : {jabatan_karyawan}")
23+
print("-" * 30)
24+
print(f"Gaji Pokok : Rp{int(gaji_pokok)}")
25+
print(f"Tunjangan (+) : Rp{int(tunjangan)}")
26+
print(f"Pajak 5% (-) : Rp{int(pajak)}")
27+
print("-" * 30)
28+
print(f"Total Gaji Bersih: Rp{int(gaji_bersih)}")
29+
30+
31+
hitung_gaji_bersih()
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
def tambah_pengunjung(list_kunjungan_dari_main, id_terakhir_dari_main):
2+
3+
print("\nTambah Data Pengunjung")
4+
nama_pengunjung = input("Nama Pengunjung: ")
5+
nama_santri = input("Nama Santri: ")
6+
7+
while True:
8+
print("Daerah asal : Sumatra, Kalimantan, Jawa")
9+
daerah_asal = input("Masukkan Daerah Asal: ").lower()
10+
11+
if daerah_asal in ["sumatra", "kalimantan", "jawa"]:
12+
break
13+
else:
14+
print(" Perhatikan ketikan mu dek")
15+
16+
id_terakhir_dari_main += 1
17+
id_antrian_baru = id_terakhir_dari_main
18+
19+
data_baru = [id_antrian_baru, nama_pengunjung, nama_santri, daerah_asal]
20+
21+
list_kunjungan_dari_main.append(data_baru)
22+
23+
print(f"\nBerhasil! Data pengunjung '{nama_pengunjung}' telah ditambahkan.")
24+
print(f"ID Antrian Anda adalah: {id_antrian_baru}")
25+
26+
return id_antrian_baru
27+
28+
def tampilkan_pengunjung(list_kunjungan_dari_main):
29+
print("\n Daftar Seluruh Kunjungan Santri")
30+
31+
if not list_kunjungan_dari_main:
32+
print("Belum ada data yang terdaftar.")
33+
return
34+
35+
daftar_daerah = ["sumatra", "kalimantan", "jawa"]
36+
for daerah_target in daftar_daerah:
37+
print(f"\nDAERAH {daerah_target.upper()}")
38+
39+
data_ditemukan_di_daerah_ini = False
40+
for data in list_kunjungan_dari_main:
41+
if data[3] == daerah_target:
42+
print(f"ID: {data[0]} | Nama: {data[1]} | Menjenguk: {data[2]}")
43+
data_ditemukan_di_daerah_ini = True
44+
if not data_ditemukan_di_daerah_ini:
45+
print(f" (Tidak ada pengunjung dari {daerah_target})")
46+
47+
def hapus_pengunjung(list_kunjungan_dari_main):
48+
49+
print("\nHapus Data Pengunjung")
50+
if not list_kunjungan_dari_main:
51+
print("Belum ada data.")
52+
return
53+
54+
id_input_str = input("Masukkan ID Antrian: ")
55+
input_valid = True
56+
if len(id_input_str) == 0:
57+
input_valid = False
58+
else:
59+
for karakter in id_input_str:
60+
if karakter not in "0123456789":
61+
input_valid = False
62+
break
63+
if not input_valid:
64+
print("ID Antrian harus berupa angka positif.")
65+
return
66+
67+
id_hapus = int(id_input_str)
68+
69+
data_yang_akan_dihapus = None
70+
71+
for data in list_kunjungan_dari_main:
72+
if data[0] == id_hapus:
73+
data_yang_akan_dihapus = data
74+
break
75+
76+
if data_yang_akan_dihapus:
77+
list_kunjungan_dari_main.remove(data_yang_akan_dihapus)
78+
print(f"Data dengan ID Antrian {id_hapus} telah berhasil dihapus.")
79+
else:
80+
print(f"Data dengan ID Antrian {id_hapus} tidak ditemukan.")
81+
82+
def main():
83+
list_kunjungan_lokal = []
84+
id_terakhir_lokal = 0
85+
86+
while True:
87+
print("\nSistem Antrian Kunjungan Santri")
88+
print("1. Tambah")
89+
print("2. Tampilkan")
90+
print("3. Hapus")
91+
print("4. Keluar")
92+
93+
pilihan = input("pilih (1-4): ")
94+
95+
if pilihan == '1':
96+
id_terakhir_lokal = tambah_pengunjung(list_kunjungan_lokal, id_terakhir_lokal)
97+
98+
elif pilihan == '2':
99+
tampilkan_pengunjung(list_kunjungan_lokal)
100+
101+
elif pilihan == '3':
102+
hapus_pengunjung(list_kunjungan_lokal)
103+
104+
elif pilihan == '4':
105+
print("\nKamu sudah keluar program.")
106+
break
107+
else:
108+
print("\nHarap masukkan angka 1, 2, 3, atau 4.")
109+
110+
if __name__ == "__main__":
111+
main()
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
def gabung_urut_tuple(t1, t2):
2+
gabungan = t1 + t2
3+
4+
unik = []
5+
for angka in gabungan:
6+
sudah_ada = False
7+
for u in unik:
8+
if u == angka:
9+
sudah_ada = True
10+
break
11+
if not sudah_ada:
12+
unik.append(angka)
13+
14+
for i in range(len(unik) - 1):
15+
for j in range(i + 1, len(unik)):
16+
if unik[i] < unik[j]:
17+
temp = unik[i]
18+
unik[i] = unik[j]
19+
unik[j] = temp
20+
21+
return tuple(unik)
22+
23+
t1 = (3, 1, 4)
24+
t2 = (1, 5, 9)
25+
26+
hasil_akhir = gabung_urut_tuple(t1, t2)
27+
28+
print(f"Tuple pertama: {t1}")
29+
print(f"Tuple kedua: {t2}")
30+
print(f"Hasil gabungan (unik, urut menurun): {hasil_akhir}")
31+
32+
print("-" * 20)
33+
34+
t3 = (9, 0, 5, 1, 10, 2, 0)
35+
t4 = (8, 5, 2, 3, 7)
36+
hasil_akhir_2 = gabung_urut_tuple(t3, t4)
37+
print(f"Tuple ketiga: {t3}")
38+
print(f"Tuple keempat: {t4}")
39+
print(f"Hasil gabungan (unik, urut menurun): {hasil_akhir_2}")
40+
41+
t5 =(12,10,11)
42+
t6 =(14,11,13)
43+
hasil_akhir_3 =gabung_urut_tuple(t5, t6)
44+
print(f"Tuple ketiga: {t5}")
45+
print(f"Tuple keempat: {t6}")
46+
print(f"Hasil gabungan (unik, urut menurun): {hasil_akhir_3}")

0 commit comments

Comments
 (0)