Sunday, February 24, 2019

#Belajar-R: Uji Beda Rata-Rata Satu Sampel (One Sample T Test)


Uji beda rata-rata satu sampel (One Sampel T-Test) bertujuan untuk melihat perbedaan rata-rata suatu kelompok sampel dari suatu populasi dibandingkan dengan sebuah konstanta tertentu.
Misalkan Dinas Pendidikan Kabupaten Magelang ingin mengetahui apakah rata-rata nilai Bahasa Inggris murid kelas 12 SMA Budikarya lebih dari 80 atau tidak. Oleh karena itu, tim dari dinas pendidikan Kabupaten Magelang mengambil 71 sampel murid kelas 12 secara acak. Adapun datanya bisa diunduh disini Download Data.

Setelah mendapatkan data sampel nilai Bahasa Inggris dari 71 murid kelas 12, sekarang tim dari Dinas Pendidikan harus dapat menguji secara statistik apakah rata-rata nilai Bahasa Inggris murid kelas 12 SMA Budikarya di atas 80 atau tidak.

Adapun metode statistik yang akan digunakan oleh tim dari Dinas Pendidikan Kabupaten Megelang adalah uji beda rata-rata satu sampel (One Sample T-Test). Tim menggunakan uji ini karena sampelnya berasal dari satu populasi, yaitu murid kelas 12 SMA Budikarya. Berbeda cerita kalau tim dari Dinas Pendidikan ingin membandingkan nilai murid kelas 12 SMA Budikarya dengan SMA Panjiwa, maka metode yang digunakan adalah uji beda rata-rata dua sampel independen. Berbeda kasus lagi jika yang ingin dibandingkan adalah nilai rata-rata pelajaran Bahasa Inggris kelas 12 SMA Budikarya sebelum diadakannya tambahan belajar dan setelah adanya tambahan belajar, maka uji yang kita gunakan adalah uji beda rata-rata dua sampel berpasangan (paired two sample t-test).

Okay, baiklah, langsung saja kita melakukan uji statistik one sample t-test dengan menggunakan program R. Pertama-tama kita import dulu data yang kita punya. Datanya bisa diunduh di sini ya.
Sebelum kita membahas one sample t-test lebih jauh, perlu kita ketahui syarat suatu data dapat dianalisis menggunakan t-test, yaitu:
  1. Data kuantitatif
  2. Berdistribusi normal

So, sebelum kita melakukan analisis statistik lebih jauh, terlebih dahulu kita harus memastikan bahwa data yang akan kita olah memiliki distribusi normal. Untuk mengujinya, kita akan menggunakan metode Quantile-Quantile Plot (QQ Plot).



Cara untuk menentukan bahwa nilai Bahasa Inggris mengikuti distribusi normal atau tidak adalah dengan cara mengidentifikasi sebaran titik-titik apakah berada disekitar garis atau tidak. Jika mayoritas berada di sekitaran garis, bisa jadi nilai Bahasa Inggris mengikuti distribusi normal, dan sebaliknya.

Gimana? Kalian ragu-ragu menarik kesimpulan? Tenang aja. Agar kalian lebih yakin, kita dapat menggunakan uji Shapiro Wilk untuk memastikan kalau data nilai Bahasa Inggris mengikuti pola distribusi normal atau tidak.



Dari uji Shapiro Wilk di atas, kita mendapatkan p-value 0,06. Dengan hasil tersebut  (p-value ≥ 0,05) kita dapat menarik kesimpulan bahwa data nilai Bahasa Inggris kelas 12 SMA Budikarya mengikuti pola distribusi normal.

Setelah itu, langkah selanjutnya yang akan kita lakukan adalah menentukan hipotesis yang akan kita gunakan.

Atau lebih kerennya, kita dapat menulisnya seperti ini:

Setelah membuat hipotesis, kita lanjut ke analisis statistiknya. Karena kita ingin mengetahui apakah nilai rata-rata pelajaran Bahasa Inggris murid kelas 12 lebih dari 80 atau tidak, maka kita menggunakan one tailed test.



Keterangan fungsi di atas:
  1. alternatif : Apakah kita akan menggunakan one tailed test (less or greater) atau two sided test.
  2. mu          : Konstanta yang ingin kita bandingkan dengan rata-rata nilai Bahasa Inggris murid                       kelas 12
  3. conf        : Tingkat kepercayaan yang kita inginkan, 95%

Hasilnya adalah sebagai berikut:

Jika dilihat dari nilai p-value (9,319e-12) yang lebih kecil dari α (0,05), maka keputusan yang diambil adalah terima Ho.
Adapun kesimpulannya adalah nilai rata-rata pelajaran Bahasa Inggris murid kelas 12 SMA Budikarya kurang dari 80.

Okay, contoh di atas merupakan contoh yang menggunakan one tailed test. Lalu bagaimana dengan yang two sided test? Kalau yang two sided test, berarti kita ingin mengetahui apakah rata-rata nilai Bahasa Inggris murid kelas 12 SMA Budikarya adalah 80? Oleh karenanya, hipotesisnyapun berbeda dengan yang sebelumnya. Hipotesis yang sekarang adalah :
Adapun fungsi untuk uji t-test adalah:


