Distribusi Frekuensi, Mean Data dan Variansi Data pada Matlab
Table of Contents
Bagian dari ilmu komputer yang wajib dikuasai oleh mahasiswa teknik informatika adalah ilmu statistika. Saya baru mendapatkan mata kuliah ini di semester V. Materi statistika pertama yang saya dapatkan adalah tentang distribusi frekuensi, mean data, mean data kumulatif (K), variansi data dan variansi data kumulatif. Bagaimana penjelasan teorinya ?
Penjelasan teori masing-masing pembahasan dapat teman-teman cari sendirilah, yang akan saya bahas adalah implementasi masing-masing pembahasan pada matlab.
Penjelasan teori masing-masing pembahasan dapat teman-teman cari sendirilah, yang akan saya bahas adalah implementasi masing-masing pembahasan pada matlab.
Sebelum masuk ke proses pemrogramannya, terlebih dahulu kita menentukan data penelitian yang akan kita ukur. Saya mengambil data gambar "Bakso Ayam" dan "Bakso Sapi" untuk diambil pengukurannya. berikut adalah foto-foto objek yang telah tersedia
Gambar bakso sapi
Gambar bakso ayam
Perlu diketahui bahwa dikumpulkannya objek berbeda "bakso ayam" dan "bakso sapi" dengan tujuan diambil data pengukurannya dan disimpan dalam suatu database. Hasil pengukuran database tersebut digunakan untuk "Identifikasi Bakso Ayam atau Bakso Sapi" ketika ada suatu bakso diinputkan.
Disktribusi Frekuensi
Oke, langsung saja. Proses pertama adalah mengukur Distribusi Frekuensi untuk mendapatkan interval, median (m), frekuensi (f), frekuensi relatif (fr), dan frekuensi kumulatif (fk). Source code program matlab untuk membuat distribusi frekuensi seperti dibawah ini :
%Algoritma Distribusi Frekuensi function [interval, m,f,fr,fk] = TDistribusiFrekuensi(x,k) %membuat vektor, ada baris dan kolom [n,m] = size(x) ; n m %input %output %asumsi x_min = min(x); x_max = max(x); R = x_max - x_min ; i = (R/k) + 0.000001 ; i = ceil(i) ; % ceil berfungsi untuk pembulatan keatas for q = 1:k+1 interval(q) = x_min + (q-1) * i ; end for q = 1:k m(q) = interval(q) + 0.5 * i ; f(q) = 0 ; end for p = 1:n for q = 1:k if x(p) >= interval(q) & x(p) < interval(q+1) f(q) = f(q)+1 ; end end end %frekuensi relatif for q = 1:k fr(q) = f(q) /n ; end %frekuensi kumulatif fk(1)=f(1) ; for q = 2:k fk(q) = fk(q-1) + f(q) ; end endSimpan kode diatas dalam folder directory. Bagaimana menjalankannya? ketikkan kode berikut simpan dengan nama proses, harus satu folder dengan Distribusi Frekuensi.
BaksoAyam = strcat('1.JPG');
RGB_BaksoAyam = imread(BaksoAyam) ; Gray_BaksoAyam = rgb2gray(RGB_BaksoAyam) ; [n,m] = size(Gray_BaksoAyam) ; imageBA = reshape(Gray_BaksoAyam,n*m,1) ; imageBA = double(imageBA) ; [interval, m,f,fr,fk] = TDistribusiFrekuensi(imageBA,5) ; interval m f fr fk clear
kode pertama yang berisikan BaksoAyam = strcat('1.JPG'); adalah mengambil gambar bakso ayam yang saya namai 1.jpg, teman-teman dapat menggantinya sesuai dengan data pengamatan masing-masing. Panggil pada command window matlab, dan hasilnya seperti ini
Mean Data
Ketika dijalankan, Hasilnya dapat dilihat seperti berikut,Mean Data
%inputnya = data array x[1....n] %outputnya = mean (rata-rata data) function[mean] = MeanData(x) jumlah = 0 ; [n,m] = size(x) ; for i = 1: n jumlah = jumlah+x(i); end mean = jumlah / n ; endProses pemanggilan kode Mean diatas sama saja dengan proses pemanggilan DistribusiFrekuensi, tinggal mengganti beberapa baris kode seperti berikut :
BaksoAyam = strcat('1.JPG'); RGB_BaksoAyam = imread(BaksoAyam) ; Gray_BaksoAyam = rgb2gray(RGB_BaksoAyam) ; [n,m] = size(Gray_BaksoAyam) ; imageBA = reshape(Gray_BaksoAyam,n*m,1) ; imageBA = double(imageBA) ; MeanData(imageBA)
Mean Data K
%input = Array (m[1..k],f[1..k],fk[k]) %output : mean (rata-rata) function mean = MeanDataK(m,f,fk,k) jumlah = 0 ; for i = 1 : k jumlah = jumlah + m(i)*f(i); end mean = jumlah/fk(k) ; end
Silakan berusaha sendiri bagaimana cara menjalankan programnya... (^_^), lihat inputan parameter untuk menjalankan Mean Data K, yang dibutuhkan adalah m,f,fr,fk yang semuanya dapat diperoleh dengan Distribusi Frekuensi. Silakan dicoba !
Variansi Data
function variansi = VariansiData(x) mean = MeanData(x) jumlah = 0 ; [n,m] = size(x); for i = 1 : n jumlah = jumlah + (x(i)^2); end variansi = (jumlah - n*(mean^2))/(n-1); endSilakan dicoba sendiri cara runningnya.... (^_^)
Variansi Data K
function variansi = VariansiDataK(m,f,fk,k) mean = MeanDataK(m,f,fk,k) ; jumlah = 0 ; for p = 1: k jumlah = jumlah + f(p) * (m(p)^2) ; end variansi = (jumlah-fk(k)*(mean^2))/(fk(k)-1) ; end
Pasti udah bisa cara running kan?
Saya harap, dari sekian banyak source code yang saya contohkan, sebisa mungkin jangan mengcopy-paste begitu saja, pasti teman-teman gak bakalan tahu bagaimana alur programnya. Harus ketik sendiri ya? Programmer harus terbiasa ngetik biar tangannya keriting, hehehe
Implementasi pada program
Berikut ini saya contohkan bagaimana menerapkan distribusi frekuensi, mean data, mean data K, variansi data dan variansi data K pada program berbasis GUI menggunakan Matlab. Tampilan berikut adalah main utama program ketika dijalankan.
Pertama, kita akan memilih foto bakso yang akan kita identifikasi. Kita klik button "ambil" yang berada di panel input. Setelah diklik akan keluar tab baru untuk memilih, lalu pilih bakso yang berada pada direktori, maka muncullah gambar bakso sesuai dengan apa yang kita pilih:
Selanjutnya kita klik button distribusi frekuensi, untuk menghitung nilai k, m, f, fr, dan fk. Saat kita klik button tersebut, maka akan keluar kotak input dialog yang berfungsi untuk memasukkan nilai K (interval) nya. Silahkan isi input dialog tersebut dengan nilai sesuai dengan keinginan teman-teman (direkomendasikan nilai = 5). Lihat gambar di bawah
kami menggunakan angka 5 sebagai nilai K intervalnya. Maka akan muncul nilai seperti gambar dibawah ini
Berikutnya yaitu menghitung nilai Mean Datanya. Oleh karenanya silahkan klik button Mean data. Maka hasil dari perhitungan tersebut akan keluar di form panel mean data. Begitu seterusnya hingga button Variasi data K, yang nilainya akan muncul sesuai dengan button yang dipilih. Lihat gambar di bawah ini
Kelanjutan dari program diatas adalah menentukan hasil identifikasi dari gambar bakso yang diinputkan apakah termasuk dalam kategori bakso ayam atau bakso sapi menggunakan metode bayesian dan metode diskriminan, saya jelaskan pada posting berikut : Identifikasi Bakso Ayam dan Bakso Sapi yang juga saya tambahkan untuk link download programnya.
Saya mengharapkan agar program dan metode-metodenya dapat dikembangkan secara bebas oleh teman-teman untuk kemajuan ilmu pengetahuan yang memberikan manfaat bagi masyarakat.
Sekian dulu apa yang dapat saya berikan untuk teman-teman, semoga bermanfaat dan menambah wawasan kita semua. Amin
Written By