Add Tugas 2 angka yang ditengah
This commit is contained in:
parent
9734e20e6f
commit
2549691890
68
Tugas 2 angka yang ditengah
Normal file
68
Tugas 2 angka yang ditengah
Normal file
@ -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()
|
||||
Loading…
x
Reference in New Issue
Block a user