Adapun hasilnya adalah sebagai berikut:
Karena p-valuenya lebih kecil dari 0,05 (1,86e-11 <0,05) maka keputusan kita adalah menolak Ho. Itu berarti kesimpulannya adalah rata-rata nilai Bahasa Inggris murid kelas 12 SMA Budikarya tidak sama dengan 80.

Bagaimana? Mudahkan? Cukup segini dulu ya materi kali ini. Jika ada yang belum jelas, bisa tanyakan lewat kolom komentar atau kirim email langsung. Sekian dan terima kasih.

Saturday, February 16, 2019

#Belajar-R: Membuat Diagram Batang (Barplot)


Hallo friends, setelah kemarin kita membahas pembuatan scatter plot, sekarang ini kita akan membahas bagaimana membuat diagram batang (barplot) dan diagram pie (pie chart) dengan menggunakan program R. Data yang kita gunakan masih sama seperti kemarin, yaitu data nilai. Jika ada yang belum mempunyai, silakan download di sini Download Data.



Tugas kita kali ini adalah membuat grafik sebaran jumlah siswa per kategori (sangat kurang, kurang, cukup, baik, sangat baik, dan istimewa). Pengelompokan siswa tersebut berdasarkan nilai rata-rata ketiga mata pelajaran. Oleh karena itu, untuk dapat mengelompokkan siswa kedalam kategori-kategori tersebut, kita perlu terlebih dahulu melakukan perhitungan rata-rata nilai dari ketiga mata pelajaran per siswa.

Setelah kita memperoleh nilai rata-rata persiswa, kita akan kelompokkan menjadi 6 kategori:


Adapun fungsi yang kita gunakan untuk mengelompokkan rata-rata nilai ke dalam kelompok tersebut, kita dapat memanfaatkan fungsi cut. Fungsi cut sudah kita pelajari kemarin, silakan simak dipostingan berikut Mengubah Data Numerik Menjadi Kategorik.


Hasil dari pengelompokannya adalah sebagai berikut:

Baiklah, kita mulai saja membahas bagaimana cara membuat diagram batang atau istilah kerennya barplot.

Fungsi yang akan kita gunakan adalah barplot.
>barplot(data frame, label sumbu x, label sumbu y, rentang sumbu y)




Bagaimana? Mudah kan?

Okay, sekarang kita mulai membuat barplot yang lebih kompleks. Sebelum kita memulainya, kita harus mengimput data baru agar latihan ataupun contoh yang diberikan relevan dengan apa yang akan kita pelajari.

Pak Jono selama empat tahun terakhir memelihara ayam dan bebek di pekarangan rumahnya. Jumlahnya adalah sebagai berikut:

Sekarang, tugas kita adalah membuatkan pak Jono diagram batang (barplot) yang dapat menggambarkan jumlah unggas (ayam dan bebek) yang dipeliharanya selama empat tahun terakhir. Setidaknya ada dua opsi diagram batang yang dapat kita buat.


Opsi pertama yang dapat kita pilih adalah dengan membuatkannya barplot berpasangan. Begini hasilnya:


Adapun fungsi yang kita gunakan adalah sebagai berikut:



Kunci dalam membuat barplot perpasangan seperti diatas adalah fungsi beside=TRUE yang berarti barplot-nya akan tersusun berhimpitan sesuai dengan variabelnya (ayam dan bebek). Untuk masalah warna, kita dapat merubahnya sesuai dengan apa yang kita inginkan. Tinggal tulis saja dalam fungsi col=c(“…””…”).

