Minggu, 08 Januari 2017

Fungsi Uji KORELASI menggunakan R (function of correlation test using with R)

Hallo teman-teman sekarang saya akan membahas tentang pengertian, cara, dan pengujian korelasi menggunakan aplikasi/software R.

KORELASI adalah suatu teknik statistik yang digunakan untuk mengukur kekuatan hubungan dan menentukan arah antara dua variabel. Kekuatan hubungan di sini yaitu apakah hubungan tersebut kuat, sedang, atau lemah. Sedangkan arah yaitu apakah antara dua variabel tersebut memiliki hubungan positif atau hubungan negatif. 
Koefisien korelasi nilainya akan selalu berada di antara (-1) hingga 1, jika nilai korelasi mendekati (-1) atau 1 maka hubungannya makin kuat, penulisan matematikannya : -1≤r≤1.
Rumus untuk menghitung Koefisien Korelasi :


Nah,sebelum kita menghitung nilai koefisien korelasi maka kita harus menguji dahulu apakah terdapat hubungan di antara variabel yang akan kita gunakan? dengan menggunakan pengujian korelasi. 
Rumus untuk melakukan Uji Korelasi :


Di sini saya akan membuat fungsi korelasinyanya sendiri nama fungsinya "korelasi" lalu akan saya cocokan dengan fungsi korelasi yang sudah ada di software/aplikasi R. Langsung saja kita coba fungsi di bawah ini dan melihat hasilnya : 

> korelasi <- function(x,y){
+   n <- length(x)
+   df <- n-2
+ r <- ((n*(sum(x*y)))-((sum(x))*(sum(y))))/(sqrt(((n*(sum(x^2)))-((sum(x))^2))*((n*(sum(y^2)))-((sum(y))^2))))
+ t_hitung <- (r*(sqrt(n-2)))/(sqrt(1-(r^2)))
+ print(paste("t =",t_hitung," df =",df))
+ print(paste("Korelasi =",r))
+ }
>

Selanjutnya kita buat dan masukkan kedua variabel tersebut (variabel A dan variabel B) ke dalam fungsi yang telah kita buat, lalu jalankan (run) fungsi yang telah kita buat dan melihat hasilnya, Apakah sama dengan fungsi yang sudah ada di R ?

> A <- c(2,3,4,5,3,2,1,4,5,6)
> B <- c(5,8,9,14,7,6,3,9,13,15)
>
> korelasi(a,b)
[1] "t = 8.99653065227508  df = 8"
[1] "Korelasi = 0.953965018411122"
>
> cor.test(a,b)

Pearson's product-moment correlation

data:  a and b
t = 8.9965, df = 8, p-value = 1.858e-05
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.8121492 0.9893479
sample estimates:
     cor 
0.953965 


Karena hasilnya sudah sama persis maka fungsi di atas sudah benar untuk menguji dan mencari nilai dari koefisien korelasi dari variabel yang telah kita buat. Untuk nilai p-value nya teman-teman cari sendiri yah, lumayan untuk belajar trus cocokin deh hasilnya.
Nah, teman-teman bisa mengembangkan lagi fungsi di atas sesuai keinginan dan kebutuhan teman-teman sendiri.
Terima Kasih...

Jumat, 06 Januari 2017

Program Membuat Menu Mean (Rata-rata), Modus, Median, Variance, Standart Deviasi, Sort (Pengurutan) dengan Pascal

Hai teman-teman
Sekarang saya akan membagikan tugas akhir dari mata kuliah Algoritma Pemrograman saat saya masih semester 2. Program ini menggunakan bahasa Pascal yang berisi sebuah Menu untuk membantu pengguna mencari suatu nilai statistik dari rata-rata, modus, median, standart deviasi, dll. Nah, langsung saja kita lihat dan coba syntax di bawah ini....

program oi;
uses crt;

