Kamis, 23 Februari 2017

Menghitung Standar Deviasi Dengan Bantuan Program Komputer (C++)


Sekarang kita akan meramu sebuah program komputer yang mampu menghitung standar deviasi. Apa itu standar deviasi? Bagi yang belum tahu, silahkan mengunjungi tautan di bawah ini:
Varian dan Standar Deviasi
Program sederhana ini pada awalnya saya buat untuk membantu adek-adek saya yang sedang sibuk mengerjakan laporan praktikum Fisika Dasar. Dalam pembuatan laporan praktikum Fisika Dasar sebagaimana yang pernah saya alami---walau saya jarang ikut lab dan kerja laporan tapi setidaknya saya pernah mengalaminya---seringkali melibatkan proses perhitungan standar deviasi.

Walaupun praktikan ada yang menggunakan kalkulator dalam proses perhitungan, namun, tetap saja perhitungan standar deviasi sangat rawan terjadi kesalahan. Inilah perbedaan manusia dan komputer. Manusia itu cerdas luar biasa tapi terkadang kurang cermat dan pelupa sedangkan komputer bodoh luar biasa---komputer tidak dapat melakukan apapun selain yang tertulis dalam program---tapi sangat teliti dan memiliki daya ingat sangat tinggi---selama data yang tersimpan tidak diserang virus dan malware. Kenyataan ini membuat saya terinspirasi untuk membuat program komputer yang dapat mengecek kebenaran hasil perhitungan.

Dalam pembuatan laporan praktikum Fisika Dasar, rumus standar deviasi yang sering digunakan adalah rumus standar deviasi populasi, bukan standar deviasi sampel. Hal ini karena data hasil pengukuran yang diolah tidak banyak sehingga perhitungan standar deviasi dapat dilakukan dengan melibatkan semua anggota populasi. Walau demikian, program yang akan ditampilkan dalam postingan kali ini tetap menyediakan 2 opsi bagi user yaitu perhitungan standar deviasi populasi dan sampel. Bagi yang belum tahu perbedaan populasi dan sampel, silahkan kunjungi tautan di bawah ini:
Ok, tanpa pembahasan panjang lebar lagi, langsung saja saya tampilkan source code-nya. Ini dia programnya dalam bahasa C++:

#include <iostream>
#include <cmath>
using namespace std;
int n,i;
float data[1000], keragaman[1000];
float kkuadrat[1000];
float jumlah = 0.0, pk = 0.0, jkeragaman = 0.00;
float rerata, varian, SD;
void tampilHasil()
{
   cout << ">> Rerata (<x>) = " << rerata << endl;
   cout << ">>      No.             x_i-<x>         (x_i-<x>)^2 " << endl;
   cout << "       ---------------------------------------------" << endl;
   for(i = 0; i < n; ++i)
      cout << "\t" << i + 1 << "\t\t" << keragaman[i] << "\t\t" << kkuadrat[i] << endl;
   cout << "       ---------------------------------------------" << endl;
   cout << "\t" << "Jumlah" << "\t\t" << jkeragaman << "\t\t" << pk << endl;
   cout << "       ---------------------------------------------" << endl;
   cout << ">> Varian = " << varian << endl;
   cout << ">> Standar Deviasi = " << SD;
}
void HitungSDpopulasi()
{
   varian = pk/n;
   SD = sqrt(varian);
   tampilHasil();
}
void HitungSDsampel()
{
   varian = pk/(n-1);
   SD = sqrt(varian);
   tampilHasil();
}
void prosePertama()
{
   for(i = 0; i < n; ++i)
   {
       jumlah += data[i];
   }
   rerata = jumlah/n;
   for(i = 0; i < n; ++i)
      keragaman[i] = data[i]-rerata;
   for(i = 0; i < n; ++i)
      kkuadrat[i] = pow(keragaman[i], 2); // kkuadrat : keragaman dikuadratkan
   for(i = 0; i < n; ++i)
      jkeragaman += keragaman[i];
   for(i = 0; i < n; ++i)
      pk += kkuadrat[i]; // pk : jumlah dari keragaman yg dikuadratkan
}
void inputPopulasi()
{
   cout << ">> Masukkan jumlah anggota populasi : \n";
   cin >> n;
   cout << ">> Masukkan " << n << " data : \n";
   for(i = 0; i < n; ++i)
        cin >> data[i];
   prosePertama();
   HitungSDpopulasi();
}
void inputSampel()
{
   cout << ">> Masukkan jumlah sampel : \n";
   cin >> n;
   cout << ">> Masukkan " << n << " data : \n";
   for(i = 0; i < n; ++i)
        cin >> data[i];
   prosePertama();
   HitungSDsampel();
}
void tanya()
{
    int p;
    cout << "\n-----------------------------------------------------";
    cout << "\nStandar Deviasi Populasi atau Sampel? ";
    cout << "\n(Populasi = 1, Sampel = 2) : ";
    cin  >> p;
    cout << "-----------------------------------------------------";
    cout << endl;
    if (p==1)
      inputPopulasi();
    else
      inputSampel();
}
int main()
{
   int l;
   cout << "=====================================================\n";
   cout << "        Program Untuk Menghitung Standar Deviasi     \n";
   cout << "                          Asri                       \n";
   cout << "                    Fisika 12 Unhas                  \n";
   cout << "              Makassar, 22 Februari 2017             \n";
   cout << "=====================================================\n";   
   tanya();
   cout << endl;
   return 0;
}

Anda dapat mengunduh source code dalam bentuk file dengan mengunjungi tautan di bawah ini:
Program Standar Deviasi Dalam CPP
Saya sangat mengharapkan adanya kritikan dan masukan jika ada kesalahan atau ada sesuatu yang kurang dalam program di atas. Saya hanya manusia biasa yang selalu gagal membuat sesuatu yang sempurna walau telah mencoba.

Demikian postingan kali ini. Semoga bermanfaat!

Posting Komentar