Selanjutnya, kita akan menyisipkan legenda untuk mempermudah pembaca dalam membaca diagram batang kita. Caranya adalah dengan memanfaatkan fungsi legend.

            >Legend(“posisi legenda”, c(“legenda yang mau ditampilkan”), fill=c(“warna”)

Ingat! Keterangan legenda dan warna harus sinkron alias merepresentasikan apa yang ada di dalam diagram batang. Jangan sampai di diagram batang warna kuning sebenarnya menunjukkan tahun 2016 tetapi dilegenda ditulis warna kuning menunjukkan tahun 2018.

Opsi kedua yang dapat kita buat untuk menggambarkan jumlah ternak pak Jono adalah dengan menjumlahkan ternak ayam dan bebek pertahun. Seperti ini diagram batangnya guys:


Adapun fungsi yang digunakan adalah sebagai berikut:

Nggak kelihatan ya? Hehehe. Tenang, biar jelas saya tuliskan.
       >barplot(t(unggas), main="Jumlah Unggas yang dimiliki Pak Jono", xlab="Tahun",  col=c("red", "yellow", "Purple", "blue"), ylab="Jumlah", names.arg=c("2015", "2016", "2017", "2018"))


Jika diagram batang yang pertama tadi (barplot berpasangan), sumbu x merupakan jenis unggas (ayam dan bebek), digram batang yang kedua ini, sumbu x nya menunjukkan tahun. Jadi di diagram batang yang kedua ini dapat menunjukkan total unggas peliharaan pak Jono selama satu tahun.

Adapun perbedaan fungsi antara keduanya adalah:
  1. Fungsi beside=TRUE kita hilangkan,
  2. Di diagram batang yang kedua ini, kita mentranspose data yang sebelumnya sumbu x-nya adalah jenis unggas, kita ganti menjadi tahun. Caraya adalah dengan menuliskan fungsi transpose didepan data set yang kita miliki t(unggas).
  3. Kita juga harus mencantumkan keterangan di sumbu x untuk setiap batang di diagramnya dengan cara menggunakan fungsi names.arg=c(“…”, “….”). Nama yang kita cantumkan dalam fungsi names.arg harus sama dengan jumlah batang di diagram.


Bagaimana guys, sudah jelaskan? Jika ada pertanyaan, silakan tulis di kolom komentar atau email langsung ke saya. Sekian dulu materi kali ini. Sampai berjumpa dimateri yang lain.

Sunday, February 3, 2019

#Belajar-R: Menghapus dan Menambah Baris atau Kolom


Dipostingan kali ini, saya akan membahas cara untuk menambah ataupun menghapus data, baik itu mau menghapus kolom ataupun baris. Seringkali ketika kita mengolah data, kita menemukan data yang tidak layak untuk turut serta dianaisis entah itu karena outlier yang parah sehingga akan merusak model, ataupun datanya kurang lengkap. Berikut ini saya share cara untuk menghapus baris dan kolom.

Tentunya, kita import dulu data nilai yang telah diunduh tadi. Caranya dapat dibaca di Managemen Data.


Inilah tampilan data semula. Total ada 71 siswa.
Pertama, kita akan mencoba menghapus beberapa baris., yaitu seluruh siswa kelas IPA2. Iya semuanya! Bagaimana caranya? Caranya adalah dengan memanfaatkan fungsi “-c ( )”. Teman-teman ingat nggak apa itu fungsi c( )”? Yups, fungsi tersebut merupakan fungsi untuk menggabungkan elemen-elemen menjadi vektor. Berarti kalo didepan “c” dikasih tanda minus “-“, itu tandanya elemen dikeluarkan dari vektor.


Oke, kita langsung saja mulai menghapus seluruh data siswa kelas IPA2. Sebelumnya, kita harus mengetahui siswa kelas IPA6 berada diurutan ke berapa saja. Dalam kasus kita, daftar siswa kelas IPA2 berada di rentang 11-22. Let’s rock guys!


fungsi yang kita gunakan : >semester <- semester[-c(11:22),)
NB: Jangan lupa koma sebelum kurung tutup terakhir. Kalau tidak dikasih tanda koma, maka fungsi             tidak akan jalan.

Inilah data setelah data siswa IPA2 dihilangkan.
Sekarang, kita akan menghilangkan kolom kelas.

Fungsi yang kita gunakan : >semester$kelas=NULL

Variabel kelas sudah hilang.


Bagaimana? Mudahkan?
Mari kita lanjutkan materinya. 
Kalau kita sudah tau bagaimana cara menghapus baris dan kolom, sekarang kita belajar cara menambah baris. Adapaun fungsi yang akan kita gunakan adalah fungsi “cbind”. Kalo feeling saya sih, cbind ini merupakan singkatan dari combine. Gimana? Maksa banget ya? Lha terus “d” asal mulanya dari mana dong? Saya enggak tau, nggak bisa menebaknya Hahaha.
Oke, kita langsung praktikkan saja ya. Kali ini, saya mau menambahkan satu murid baru bernama Sun.
Pertama, kita embuat data frame baru dengan cara memanfaatkan fungsi "data.frame". Intinya, kita membuat data frame yang isinya cuma data dari siswa dengan nama Sun, beserta seluruh nilai-nilainya secara berurutan. Setelah itu, data frame baru yang saya beri nama newRow, kita gabung dengan data frame kita yang lama, yaitu semester.

 Lebih jelasnya, bisa dilihat digambar berikut. 

Cara menambah baris baru
Akhirnya Sun sudah tercatat di data frame yang baru

Bagaimana? Gampangkan? Itulah cara untuk menghapus kolom ataupun baris dan menambah baris dengan menggunakan applikasi R. Semoga sharing knowledge kali ini bermanfaat bagi semua. Untuk lebih mendalami cara-cara menganalisis data dengan program R, teman-teman dapat membaca dipostingan #belajar-R yang lainnya di blog ini. Terimakasih.

 Sumber Referensi

Pramana, Setia, dkk.2017.Dasar-Dasar Statistika dengan Software R Konsep dan Aplikasi Edisi ke Dua.Bogor.In Media.
Budiharto, Widodo dan Rachmawati, Ro’fah.2013.Pengantar Praktis Pemrogaman R untuk Ilmu Komputer.Jakarta.Halaman Moeka.
Maindonald, J.H.2008.Using R for Data Analysis and Graphics Introduction, Code and Commentary.Australia.Australian National University