type data=array[1..100] of integer;
var
 i,n,j:integer;
 a:data;


     procedure menu;
     begin
      clrscr;
       gotoxy(20,5);  writeln('|------------------------|');
       gotoxy(20,6);  writeln('|          MENU          |');
       gotoxy(20,7);  writeln('|========================|');
       gotoxy(20,8);  writeln('|                        |');
       gotoxy(20,9);  writeln('|    1. Mean             |');
       gotoxy(20,10); writeln('|    2. Modus            |');
       gotoxy(20,11); writeln('|    3. Median           |');
       gotoxy(20,12); writeln('|    4. Variance         |');
       gotoxy(20,13); writeln('|    5. Standart Deviasi |');
       gotoxy(20,14); writeln('|    6. Pengurutan       |');
       gotoxy(20,15); writeln('|    7. Input data       |');
       gotoxy(20,16); writeln('|    8. exit             |');
       gotoxy(20,17); writeln('|                        |');
       gotoxy(20,18); writeln('|========================|');
      end;


        procedure menu2;
        var k:byte;
        begin
         writeln;
         writeln('----------------');
         writeln(' 9. Menu');
         readln(k);
          if k<>9 then
            begin
            repeat
              writeln('Ulangi');
              readln(k);
             until k=9;
             menu;
             end
          else
           menu;
        end;


        procedure tampil;
        begin
         write('Menampilkan Data:  ');
         for i:=1 to n do
         begin
          write(a[i],' ');
         end;
         writeln;
         writeln;
        end;


       procedure input;
       begin
        writeln('   INPUT DATA   ');
        writeln('==================');
        write('Masukkan Banyak Data: '); readln(n);
        writeln;
         for i:=1 to n do
         begin
          write(' Data ke-',i,' : '); readln(a[i]);
         end;
       end;


       procedure urut1;
       var z:integer;
       begin
        for i:=1 to n-1 do
         begin
          for j:=n downto i+1 do
           begin
            if a[j] < a[j-1] then
             begin
              z:=a[j];
              a[j]:=a[j-1];
              a[j-1]:=z;
             end;
           end;
         end;
       end;


       procedure urut2;
       var z:integer;
       begin
        for i:=1 to n-1 do
         begin
          for j:=n downto i+1 do
           begin
            if a[j] > a[j-1] then
             begin
              z:=a[j];
              a[j]:=a[j-1];
              a[j-1]:=z;
             end;
           end;
         end;
       end;


       procedure menuurut;
       var pil:byte;
       begin
        write('Masukkan Pilihan: '); readln(pil);
        case pil of
         1: begin
            clrscr;
            tampil;
            urut1;
             for j:=1 to n do
              begin
               write(a[j],' ');
              end;
              menu2;
             end;
         2: begin
             clrscr;
             tampil;
             urut2;
              for j:=1 to n  do
              begin
               write(a[j],' ');
              end;
             menu2
            end;
         end;
        end;


       function median:real;
       var letak:integer;
       begin
        letak:=(n+1) div 2;
        begin
         if n mod 2=0 then
          median:=(a[letak]+a[letak+1]) div 2
         else
          median:=a[letak];
        end;
       end;


       function mean:real;
       var jum:integer;
       begin
        jum:=0;
         for i:=1 to n do
          begin
          jum:=jum+a[i];
          end;
          mean:=jum/n;
       end;


       function varian:real;
       var jum,rata:real;
       begin
        jum:=0;
        rata:=mean;
        for i:=1 to n do
         begin
         jum:=jum+sqr(a[i]-rata);
        end;
         varian:=jum/(n-1);
       end;


       function std:real;
       var variance:real;
       begin
        variance:=varian;
        std:=sqrt(variance);
       end;


       function modus:integer;
       type dus=array[1..100] of integer;
       var mo:dus;
       begin
        for i:=1 to n do
         begin
         mo[i]:=0;
         for j:=i+1 to n do
          begin
           if a[i]=a[j] then
           mo[i]:=mo[i]+1;
          end;
         end;
         for i:=1 to n do
         begin
          if mo[i]>0 then
           modus:=i;
         end;
       end;



 var
  batas:integer;
  pilih:byte;
 begin
 clrscr;
  input;
  menu;

  repeat
   gotoxy(22,20); write(' Masukkan Pilihan: '); readln(pilih);
   case pilih of
   1: begin
       clrscr;
       tampil;
       writeln('****************');
       writeln('|      MEAN     |');
       writeln('================');
       writeln('    ',mean:0:2);
       menu2;
      end;

   2: begin
       clrscr;
        tampil;
        writeln('******************');
        writeln('|      MODUS     |');
        writeln('==================');
        writeln('     ',a[modus]);
        menu2;
      end;

   3: begin
       clrscr;
        tampil;
        urut1;
        writeln('*******************');
        writeln('|      MEDIAN     |');
        writeln('===================');
        writeln('      ',median:0:1);
        menu2;
      end;


   4: begin
        clrscr;
        tampil;
        writeln('*****************');
        writeln('|    VARIANCE   |');
        writeln('=================');
        writeln('     ',varian:0:2);
        menu2;
      end;

   5: begin
       clrscr;
       tampil;
       writeln('********************');
       writeln('| Standart Deviasi |');
       writeln('====================');
       writeln('        ',std:0:2);
       menu2;
     end;

   6: begin
       clrscr;
        tampil;
        writeln(':=================:');
        writeln('|    Pengurutan   |');
        writeln('|=================|');
        writeln('|  1. Ascending   |');
        writeln('|  2. Descending  |');
        writeln('|=================|');
        writeln;
       menuurut;
     end;

   7: begin
       clrscr;
       input;
       writeln;
       menu;
      end;


   8: exit;
   end;
   until batas=8;
 end.


