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