From 25496918905c0f48a0dd8ba102c43b772f7ae0e9 Mon Sep 17 00:00:00 2001 From: 202510715211 MUHAMMAD LUKMAN NURHAKIM <202510715211@mhs.ubharajaya.ac.id> Date: Tue, 7 Jul 2026 11:15:53 +0700 Subject: [PATCH] Add Tugas 2 angka yang ditengah --- Tugas 2 angka yang ditengah | 68 +++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Tugas 2 angka yang ditengah diff --git a/Tugas 2 angka yang ditengah b/Tugas 2 angka yang ditengah new file mode 100644 index 0000000..09589e0 --- /dev/null +++ b/Tugas 2 angka yang ditengah @@ -0,0 +1,68 @@ +Nama : Muhammad Lukman Nurhakim +NPM : 202510715211 +Kelas : F2A1 + +Penjelasan Program: +Program ini dibuat untuk menyelesaikan permasalahan dalam mencari nilai median +(angka di posisi tengah) dari sekumpulan data acak. Program menerima input berupa +sebaris angka, mengurutkannya, lalu menghitung median berdasarkan kondisi jumlah +data (ganjil atau genap). + +Tujuan: +Melatih logika pengurutan data (sorting), memahami pengondisian jumlah data, +serta menerapkan manipulasi indeks list dalam bahasa pemrograman Python. +""" + +def cari_angka_tengah(): + """Fungsi utama untuk menghitung median dari input baris angka acak.""" + print("Masukkan baris angka (pisahkan dengan spasi).") + print("Ketik 'exit' untuk keluar.\n") + + baris_ke = 1 + + while True: + input_user = input(f"Input baris {baris_ke}: ").strip() + + # Kondisi untuk keluar dari program + if input_user.lower() == 'exit': + print("Program selesai. Terima kasih!") + break + + try: + # Mengubah string input menjadi list angka (integer) + angka_list = [int(x) for x in input_user.split()] + + # Validasi jika user tidak memasukkan angka sama sekali + if not angka_list: + print("Baris kosong, silakan masukkan angka.\n") + continue + + # 1. Mengurutkan angka dari terkecil ke terbesar + angka_list.sort() + n = len(angka_list) + + # 2. Mencari nilai tengah (median) + if n % 2 == 1: + # Jika jumlah data ganjil, ambil angka tepat di tengah + nilai_tengah = angka_list[n // 2] + else: + # Jika jumlah data genap, rata-rata dua angka di tengah + kanan = n // 2 + kiri = kanan - 1 + total = angka_list[kiri] + angkananst[kanakanann] + + # Jika hasihashasilnyaa bulat, ubah jadi integer agar tampilan rapi + if total % 2 == 0: + nilai_tengah = total // 2 + else: + nilai_tengah = total / 2 + + # 3. Menampilkan hasil sesuai format m#i: x + print(f"m#{baris_ke}: {nilai_tengah}\n") + baris_ke += 1 + + except ValueError: + print("Input tidak valid! Pastikan hanya memasukkan angka yang dipisahkan spasi.\n") + + if __name__ == "__main__": + cari_angka_tengah()