[C++]: Kalkulator Statistika Deskriptif (Bagian II: Standar deviasi, Varian, Simpangan rata-rata, dan Koefisien Variasi)
Halo semuanya!
Di artikel ini, kita akan membahas perhitungan standar deviasi, varian, simpangan rata-rata, dan koefisien variasi. Namun, sebelumnya, pastikan untuk membaca artikel sebelumnya di sini:
Standar deviasi adalah sebuah ukuran yang menunjukkan seberapa jauh data tersebar dari nilai rata-rata. Semakin tinggi nilai standar deviasi, semakin besar variasi data. Perhitungan standar deviasi dilakukan dengan mengambil akar kuadrat dari varian.
Varian adalah ukuran seberapa jauh data tersebar dari nilai rata-rata. Semakin besar nilai varian, semakin tinggi variasi data. Perhitungan varian dilakukan dengan menghitung rata-rata kuadrat selisih antara setiap nilai data dengan nilai rata-rata.
Simpangan rata-rata adalah jarak rata-rata antara setiap nilai data dengan nilai rata-rata. Ini memberikan gambaran tentang seberapa jauh setiap nilai data dari nilai rata-rata.
Koefisien variasi adalah sebuah ukuran yang menunjukkan seberapa besar standar deviasi relatif terhadap nilai rata-rata. Ini membantu dalam membandingkan variasi data antara dua set data yang berbeda. Semakin kecil koefisien variasi, semakin homogen data.
(sumber: rumusstatistik.com)
Semoga penjelasan di atas dapat membantu Anda dalam memahami konsep standar deviasi, varian, simpangan rata-rata, dan koefisien variasi.
Selanjutnya kita akan bahas kode program setelah menghitung rata-rata, median, modus dsb yang dimana variabelnya masih berkaitan untuk digunakan dalam perhitungan berikutnya.
RATA-RATA UKUR (GEOMETRIK)
Perhitungan rata-rata geometrik dilakukan dengan cara mengalikan seluruh data, lalu menarik akar pangkat n, dengan n adalah jumlah data yang ada dalam kode ini maka menggunakan variabel jml_data.
Berikut adalah pemrogramannya dalam C++.
//rata-rata ukur
float angka_satu = 1;
float rata2_ukur;
for(i=1;i<=jml_data;i++){
angka_satu *= nilai[i];
}
rata2_ukur = pow(angka_satu, (1.0/jml_data));
Langkah pengerjaan :
- Inisialisasi variabel angka_satu dengan nilai 1.
- Hitung rata-rata geometrik dengan melakukan perulangan sebanyak jml_data kali.
- Dalam setiap iterasi, kalikan nilai angka_satu dengan nilai elemen data ke-i.
- Setelah selesai perulangan, hitung rata-rata geometrik dengan menghitung akar pangkat 1/jml_data dari hasil perkalian semua nilai data.
- Simpan hasil perhitungan rata-rata geometrik pada variabel rata2_ukur.
STANDAR DEVIASI SAMPEL & POPULASI
Standar deviasi populasi (σ) digunakan untuk menghitung sebaran data dalam suatu populasi. Sedangkan standar deviasi sampel (s) digunakan untuk menghitung sebaran data dalam sampel dari populasi.
σ = √(Σ(xi - μ)²/N)
Keterangan
- σ = standar deviasi populasi
- Σ = simbol sigma, yang berarti menjumlahkan
- xi = nilai pada sampel ke-i
- μ = nilai rata-rata populasi
- N = jumlah total populasi
Pada C++, maka perhitungan standar deviasi populasi dilakukan dengan kode sebagai berikut.
//standar deviasi populasi
float sd_populasi = 0;
for(i=1;i<=jml_data;i++){
sd_populasi += pow(nilai[i]-rata_rata, 2)/jml_data;
}
sd_populasi = sqrt(sd_populasi);
Langkah pengerjaan :
- inisialisasi variabel sd_populasi dengan nilai awal 0.
- Melakukan perulangan sebanyak jml_data kali.
- Dalam setiap iterasi, hitung nilai deviasi dari rata-rata dengan mengurangi nilai data ke-i dengan nilai rata-rata.
- Pangkatkan hasil deviasi ke-2 menggunakan fungsi pow().
- Tambahkan hasil kuadrat deviasi ke variabel sd_populasi.
- Setelah selesai perulangan, hitung standar deviasi populasi dengan menghitung akar kuadrat dari hasil penjumlahan kuadrat deviasi, yang dibagi dengan jumlah data (jml_data).
Sedangkan rumus untuk menghitung standar deviasi sampel adalah sebagai berikut:
s = √(Σ(xi - x̄)²/(n - 1))
Keterangan:
- s = standar deviasi sampel
- Σ = simbol sigma, yang berarti menjumlahkan
- xi = nilai pada sampel ke-i
- x̄ = nilai rata-rata sampel
- n = jumlah total sampel
Kode pemrogramannya pada c++ adalah sebagai berikut.
//standar deviasi sampel
float sd_sampel = 0;
for(i=1;i<=jml_data;i++){
sd_sampel += pow(nilai[i]-rata_rata, 2)/(jml_data-1);
}
sd_sampel = sqrt(sd_sampel);
Langkah pengerjaan:
- Inisialisasi variabel sd_sampel dengan nilai awal 0.
- Melakukan perulangan sebanyak jml_data kali.
- Dalam setiap iterasi, hitung nilai deviasi dari rata-rata, yaitu nilai[i] — rata_rata.
- Pangkatkan hasil deviasi ke-2 menggunakan fungsi pow().
- Tambahkan hasil kuadrat deviasi ke variabel sd_sampel.
- Setelah selesai perulangan, hitung standar deviasi sampel dengan menghitung akar kuadrat dari hasil penjumlahan kuadrat deviasi, yang dibagi dengan jumlah data dikurangi satu (jml_data — 1).
VARIAN POPULASI DAN SAMPEL
Varian populasi didefinisikan sebagai rata-rata kuadrat selisih antara tiap anggota populasi dan nilai rata-rata populasi, sedangkan varian sampel didefinisikan sebagai rata-rata kuadrat selisih antara tiap anggota sampel dan nilai rata-rata sampel.
Karena kita sudah menghitung nilai dari standar deviasi populasi dan juga varian, maka untuk menghitung varian pada c++ kita gunakan fungsi pow() untuk mengkuadratkan nilai dari standar deviasi.
//varian sampel
float varian_sampel;
varian_sampel = pow(sd_sampel, 2);
//varian populasi
float varian_populasi;
varian_populasi = pow(sd_populasi, 2);
SIMPANGAN RATA-RATA
Simpangan rata-rata dihitung dengan cara menghitung selisih antara setiap nilai data dengan nilai rata-rata, kemudian menjumlahkan selisih-selisih tersebut dan membaginya dengan jumlah data.
//simpangan rata-rata
float simp_rata2 = 0;
for(i=1;i<=jml_data;i++){
simp_rata2 += abs(nilai[i]-rata_rata);
}
simp_rata2 = simp_rata2/jml_data;
Langkah pengerjaan :
- Inisialisasi variabel simp_rata2 dengan nilai awal 0.
- Melakukan perulangan sebanyak jml_data kali.
- Dalam setiap iterasi, hitung nilai selisih antara data ke-i dan nilai rata-rata dengan menggunakan fungsi abs().
- Tambahkan hasil selisih ke variabel simp_rata2.
- Setelah selesai perulangan, hitung simpangan rata-rata dengan membagi jumlah selisih dengan jumlah data (jml_data).
KOEFISIEN VARIASI
Kita dapat menghitung koefisien variasi dengan menggunakan rumus koefisien variasi = (standar deviasi / rata-rata), dengan memanfaatkan nilai standar deviasi dan rata-rata yang telah dihitung sebelumnya.
//koefisien variasi
float kv;
kv = sd_populasi/rata_rata;
Langkah pengerjaan :
- Variabel kv dideklarasikan dengan tipe data float, yang akan menyimpan nilai koefisien variasi.
- Menghitung nilai koefisien variasi dengan membagi standar deviasi populasi (sd_populasi) dengan rata-rata (rata_rata).
- Hasil perhitungan koefisien variasi kemudian disimpan pada variabel kv.
OUTPUT
Berikut merupakan output hasil perhitungan dari beberapa statistik deskriptif yang telah dihitung dalam program :
//output
cout<<"\n=============================================="<<endl;
cout<<"\n Rata-rata = "<<rata_rata<<endl;
cout<<" Median = "<<median<<endl;
cout<<" Modus = ";
float modus[999] = {0};
int n_modus = 0;
for (i = 1; i <= jml_data; i++) {
if (frekuensi[i] == max_frekuensi) {
bool sudah_ada = false;
for (int j = 0; j < n_modus; j++) {
if (nilai[i] == modus[j]) {
sudah_ada = true;
break;
}
}
if (!sudah_ada) {
modus[n_modus++] = nilai[i];
cout << nilai[i] << " ";
}
}
}
cout<<"\n Maks = "<<maks<<endl;
cout<<" Min = "<<min<<endl;
cout<<" Range = "<<range<<endl;
cout<<" Rata-rata ukur = "<<rata2_ukur<<endl;
cout<<" Standar deviasi sampel = "<<sd_sampel<<endl;
cout<<" Standar deviasi populasi = "<<sd_populasi<<endl;
cout<<" Varian sampel = "<<varian_sampel<<endl;
cout<<" Varian populasi = "<<varian_populasi<<endl;
cout<<" Simpangan rata-rata = "<<simp_rata2<<endl;
cout<<" Koefisien variasi = "<<kv<<endl;
cout<<endl;
Dalam artikel ini, Kita telah belajar tentang cara membuat program sederhana untuk menghitung statistika deskriptif pada data menggunakan bahasa pemrograman C++. Kitatelah belajar menghitung rata-rata, median, modus, maksimum, minimum, rentang, rata-rata geometrik, varian, standar deviasi, simpangan rata-rata, dan koefisien variasi. Semua formula matematis diimplementasikan dalam kode C++ yang mudah dimengerti dan dijelaskan dengan baik.
Semoga artikel ini memberikan manfaat bagi yang ingin mempelajari dasar-dasar pemrograman C++ dan statistika deskriptif. Jangan ragu untuk mengembangkan program ini dengan menambahkan fitur atau memodifikasi kode sesuai kebutuhan.
Full Code :
#include <iostream>
#include <math.h>
using namespace std;
int main (){
//deklarasi variabel
int i, jml_data;
float nilai[999];
cout<<"\n KALKULATOR STATISTIKA DESKRIPTIF"<<endl;
cout<<"==========================================="<<endl;
cout<<" Masukkan banyaknya data yang ingin diinput: ";cin>>jml_data;
cout<<"-----------------------------------------------"<<endl;
for(i=1;i<=jml_data;i++){
cout<<" Data ke-"<<i<<": ";cin>>nilai[i];
}
cout<<"______________________________________________"<<endl;
//Urutan data
cout<<" Urutan Data: "<<endl;
cout<<"----------------------------------------------"<<endl;
for(i=1;i<=jml_data;i++){
for(int j=i+1;j<=jml_data;j++){
if(nilai[j]<nilai[i]){
float temp = nilai[i];
nilai[i]=nilai[j];
nilai[j]=temp;
}
}
}
for(i=1;i<=jml_data;i++){
cout<<" "<<nilai[i];
}
//rata-rata
float rata_rata = 0;
for(i=1;i<=jml_data;i++){
rata_rata += nilai[i];
}
rata_rata = rata_rata/jml_data;
//median
float median;
if(jml_data%2==0){
median = (nilai[jml_data/2]+nilai[(jml_data/2)+1])/2;
}
else{
median = nilai[(jml_data/2)+1];
}
//modus
int frekuensi[999] = {0}; // inisialisasi semua elemen array menjadi 0
for(i=1;i<=jml_data;i++){
for(int j=1;j<=jml_data;j++){
if(nilai[i] == nilai[j]){
frekuensi[i]++;
}
}
}
int max_frekuensi = 0;
for(i=1;i<=jml_data;i++){
if(frekuensi[i] > max_frekuensi){
max_frekuensi = frekuensi[i];
}
}
//maksimum dan minimum
float maks, min;
maks = nilai[1];
min = nilai[1];
for(i=1;i<=jml_data;i++){
if(i==1){
maks = nilai[i];
min = nilai[i];
}
else if(nilai[i]>maks){
maks = nilai[i];
}
else if(nilai[i]<min){
min = nilai[i];
}
else {
}
}
//range
float range = maks - min;
//rata-rata ukur
float angka_satu = 1;
float rata2_ukur;
for(i=1;i<=jml_data;i++){
angka_satu *= nilai[i];
}
rata2_ukur = pow(angka_satu, (1.0/jml_data));
//standar deviasi sampel
float sd_sampel = 0;
for(i=1;i<=jml_data;i++){
sd_sampel += pow(nilai[i]-rata_rata, 2)/(jml_data-1);
}
sd_sampel = sqrt(sd_sampel);
//standar deviasi populasi
float sd_populasi = 0;
for(i=1;i<=jml_data;i++){
sd_populasi += pow(nilai[i]-rata_rata, 2)/jml_data;
}
sd_populasi = sqrt(sd_populasi);
//varian sampel
float varian_sampel;
varian_sampel = pow(sd_sampel, 2);
//varian populasi
float varian_populasi;
varian_populasi = pow(sd_populasi, 2);
//simpangan rata-rata
float simp_rata2 = 0;
for(i=1;i<=jml_data;i++){
simp_rata2 += abs(nilai[i]-rata_rata);
}
simp_rata2 = simp_rata2/jml_data;
//koefisien variasi
float kv;
kv = sd_populasi/rata_rata;
//output
cout<<"\n=============================================="<<endl;
cout<<"\n Rata-rata = "<<rata_rata<<endl;
cout<<" Median = "<<median<<endl;
cout<<" Modus = ";
float modus[999] = {0};
int n_modus = 0;
for (i = 1; i <= jml_data; i++) {
if (frekuensi[i] == max_frekuensi) {
bool sudah_ada = false;
for (int j = 0; j < n_modus; j++) {
if (nilai[i] == modus[j]) {
sudah_ada = true;
break;
}
}
if (!sudah_ada) {
modus[n_modus++] = nilai[i];
cout << nilai[i] << " ";
}
}
}
cout<<"\n Maks = "<<maks<<endl;
cout<<" Min = "<<min<<endl;
cout<<" Range = "<<range<<endl;
cout<<" Rata-rata ukur = "<<rata2_ukur<<endl;
cout<<" Standar deviasi sampel = "<<sd_sampel<<endl;
cout<<" Standar deviasi populasi = "<<sd_populasi<<endl;
cout<<" Varian sampel = "<<varian_sampel<<endl;
cout<<" Varian populasi = "<<varian_populasi<<endl;
cout<<" Simpangan rata-rata = "<<simp_rata2<<endl;
cout<<" Koefisien variasi = "<<kv<<endl;
cout<<endl;
return 0;
}
— — Terima kasih telah membaca artikel ini, dan semoga berhasil! — —