Berikut ini adalah pertanyaan dari Uuung pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
-jika nilai dimasukkan negatif(<0) berhenti
-hitung rata-rata dan standar deviasi dari data tersebut.
-standar deviasi adalah akhir dari jumlah (x-rata-rata) ^2
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Kode program Python
Alternatif 1: Tanpa menggunakan modul statistics
import math
# Fungsi untuk menghitung rata-rata
# Input: array
def mean(data):
# μ = (Σ xi)/N
return float(sum(data) / len(data))
# Fungsi untuk menghitung standar deviasi
# Input: array
def standar_deviasi(data):
# D : Array dari deviasi
# Untuk menyimpan deviasi setiap data
# sehingga memungkinkan output nilai deviasi
# setiap elemen data, jika diinginkan
D = []
rata_rata = mean(data)
for x in data:
# tambahkan nilai deviasi untuk setiap elemen data
# Di = |xi – μ|
D.append(abs(x-rata_rata))
# Kembalikan nilai standar deviasi
# σ = √[(Σ(Di)²)/N]
# N diperoleh dari len(data)
return math.sqrt(sum([d**2 for d in D])/len(data))
# Program Utama
if __name__ == '__main__':
data = []
# Loop forever untuk meminta input data
# Berhenti ketika input data < 0
while True:
# Meminta masukan data bilangan
x = int(input("Masukkan data ke-" + str(len(data)+1) + ": "))
# Jika x > 0, masukkan ke array data
if (x > 0):
data.append(x)
# Jika x = 0, ulangi input data
elif (x == 0):
print("Data harus merupakan bilangan bulat positif.")
# Jika x < 0, keluar dari looping
else: # x < 0
break
# Cetak data, rata-rata dan standar deviasi
print("========================")
print("Data:", end = " ")
print(*data)
print("RATA-RATA = " + str(mean(data)))
print("STANDAR DEVIASI = " + str(standar_deviasi(data)), end="\n\n")
### END OF PROGRAM ###
__________________
Alternatif 2: Dengan menggunakan modul statistics
import statistics
data = []
# Loop forever untuk meminta input data
# Berhenti ketika input data < 0
while True:
# Meminta masukan data bilangan
x = int(input("Masukkan data ke-" + str(len(data)+1) + ": "))
# Jika x > 0, masukkan ke array data
if (x > 0):
data.append(x)
# Jika x = 0, ulangi input data
elif (x == 0):
print("Data harus merupakan bilangan bulat positif.")
# Jika x < 0, keluar dari looping
else: # x < 0
break
print("========================")
print("Data:", end = " ")
print(*data)
print("RATA-RATA = " + str(statistics.mean(data)))
print("STANDAR DEVIASI = " + str(statistics.pstdev(data)), end="\n\n")
### END OF PROGRAM ###
__________________
Pembahasan
Untuk persoalan ini, asumsi awaladalah kita tidak memiliki modulbuilt-in pada interpreter Python yang berisi fungsi-fungsi untuk melakukan perhitungan statistika, seperti rata-rata dan standar deviasi. Dengan asumsi ini, contoh programnya adalah pada alternatif 1 di atas.
Dengan adanya modul statistics pada interpreter Python, program akan jauh lebih mudah dirancang, seperti pada program alternatif 2.
__________________
Contoh Output Hasil Eksekusi
Untuk pengujian, kita berikan data:
75, 70, 80, 81, 69, 88, 90, 95, 77, 89.
Output dari eksekusi program alternatif 1:
Masukkan data ke-1: 75
Masukkan data ke-2: 70
Masukkan data ke-3: 80
Masukkan data ke-4: 81
Masukkan data ke-5: 69
Masukkan data ke-6: 0
Data harus merupakan bilangan bulat positif.
Masukkan data ke-6: 88
Masukkan data ke-7: 90
Masukkan data ke-8: 95
Masukkan data ke-9: 77
Masukkan data ke-10: 89
Masukkan data ke-11: -1
========================
Data: 75 70 80 81 69 88 90 95 77 89
RATA-RATA = 81.4
STANDAR DEVIASI = 8.404760555780276
Keterangan: Pada input data ke-6, saya sengaja memasukkan nilai 0. Namun sesuai rancangan program di atas, ketika menerima input 0, program tidak memasukkan data input ke dalam array data, namun mengulangi permintaan masukan data ke-6.
Output dari eksekusi program alternatif 2:
Masukkan data ke-1: 75
Masukkan data ke-2: 70
Masukkan data ke-3: 80
Masukkan data ke-4: 81
Masukkan data ke-5: 69
Masukkan data ke-6: 88
Masukkan data ke-7: 90
Masukkan data ke-8: 95
Masukkan data ke-9: 77
Masukkan data ke-10: 89
Masukkan data ke-11: -9
========================
Data: 75 70 80 81 69 88 90 95 77 89
RATA-RATA = 81.4
STANDAR DEVIASI = 8.404760555780278
Keterangan: Terdapat perbedaan kecil pada hasil perhitungan standar deviasi, yaitu pada digit terakhir.
Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Mon, 24 Oct 22