This commit is contained in:
Chizuui
2025-11-27 00:38:38 +07:00
parent 5444efab13
commit 1795fa1c2f
81 changed files with 1893 additions and 0 deletions

47
Tugas/recrusive.py Normal file
View File

@@ -0,0 +1,47 @@
# Data Mahasiswa
data_mahasiswa = [
{"nim": "101", "nama": "Budi", "ipk": 3.2},
{"nim": "102", "nama": "Ani", "ipk": 3.8},
{"nim": "103", "nama": "Candra", "ipk": 2.9},
{"nim": "104", "nama": "Dewi", "ipk": 3.5},
]
# === CONTOH 1: MENCETAK NAMA ===
def cetak_nama_rekursif(list_mhs):
# 1. Kasus Dasar (Base Case)
if not list_mhs:
return
# 2. Langkah Rekursif (Recursive Step)
mahasiswa_pertama = list_mhs[0]
print(f"- {mahasiswa_pertama['nama']} (NIM: {mahasiswa_pertama['nim']})")
cetak_nama_rekursif(list_mhs[1:])
print("### Daftar Nama Mahasiswa ###")
cetak_nama_rekursif(data_mahasiswa)
# === CONTOH 2: MENGHITUNG IPK > 3.0 ===
def hitung_ipk_di_atas(list_mhs, batas_ipk=3.0):
# 1. Kasus Dasar (Base Case)
if not list_mhs:
return 0
# 2. Langkah Rekursif (Recursive Step)
mahasiswa_pertama = list_mhs[0]
sisa_list = list_mhs[1:]
jumlah_dari_sisa = hitung_ipk_di_atas(sisa_list, batas_ipk)
if mahasiswa_pertama["ipk"] > batas_ipk:
return 1 + jumlah_dari_sisa
else:
return 0 + jumlah_dari_sisa
# Menjalankan fungsi
jumlah_lulus = hitung_ipk_di_atas(data_mahasiswa, 3.0)
print(f"\n### Jumlah Mahasiswa dengan IPK > 3.0 ###")
print(f"Total: {jumlah_lulus} mahasiswa")