Silahkan teman-teman coba sendiri program di atas, semoga bermanfaat.
jangan lupa coment untuk saran dan pesan :D
Terima Kasih...

Fungsi Mencari Median Data (Function of Find Median in data) menggunakan R

Hai, teman-teman...
saat ini saya akan mencoba mempost fungsi untuk mencari median dari suatu data dengan menggunakan program R. sebelum masuk ke fungsinya saya akan menjelaskan tentang median terlebih dahulu. pasti teman-teman sudah tau apa itu median data, ya median adalah suatu nilai yang posisinya di tengah dari sebuah data.

di bawah ini adalah ALGORITMA dari fungsi median sendiri :
1. pastinya kita harus memiliki data dahulu, seperti contoh di bawah kita memiliki data yang elemen-elemen atau nilai nya yaitu 4,3,5,7,8,6,4,3,2,9,1
2. langkah yang pertama kita harus mengurutkan terlebih dahulu data tersebut
3. setelah diurutkan maka kita mencari banyak elemen dari data tersebut, gunanya untuk membedakan antara median data ganjil, dan median data genap,
4. setelah itu kita buat dua kondisi untuk banyak elemen dari data ganjil dan genap untuk menentukan posisi dari median data kita. contoh di atas yaitu banyak elemen dalam datanya adalah ganjil.
5. lalu setelah itu kita bisa cari mediannya.

Langsung saja kita lihat dan coba fungsi median di bawah ini :

> data <- c(4,3,5,7,8,6,4,3,2,9,1)
> #########################
> # fungsi mencari Median # 
> #########################
> med <- function(a) {
+     n <- length(a)
+     urut <- sort(a)
+     if (n%%2==0){ 
+       letak <- n%/%2 
+       med <- (urut[letak]+urut[letak+1])/2}
+     else if (n%%2==1) {
+       letak <- (n+1)%/%2
+       med <- (urut[letak])
+     }
+     return(med)
+   }

> med(data)
[1] 4
> median(data)  #fungsi yang sudah ada di dalam Program untuk mencari median data#
[1] 4
>

karena hasil dari fungsi di atas dan hasil dari fungsi yang ada di R sudah sama maka fungsi di atas sudah benar.
Terima kasih.... :)

Fungsi Penjumlahan, Rata-rata, dan Standart Deviasi menggunakan Program R

hallo teman-teman sekarang saya akan membuat beberapa fungsi (fungsi penjumlahan, rata-rata, dan standar deviasi) sendiri yang bukan merupakan fungsi asli yang terdapat di dalam program R. Dan akan saya cocokkan hasilnya dengan fungsi yang sudah ada di dalam program R. Jika hasilnya sudah sama, maka fungsi yang saya buat sudah tepat. langsung saja kita lihat di bawah ini.


> ## function ##

> b <- c(1,2,3,4,5,6,7,8,9,0)

> ######################
> ##fungsi penjumlahan##
> ######################
> jumlah <- function(a){
+ jumlah <-0
+ n <- length(a)
+ for (i in 1:n) {
+ jumlah <- jumlah+a[i]
+ }
+ return(jumlah)
+ }
> jumlah(b)
[1] 45
> sum(b)
[1] 45

