K-Means Clustering with Matlab

Data Mining/01.04.2013/Sistem Informasi

You can see the explanation: http://en.wikipedia.org/wiki/K-means_clustering. K-means is hard-clustering that different with Fuzzy C-Means that Soft-Clustering.

File – New – GUI. Make a design below.

Save yout GUI.

Fill script to function ambildata_Callback:

  • data=uigetfile(‘*.xlsx’)
  • set(handles.data,‘String’,data)
  • X=xlsread(data)
  • handles.X=X
  • guidata(hObject,handles)

 

Look at command window to see the result

Script function data_Callback (text box of number of cluster)

Make sure k and handles.k appear in Command Window.

IDX and C the result of kmeans function that state index of every record and center of cluster respectively.

Look at how to create excel file with function xlswrite. There are two sheets: hasil and kluster. Use “set” for sending result to edit text ipa1, ipa2, ips1, and ips2 at GUI.

You can add axes to show the result graphically.

  • %buat grafik
  • ukuran=size(hasil)
  • jlhdata=ukuran(1,1)
  • axes(handles.axes1)
  • hold
  • for i=1:jlhdata
  • if hasil(i,3)==1
  • plot(hasil(i,1),hasil(i,2),‘*r’)
  • else
  • plot(hasil(i,1),hasil(i,2),‘*b’)
  • end
  • end
  • plot(C(1,1),C(1,2),‘ok’)
  • plot(C(2,1),C(2,2),‘ok’)

Next week we’ll discuss Fuzzy C-Means Clustering.

K-Nearest Neighborhood Classification with Matlab

Data Mining/25.03.2013/Sistem Informasi – S1

K-nearest Neighborhood (K-NN) adalah salah satu teknik klasifikasi yang sudah ada sejak dulu. Teknik ini memiliki prinsip kerja menemukan tetangga terdekat terhadap sampel daya yang akan diuji. Jika tetangga terdekatnya masuk dalam kategori kelas “A”, maka sample tersebut dapat dikatakan kelas “A”.

K-NN menggunakan teknik perhitungan jarak antara sampel dengan data yang telah ada (dikenal dengan istilah data training). K-NN masuk dalam kategori “Supervised Learning” karena data yang menjadi acuan (data training) memiliki Label (kelas tertentu). Berikut ini contoh pembuatan aplikasi dengan GUI untuk klasifikasi suatu sampel dengan K-NN. Berikut contoh perhitungan jarak antara titik sampel, misalnya (20,12) dengan salah satu data training, misalnya (30,8) dan diperoleh hasil 10.77.

Create New GUI and choose “Blank GUI”

Rename every component.

String and Tag on Property Editor must be renamed (Matlab is case sensitive)

Save your work in order to get m-file that appear immediately after saving.

