Amir Hamzah

Just learning material sharing …
Subscribe

Archive for the ‘Pemrograman’

JAVA AUDIO DAN MP3

July 01, 2012 By: amir Category: Java, Pemrograman No Comments →

Untuk memainkan clip java memiliki class AudioClip yang dapat memainkan file-file WAV. Untuk memainkan file music seperti MP3, class AudioClip tidak dapat digunakan tetapi harus mencari dari library lain. Dalam hal ini alamat javazoom dapat dijadikan sumber library, misalnya jl1.0.1.jar yang dapat didownload di pada alamat ini :
Selanjutnya library jl1.0.1.jar diincludekan dalam porject yang kita buat.
Untuk Handout lengkapnya dapat didownload di sini :
SINI LHO

Fuzzy C-Means Clustering

June 12, 2012 By: amir Category: Fuzzy Logic, Pemrograman No Comments →

Kode MATLAB dalam bentuk file *.txt
DOWNLOAD dan ubah ekstension menjadi *.m
========================================

function [U,V,O]=fcm2(x,c)
[n,m]=size(x);
%% initialization
%% matriks data: n baris x m kolom
w=2;
teta=1e-5;
P0=0;
Pt=0;
OB=[];
%step 1 : Initilize U
U=rand(n,c);
Q=sum(U’)’
for i=1:n
U(i,:)=U(i,:)/Q(i);
end
U
pause
ITER=1;
Obj=1e5;
while (Obj>teta)
%step 2 : update V
Q=sum(U.^w)’;
V=(U’.^w*x);
for i=1:c
V(i,:)=V(i,:)/Q(i);
end;

disp(‘NILAI V’), V
pause
%step 3 : update U from V
for i=1:n
S=0;
for k=1:c
S1=0;
for j=1:m
S1=S1+(x(i,j)-V(k,j))^2;
end
S1=S1^(-1/(w-1));
U(i,k)=S1;
S=S+S1;
end
for k=1:c
U(i,k)=U(i,k)/S;
end
end
disp(‘NILAI U’);U
pause

%step 4 : menghitung F
P0=Pt;
Pt=0;
for i=1:n
for k=1:c
for j=1:m
Pt=Pt+( x(i,j)-V(k,j))^2*U(i,k)^w;
end
end
end
Obj=abs(Pt-P0)

ITER=ITER+1
pause
OB=[OB Obj];
end

O=OB;
% end of function

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Cara penggunaan :
Siapkan data dalam variabel x : dalam format n x m
n=cacah objek
m=dimensi objek
misalnya dalam prompt MATLAB :
>> x=[1 3; 0 4; 4 1; 3 0]

x =

1 3
0 4
4 1
3 0
>>>> fcm2(x,2)

Q =

0.2523
0.8116
1.1852
1.2837

U =

0.3107 0.6893
0.7896 0.2104
0.1611 0.8389
0.6574 0.3426

NILAI V

V =

1.2706 2.3846
2.7171 1.7204

NILAI U

U =

0.9103 0.0897
0.7486 0.2514
0.1877 0.8123
0.2594 0.7406

Obj =

7.5831

ITER =

2

NILAI V

V =

0.7854 3.1931
3.3549 0.7321

NILAI U

U =

0.9923 0.0077
0.9454 0.0546
0.0312 0.9688
0.0420 0.9580

Obj =

5.1949

ITER =

3

NILAI V

V =

0.5283 3.4713
3.4999 0.5113

NILAI U

U =

0.9655 0.0345
0.9776 0.0224
0.0262 0.9738
0.0274 0.9726

Obj =

0.4393

ITER =

4

NILAI V

V =

0.4960 3.5039
3.4981 0.5031

NILAI U

U =

0.9609 0.0391
0.9803 0.0197
0.0262 0.9738
0.0263 0.9737

Obj =

0.0046

ITER =

5

NILAI V

V =

0.4922 3.5078
3.4973 0.5028

NILAI U

U =

0.9603 0.0397
0.9806 0.0194
0.0262 0.9738
0.0262 0.9738

Obj =

6.3781e-005

ITER =

6

NILAI V

V =

0.4917 3.5083
3.4972 0.5028

NILAI U

U =

0.9602 0.0398
0.9806 0.0194
0.0262 0.9738
0.0262 0.9738

Obj =

9.2658e-007

ITER =

7

ans =

0.9602 0.0398
0.9806 0.0194
0.0262 0.9738
0.0262 0.9738

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

BELAJAR TURBO PASCAL

October 07, 2011 By: amir Category: Pemrograman No Comments →