> ####################
> # fungsi rata-rata #
> ####################
> rata <- function(a)
+ {
+   rata=jumlah(a)/length(a)
+   return(rata)
+ }
> rata(b)
[1] 4.5
> mean(b)
[1] 4.5

> ###########################
> # fungsi standart deviasi #
> ###########################
> stdev <- function(a)
+ {
+   n <- length(a)
+   apa <- c()
+   for(i in 1:n) {
+     apa[i] <- (a[i]-rata(a))^2
+   }
+    var <- sum(apa)/(n-1)
+     stdev <- sqrt(var)
+   return(stdev)
+ }
> stdev(b)
[1] 3.02765
> sd(b)
[1] 3.02765
>


Karena hasil dari masing-masing fungsi yang saya buat sudah sama dengan fungsi yang ada di dalam R, maka fungsi yang saya buat sudah tepat dan benar. teman-teman juga dapat mengembangkan fugsi-fungsi di atas menjadi lebih simpel dan unik.
Terima kasih.

Tentang Software dan Bahasa Pemrograman R

R merupakan salah satu dari sekian banyak bahasa pemrograman. Program R bisa digunakan untuk melakukan analisis-analisis tentang statistik dari mulai analisis deskriptif hingga analisis inferensia, intinya program R ini dibuat untuk memudahkan user dalam mencari atau menentukan nilai-nilai dari proses statistik. Terdapat banyak fitur-fitur yang bisa membantu kita dalam menjalankan program ini, sehingga menjadi lebih mudah.  
Langsung saja ke beberapa contoh simpel penggunaannya: 

##Penjumlahan##

> x <- 5
> y <- 8
> z <- x+y
> z
[1] 13


>
> ##Vector##
> a <- c(1,2,3,4,8,3,2)
> a
[1] 1 2 3 4 8 3 2
> sort(a)
[1] 1 2 2 3 3 4 8


> 5*a
[1]  5 10 15 20 40 15 10

Syntax di atas adalah beberapa contoh simpel dalam menjalankan program R. Program R ini juga memiliki banyak kelebihan salah satunya yang membuat saya tertarik adalah untuk big data. jika teman-teman ingin menginstal software R silahkan klik link di bawah.

R Studio (https://www.rstudio.com/products/rstudio/download/)

RCommander (http://jekyll.math.byuh.edu/other/howto/R/Rcmdr.shtml)

tertarik untuk belajar menggunakannya. ikuti terus updatan di blog ini
selamat belajar....

Senin, 14 Desember 2015

Program Pengurutan Data Menggunakan Bubble Sort (Pascal)

program Pengurutan_data;
uses crt;

type data=array[1..100] of integer;
var
 i,n,j:integer;
 a:data;

        procedure bubble;
        var temp:integer;
        begin
         for i:=1 to n-1 do
          begin
           for j:=n downto i+1 do
            begin
             if a[j] < a[j-1] then
             begin
              temp:=a[j];
              a[j]:=a[j-1];
              a[j-1]:=temp;
             end;
            end;
          end;
        end;

begin
clrscr;
 write('masukkan banyak data: '); readln(n);
 writeln;
 for i:=1 to n do
  begin
   write('data ke-',i,' : '); readln(a[i]);
  end;
  writeln('*************************');
   for i:=1 to n do
   begin
    write(a[i],' ');
   end;
   writeln;
   bubble;
    writeln('-------------------------');
    write('Data Urut: ');
      for j:=1 to n do
       write(a[j],' ');
  readln;
end.

Program Mencari Bilangan Ganjil dan Genap (pascal)

hallo teman-teman apa kabarmu?
sekarang saya akan mempost program untuk mencari bilangan ganjil dan genap menggunakan Pascal. langsung saja kita lihat syntax di bawah ini....



program bilGanjilGenap;
var
 angka : integer;
begin
 clrscr;
  write('masukkan angka: '); readln(angka);
  if angka mod 2=0 then
    write('genap')
  else
    write('ganjil');
  readln;
end.



teman-teman bisa myakinkan hasilnya dengan mencobanya,
Terima kasih...