Look at the m-file above, you will see the functions according to your pushbutton and edit text. The green text will not be executed and sometimes you see “do not edit” warning. Chose the training_Callback function (see: https://rahmadya.com/2013/03/18/pengenalan-data-mining/ ):

Use your Excel to create training data

The last column is group, so you have to separate training and group in m-file.

Back to m-file, we have to create script for capturing ipa and ips values. At function ipa_Calback and ips_Callback, use this script. Copy-paste this script for ips and replace “a” with “s” for easiness.

Last script is the core script because it contain k-nearest neighborhood classification using function “knnclassify“. See how to create plot for our GUI. The hold function means we do not erase the previous chart. We use “msgbox” (message box) to show the result of classification.

If the run icon is pressed, the result come after push “klasifikasi” button.

Next week we’ll discuss Kmeans.

Tugas: Hitung jarak sampel (kel 1: (5,7) dan kel2 : (6,5)) terhadap data training, tentukan kelasnya berdasarkan data training tersebut (IPA atau IPS). Berikut hasil dengan Ms Excel

Membuat diagram blok dengan Simulink matlab

 

Simulink adalah salah satu alat bantu dalam matlab khusus untuk perancangan diagram blok. Untuk membuatnya, klik icon di Matlab. Tunggu beberapa saat hingga matlab memunculkan jendela simulink. Untuk menggambar diagram blok baru klik icon (new) pada jendela Simulink Library browser. Gambar bentuk contoh di bawah ini.

Perhatikan cara membuatnya sebagai berikut: Step didrag dari Source, begitu juga Constant. Display dan Scope diambil dari Sink. Sementara Add diambil dari Math Operation. Transfer Fcn diambil dari Continuous. Dobel klik tiap komponen untuk mengganti harga parameter. Misalnya kita ingin mengganti harga parameter Step sebagai set point yaitu 80. Isi final value dengan harga 80.

Begitu juga dengan constant, beri harga -10. Di sini kita ambil contoh pemanas yang akan memanaskah suhu hingga 80 derajat tetapi menerima gangguan dari lingkungan sekitar misalnya 10 derajat di bawah harga set pointnya. Untuk mensimulasikan, klik icon (run) dan ganti angka di sebelah kanannya sesuai keinginan. Defaulnya adalah 10 detik, Anda bisa mengganti menjadi 100 detik atau lebih sesuai dengan kebutuhan. Hasilnya tampak pada gambar di bawah ini.

Perhatikan sistem tidak mampu menjaga suhu tetap 80 derajat karena ada gangguan sekitar -10 derajat, jadi ada error sebesar 10 derajat. Pertemuan yang akan datang akan dibahas cara menjaga suhu tetap 80 derajat walaupun ada gangguan dari lingkungan dengan batas-batas tertentu.

Introduction: Data Mining with Matlab

Data Mining berasal dari dua kata yaitu Data yang berarti sekumpulan fakta yang masih kasar dan Mining yang berarti menggali/menambang. Jadi dengan Data Mining diharapkan ada informasi tersembunyi yang bisa digali dari sekumpulan data tersebut. Metode-metode yang digunakan cukup banyak yang mudah-mudahan dapat diulas semua hingga UAS nanti.

Pertemuan kali ini hanya akan membahas sedikit bahasa pemrograman yang cukup mudah yaitu Matlab. Dibandingkan dengan c++, java, dan sejenisnya, Matlab jauh lebih mudah dan cocok jika kita hanya ingin mempelajari metode saja. Sebenarnya banyak alat lainnya seperti Rapidminer atau SQL Server Business Intelligent. Akan tetapi tools tersebut sangat sulit dianalisa struktur kodenya dan tidak cocok untuk pendidikan. Berbeda dengan matlab yang strukture toolbox yang dapat dilihat kode programnya yang dapat kita edit jika hasil algoritmanya kurang memuaskan. Selain itu Matlab dapat digunakan untuk membuat aplikasi yang dapat dijalankan oleh komputer lain yang tidak terinstal Matlab di dalamnya lewat mekanisme kompilasi menjadi executable program.

Here is an example of using GUI Matlab for getting data from excel and plotting it into graph. First open the GUI design, File – New – GUI. Choose the blank GUI and then with two push buttons and a single chart, make the simple GUI here:

After finishing GUI, save your GUI, so Matlab can generate the code with one m-file. You also can open the m-file editor by type: edit LATIHAN. I save my GUI’s name LATIHAN. We have two files for our application, LATIHAN.m and LATIHAN.fig that represent code and GUI respectively.

Beside edit the “String” on property editor, I suggest you to edit push button 1 and 2 with other name on “Tag” at property editor in order not to have difficult in searching function at m-file editor. Fill the script of function ambil_data and lihat_grafik with this sample code:

Of course you may your function left default option pushbutton1 and 2 . The function uigetfile was typed for calling the GUI for inserting the file. After catching the file (here denote with x), we continue to read that excel file with function xlsread. We have to use two other scripts handles.data and guidata(hObject,handles) because this variable (data) must send to other function (lihat_grafik function). Use your excel to create sample data (two field/column and some lines).

The second function was made for creating graph purpose. We use function plot with x-axis and y-ordinate. x=data(:,1) means creating the x variable contain data from colom 1 of data. If you run the program, you have to get the plot of the data.

This is the end of the introduction to Matlab for data mining session. Next week we’ll learn data mining algorithm : K-nearest Neighbourhood.

UAS Aljabar Linear

Aljabar Linear. 03.01.2013. Teknik Komputer

Akhirnya kita sampai pada pertemuan terakhir, yaitu membahas materi yang akan diujikan pada Ujian Akhir Semester (UAS) nanti. Karena ada pemisahan kelas menjadi dua kelas (kelas selasa dan kamis), dan ada perbedaan jumlah nilai tugas harian akibat banyaknya libur di hari selasa, untuk menyamakan dengan kelas Kamis, maka untuk kelas SELASA, saat UAS nanti diharapkan mengumpulkan tugas perkalian matriks dengan Java Script. Tugas merupakan tugas satu kelas, tetapi jika ada siswa yang merasa tidak puas dengan jawaban kelas dapat mengumpulkan tugas sendiri atau berkelompok. Tugas perkalian matriks dikerjakan dengan mencontoh tulisan saya sebelumnya tentang penjumlahan matriks (Membuat Matriks dengan Java Script) dengan mengganti bagian penjumlahan dengan perkalian. Sementara itu, algoritma untuk perkalian dapat kalian perhatikan tulisan Mengalikan Matriks 3 x 3 dengan mengurangi bagian I,j, dan c dari 3 menjadi 2.

Soal UAS berkisar seputar mencari invers matriks dengan menggunakan manipulasi baris yang dikenal dengan nama eliminasi Gauss. Perhatikan tulisan Mencari Invers dengan Operasi Baris dan coba latihan dengan angka yang lain, uji jawabannya dengan Matlab lewat fungsi INV. Jangan lupa syarat suatu matriks dapat dicari inversnya adalah determinannya nol. Tiap siswa kemungkinan besar berbeda matriks yang ada pada soal karena soal berdasarkan NIM masing-masing. Sifat ujian buku terbuka, bawa perlengkapan seperlunya seperti pulpen (jangan pensil ya, nggak jelas), kalkulator, dan lain-lain, juga tidak perlu acara bakar ban J.

Membuat Master Slide pada Power Point

Materi UAS Komputer I. 03.01.2013. Tek. Elektronik

Terkadang kita membutuhkan suatu template pada slide yang akan kita buat agar seragam dari mulai hingga selesai. Untuk mudahnya kita buat tulisan PANCASILA dengan tiap SILA dalam satu SLIDE. Buka Power Point. Masuk ke View dan Klik Slide Master.

Setelah masuk ke mode Slide Master, tampak di barisan bawah jenis slide yang akan dirubah seting template-nya. Misal kita akan atur yang ketiga dari atas. Klik template slide tersebut.

Kemudian Anda bebas mengatur template tersebut, misalnya Warna, background, tulisan, logo, dan sebagainya. Coba buat mirip seperti ini, karena akan kita masukan hiperlink yang akan menghubungkan judul ke slide tertentu. Buat judul PANCASILA di bagian Judul, buat background yang Anda sukai, tambahkan Text Box yang akan menjadi Hyperlink ke slide yang dituju.

Untuk mempercepat, text box dapat di Copy-paste saja dari yang sebelumnya. Ganti menjadi tulisan Sila pertama hingga kelima. Jika sudah selesai, tekan tombol untuk kembali ke mode edit slide. Selanjutnya, ketika Anda membuat slide baru lewat menu New Slide, akan tampak template yang baru saja kita atur.

Buat Tulisan tiap sila untuk tiap SLIDE dari sila pertama hingga sila kelima. Manfaat dari membuat slide baru dari slide master adalah ketika Master dirubah, maka seluruh slide akan ikut berubah, Misalnya kita akan tambahkan LOGO pada slide Master, maka seluruh slide yang dibuat dari master tersebut akan muncul logonya. Berikutnya kita akan membuat Hyperlink yang mengarahkan link sila ke isi sila pada slide pertama hingga kelima. Klik Insert – Hyperlink. Sorot Sile Pertama, ketika muncul jendela Insert Hyperlink pilih Place in The Document karena link yang dituju masih dalam file yang sama. Anda bisa saja menambah link internet, atau file lainnya.

Lakukan hal yang sama untuk sila kedua hingga kelima. Jalankan dengan Slide Show, pastikan ketika Anda mengklik Sila Kedua, di sebelah kanan akan muncul tulisan Kemanusiaan yang Adil dan Beradab.

Membuat Matriks dengan Java Script

Aljabar Linear. 31.12.2012. Teknik Komputer

Untuk materi UAS nanti berikut ini teknik membuat matriks dengan Java Script setelah pada pertemuan yang lalu membuat vektor. Berbeda dengan vektor, Matriks masuk dalam kategori array multi dimensi. Kode berikut ini menunjukkan penjumlahan matriks A dan B yang berukuran 2×2 menjadi Matriks C.

<HTML>

<HEAD>

<TITLE>Membuat Matriks

</TITLE>

<SCRIPT LANGUAGE = “JavaScript”>

</SCRIPT>

</HEAD>

<BODY>

<SCRIPT LANGUAGE = “JavaScript”>

document.writeln(“Membuat MATRIKS”)

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

document.writeln(” A = “)

var a = new Array (2);

a[0]=new Array(2);

a[1]=new Array(2);

a[0][0]=1;a[0][1]=2;a[1][0]=3;a[1][1]=4;

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

document.writeln(a[0][0])

document.writeln(a[0][1])

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

document.writeln(a[1][0])

document.writeln(a[1][1])

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

var b = new Array (2);

b[0]=new Array(2);

b[1]=new Array(2);

b[0][0]=5;b[0][1]=6;b[1][0]=7;b[1][1]=8;

document.writeln(” B = “)

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

document.writeln(b[0][0])

document.writeln(b[0][1])

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

document.writeln(b[1][0])

document.writeln(b[1][1])

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

document.writeln(” C = “)

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

var c = new Array (2);

c[0]=new Array(2);

c[1]=new Array(2);

for (var i=0; i<2; i++)

    for (var j=0; j<2; j++)

    c[i][j]=a[i][j]+b[i][j];

document.writeln(c[0][0])

document.writeln(c[0][1])

document.writeln(“<PRE>”)

document.writeln(“</PRE>”)

document.writeln(c[1][0])

document.writeln(c[1][1])

</SCRIPT>

</BODY>

</HTML>

Simpan dengan ekstensi .htm pada notepad atau text editor lainnya. Coba buat perkalian matriks dengant teknik seperti pada bahasa pemrograman C/C++. NOTE: ketik ulang tanda petik “” jika co-pas dari blog ini.

Membuat Vektor dengan Java Script

Aljabar Linear. 27.12.2012. Tek Komputer

Java Script merupakan salah satu bahasa berbasis web yang banyak digunakan oleh programmer. Oleh karena itu kita coba membuat vektor dengan Java Script. Metode yang kita gunakan adalah dengan membuat variabel array. Misal kita akan membuat vektor a dengan isi 1,2, dan 3. Gunakan listing berikut:

<HTML>

<HEAD>

<TITLE>Membuat Vektor

</TITLE>

<SCRIPT LANGUAGE = “JavaScript”>

</SCRIPT>

</HEAD>

<BODY>

<SCRIPT LANGUAGE = “JavaScript”>

document.writeln(“Membuat Vektor”)

document.writeln(“<PRE>”);

document.writeln(” A = “)

var a = new Array (1,2,3);

    for (var i = 0; i < 3; i++)

    document.writeln(a[i])

</SCRIPT>

</BODY>

</HTML>

Buat dengan notepad, jangan lupa ketika menyimpan ekstensinya beri nama .htm. Jika sudah berjalan normal, coba buat matriks. Matriks merupakan array multidimensi (lebih dari satu dimensi). Untuk input data secara interaktif, gunakan prompt pada kode programnya.

<HTML>

<HEAD>

<TITLE>Membuat Vektor

</TITLE>

<SCRIPT LANGUAGE = “JavaScript”>

</SCRIPT>

</HEAD>

<BODY>

<SCRIPT LANGUAGE = “JavaScript”>

document.writeln(“Membuat Vektor”)

document.writeln(” A = [“)

var a = new Array (10);

    for (var i = 0; i < 10; i++)

        a[i]=prompt(“Masukan Vektor”)

    for (var i = 0; i < 10; i++)

        document.writeln(a[i])

    document.writeln(” ]”)

</SCRIPT>

</BODY>

</HTML>

Jika disimpan dan dijalankan menghasilkan hasil sebagai berikut. Pertama-tama Anda diminta mengisi vektornya:

Pada kode, tertulis vector yang dimasukan sebanyak 10 buah, sehingga ketika dijalankan browser (saya menggunakan internet explorer 8) akan menampilkan form isian (tiap browser menampilkan bentuk yang berbeda – sepertinya yg paling bagus menurut saya sih Mozilla).

Materi Ujian PBO

SOAL PRAKTEK:

Buka file “JAVA” yang sudah difberikan. Buka Eclipse, Netbeans, JCreator, FreeJava, dll.

Beri nama project, misalnya UAS sehingga muncul project UAS di jendela Package Explorer. Copy – dan Paste soal yang diberikan ke project tersebut pada folder “SRC“. Coba jalankan dengan mengklik kanan file tersebut, misalnya Customer.java pada lesson 3.

Jika sudah jalan, ikuti soal yang diberikan.

Jika diminta membuat format sebagai berikut, coba edit listing yang ada tersebut (kemungkinan diminta menambah satu isian).

SOAL TEORI:

Diberikan diagram kelas dan use case yang harus Anda jelaskan maknanya.

Materi Ujian Jaringan Komputer I

SOAL TEORI:

Berikut contoh cara penyelesaian subnetting (cara cepat) 255.255.255.224 (/27). Alamat network yang akan dibuat subnetting: 192.168.10.0.

Soal 1:

 

Soal 2:

Seperti soal pertama, buat BINER-nya.

192.168.10.0 binernya: 11000000.10101000.00001010.00000000

255.255.255.224 binernya: 11111111.111111111.11111111.11100000000

SOAL PRAKTEK:

Buat routing statik diagram jaringan di bawh ini dengan Cisco Packet Tracer

Sesuaikan IP dengan subnetnya (pada contoh di atas /24 atau 255.255.255.0) pada ujian nanti akan berbeda.

Membuat Sistem Informasi Geografis (SIG) dengan Visual Basic 6

 

Pemr Visual Basic. 18.12.2012. Teknik Sipil S1

Sebenarnya aplikasi untuk SIG banyak dijual di pasaran seperti ArcView atau ArcGiS. Tetapi berhubung mata kuliah kita Pemrograman Visual Basic, maka mari kita coba membuatnya. Sebenarnya prinsip SIG adalah integrasi antara raster data yang biasanya gambar peta (jpg/bmp) dengan vector data yang berupa database seperti lokasi banjir, perkantoran, kemacetan, dan sebagainya.

Pertemuan yang lalu kita telah bisa mengakses suatu database gambar, nah di sini kita coba vector data yang kita gunakan kita integrasikan dengan suatu peta pada form. Ambil contoh suatu peta dari www.maps.google.com kemudian simpan dengan nama, misalnya peta.jpg. Edit gambar tersebut untuk lokasi banjir, perkantoran, dan sarana umum. Cara sederhana adalah dengan men save as, kemudian ganti dengan nama banjir.jpg, perkantoran.jpg, dan saranaumum.jpg. Simpan di folder tertentu sebagai data. Buat project baru, dengan satu form.

Arahkah background (picture) ke peta. Tambahkan ADODC, Text, dan Command Button. Buat database dengan Access, jangan lupa simpan dalam format MDB (2003). Koneksikan dengan ADODC (lihat pembahasan yang lalu tentang akses ke database).

Buat satu table baru, misalnya data. Isi dengan data seperti di atas. Instruksi untuk memanggil gambar pada Command Button “Lihat” adalah sebagai berikut:

F = “D:\rahmadya\” & Text1.Text

Image1.Picture = LoadPicture(F)

Dan jika dijalankan hasilnya berikut ini, missal diklik data BANJIR, setelah ditekan tombol LIHAT akan tampil sebagai berikut.

Atau arahkan ke perkantoran misalnya, tekan LIHAT.

Selamat mencoba.

Membuat Inversi matriks 2×2 dan 3×3 dengan Matlab

Aljabar Linear. 18.12.2012. T. Komputer

Berikut ini listing dengan m-file mencari inversi matriks dengan metode operasi baris pada matriks untuk matriks 2×2 dan 3×3. Buka command window dan ketik, misalkan kita ingin memberi nama fungsi tersebut dengan nama fungsi inversi. Ketik kode berikut:

  • function y=inversi(x)
  • %mencari invers matriks 2×2 dengan
  • %operasi baris pada matriks
  • %eliminasi gauss
  • x=[x eye(2,2)]
  • x(2,:)=x(2,:)-((x(2,1)/x(1,1)*x(1,:)));
  • x(1,:)=x(1,:)-((x(1,2)/x(2,2)*x(2,:)));
  • x(1,:)=x(1,:)/x(1,1);
  • x(2,:)=x(2,:)/x(2,2);
  • y=[x(:,3) x(:,4)];

>> x=[2 5;6 8]

inversi(x)

x =

2 5 1 0

6 8 0 1

ans =

-0.5714 0.3571

0.4286 -0.1429

Sedangkan untuk matriks 3×3, misalkan kita akan membuat fungsi dengan nama inversi33. Ketik di command window edit inversi33. Ketik kode berikut (sengaja dalam bentuk gambar supaya ngetik sendiri).

Uji di command window dan bandingkan dengan fungsi bawaan Matlab, inv. Bagaimana untuk matriks 4×4 atau yang di atasnya? caranya gampang, gunakan prinsip di atas, atau lihat postingan berikutnya.

Mencari Invers dengan Operasi Baris

Mat. Diskrit. 18.12.2012. Tek. Komputer

Selain dengan Determinan dan Cofactor, mencari invers dapat dilakukan dengan operasi baris pada matriks antara lain:

  1. Merubah posisi dua baris dalam suatu matriks
  2. Mengalikan seluruh baris dengan suatu konstanta
  3. Menambahkan/mengurangkan kelipatan suatu baris terhadap baris lainnya

Berikut ini ilustrasi pengerjaannya dengan contoh suatu matriks:

Sebelumnya, kita hitung dulu determinannya, Det = 22 dan karena tidak sama dengan nol, maka matriks M tersebut memiliki invers. Jejerkan dengan matriks identitas:

Tugas kita adalah melakukan eliminasi gauss agar dihasilkan matriks kiri menjadi matriks identitas. Pertama-tama kalikan baris pertama dengan ½.

Tambahkan tiga kali baris pertama dengan baris kedua sehingga dihasilkan:

Tugas berikutnya adalah membuat elemen baris pertama kolom kedua menjadi nol dengan mengalikan baris kedua dengan 2/11 yang dilanjutkan dengan mengurangi dengan baris pertama sehingga dihasilkan:

Akhirnya, kalikan baris kedua dengan 1/11 agar dihasilkan matriks identitas di bagian kiri:

Setelah matriks sebelah kiri menjadi matriks identitas, maka Matrks inversnya adalah yang di sebelah kanan yakni:

Berikut ini cara mengerjakan dengan Aplikasi Matlab:

>> M=[2 4;-3 5];

>> M=[M eye(2,2)]

 

M =

 

2 4 1 0

-3 5 0 1

 

>> M(1,:)=M(1,:)*1/2

 

M =

 

1.0000 2.0000 0.5000 0

-3.0000 5.0000 0 1.0000

 

>> M(2,:)=3*M(1,:)+M(2,:)

 

M =

 

1.0000 2.0000 0.5000 0

0 11.0000 1.5000 1.0000

 

>> M(2,:)=M(2,:)*1/11

 

M =

 

1.0000 2.0000 0.5000 0

0 1.0000 0.1364 0.0909

 

>> M(1,:)=M(1,:)-2*M(2,:)

 

M =

 

1.0000 0 0.2273 -0.1818

0 1.0000 0.1364 0.0909

 

>> InvM=[M(:,3) M(:,4)]

 

InvM =

 

0.2273 -0.1818

0.1364 0.0909

Sumber: Krantz(2009) “Descrete Mathematic Demystified