Rabu, 10 Februari 2016

Create Update Delete Mysql Using Matlab

Rekan2mari kita belajar SImpan Ubah dan Hapus pada Matlab...
Mula-mula buatlah tabel yang sederhana misalkan tabel Kategori
dengan kolomnya:
kode_kategori
kategori
keterangan

Lalu kita buat GUI di matlab dengan tampilan sbb:


Dan berikan coding sbb:

function menukategori_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;

I=imread('kategori.png');
set(handles.figure1,'CurrentAxes',handles.axes1);
imshow(I);

handles.tabel='kategori';
handles.pk='kode_kategori';
handles.pre='KAT';

[kolom,mydata,no ]=lihat(handles.tabel,handles.pk);
set(handles.myTabel,'data',mydata,'ColumnName',kolom,'RowName',no);
set(handles.myTabel,'Userdata',mydata);
T=size(mydata,1);
[tot]=['Total ' num2str(T) ' data'];
set(handles.txtTotal,'String',tot);

[AU]=auto(handles.tabel,handles.pk,handles.pre);
set(handles.edKode,'String',AU);
guidata(hObject, handles);


function varargout = menukategori_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;


function btnSimpan_Callback(hObject, eventdata, handles)
kode=get(handles.edKode,'String');
kategori=get(handles.edKategori,'String');
keterangan=get(handles.edKeterangan,'String');

[con,table,kolom]=koneksi();
arData = {kode, kategori, keterangan};
fastinsert(con,table,kolom,arData);

showtabel('Simpan',handles);


