1+ def cek_input_numerik (teks_input ):
2+ if len (teks_input ) == 0 :
3+ return False
4+
5+ for huruf in teks_input :
6+ if huruf not in "0123456789" :
7+ return False
8+
9+ return True
10+
11+ def sisip_nilai (data_list ):
12+ print ("\n 1. Tambah Angka" )
13+ teks_input = input ("Masukkan angka (positif) yang akan ditambah: " )
14+
15+ if cek_input_numerik (teks_input ):
16+ nilai = int (teks_input )
17+ data_list .append (nilai )
18+ print (f"Angka { nilai } berhasil ditambahkan." )
19+ else :
20+ print ("Tidak valid, Harap masukkan angka positif." )
21+
22+ def cetak_list (data_list ):
23+ print ("\n 2. Tampilkan Deretan Angka" )
24+
25+ if not data_list :
26+ print ("Deretan masih kosong." )
27+ return False
28+ else :
29+ print (f"Deretan Anda saat ini: { data_list } " )
30+ return True
31+
32+ def ganti_nilai (data_list ):
33+ print ("\n 3. Ubah Angka" )
34+ if not cetak_list (data_list ):
35+ return
36+
37+ teks_indeks = input ("Masukkan nomor urut (indeks) yang akan diubah (dimulai dari 0): " )
38+
39+ if not cek_input_numerik (teks_indeks ):
40+ print ("Input indeks tidak valid! Harus berupa angka." )
41+ return
42+
43+ posisi = int (teks_indeks )
44+
45+ total_data = len (data_list )
46+ if posisi < 0 or posisi >= total_data :
47+ print (f"Indeks { posisi } di luar jangkauan! Indeks yang valid: 0 sampai { total_data - 1 } " )
48+ return
49+
50+ teks_nilai_baru = input (f"Masukkan angka baru untuk menggantikan { data_list [posisi ]} : " )
51+
52+ if not cek_input_numerik (teks_nilai_baru ):
53+ print ("Input nilai baru tidak valid! Harus angka positif." )
54+ return
55+
56+ angka_lama = data_list [posisi ]
57+ angka_baru = int (teks_nilai_baru )
58+
59+ data_list [posisi ] = angka_baru
60+
61+ print (f"Sukses! Angka { angka_lama } di indeks { posisi } telah diubah menjadi { angka_baru } ." )
62+
63+ def buang_nilai (data_list ):
64+ print ("\n 4. Hapus Angka" )
65+ if not cetak_list (data_list ):
66+ return
67+
68+ teks_indeks = input ("Masukkan nomor urut (indeks) yang akan dihapus (dimulai dari 0): " )
69+
70+ if not cek_input_numerik (teks_indeks ):
71+ print ("Input indeks tidak valid! Harus berupa angka." )
72+ return
73+
74+ posisi = int (teks_indeks )
75+
76+ total_data = len (data_list )
77+ if posisi < 0 or posisi >= total_data :
78+ print (f"Indeks { posisi } di luar jangkauan! Indeks yang valid: 0 sampai { total_data - 1 } " )
79+ return
80+
81+ nilai_dihapus = data_list [posisi ]
82+
83+ del data_list [posisi ]
84+
85+ print (f"Sukses! Angka { nilai_dihapus } di indeks { posisi } telah dihapus." )
86+
87+ def periksa_keseimbangan (data_list ):
88+ print ("\n 5. Cek Pembagian Jumlah Sama" )
89+ cetak_list (data_list )
90+
91+ total_data = len (data_list )
92+
93+ if total_data == 0 :
94+ print ("Deretan kosong. Tidak bisa dicek." )
95+ print ("Hasil: False" )
96+ return
97+
98+ if total_data % 2 != 0 :
99+ print ("Jumlah angka ganjil, tidak bisa dibagi dua bagian sama rata." )
100+ print ("Hasil: False" )
101+ return
102+
103+ titik_tengah = total_data // 2
104+
105+ slice_kiri = data_list [:titik_tengah ]
106+ slice_kanan = data_list [titik_tengah :]
107+
108+ tuple_kiri = tuple (slice_kiri )
109+ tuple_kanan = tuple (slice_kanan )
110+
111+ total_kiri = sum (tuple_kiri )
112+ total_kanan = sum (tuple_kanan )
113+
114+ print (f"Bagian Kiri: { tuple_kiri } " )
115+ print (f"Bagian Kanan: { tuple_kanan } " )
116+ print (f"Jumlah Kiri: { total_kiri } " )
117+ print (f"Jumlah Kanan: { total_kanan } " )
118+
119+ if total_kiri == total_kanan :
120+ print ("Jumlah kedua bagian SAMA." )
121+ print ("Hasil: True" )
122+ else :
123+ print ("Jumlah kedua bagian BERBEDA." )
124+ print ("Hasil: False" )
125+
126+ def jalankan_program ():
127+ kumpulan_angka = []
128+
129+ while True :
130+ print ("\n Program Pengecekan Angka" )
131+ print ("1. Tambah Angka (Create)" )
132+ print ("2. Tampilkan Angka (Read)" )
133+ print ("3. Ubah Angka (Update)" )
134+ print ("4. Hapus Angka (Delete)" )
135+ print ("5. Cek Pembagian Jumlah Sama" )
136+ print ("6. Keluar" )
137+
138+ menu = input ("Silakan pilih menu (1-6): " )
139+
140+ if menu == '1' :
141+ sisip_nilai (kumpulan_angka )
142+
143+ elif menu == '2' :
144+ cetak_list (kumpulan_angka )
145+
146+ elif menu == '3' :
147+ ganti_nilai (kumpulan_angka )
148+
149+ elif menu == '4' :
150+ buang_nilai (kumpulan_angka )
151+
152+ elif menu == '5' :
153+ periksa_keseimbangan (kumpulan_angka )
154+
155+ elif menu == '6' :
156+ print ("\n Terima kasih! Program ditutup." )
157+ break
158+ else :
159+ print ("\n Pilihan tidak valid. Harap masukkan angka 1 sampai 6." )
160+
161+ if __name__ == "__main__" :
162+ jalankan_program ()
0 commit comments