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.......:-)
kenapa ketika saya milih baris kedua untuk ditampilkan ke dalam edit box, yang tampil tetap data yang dari baris pertama ya?
BalasHapus