Wednesday, April 1, 2015

Algoritma Pemrograman : Membuat Standar Deviasi

Assalamualaikum gan!

Jumpa lagi gan sama ane. Kali ini ada tugas lagi nih dari dosen ane. Kalau sebelumnya ane membuat barisan fibonacci, sekarang ane ditugaskan untuk membuat standar deviasi gan. Sekedar untuk mengingat, penghitungan standar deviasi sangat penting dalam ilmu statistik karena berfungsi sebagai suatu nilai yang menunjukkan merata atau tidaknya suatu persebaran data gan. Jika nilai standar deviasi mendekati 0, semakin merata persebaran datanya gan. Hal ini dapat membantu kita dalam menganalisa suatu data. Standar deviasi juga disebut simpangan baku.

Biar lebih jelas ane kasih contoh gan. Misalnya 5 orang murid di kelas A mendapatkan nilai ujian masing-masing 75, 74, 78, 71, dan 72, sedangkan di kelas B nilainya 72, 93, 65, 83, dan 57, serta nilai minimum untuk lulus adalah 66. Jika dicari rata-ratanya, kelas A dan B sama-sama memiliki rata-rata 74. Jika guru tersebut hanya mengumumkan nilai rata-ratanya saja, apakah mereka sudah aman dengan nilai rata-rata 74? Belum gan!

Jika dilihat dengan seksama, terlihat bahwa nilai kelas A memiliki persebaran data yang lebih merata ketimbang nilai kelas B. Jika dihitung standar deviasinya, maka standar deviasi kelas A akan lebih kecil dibanding kelas B. Dalam kasus ini, jika guru tersebut juga menyertakan nilai standar deviasinya dalam pengumuman, maka kelas A patut bersyukur karena nilai standar deviasinya kecil yang berarti secara keseluruhan murid kelas A mendapatkan nilai ujian mendekati nilai rata-ratanya yaitu 74. Berbeda dengan kelas B yang standar deviasinya lebih besar. Berarti ada murid yang mendapatkan nilai sangat besar dan kecil. Ini disebut nilai ekstrim gan.

Rumus Standar Deviasi untuk Data Tak Berkelompok

  • Populasi

  • Sampel



Untuk kasus diatas, berarti rumus yang kita gunakan adalah yang sampel gan. Dengan penghitungan berdasarkan rumus diatas, maka kita akan dapatkan nilai standar deviasi kelas A adalah 2,7386 dan kelas B adalah 14,2828. Ternyata benar kan, gan. Nilai standar deviasi kelas A lebih kecil dari kelas B sehingga kelas A nilainya lebih merata dari kelas B walaupun nilai rata-ratanya sama-sama 74.

Nah, setelah kita mengetahui apa yang dimaksud dengan standar deviasi, sekarang ane mau nyoba script pascal yang pas buat standar deviasi gan. Kalau pangkatnya bilangan bulat sih gampang gan. Kan itu sama aja dengan mengalikan sebanyak pangkatnya. Misalnya 8^3, ya kaliin aja 8 nya 3 kali atau 8x8x8 gan. Nah kalau kaya standar deviasi kan akar pangkat dua alias pangkat 0,5 gan, gimana dong buatnya?

Yang ane tau, ada 2 cara yang dapat kita gunakan untuk membuat akar pangkat di pascal gan. Berikut penjabarannya.


  1. Dengan sqrt();
    Nah sqrt(); atau squareroot adalah salah satu syntax yang ada di pascal dan berfungsi sebagai akar pangkat dua gan. Di rumus standar deviasi kan ada yang harus di akar pangkat dua tuh, cukup dengan memakai syntax ini, maka jadilah rumus yang agan buat.

    Misalnya kita ingin mencari akar pangkat dua dari bilangan real n, maka cukup menuliskannya sebagai berikut:

    program Membuat_Akar_Pangkat_Dua;
    uses crt;
    var n,b:real;

    begin

    clrscr;
    write('Masukkan Angka = ');readln(n);
    b:=sqrt(n);
    writeln;
    write('Hasil = ',b);
    readln;

    end.

    Keuntungan menggunakan syntax ini adalah penggunaannya simpel. Cukup dengan memasukkan angka yang akan di cari akar pangkat dua nya, maka keluarlah hasilnya gan. Namun syntax ini tidak bisa digunakan untuk akar pangkat selain 2 gan. Misalnya kita ingin mencari akar pangkat 4 dari 16, maka kita tidak bisa menggunakan syntax ini gan. Gimana dong solusinya? Tenang gan! Baca cara keduanya gan.
  2. Dengan exp(); dan Ln();

    Sebenernya gampang aja gan kalo agan udah belajar logaritma natural. Intinya sih ubah aja bentuk pangkat kedalam bentuk logaritma natural, kemudian jadikan ke bentuk eksponensialnya gan. Biar gampang ane kasih contohnya aja ye gan!

    misal:
    y = 16^0.25

    jadikan kedua ruas sebagai logaritma natural

    ln y = ln 16^0.25
    ln y = 0.25 * ln 16
    y = e^(0.25 * ln 16)

    Nah begitulah caranya gan. Kalau bentuk eksponensial dan logaritma natural sih di pascal ada, yaitu exp(); untuk eksponensial dan Ln(); untuk logaritma natural (sumber). Keuntungan dari syntax ini adalah sifatnya yang universal karena bisa digunakan untuk akar pangkat berapapun. Namun untuk standar deviasi yang hanya akar pangkat dua, syntax ini kurang efisien karena pengetikan yang seharusnya bisa dengan syntax sqrt(); menjadi lebih panjang gan.
Langsung aja deh gan, ini dia yang ditunggu-tunggu! Ane tambahin buat nyari nilai rata-rata sama varians yak kan sepaket tuh hehe. Cus gan!

program Membuat_Deviasi_Standar;
uses crt;
var
a,b,c,d,e,f,g,h,i,j:real;

begin

clrscr;
write('Data 1 =');readln(a);
write('Data 2 =');readln(b);
write('Data 3 =');readln(c);
write('Data 4 =');readln(d);
write('Data 5 =');readln(e);
f:=(a+b+c+d+e)/5;
g:=(a-f)*(a-f)+(b-f)*(b-f)+(c-f)*(c-f)+(d-f)*(d-f)+(e-f)*(e-f);
h:=g/4;
i:=sqrt(h);
j:=exp(0.5*Ln(h));
writeln;
writeln('Rata-rata = ',f);
writeln;
writeln('Varians = ',h);
writeln;
writeln('Standar Deviasi [versi syntax sqrt();] = ',i);
writeln;
writeln('Standar Deviasi [versi syntax exp(); dan Ln();] = ',j);
readln;

end.


Kira-kira begitulah gan cara membuat nilai standar deviasi dengan pascal. Itu bisa agan kembangkan sesuai banyaknya data. Udah ane coba di free pascal dan berhasil hehe. Sekian postingan hari ini gan. Comment ye jangan lupa!