Meski program turbo pascal relatif “kuno” tetapi pada beberapa kurikulum ia masih dijadikan sebagai sarana uji coba kemampuan mengenal algoritma dan pemrograman dasar. Turbo Pascal lahir ketika era sistem operasi window belum lahir, yaitu era sistem operasi DOS, yang bekerja dengan gaya klasiknya : layar hitam tulisan putih. Ukuran file yang cukup “mini” untuk ukuran program-program sekarang juga menjadi karakternya.

Berikut ini dapat didownload Turbo Pascal (entah versi berapa), pokoknya versi kagak penting, yang penting dapat untuk mencoba program pascal yang diajaskan dosen di kelas (kira-kira begitu). Ukuran “compress” rar-nya cuma 812.37 KB (nggak sampai 1MB bro..).

Saya taruh di ziddu soalnya, di media kita tidak bisa masuk. Langkah2 memakainya adalah :

1. Download file compress rar pada link berikut : DOWNLOAD , klik tombol download, masukkan verification code, klik tobol download lagi.

2. jika berhasil men-download, Lakukan de-compress dengan un-rar, maka anda akan memiliki folder bernama : TP. Ukuran seluruh file-file hasil decompress kira-kira 2MB

3.  Jalankan melalui CommandPrompt, Masuk folder TP tersebut, Nama file utama adalah TURBO.EXE

4. Selamat mencoba program pascal

Trims

 

 

K-MEAN CLUSTERING

June 01, 2011 By: amir Category: Fuzzy Logic, Pemrograman No Comments →

K-MEAN Clustering merupakan algoritma partisional yang paling sederhana. Algoritma clustering ini diawali dengan pemilihan objek vektor secara acak sebanyak K buah sebagai nilai awal, yang diangap sebagai K pusat cluster.  Selanjutnya algoritma di proses dengan setiap kali memperbaharui nilai pusat cluster. Pusat cluster yang baru diperoleh dengan menghitung ulang rata-rata seluruh vektor  dalam cluster tersebut. Untuk menentukan vektor objek masuk dalam cluster mana, maka pada setiap iterasi semua vektor objek dihitung nilai jaraknya terhadap pusat-pusat cluster yang ada. pusat cluster yang memiliki nilai jarak terkecil terhadap vektor objek yang bersagkutan dipilih sebagai cluster bagai objek tersebut.

Berikut ini algoritma K-MEAN CLUSTERING :

  1. Ambil K objek sebagai seed dari K pusat kluster
  2. Untuk semua objek: cari kluster dengan jarak terdekat, dan tetapkan objek masuk dalam kluster tersebut.
  3. Hitung ulang pusat kluster dengan rata-rata objek dalam kluster tersebut
  4. Hitung fungsi kriteria dan lakukan evaluasi. Jika fungsi kriteria  berubah cukup kecil algoritma berhenti.

Adapun code MATLAB adalah sebagai berikut :

function [c]=kmean(x,k)

[m,n]=size(x)

%m=dimensi vektor

%n=cacah objek

c=zeros(1,n);  M=zeros(m,k);

bilacak=acak(k,n);

for i=1:k    M(:,i)=x(:,bilacak(i));   end

disp(‘SEED :’)

for i=1:k    sprintf(‘Seed ke- %d adalah objek ke- %d’,i,bilacak(i))

x(:,bilacak(i))

end

T0=0;  T1=10; galat =1e-5;  ITER=0;

while ( abs(T1-T0) > galat )

for i=1:n

jmin=1e8;

for j=1 : k

jarak=norm( x(:,i) – M(:,j ) );

if(jarak < jmin )

c(:,i) =j ;  jmin=jarak;

end

end

end

%meralat pusat cluster

CE=zeros(1,k);   M=zeros(m,k);

for i=1:n

M(:, c(i) ) = M (:, c(i)) + x(:,i);

CE(:, c(i) ) = CE(:, c(i) ) +1;

end

for i=1:k     M(:,i)=M(:,i)/CE(:,i);   end

T0=T1;   T1=0;

%mengitung fungsi tujuan baru

for i=1:n

T1=T1+ norm( x(:,i)-M(:,c(i)) );

end

fungsiTujuan=T1

ITER=ITER+1

pause

end %akhir while

 

%%%%%%%%% digunakan untuk mengacak bilangan 1 sampai K %%%%%%%%%%

% disimpan dalam file terpisah : acak.m

function [r]=acak(k,n)

r=[]; c=0;

while (c<k)

bilacak=round(rand*n)

ada=0;

for j=1:c        if( r(j)== bilacak)ada=1; end

end

if(bilacak>0)

if(~ada)

r=[r bilacak]

c=c+1;

end

end

end

%%%%%%%%%%%%%%%%%%%%%%%%% DATA DALAM BENTUK %%%%%%%%%%

x = Matrik berukuran m x N ( m baris , N kolom)

m =dimensi vektor

N=cacah sampel data