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.......:-)


1 komentar:

  1. kenapa ketika saya milih baris kedua untuk ditampilkan ke dalam edit box, yang tampil tetap data yang dari baris pertama ya?

    BalasHapus