Untuk memahami karakteristik sebuah data yang berupa deret bilangan, kita biasanya akan mencari 3 aspek penilaian: mean, median, dan modus.
Mean adalah rata-rata dari suatu data.
Median adalah nilai tengah dari suatu data.
Sedangkan modus adalah nilai yang paling banyak muncul dari suatu data.
Pada kesempatan kali ini, kita akan mencoba mencari mean, median, dan modus menggunakan python.
Cara Penyelesaian
Terdapat berbagai macam cara untuk mencari 3 nilai di atas. Jika kita simpulkan, secara umum ada 2 cara:
- Cara yang bersifat manual, yaitu kita hitung sendiri menggunakan logika kita.
- Dan ada cara yang bersifat sederhana, yaitu kita menggunakan modul dan fungsi yang sudah disediakan oleh python.
Dan insyaallah pada pertemuan kali ini kita akan mencoba dua-duanya.
Sebelum Memulai
Agar teman-teman bisa mengikuti tutorial ini dengan baik, diharapkan teman-teman telah memiliki beberapa pengetahuan dasar tentang python, terlebih untuk materi-materi berikut:
Dan juga materi menengah python berikut:
Karena pada program yang akan kita buat kali ini sangat berkaitan dengan materi-materi di atas.
Persiapan: Membuat Inputan
Sebelum kita mulai menghitung mean, modus atau pun median, kita akan terlebih dahulu menyiapkan data deret bilangan berdasarkan inputan user.
Jadi rencananya adalah: kita akan minta user untuk memasukkan sederetan angka yang dipisahkan dengan koma (,
).
Ilustrasi program:
Masukkan deret bilangan (pisahkan dengan koma): 1, 2, 3, 4, 5, 6
Kode programnya kira-kira seperti ini:
inputan = input('Masukkan deret bilangan (pisahkan dengan koma): ')
data = []
# konversi inputan ke dalam list yg berisi integer
for bilangan in inputan.split(','):
data.append(int(bilangan))
Kemudian jika kita tampilkan isi dari variabel data
dengan fungsi print()
, kita akan mendapatkan output seperti ini:
[1, 2, 3, 4, 5, 6]
Catatan: untuk mendapatkan hasil yang serupa, kita bisa menggunakan fungsi map()
. Saya di sini menggunakan perulangan for manual dengan tujuan agar lebih mudah dipahami oleh pemula.
1. Menghitung Mean Secara Manual
Setelah selesai dengan bagian inputan, sekarang kita memiliki variabel data
yang siap kita olah.
Yang pertama, kita akan mencari rata-rata atau mean dari variabel data
secara manual.
Misalkan kita memiliki nilai [1, 2, 3, 4]
, maka untuk mencari rata-ratanya adalah:
rata-rata = sigma data / panjang data
rata-rata = (1 + 2 + 3 + 4) / 4
rata-rata = 10 / 4
rata-rata = 2.5
Untuk mencari sigma (total keseluruhan item) dari variabel data
, kita bisa memanfaatkan fungsi sum()
.
>>> sum([1, 2, 3, 4])
10
>>>
Dan untuk mendapatkan panjang dari variabel data
, kita bisa menggunakan fungsi len()
seperti ini:
>>> len([1, 2, 3, 4])
4
>>>
Jika digabungkan, kode program kita kira-kira akan terlihat seperti ini:
def rata_rata (deret):
return sum(deret) / len(deret)
print(f'Data -> {data}')
print(f'Mean -> {rata_rata(data)}')
Output:
Masukkan deret bilangan (pisahkan dengan koma): 1, 2, 3, 4
Data -> [1, 2, 3, 4]
Mean -> 2.5
2. Menghitung Mean Menggunakan Fungsi statistics.mean()
Cara berikutnya untuk menghitung rata-rata adalah menggunakan fungsi mean()
yang berada pada modul statistics
. Modul ini sudah tersedia secara bawaan oleh python.
Yang perlu kita lakukan adalah mengimport modul statistics
, kemudian memanggil fungsi statistics.mean()
.
Ya, itu saja! π
Begini kira-kira kode programnya:
import statistics
inputan = input('Masukkan deret bilangan (pisahkan dengan koma): ')
data = []
# konversi inputan ke dalam list yg berisi integer
for bilangan in inputan.split(','):
data.append(int(bilangan))
rerata = statistics.mean(data)
print(f'Data -> {data}')
print(f'Mean -> {rerata}')
Contoh output:
Masukkan deret bilangan (pisahkan dengan koma): 100, 200
Data -> [100, 200]
Mean -> 150
3. Menghitung Median Secara Manual
Berikutnya adalah median. Median merupakan nilai tengah dari suatu data. Untuk menghiungnya secara manual, ada beberapa langkah:
- Pertama kita harus mengurutkan datanya terlebih dahulu.
- Kemudian mengambil nilai tengahnya (yaitu nilai yang berada di tengah-tengah deret):
Misal kita memiliki data berikut:
15, 10, 1, 3, 5
Kita harus urutkan terlebih dahulu sehingga menjadi:
1, 3, 5, 10, 15
Setelah diurutkan, terlihat jelas mana data yang berada di tengah-tengah.
Lalu bagaimana jika panjang datanya ternyata genap?
Kalau panjang datanya genap, kita bisa menghitung median dengan mengambil 2 angka yang berada di tengah-tengah, kemudian kita bagi dua.
Misal datanya seperti ini:
1, 3, 5, 10, 15, 20
Maka mediannya adalah:
median = (5 + 10) / 2
median = 15 / 2
median = 7.5
Mengurutkan Data
Di dalam python, kita bisa mengurutkan data dari sebuah list dengan memanggil fungsi list.sort()
seperti berikut:
>>> data = [4, 1, 5, 20, 10]
>>> data.sort()
>>> data
[1, 4, 5, 10, 20]
>>>
Atau, kita juga bisa memanggil fungsi sorted()
seperti berikut:
>>> sorted([4, 1, 5, 20, 10])
[1, 4, 5, 10, 20]
>>>
Mengambil Nilai Yang Ada di Tengah
Setelah kita mengetahui cara mengurutkan data sebuah list, maka kita bisa langsung mengambil mediannya dengan rumus di atas.
Kira-kira kode programnya akan terlihat seperti berikut:
def nilai_tengah(deret):
deret.sort()
n = len(deret) # ambil panjang data
i_tengah = n // 2 # dibulatkan ke bawah
# jika n adalah ganjil
if n % 2 == 1:
return deret[i_tengah]
# jika n genap
return (deret[i_tengah - 1] + deret[i_tengah]) / 2
Buat inputan dan panggil fungsi nilai_tengah()
yang telah kita buat:
inputan = input('Masukkan deret bilangan (pisahkan dengan koma): ')
data = []
# konversi inputan ke dalam list yg berisi integer
for bilangan in inputan.split(','):
data.append(int(bilangan))
print(f'Data -> {data}')
print(f'Median -> {nilai_tengah(data)}')
Contoh output:
Masukkan deret bilangan (pisahkan dengan koma): 5, 20, 10, 200
Data -> [5, 20, 10, 200]
Median -> 15.0
Masukkan deret bilangan (pisahkan dengan koma): 30, 10, 393, 304, 451
Data -> [30, 10, 393, 304, 451]
Median -> 304
4. Menghitung Median Dengan Fungsi statistics.median()
Yang berikutnya adalah menghitung median dengan memanggil fungsi bawaan yang tersedia pada paket statisctics
.
Caranya sama seperti mean, kita hanya perlu mengubah beberapa kode saja:
import statistics
inputan = input('Masukkan deret bilangan (pisahkan dengan koma): ')
data = []
# konversi inputan ke dalam list yg berisi integer
for bilangan in inputan.split(','):
data.append(int(bilangan))
median = statistics.median(data)
print(f'Data -> {data}')
print(f'Median -> {median}')
Contoh output:
Masukkan deret bilangan (pisahkan dengan koma): 5, 20, 10, 200
Data -> [5, 20, 10, 200]
Median -> 15.0
Masukkan deret bilangan (pisahkan dengan koma): 30, 10, 393, 304, 451
Data -> [30, 10, 393, 304, 451]
Median -> 304
5. Menghitung Modus Secara Manual
Selanjutnya adalah menghitung modus. Cara yang pertama yang kita lakukan adalah cara manual. Kita akan membuat logika sendiri untuk menghitungnya.
Bagaimana logikanya?
Bebas saja. Banyak jalan menuju roma.
Pada pertemuan ini saya akan mendemonstrasikan logika yang mirip dengan apa yang kita lakukan saat membuat program untuk menghitung huruf vokal.
Jadi pada program ini kita akan memanfaatkan dictionary untuk menyimpan masing-masing jumlah kemunculan dari tiap bilangan.
Misalkan kita memiliki bilangan sebagai berikut:
1, 3, 3, 20, 15, 3, 15, 3
Maka nanti dictionary yang kita produksi kira-kira akan terlihat seperti ini:
{
1: 1,
3: 4,
20: 1,
15: 2
}
Dari dictionary di atas, kita bisa tahu modus (atau angka yang paling banyak muncul) adalah 3, karena ia muncul sebanyak 4 kali.
Berikut ini kira-kira kode programnya:
def nilai_terbanyak(deret):
# dictionary untuk mapping nilai terbanyak
peta_kemunculan = {}
# perulangan satu-persatu tiap bilangan
for bilangan in deret:
# periksa apakah sudah pernah muncul atau belum
if bilangan in peta_kemunculan:
peta_kemunculan[bilangan] += 1
else:
peta_kemunculan[bilangan] = 1
# cari kemunculan terbanyak
bilangan_terbesar = deret[0] # ambil angka pertama sebagai yg terbanyak
for bilangan in peta_kemunculan.keys():
jumlah = peta_kemunculan[bilangan]
if jumlah > peta_kemunculan[bilangan_terbesar]:
bilangan_terbesar = bilangan
return bilangan_terbesar
inputan = input('Masukkan deret bilangan (pisahkan dengan koma): ')
data = []
# konversi inputan ke dalam list yg berisi integer
for bilangan in inputan.split(','):
data.append(int(bilangan))
print(f'Data -> {data}')
print(f'Modus -> {nilai_terbanyak(data)}')
Contoh output:
Masukkan deret bilangan (pisahkan dengan koma): 1, 3, 3, 20, 15, 3, 15, 3
Data -> [1, 3, 3, 20, 15, 3, 15, 3]
Modus -> 3
6. Menghitung Modus Dengan Fungsi statistics.mode()
Yang terakhir, kita bisa menghitung modus dari suatu deret bilangan dengan memanggil fungsi bawaan python statistics.mode()
.
Berikut ini kira-kira kode programnya:
import statistics
inputan = input('Masukkan deret bilangan (pisahkan dengan koma): ')
data = []
# konversi inputan ke dalam list yg berisi integer
for bilangan in inputan.split(','):
data.append(int(bilangan))
modus = statistics.mode(data)
print(f'Data -> {data}')
print(f'Modus -> {modus}')
Kode Program Lengkap
Jika kalian ingin mendapatkan kode program lengkap dari pertemuan kali ini, kalian bisa mendapatkannya pada repositori python-latihan-logika di github.
Jangan lupa kasih star ya!βπ
Pertemuan Selanjutnya
Insyaallah pada pertemuan yang akan datang kita akan membuat program untuk standar deviasi dari suatu data.
Gimana caranya?
Simak terus tutorial latihan logika python di jagongoding!
Jika ada pertanyaan atau sesuatu yang ingin didiskusikan, atau bahkan request tutorial, jangan sungkan-sungkan untuk berkomentar, ya! π
Terima kasih banyak!