LAB_07_NONSTEF

 avatar
unknown
python
a year ago
1.9 kB
10
Indexable
keturunan = []

def cek_keturunan(ortu:str,anak:str,index:int = 0):
    if index >= len(keturunan): return 0
    if ortu == anak: print("sesuai"); return 0
    if keturunan[index][0] == ortu:
        cek_keturunan(keturunan[index][1],anak)
    cek_keturunan(ortu,anak,index+1)
           
def cetak_keturunan(ortu:str,index:int = 0):
    if index >= len(keturunan): return
    if keturunan[index][0] == ortu:
        anak = keturunan[index][1]
        print(anak)
        cetak_keturunan(anak)      
    cetak_keturunan(ortu,index+1)    
        
def jarak_generasi(ortu:str,anak:str,index:int = 0):
    if ortu == anak:print(ortu, anak);return
    if index >= len(keturunan): return
    if keturunan[index][0] == ortu: jarak_generasi(keturunan[index][1],anak)
    jarak_generasi(ortu,anak,index+1)

def main():
    print("masukan data relasi: ")
    while True:
        masukan = input().split()
        if masukan[0] == "SELESAI": break
        keturunan.append(masukan)
    print()
    print("======================================================================")
    print("Selamat Datang di Relation Finder! Pilihan yang tersedia:")
    print("1. CEK_KETURUNAN")
    print("2. CETAK_KETURUNAN")
    print("3. JARAK_GENERASI")
    print("4. EXIT")
    match int(input("Masukan pilihan: ")):
        case 1: print(cek_keturunan(input("Masukan nama parent: "),input("masukan nama child: ")))
        case 2: cetak_keturunan(input("Masukan nama parent: "))
        case 3: print(jarak_generasi(input("Masukan nama parent: "),input("masukan nama child: ")))
        case 4: 
            print("======================================================================")
            print("terima kasih telah menggunakan relation finder!")
        case _: print("input tidak valid")

if __name__ == "__main__": main()
Editor is loading...