function btnUbah_Callback(hObject, eventdata, handles)
kode=char(get(handles.edKode,'String'));
kategori=char(get(handles.edKategori,'String'));
keterangan=char(get(handles.edKeterangan,'String'));
[con,table,kolom]=koneksi();
    [SQL]= ['update kategori set kategori=''', kategori, ''',keterangan=''', keterangan, ''' where kode_kategori=''', kode, ''''];
    curs = exec(con,SQL);
    exec(con, 'rollback');
    exec(con, 'commit');
showtabel('Ubah',handles);


function btnHapus_Callback(hObject, eventdata, handles)
kode=char(get(handles.edKode,'String'));
[con,table,kolom]=koneksi();
    [SQL]=['delete from kategori where kode_kategori='''  kode  ''''];
    curs = exec(con,SQL);
    exec(con, 'rollback');
    exec(con, 'commit');
showtabel('Hapus',handles);


function showtabel(proses,handles)
tabel=handles.tabel;
pk=handles.pk;
[kolom,mydata,no ]=lihat(tabel,pk);
set(handles.myTabel,'data',mydata,'ColumnName',kolom,'RowName',no);
set(handles.myTabel,'Userdata',mydata);
T=size(mydata,1);
[tot]=['Total ' num2str(T) ' data'];
set(handles.txtTotal,'String',tot);

[AU]=auto(handles.tabel,handles.pk,handles.pre);
    set(handles.edKode,'String',AU);
    set(handles.edKategori,'String','');
    set(handles.edKeterangan,'String','');
[ps]=['Sukses Proses ' proses];
msgbox(ps,proses,'help');


function btnBersih_Callback(hObject, eventdata, handles)
proyek=guidata(gcbo);
mau=questdlg(['Reset ' get(proyek.figure1,'Name')''],['Anda ingin Reset  Aplikasi ini?'],'Ya','Tidak','Ya');
if strcmp(mau,'Tidak')
return;
else
    set(handles.edKode,'String','');
    set(handles.edKategori,'String','');
    set(handles.edKeterangan,'String','');
    hm = msgbox('Reset','Reset Sukses','help');
    showtabel('Clear',handles);
end


function btnTutup_Callback(hObject, eventdata, handles)
mau=questdlg(['Keluar ' get(handles.figure1,'Name')''],['Keluar ' get(handles.figure1,'Name')''],'Ya','Tidak','Ya');
if strcmp(mau,'Tidak')
return;
end
delete(handles.figure1);%close;

function btnCari_Callback(hObject, eventdata, handles)
cari=char(get(handles.edCari,'String'));
[kolom,mydata,no ] = lihat(handles.tabel,'kategori',cari);
set(handles.myTabel,'data',mydata,'ColumnName',kolom,'RowName',no);
set(handles.myTabel,'Userdata',mydata);
T=size(mydata,1);
[tot]=['Total ' num2str(T) ' data'];
set(handles.txtTotal,'String',tot);

function myTabel_CellSelectionCallback(hObject, eventdata, handles)
try
    al= eventdata.Indices;
    dataseleksi=get(handles.myTabel,'Userdata');
    getdata=dataseleksi(al);
    kode=getdata{1};
   
    [kolom,mydata,no ] = lihat(handles.tabel,handles.pk,kode);
    var1=mydata(1,1);
    var2=mydata(1,2);
    var3=mydata(1,3);
   
    set(handles.edKode,'string',var1);
    set(handles.edKategori,'string',var2);
    set(handles.edKeterangan,'string',var3);

catch
    [AU]=auto(handles.tabel,handles.pk,handles.pre);
    set(handles.edKode,'String',AU);
    set(handles.edKategori,'String','');
    set(handles.edKeterangan,'String','');
end

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

Saat kita play akan didapatkan hasil GUI sbb

Dan cobalah tombol Simpan, Ubah dan Hapus serta Bersihnya....
dikoding ini terdapat juga koding autoincrement yang unik...artinya setiap kita hendak menambahkan data baru kode_kategori akan bertambah secara automatis..
Misalkan :KAT1602001 next  KAT1602002 next KAT1602003 dst...
jika bulan dan tahun tidak berbeda dengan maka sistem akan increment...meneruskan data sebelumnya....namun jika bulan atau tahun input sekarang berbeda dengan data terahir dari database maka sistem akan memulai kembali ke index no 1...
misal dari KAT1602089 kembali ke KAT1603001 dst....









Sebagai berikut adalah kode autoIncrementnya:
function [ AU ] = auto( varargin )
[con,table,kolom]=koneksi();
%kode='KAT1407000';
tabel=varargin{1};
pk=varargin{2};
pre=varargin{3};
setdbprefs('NullNumberWrite', 'NaN');
    SQL=['SELECT * FROM ' tabel '  order by ' pk ' desc' ];
    curs = exec(con,SQL);
    curs = fetch(curs);
    mydata=curs.data;
    baris=size(mydata,1);
   
th=year(Date);
bl=month(Date);
thn=num2str(th);
thn=thn(3:4);
bln=num2str(bl);
C=1;
if bl<10
    bln=['0' bln];
end
kode=[pre thn bln '001'];
[AU]=[pre thn bln];
if baris>0
    kode=cell2mat(mydata(1,1));
    if strcmp(kode,'No Data')>0
        C=1;
    else
        C1=kode(8:10);
        C=str2num(C1)+1;
        YL=kode(4:5);
        ML=kode(6:7);
        [AU]=[pre YL ML];
        if str2num(thn)~=str2num(YL)
            C=1;
        elseif str2num(bln)~=str2num(ML)
            C=1;
        end

    end    
end

if C <10
  [AU]=[AU '00' num2str(C)]; 
elseif C <100
  [AU]=[AU '0' num2str(C)]; 
else
  [AU]=[AU num2str(C)]; 
end


end



OK rekan2...selamat mencoba yaa......
NB untuk rumus koneksinya silakan ikuti materi yang sebelum ini......

Hasil proses pencarian

Pencarian disini menerapkan kode like '%%' artinya satu huruf saja di cari maka semua kata yang mengandung huruf tsb akan ditampilkan.....gambar diatas menunjukkan bahwa kategori Matlab dan Java mengandung huruf a...


Semoga Membantu.......:-)


Matlab Lihat dan Simpan Data di Mysql

dowonload JDBC driver di http://dev.mysql.com/downloads/connector/j/3.1.html



lalu ekstract dan bebas tempatkan.....tapi baiknya di matlabroot alias tempat instalasi matlab kita berada:



NB.andaikan bebas mau ditempatkan dimana maka...harus diset alamat javaPathHome di environtment windows-nya...

Langkah berikutnya, edit file classpath.txt yang berada pada direktori matlabroot atau dengan alamat sbb
C:\Program Files\MATLAB\R2010a\toolbox\local
Lalu tambakan kode sbb (letakkan bebas dibarismanapun......)

$matlabroot/java/jar/mysql-connector-java-3.1.14-bin.jar


Restart Matlabnya...atau lebih afdhol.....restart pc nya........
Tes buat tabelnya dimysql / atau http://localhost/phpmyadmin .....


Setelah itu buat deh coding dimatlab nya: 


url = 'jdbc:mysql://localhost:3306/';
conn = database('matlab_db', 'root', '', 'com.mysql.jdbc.Driver', url);

%%%SBB Code untuk melihat isi tabel
curs = exec(conn,'SELECT * FROM barang');
curs = fetch(curs)
curs.data;

%%%SBB Code untuk simpan isi tabel
tableName = 'barang';
fields = {'kode_barang', 'nama_barang', 'deskripsi', 'harga','kategori', 'gambar', 'status'};
allData = {'BRG004', 'KOMPUTER 4', 'Harga murah.....harga ok', '1250000', 'Komputer', 'kom4.jpg', 'Tersedia'};

tic
fastinsert(conn,tableName,fields,allData)
toc


%%%SBB CODE untuk reset tabel /mengosongkan isi tabel
deleteQuery = ['delete from '   tableName   ';' ];
exec(db,deleteQuery);


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%OK DEH ;-)