39
4. PEMBUATAN PROGRAM
Program aplikasi ini menggunakan software Borland Delphi 5 dan Database Microsoft Access XP. Pada bab ini akan diuraikan mengenai procedure- procedure yang terdapat pada program aplikasi ini.
4.1. Setting Koneksi Database Menggunakan ODBC (Open Database Connectivity)
Untuk dapat menggunakan program aplikasi ini user harus lebih dahulu menginisialisasi koneksi database. Sehingga antara software dan database yang ada dapat saling berhubungan. User dapat mengklik tombol Start yang secara umum terdapat di pojok kiri bawah. Kemudian klik menu Control Panel, kemudian memilih Administrative Tools, dan memilih Data Source (ODBC).
Gambar 4.1. Form ODBC
Setelah membuka ODBC, user klik tombol Add dan memilihi Driver do Microsoft Access (*.mdb). Lalu klik tombol Finish.
Gambar 4.2. Form Create New Data Source
Mengisi Data Source Name dengan skripsi, lalu pilih tombol select.
Setelah menekan tombol ini user akan diminta untuk mengarahkan ke alamat database di install.
Gambar 4.3. Form ODBC Microsoft Access Setup
Gambar 4.4. Form Select Database
Setelah user menemukan database yang dimaksud maka klik tombol Ok hingga keluar dari semua form yang muncul.
4.2. Implementasi pada Borland Delphi 5
Setelah database selesai dibuat, kemudian dilakukan penambahan procedure dan komponen pada Borland Delphi 5 untuk memudahkan dalam pengolahan data. Procedure dan komponen dapat digunakan sesuai dengan kebutuhan.
4.2.1. Pembuatan Data Module
Data Module ini digunakan sebagai pusat penampungan komponen- komponen yang diperlukan untuk menghubungkan data-data pada aplikasi database. Pada Data Module tersebut diletakkan komponen-komponen yang saling berhubungan. Dengan menggunakan Data Module ini maka pembuatan aplikasi lebih mudah dan terstruktur. Untuk membuat Data Module ini dengan memilih menu File > New > Data Module.
4.2.2. Penggunaan Komponen TDatabase untuk Koneksi Database
Pada aplikasi digunakan komponen TDatabase untuk mengatur koneksi database dengan ODBC yang telah dibuat sebelumnya. Langkah-langkah yang dilakukan adalah sebagai berikut
a. Pilih palette komponen Data Access, kemudian ambil komponen dengan nama Database dan letakkan pada form DataModule1.
b. Isikan property AliasName dengan nama skripsi pada ODBC yang telah dibuat sebelumnya.
c. Isikan property DatabaseName dengan nama koneksi database pelatihan.
d. Ubah property LoginPrompt menjadi false supaya saat aplikasi melakukan koneksi dengan database tidak perlu menginputkan password database.
4.2.3. Implementasi Interface Program
Pembuatan interface adalah dengan membuat form-form yang digunakan untuk desain dan peletakkan isi program di dalamnya.
Tabel 4.1. Fungsi Tiap-tiap Form
Nama Form Fungsi
Form Main Menu Form utama dari semua form, merupakan form induk.
Form Absen Untuk memasukkan data absen peserta
Form Bahan Untuk menampilkan data bahan, detail bahan, dan pemakaian bahan.
Form Pembayaran Untuk memasukkan pembayaran peserta Form Pendaftaran Untuk memasukkan data pendaftaran Form Data Bahan Untuk memasukkan data bahan Form Data Detail Bahan Untuk memasukkan data detail bahan Form Data Peserta Untuk memasukkan data peserta Form Data Instruktur Untuk memasukkan data instruktur Form Data Arus Kas Untuk memasukkan data arus kas.
Form Data Pelatihan Untuk memasukkan data pelatihan Form Data Program Untuk memasukkan data program Form Data Tes Untuk memasukkan data tes Form Data Unit Untuk memasukkan data unit Form Data Detail Unit Untuk memasukkan data detail unit Form Data Supplier Untuk memasukkan data supplier
Tabel 4.1. Fungsi Tiap-tiap Form (Lanjutan)
Nama Form Fungsi
Form Data Pemakaian Bahan Untuk memasukkan data pemakaian bahan.
Form Data Detail Pelatihan Untuk memasukkan data detail pelatihan.
Form Data Detail Pendaftaran Untuk memasukkan data detail pendaftaran.
Form Instruktur Untuk menampilkan data instruktur secara keseluruhan.
Form Arus Kas Untuk menampilkan seluruh data arus kas.
Form Kelulusan Untuk menampilkan kelulusan peserta berdasarkan program dan pelatihan.
Form Peserta Untuk menampilkan data peserta, detail pendaftaran, dan pembayaran peserta.
Form Supplier Untuk menampilkan data supplier.
Form Nilai Untuk memasukkan data nilai peserta.
Form Order Pembelian Untuk memasukkan order pembelian bahan.
Form Program dan Pelatihan Untuk memasukkan data program dan pelatihan serta detail pelatihan.
Form Pembelian Untuk menampilkan seluruh data pembelian bahan
Form Tes Untuk menampilkan seluruh data tes.
Form Unit Untuk memasukkan master unit dan
menampilkan detail unit.
Form Laporan Absen Untuk menampilkan laporan absensi peserta.
Form Laporan Arus Kas Untuk menampilkan laporan arus kas.
Form Laporan Jadwal Untuk menampilkan laporan jadwal pelatihan.
Form Laporan Lulus Untuk menampilkan laporan kelulusan peserta per unit.
Form Laporan Peserta Untuk menampilkan laporan data peserta.
Form Laporan Pembelian Untuk menampilkan laporan pembelian bahan.
Tabel 4.1. Fungsi Tiap-tiap Form (Lanjutan)
Nama Form Fungsi
Form Laporan Pemakaian Bahan Untuk menampilkan laporan pemakaian bahan.
Form Laporan Sertifikat Untuk menampilkan laporan sertifikat.
Form Laporan Rugi Laba Untuk menampilkan laporan rugi laba per periode.
4.2.3.1. Form Main Menu
Pada form ini terdapat komponen TMainMenu yang berguna sebagai menu utama dari program, yang digunakan untuk mengakses form-form lainnya.
Tabel 4.2. Sub Menu dalam Main Menu
Main Menu Sub Menu
File Exit, untuk keluar dari program.
Form Untuk menampilkan form-form yang ada di dalamnya, terdiri dari: Bahan, Instruktur, Keuangan, Pelatihan, Registrasi, Kelulusan, Supplier, dan Kelas. Bahan mempunyai sub menu: Bahan dan Pembelian. Kelas masih mempunyai sub menu lagi, yaitu: Unit, Absen, Tes, dan Nilai. Registrasi mempunyai sub menu: Pendaftaran dan Peserta.
Report Untuk menampilkan laporan-laporan yang ada di dalamnya, terdiri dari: Laporan Absen, Laporan Arus Kas, Laporan Data Peserta, Laporan Kelulusan, Laporan Pembelian Bahan, Laporan Pemakaian Bahan, Laporan Jadwal, Laporan Sertifikat, dan Laporan Rugi Laba.
4.2.3.2. Form Absen
Form absen digunakan untuk memasukkan absensi atau kehadiran peserta berdasarkan kode unit. Selain itu juga dapat menghasilkan laporan absensi.
4.2.3.3. Form Bahan
Form bahan digunakan untuk melihat data-data bahan, detail bahan, dan pemakaian bahan. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data bahan, detail bahan, dan pemakaian bahan.
Tabel 4.3. Procedure Form Bahan
Procedure Fungsi
Tf_bahan.BitBtn2Click Memasukkan data bahan.
Tf_bahan.BitBtn3Click Mengubah data bahan yang dipilih pada DBGrid1.
Tf_bahan.BitBtn4Click Menghapus data bahan yang telah dipilih di DBGrid1.
Tf_bahan.BitBtn5Click Menutup form bahan.
Tf_bahan.BitBtn8Click Memasukkan data detail bahan.
Tf_bahan.BitBtn9Click Mengubah data detail bahan yang dipilih pada DBGrid2.
Tf_bahan.BitBtn10Click Menghapus data detail bahan yang telah dipilih di DBGrid2.
Tf_bahan.BitBtn7Click Memasukkan data pemakaian bahan.
Tf_bahan.BitBtn16Click Menghapus data pemakaian bahan yang telah dipilih di DBGrid3.
Tf_bahan.BitBtn19Click Mencetak data pemakaian bahan.
4.2.3.4. Form Supplier
Form supplier ini digunakan untuk melihat data-data supplier. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data supplier.
Tabel 4.4. Procedure Form Supplier
Procedure Fungsi
Tf_supplier.BitBtnAddClick Menambah data supplier baru.
Tf_supplier.BitBtnEditClick Mengubah record yang sudah ada.
Tf_supplier.BitBtnDelClick Menghapus data supplier yang dipilih.
Segmen Program 4.1. Proses Penghapusan Data Supplier
procedure Tf_supplier.BitBtnDelClick(Sender: TObject);
var ks:string;
begin
If MessageDlg('Delete Record?', mtConfirmation, [mbYes, mbNo],0) = mrYes then
begin
// delete record
ks:=query1['kode_supplier'];
query1.close;
query1.SQL.clear;
query1.sql.add('delete from supplier where kode_supplier='''+ks+''' ');
query1.ExecSQL;
query1.Close;
query1.sql.clear;
query1.SQL.add('select * from supplier');
query1.open;
dbgridsupplier.Refresh;
end;
end;
4.2.3.5. Form Instruktur
Pada form instruktur ini ditampilkan semua data instruktur yang telah diinputkan melalui form data instruktur. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data instruktur.
Tabel 4.5. Procedure Form Instruktur
Procedure Fungsi
Tf_instruktur.BitBtnAddClick Mengaktifkan form data instruktur untuk proses penginputan data instruktur baru.
Tf_instruktur.BitBtnEditClick Mengaktifkan form data instruktur untuk proses pengubahan data instruktur yang dipilih.
Tf_instruktur.BitBtnDelClick Menghapus data instruktur yang telah dipilih pada DBGridInst.
4.2.3.6. Form Peserta
Form peserta ini terdiri atas tiga bagian yaitu Peseta, Detail Pendaftaran, dan Pembayaran. Pada peserta ditampilkan semua data peserta yang telah diinputkan melalui form data peserta.
Pada detail pendaftaran diinputkan kode program dan kode pelatihan yang dipilih oleh peserta beserta dengan status pembayarannya. Pada pembayaran diinputkan jumlah nominal angsuran peserta beserta tanggal pembayarannya.
Tabel 4.6. Procedure Form Peserta
Procedure Fungsi
Tf_regis.BitBtnAddClick Mengaktifkan form data peserta untuk proses penginputan data peserta baru.
Tf_regis.BitBtnEditClick Mengaktifkan form data peserta untuk proses pengubahan data peserta yang dipilih.
Tf_regis.BitBtnDelClick Menghapus data peserta yang telah dipilih pada DBGrid1.
Tf_regis.BitBtnPrintClick Mencetak laporan data peserta.
Tf_regis.BitBtn1Click Mengaktifkan form data regis untuk proses penginputan data detail pendaftaran.
Tf_regis.BitBtn2Click Mengaktifkan form data regis untuk proses pengubahan data detail pendaftaran yang dipilih pada DBGrid2 Tf_regis.BitBtn7Click Mengaktifkan form data pembayaran
untuk proses penginputan data pembayaran peserta.
Tf_regis.BitBtn8Click Mengaktifkan form data pembayaran untuk proses pengubahan data pembayaran peserta yang dipilih pada DBGrid3.
Segmen Program 4.2. Proses Perubahan Data Peserta
procedure Tf_regis.BitBtnEditClick(Sender: TObject);
begin
with f_peserta do begin
edit1.text:=f_regis.Query1['no_induk'];
edit2.text:=f_regis.query1['nama'];
edit3.text:=f_regis.query1['alamat'];
edit4.text:=f_regis.query1['kota'];
maskedit1.text:=f_regis.query1['kode_pos'];
maskedit2.text:=f_regis.query1['telepon'];
maskedit3.text:=f_regis.query1['handphone'];
edit5.Text:=f_regis.query1['tempat'];
datetimepicker1.Date:=f_regis.query1['tgl_lahir'];
edit6.text:=f_regis.query1['email'];
combobox1.text:=f_regis.query1['pekerjaan'];
ShowModal;
end;
DBGrid1.SetFocus;
DBGrid1.DataSource.DataSet.Active := False;
DBGrid1.DataSource.DataSet.Active := True;
end;
procedure Tf_peserta.SpeedButton1Click(Sender: TObject);
begin
f_regis.Query1.close;
f_regis.query1.SQL.clear;
f_regis.query1.sql.add('update peserta ');
f_regis.query1.sql.add('set
nama=:na,alamat=:al,kota=:kt,kode_pos=:kp,telepon=:telp,handphone=
:hp,tempat=:tmp,tgl_lahir=:tgl,email=:em,pekerjaan=:pe ');
f_regis.query1.sql.add('where no_induk=:ni ');
f_regis.query1.ParamByName('ni').asstring:=edit1.text;
f_regis.query1.ParamByName('na').asstring:=edit2.text;
f_regis.query1.ParamByName('al').asstring:=edit3.text;
f_regis.query1.ParamByName('kt').asstring:=edit4.text;
f_regis.query1.ParamByName('kp').asstring:=maskedit1.text;
f_regis.query1.ParamByName('telp').asstring:=maskedit2.text;
f_regis.query1.ParamByName('hp').asstring:=maskedit3.text;
f_regis.query1.ParamByName('tmp').asstring:=edit5.text;
f_regis.query1.ParamByName('tgl').asstring:=datetostr(datetimepick er1.date);
f_regis.query1.ParamByName('em').asstring:=edit6.text;
f_regis.query1.ParamByName('pe').asstring:=combobox1.text;
f_regis.query1.ExecSQL;
f_regis.query1.Close;
f_regis.query1.sql.clear;
f_regis.query1.SQL.add('select * from peerta');
f_regis.query1.open;
f_regis.dbgrid1.Refresh;
end;
Segmen Program 4.3. Proses Penginputan Nomor Induk
procedure Tf_datapeserta.BitBtn3Click(Sender: TObject);
var no:longint;
th,ni,nii,ch:string;
begin
th:=copy(datetimetostr(Date),9,2);
ni:='SBY'+th;
no:=1;
datamodule1.T_Regis.Open;
nii:=ni;
ch:=inttostr(no);
while length(ch)<3 do ch:='0'+ch;
nii:=nii+ch;
while datamodule1.T_Regis.Locate('no_induk',nii,[]) do begin inc(no);
nii:=ni;
ch:=inttostr(no);
while length(ch)<3 do ch:='0'+ch;
nii:=nii+ch;
end;
datamodule1.T_Regis.Close;
ch:=inttostr(no);
while length(ch)<3 do ch:='0'+ch;
ni:=ni+ch;
edit1.Text:=ni;
end;
4.2.3.7. Form Program dan Pelatihan
Form program dan pelatihan ini terdiri atas empat bagian, yaitu Program, Detail Program, Pelatihan, dan Detail Pelatihan. Pada program ditampilkan semua data program. Pada detail program ditampilkan semua pelatihan yang terdapat dalam program tersebut.
Pada pelatihan dan detail pelatihan ditampilkan semua data dan detail pelatihan. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data pelatihan serta detail pelatihan.
Tabel 4.7. Procedure Form Program dan Pelatihan
Procedure Fungsi
Tf_progpel.BitBtn1Click Mengaktifkan form data program untuk proses penginputan data program.
Tf_progpel.BitBtn5Click Mengaktifkan form data program untuk proses pengubahan data program yang dipilih pada DBGrid1.
Tf_progpel.BitBtn8Click Menghapus data program yang telah dipilih pada DBGrid1.
Tf_progpel.BitBtnAddClick Mengaktifkan form data pelatihan untuk proses penginputan data pelatihan..
Tf_progpel.BitBtnEditClick Mengaktifkan form data pelatihan untuk proses pengubahan data pelatihan yang dipilih.
Tabel 4.7. Procedure Form Program dan Pelatihan (Lanjutan)
Procedure Fungsi
Tf_progpel.BitBtnDelClick Menghapus data pelatihan yang telah dipilih pada DBGrid2.
Tf_progpel.Pelatihan1Click Mengaktifkan data detail pelatihan berdasarkan kode program.
Tf_progpel.Detail1Click Mengaktifkan data detail pelatihan berdasarkan kode pelatihan.
Tf_progpel.BitBtn11Click Melihat kode program sebelumnya.
Tf_progpel.BitBtn12Click Melihat kode program selanjutnya.
Tf_progpel.BitBtn2Click Mengaktifkan form data detail pelatihan untuk proses penginputan data detail pelatihan..
Tf_progpel.BitBtn3Click Mengaktifkan form data detail pelatihan untuk proses pengubahan data detail pelatihan yang dipilih pada DBGrid3.
Tf_progpel.BitBtn4Click Menghapus data detail pelatihan yang telah dipilih pada DBGrid3.
Tf_progpel.BitBtn6Click Mencetak laporan jadwal pelatihan.
4.2.3.8. Form Unit
Form unit ini terdiri atas dua bagian yaitu Master Unit dan Detail Unit.
Pada master unit ditampilkan semua data unit. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data unit.
Pada detail unit ditampilkan semua data detail unit yang telah diinputkan melalui form data detail unit. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data detail unit.
Tabel 4.8. Procedure Form Unit
Procedure Fungsi
Tf_unit.BitBtn1Click Mengaktifkan form data unit untuk proses penginputan data unit.
Tf_unit.BitBtn3Click Menghapus data unit yang telah dipilih pada DBGrid1.
Tabel 4.8. Procedure Form Unit (Lanjutan)
Procedure Fungsi
Tf_unit.BitBtn2Click Mengaktifkan form data unit untuk proses pengubahan data unit yang dipilih pada DBGrid1.
Tf_unit.BitBtn9Click Mengaktifkan form data detail unit untuk proses penginputan data detail unit.
Tf_unit.BitBtn10Click Mengaktifkan form data detail unit untuk proses pengubahan data detail unit yang dipilih pada DBGrid2 Tf_unit.BitBtn11Click Menghapus data detail unit yang telah dipilih pada
DBGrid2.
4.2.3.9.Form Tes
Pada form tes ini ditampilkan semua data tes yang telah diinputkan melalui form data tes. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data tes.
4.2.3.10. Form Arus Kas
Form arus kas menampilkan semua data-data arus kas, baik kas masuk (pendapatan) maupun kas keluar (pengeluaran) yang telah diinputkan melalui form data arus kas. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan penghapusan data arus kas.
Tabel 4.9. Procedure Form Arus Kas
Procedure Fungsi
Tf_keuangan.BitBtn1Click Mengaktifkan form data arus kas untuk proses penginputan data arus kas.
Tf_keuangan.BitBtn2Click Mengaktifkan form data arus kas untuk proses pengubahan data arus kas yang dipilih pada DBGrid1.
Tf_keuangan.BitBtn3Click Menghapus data arus kas yang telah dipilih pada DBGrid1.
Tf_keuangan.BitBtn4Click Mencetak laporan arus kas.
4.2.3.11. Form Pembelian
Pada form pembelian ini ditampilkan semua data pembelian yang telah diinputkan melalui form order pembelian. Selain itu juga dapat dilakukan proses penambahan, perubahan, dan pencetakan data pembelian bahan.
4.2.3.12. Form Pendaftaran
Form pendaftaran digunakan untuk menampilkan dan menginputkan data pendaftaran.
Tabel 4.10. Procedure Form Pendaftaran
Procedure Fungsi
Tf_daftar.BitBtn3Click Menginputkan nomor pendaftaran.
Tf_daftar.SpeedButton3Click Menyimpan data pendaftaran.
Segmen 4.4. Proses Penginputan Pendaftaran
procedure Tf_daftar.SpeedButton3Click(Sender: TObject);
begin
if (edit1.Text<>'') and (edit2.Text<>'') and (edit3.Text<>'') and (edit4.Text<>'') then
begin
query1.close;
query1.SQL.clear;
query1.sql.add('insert into pendaftaran (no_pendaftaran,nama,alamat,kota,kode_pos,telepon,handphone,tempat ,tgl_lahir,email,pekerjaan) ');
query1.sql.add('values
('''+Edit1.text+''','''+Edit2.text+''','''+Edit3.text+''','''+edit 4.text+''','''+maskedit2.text+''','''+maskedit3.text+''','''+maske dit4.text+''','''+edit8.text+''','''+datetostr(datetimepicker1.dat e)+''','''+edit10.text+''','''+combobox1.text+''')');
query1.ExecSQL;
query1.Close;
query1.sql.clear;
query1.SQL.add('select * from pendaftaran');
query1.open;
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit8.Text:='';
edit10.Text:='';
maskedit2.Text:='';
combobox1.Text:='-Pilih-';
edit2.SetFocus;
end else
messagedlg('Input semua field!',mterror,[mbok],0);
end;
4.2.3.13 Form Nilai
Form nilai digunakan untuk mengisi data nilai peserta pelatihan tiap unit.
Tabel 4.11. Procedure Form Nilai
Procedure Fungsi
Tf_nilai.SpeedButton1Click Menyimpan data nilai yang telah dimasukkan.
Tf_nilai.SpeedButton3Click Mencetak data nilai yang telah dimasukkan.
4.2.3.14. Form Kelulusan
Form kelulusan digunakan untuk mengetahui peserta yang telah lulus pelatihan tertentu.
Tabel 4.12. Procedure Form Kelulusan
Procedure Fungsi
Tf_lulus.ComboBox1Click Menampilkan peserta yang telah lulus pelatihan tertentu. .
Segmen Program 4.5. Proses Kelulusan Peserta
procedure Tf_lulus.ComboBox1Click(Sender: TObject);
begin
query1.close;
query1.sql.clear;
query1.sql.add('select * from peserta');
query1.open;
if query1.Locate('no_induk',ComboBox1.Text,[]) then begin
edit1.Text:=Query1.fieldByName('Nama').AsString;
end;
table1.close;
table1.open;
table1.first;
while not table1.eof do begin table1.delete;
end;
table1.close;
query1.close;
query1.sql.clear;
query1.sql.add('select * from detail_pelatihan');
query1.open;
query1.first;
while not query1.eof do begin query2.close;
query2.sql.clear;
query2.sql.add('select * from detail_unit ');
query2.sql.add('where
kode_program='''+query1['kode_program']+''' and ');
query2.sql.add('kode_pelatihan='''+query1['kode_pelatihan']+''' and ');
query2.sql.add('periode='''+query1['periode']+''' and ');
query2.sql.add('tahun='''+query1['tahun']+''' ');
query2.open;
query3.close;
query3.sql.clear;
query3.sql.add('select detail_unit.tahun from detail_unit,nilai ');
query3.sql.add('where nilai.no__induk='''+combobox1.text+''' and ');
query3.sql.add('detail_unit.kode_unit=nilai.kode_unit and ');
query3.sql.add('detail_unit.kode_program='''+query1['kode_program' ]+''' and ');
query3.sql.add('detail_unit.kode_pelatihan='''+query1['kode_pelati han']+''' and ');
query3.sql.add('detail_unit.periode='''+query1['periode']+''' and ');
query3.sql.add('detail_unit.tahun='''+query1['tahun']+''' and ');
query3.sql.add('nilai.nilai>=60 ');
query3.open;
if (query2.recordcount>0) and
(query2.RecordCount=query3.RecordCount) then begin table1.open;
table1.append;
table1.fieldbyname('kode_program').asstring:=query1['kode_program' ];
table1.fieldbyname('kode_pelatihan').asstring:=query1['kode_pelati han'];
table1.fieldbyname('periode').asstring:=query1['periode'];
table1.fieldbyname('tahun').asstring:=query1['tahun'];
table1.post;
table1.close;
end;
query1.next;
end;
table1.open;
dbgrid1.refresh;
end;