D. Implementasi Sistem
1. Implementasi User Interface
Form pertama yang ditampilkan saat sistem diaktifkan adalah Form Pembuka (Gambar 9). Form ini memberikan informasi tentang Simbapro Krisan Potong PT ABN dan menunjukkan bahwa aplikasi dalam proses penyiapan. Setelah siap sistem akan meminta pengguna untuk melakukan login dengan mengisi form login (Gambar10).
Gambar 9. Form Pembuka Simbapro Krisan Potong PT ABN
Form login diperlukan untuk memastikan bahwa pengguna sistem adalah pengguna yang telah didaftar. Pengguna melakukan login dengan memasukkan nama dan password. Bila nama dan password salah maka sistem akan memberikan kesempatan untuk mengulang login hingga 3 kali kesempatan.
45 Bila pengguna telah memasukkan nama dan password dengan benar maka pengguna dizinkan mengakses semua data dan informasi pada sistem. Selanjutnya, pengguna disajikan tampilan menu utama Simbapro Krisan Potong PT ABN (Gambar 11). Form ini menyajikan pilihan-pilihan menu data dan informasi yang dikelompokkan dalam 6 macam, yaitu: master, operasi, informasi, laporan, grafik, serta sistem.
a. Menu Master
Menu ini menyediakan pilihan akses data master pada sistem produksi krisan potong PT ABN. Data master tersebut antara lain memuat submenu master tanaman induk, bibit, krisan, varietas, hama dan penyakit, supplier, lokasi,
green house dan komponennya, sarana produksi, jenis pemeliharaan, SOP,
serta bagian dalam sistem produksi. b. Menu Operasi
Menu ini menyediakan pilihan akses submenu data operasional produksi harian krisan potong PT ABN, antara lain memuat: pemeliharaan induk, bibit, krisan, impor varietas, prediksi panen, pengamatan hama dan penyakit tanaman, serta operasional.
c. Menu Informasi
Menu ini menyediakan submenu hasil pengolahan data master dan operasional. Menu ini menyediakan akses informasi meliputi: tanaman induk, bibit, krisan, pelacakan generasi krisan, perkembangan HPT, serta operasional. d. Menu Laporan
Menu ini menyediakan bentuk cetak informasi. Submenu laporan yang sudah disediakan oleh Simbapro Krisan Potong PT ABN terdiri dari Laporan Tanaman Induk dan Krisan Potong.
e. Menu Grafik
Menu ini menyediakan informasi dengan penyajian grafik. Informasi yang disediakan dalam menu ini meliputi submenu grafik tanaman induk, krisan potong, impor varietas, perkembangan hama dan penyakit tanaman.
f. Menu Sistem
Menu ini menyediakan akses terhadap informasi program Simbapro PT ABN (submenu about), proses login, dan exit untuk keluar dari program aplikasi.
46 Gambar 11. Menu Utama Simbapro Krisan Potong PT ABN
Selain mengakses melalui menu utama, pengguna juga dapat mengakses melalui toolbar. Toolbar digunakan untuk mempersingkat tugas pengguna dalam melakukan pekerjaan-pekerjaan yang penting dan sering dilakukan (Kurniadi, 2000). Toolbar Simbapro ini menyediakan menu data master, data operasional, informasi serta grafik.
Contoh implementasi form varietas krisan ditunjukkan pada Gambar 12. Form utama varietas dibuat dengan menggunakan tools yang terdapat pada Visual Basic 6. Dalam form utama tersebut digunakan kontrol text box untuk pemasukan data; label untuk teks tetap; list view untuk menampilkan data secara tabular;
frame untuk pengaturan kelompok kontrol; combo box untuk menyajikan pilihan;
command button untuk tombol-tombol perintah; dan image box untuk
menampilkan foto varietas. Form utama memiliki ukuran standar 10275 x 9100
pixel.
Form varietas pendukung (Gambar 14) terdiri dari kontrol text box, label,
47 standar 7725 x 5025 pixel. Common dialog digunakan dalam memudahkan pembukaan file gambar dalam tampilan jendela dialog Windows.
Gambar 12. Form Utama Varietas Krisan Simbapro Krisan Potong PT ABN
Form utama varietas diberi nama Form Data Varietas Krisan Potong PT Alam Indah Bunga Nusantara. Pada form itu diperlihatkan semua record yang disimpan dalam basis data sistem secara tabular dan diberikan keterangan jumlah data yang tersedia juga disediakan beberapa pilihan kegiatan yang dapat dilakukan terhadap data varietas, yaitu penambahan, perubahan, dan penghapusan data. Selain itu, form tersebut dilengkapi dengan tools untuk pencarian data berdasarkan kategori yang disediakan, sehingga dapat memudahkan pengguna dalam mencari data varietas tertentu.
Pada saat penambahan atau perubahan data, sistem akan menampilkan form pendukung (Gambar 13 dan 14). Form ini dilengkapi sebuah label status yang memberikan informasi proses yang sedang dilaksanakan oleh pengguna. Dengan form ini pengguna akan fokus terhadap sebuah data yang akan diprosesnya karena data ditampilkan secara columnar yaitu dalam kolom-kolom tunggal.
48 Gambar 13. Form Pemasukan Data Varietas Krisan
Gambar 14. Form Pengeditan Data Varietas Krisan
Saat pengeditan maupun penambahan data, bila terdapat kesalahan ataupun ketidaklengkapan data, sistem akan memberikan konfirmasi kepada pengguna, kemudian melakukan pembatalan proses yang sedang berlangsung (Gambar 15). Setelah sistem memastikan validasi dipenuhi dengan baik oleh pengguna, selanjutnya sistem akan mengizinkan proses dijalankan.
49 Gambar 15. Konfirmasi Ketidaklengkapan Data Perubahan Varietas
Sistem juga akan memberikan konfirmasi kepada pengguna bila melakukan proses penghapusan data seperti yang ditunjukkan pada Gambar 16. Setelah dipastikan benar akan dilakukan proses penghapusan maka sistem akan melakukan penghapusan data dari basis data sistem. Desain antarmuka penyimpanan data transaksi operasional tidaklah jauh berbeda dengan desain antarmuka data master.
Gambar 16. Konfirmasi Penghapusan Data Varietas
Form antarmuka penyajian informasi dilengkapi dengan navigasi sesuai informasi yang disediakan. Sebagai ilustrasi, form informasi induk (Gambar 17), terdapat 5 navigasi pilihan informasi. Navigasi pertama menyajikan informasi stok tanaman induk di lahan, navigasi kedua menyajikan informasi jadwal standar pemeliharaan tanaman induk yang menyesuaikan umur tanaman induk krisan, navigasi ketiga menyajikan informasi rekapitulasi transaksi pemeliharaan tanaman induk, pilihan navigasi keempat memberikan informasi jadwal bongkar tanaman induk, dan navigasi terakhir menyajikan informasi ringkasan tanaman induk dalam periode produksi berlangsung. Selain itu, juga disediakan fasilitas print untuk mencetak informasi yang disajikan dalam form tersebut (Gambar 18).
50 Gambar 17. Form Informasi Tanaman Induk
Gambar 18. Laporan Stok Induk Simbapro Krisan PT ABN
Form antarmuka penyajian grafik (Gambar 19), terdiri atas dua bagian. Bagian pertama adalah kontrol pemasukan parameter sedangkan bagian lainnya digunakan untuk menampilkan hasil grafik dari parameter yang diberikan. Dengan
51 grafik pengguna akan lebih mudah menginterpretasikan suatu informasi yang disajikan.
Gambar 19. Form Grafik Simbapro Krisan Potong PT ABN 2. Implementasi Proses dan Pemrograman Sistem
Pada saat pemrograman dibuatlah modul untuk efektivitas dan efisiensi pengkodean, yaitu dengan meringkas kode-kode program yang sama dan digunakan secara berulang, kemudian dikumpulkan menjadi suatu sub program sendiri yang dapat dipanggil berulang-ulang sesuai kebutuhan. Sub program-sub program tersebut disimpan dalam file modul yang bernama modul1.bas.
Sub program dalam bentuk prosedur maupun fungsi yang disimpan dalam file modul1.bas antara lain sebagai berikut.
a. Prosedur Form Center
Prosedur ini dijalankan saat form aktif. Semua form secara default diposisikan di tengah jendela form menu utama.
'prosedur untuk memposisikan jendela form di menu mdi Sub FormCenter(Frm As Form)
Frm.Top = (menu.Height * 0.85) / 2 ‐ Frm.Height / 2
Frm.Left = menu.Width / 2 ‐ Frm.Width / 2 End Sub
b. Prosedur Koneksi Basis Data
Komunikasi antara aplikasi Simbapro Krisan Potong PT ABN dengan Ms Access (RDBMS) dilakukan dengan menggunakan perantara Open Database
52
Conectivity Data Source Name (ODBC DSN). Kontrol Data aplikasi
menggunakan ActiveX Data Object (ADO). Kontrol ADO inilah yang dikoneksikan ke DSN. Dengan ODBC ini dapat dilakukan pengaksesan data dari berbagai macam DBMS hanya dengan memastikan bahwa koneksi aplikasi ke ODBC sudah benar.
Koneksi menggunakan perantara ODBC dipilih karena koneksi yang tersebut sekaligus untuk mengkoneksikan Crystal Report 4.6.1.116, yaitu program untuk pembuatan desain laporan, dengan RDBMS. Program bawaan Visual Basic 6 ini tidak dapat mengenali basis data Ms Acces 2007 yang digunakan dalam membangun basis data.
Public Conn As New ADODB.Connection Public conshape As New ADODB.Connection Public rs As New ADODB.Recordset
Public rshpt As ADODB.Recordset Public rssuplier As ADODB.Recordset Public rspengguna As ADODB.Recordset Public rslahan As ADODB.Recordset Public rssaprodi As ADODB.Recordset Public rsgh As ADODB.Recordset Public rsghdetil As ADODB.Recordset Public rsbagian As ADODB.Recordset Public rslokasi As ADODB.Recordset Public rsbibit As ADODB.Recordset Public rsvar As ADODB.Recordset Public rskrisan As ADODB.Recordset Public rstranstanaman As ADODB.Recordset 'prosedur untuk melakukan koneksi basis data Public Sub bukadb()
If Conn.State = 1 Then Conn.Close
Set Conn = New ADODB.Connection
Set rssuplier = New ADODB.Recordset
Set rshpt = New ADODB.Recordset
Set rslahan = New ADODB.Recordset
Set rsgh = New ADODB.Recordset
Set rsghdetil = New ADODB.Recordset
Set rssaprodi = New ADODB.Recordset
Set rsbagian = New ADODB.Recordset
Set rslokasi = New ADODB.Recordset
Set rsbibit = New ADODB.Recordset
Set rskrisan = New ADODB.Recordset
Set rspengguna = New ADODB.Recordset
Set rsvar = New ADODB.Recordset
Set rstranstanaman = New ADODB.Recordset
Conn.Open "dsn=coba" End Sub
'prosedur untuk melakukan penutupan koneksi basis data Public Sub tutupdb()
53
Conn.Close
Set Conn = Nothing End Sub
b. Prosedur Stok Tanaman
Prosedur ini digunakan ketika melakukan operasi perubahan jumlah penanaman awal ataupun pemeliharaan terhadap objek tanaman (induk, krisan, bibit). Perubahan tersebut akan mempengaruhi jumlah stok objek tanaman. Argumen yang digunakan adalah jenis objek tanaman dan kode unik dari objek tanaman tersebut.
Public Sub updatestok(ByVal strobjek As String, ByVal strkode As String) Dim longstok, longawal, longmasuk, longkeluar As Long
Dim rsawal As New ADODB.Recordset Dim rsinput As New ADODB.Recordset Dim rsoutput As New ADODB.Recordset
Dim strtabel, strtabeltrans, strkolom, strkolomid As String Dim strawal, strinput, stroutput, strupdate As String
Select Case strobjek
'objek adalah tanaman induk
Case "induk":
strtabel = "tbl_induk"
strtabeltrans = "tbl_trans_induk"
strkolomid = "[indukid]"
strkolom = "jmlinduk"
'objek adalah tanaman krisan
Case "krisan"
strtabel = "tbl_krisan"
strtabeltrans = "tbl_trans_krisan"
strkolomid = "[krisanid]"
strkolom = "jmlkrisan"
'objek adalah bibitkrisan
Case Else strtabel = "tbl_bibit" strtabeltrans = "tbl_trans_bibit" strkolomid = "[bibitid]" strkolom = "jmlbibit" End Select
strinput = "SELECT SUM (" & strkolom & ") AS masuk "
strinput = strinput & "FROM tbl_trans_tanaman INNER JOIN " & strtabeltrans & " ON tbl_trans_tanaman.[no] = " & strtabeltrans & ".kegiatanid "
strinput = strinput & "WHERE tbl_trans_tanaman.status='PLUS' AND " & strkolomid & "= '" & strkode & "'"
stroutput = "SELECT SUM (" & strkolom & ") AS keluar "
stroutput = stroutput & "FROM tbl_trans_tanaman INNER JOIN " & strtabeltrans & " ON tbl_trans_tanaman.[no] = " & strtabeltrans & ".kegiatanid "
stroutput = stroutput & "WHERE tbl_trans_tanaman.status='MINUS' AND " & strkolomid & "= '" & strkode & "'"
Call bukadb
54
rsoutput.Open stroutput, Conn
If IsNull(rsinput!masuk) = True Then
longmasuk = 0
Else
longmasuk = rsinput!masuk
End If
If IsNull(rsoutput!keluar) = True Then
longkeluar = 0
Else
longkeluar = rsoutput!keluar
End If
longstok = (longmasuk ‐ longkeluar)
'update stok terakhier
strupdate = "UPDATE " & strtabel & " SET stok = '" & longstok & "' "
strupdate = strupdate & "WHERE " & strkolomid & " = '" & strkode & "'"
Conn.Execute (strupdate)
Call tutupdb End Sub
c. Prosedur Koneksi Data Shape
Grafik yang dibuat, di antaranya ada yang menggunakan kontrol data shape, karena melibatkan 3 variabel yang berbeda. Dengan kontrol ini dapat dibuat bentuk cross tab nilai dari suatu recordset.
Public rsshape As New ADODB.Recordset Public Sub bukashape()
If conshape.State = 1 Then conshape.Close
Set conshape = New ADODB.Connection
conshape.Open"PROVIDER=MSDataShape;dsn=coba;uid=;pwd=;Data Provider=MSDASQL" End Sub
Public Sub tutupshape()
conshape.Close
Set conshape = Nothing End Sub
d. Prosedur Minggu Kerja
Prosedur ini digunakan untuk perhitungan minggu kerja. Minggu kerja aktif adalah fungsi dari perbedaan waktu (dalam minggu) tanggal periode awal dengan tanggal saat sistem aktif.
Public Function mk() As Integer
Dim rsmk As New ADODB.Recordset
Call bukadb
rsmk.Open "tbl_periode", Conn
mk = DateDiff("w", rsmk("awal"), Date)
Call tutupdb End Function
55 e. Prosedur Kode Transaksi
Pada setiap transaksi diberikan kode unik, sehingga perlu dibuat otomatisasi dalam pembuatan kode transaksi kegiatan pemeliharaan. Prosedur ini memintakan parameter nilai dari recordset tabel transaksi, tanggal transaksi, dan nama kolom kode transaksi. Kode transaksi dibuat memenuhi yy+mm+dd+0001. Kode tersebut akan bertambah secara urut dan memulai dari urutan pertama bila ada perubahan hari.
'fungsi umum untuk mengambil kode transaksi operasional
Public Function trans(rs As ADODB.Recordset, tgltrans, kolomid As String) As String
'baca tabeltrans yang transindukidnya paling akhir
rs.Requery
Dim strurutan As String * 10
Dim lnHitung As Long
With rs
'jika data tidak ditemukan maka...
If .EOF Then
strurutan = Right(tgltrans, 2) + Mid(tgltrans, 4, 2) + Left(tgltrans, 2) + "0001"
'no transidnya adalah YYMMDD0001
trans = strurutan
Else
'jika ganti hari maka... nomor transindukidnya
If Left(.Fields("" & kolomid & ""), 6) <> Right(tgltrans, 2) + Mid(tgltrans, 4, 2) + Left(tgltrans, 2) Then
'YYMMDD0001
strurutan = Right(tgltrans, 2) + Mid(tgltrans, 4, 2) + Left(tgltrans, 2) + "0001"
Else
'jika harinya sama maka... YYMMDD0001+1
lnHitung = (.Fields("" & kolomid & "")) + 1
strurutan = (Right(tgltrans, 2) + Mid(tgltrans, 4, 2) + Left(tgltrans, 2)) + Right("0000" & lnHitung, 4) End If End If trans = strurutan End With End Function
f. Prosedur Hapus Tabel Temporer
Proses transaksi kadang melibatkan sebuah tabel temporer pada basis data untuk penyimpanan sementara data transaksi sebelum dilakukan penyimpanan pada tabel utama. Sebelum tabel temporari digunakan, tabel tersebut harus dikosongkan terlebih dahulu.
56 'prosedur umum untuk menghapus isi suatu tabel tertentu
Public Sub hapustabel(strtbl As String)
Dim rshapus As New ADODB.Recordset
Call bukadb
rshapus.Open strtbl, Conn
'koreksi keberadaan data, bila ada data maka hapus data
If rshapus.EOF = False Then
Conn.Execute ("delete from " & strtbl & "")
End If
Call tutupdb End Sub
g. Prosedur Kontrol Text Box
Prosedur ini digunakan untuk melakukan pengosongan nilai dari semua kontrol text box yang terdapat pada suatu objek form.
'prosedur untuk mengosongkan textbox Public Sub kosongtext(objform As Form) Dim objek As Control
For Each objek In objform
If TypeOf objek Is TextBox Then objek.Text = ""
Next End Sub
h. Prosedur Cek Data
Prosedur ini berupa fungsi boolean untuk mengecek keberadaan data pada suatu recordset aktif. Fungsi akan mengembalikan nilai true bila data ditemukan pada recordset yang dimaksud. Sebaliknya akan memberikan nilai false bila data tidak ada.
Public Function cek(ByVal strtabel As String, ByVal kolom As String, ByVal strnilai As String) As Boolean
cek = False
strquery = "SELECT * FROM " & strtabel & " WHERE [" & kolom & "] = '" & strnilai & "'" Call bukadb
rs.Open strquery, Conn If Not rs.EOF Then
cek = True End If
Call tutupdb End Function
57 i. Prosedur Pesan Standar
Prosedur ini digunakan untuk menampilkan pesan konfirmasi standar.
'prosedur pesan informasi
Public Sub pesan(ByVal strjenis As String, ByVal strpesan As String) Select Case UCase(Trim(strjenis))
Case "PERHATIAN"
MsgBox UCase(strpesan), vbExclamation + vbOKOnly, "[PESAN]" Case "INFO":
MsgBox UCase(strpesan), vbInformation + vbOKOnly, "[PESAN]" End Select
End Sub
j. Prosedur Kode Tanaman Induk
Prosedur ini digunakan dalam pembuatan kode internal dan eksternal tanaman induk yang unik. Kode internal tanaman induk memenuhi yy-mm- 000001. Angka kode akan bertambah bila tanaman induk ditanam pada bulan yang sama, dan akan mereset dari awal bila ada perubahan bulan. Sementara itu, kode tanaman eksternal memenuhi VARID + LOKASIID + MM + YY
'nomorinduk merupakan kodetanaman internal Private Sub nomorinduk()
Dim lnHitung As Long Dim strurutan As String
Call bukadb
rs.Open "select * from tbl_induk where indukid in(select max(indukid) from tbl_induk) ORDER BY indukid desc", Conn
If rs.EOF Then
'kode = yy‐mm‐000001
strurutan = Right(Me.DTPtgltanam, 2) + Mid(Me.DTPtgltanam, 4, 2) + "000001"
Else
If Left(rs("indukid"), 4) <> Right(Me.DTPtgltanam, 2) + Mid(Me.DTPtgltanam, 4, 2) Then
strurutan = Right(Me.DTPtgltanam, 2) + Mid(Me.DTPtgltanam, 4, 2) + "000001"
Else
lnHitung = (rs("indukid") + 1)
strurutan = (Right(Me.DTPtgltanam, 2) + Mid(Me.DTPtgltanam, 4, 2)) + Right("0000" & lnHitung, 6) End If End If Call tutupdb Me.txtindukid.Text = strurutan End Sub
'kodeinduk merupakan kode tanaman induk eksternal VARID + LOKASIID + MM + YY Private Sub kodeinduk()
Me.txtkode.Text = Mid(Me.cmbvarietas.Text, 3, 3) & Me.cmblokasi.Text _
& Mid(Me.DTPtgltanam, 4, 2) & Right(Me.DTPtgltanam, 2)
58 k. Prosedur Validasi Kelengkapan Data
Sebelum data penting dilengkapi oleh pengguna, sistem akan menolak proses penyimpanan dan memberikan konfirmasi adanya ketidaklengkapan data yang akan disimpan. Metode vbCrlf digunakan untuk membuat baris baru pada tampilan message box.
'validasi kelengkapan data
ms = ""
If Me.cmbvarietas.Text = "" Then ms = ms + "VARIETAS BELUM DIISI!" + vbCrLf
If Me.txtasalinduk.Text = "" Then ms = ms + "ASAL INDUK BELUM DIIISI!" + vbCrLf
If Me.txtremske.Text = "" Then ms = ms + "TURUNAN INDUK BELUM DIISI!" + vbCrLf
If Me.txtjumlah.Text = "" Then ms = ms + "JUMLAH STEK BELUM DIISI" + vbCrLf
If Me.cmblokasi.Text = "" Then ms = ms + "LOKASI BELUM DIISI!" + vbCrLf
If Me.txtket.Text = "" Then ms = ms + "KETERANGAN INDUK BELUM DIISI!" + vbCrLf
If ms <> "" Then
Call pesan("info", ms)
Exit Sub
End If
l. Prosedur Validasi Data Unik
Sebelum dilakukan penyimpanan data, sistem akan melakukan pengecekan terhadap keberadaan data baru. Bila sudah terdapat data yang sama sistem akan menolak untuk melakukan proses penyimpanan.
‘validasi unik data
If cek("tbl_induk", "indukid", Me.txtindukid.Text) = False Then
MsgBox "MOTHERSTOK ID = " & Me.txtindukid.Text & "‐" & Me.txtkode.Text & Space(5) & "Jumlah = " & Me.txtjumlah & " siap", vbOKOnly + vbInformation, "[PESAN]"
Call simpan Else
Call pesan("info", "DATA TANAMAN INDUK SUDAH ADA!") End If
c. Prosedur Setting Grid List View
Kode untuk melakukan pengaturan grid objek List View pada saat form utama tanaman induk dijalankan. Kode ini dipanggil saat form utama pada even form_load.
Sub gridinduk()
Dim header As ColumnHeader
Me.lsdata.ColumnHeaders.Clear
Set header = Me.lsdata.ColumnHeaders.Add(, , "ID INDUK", 1500, lvwColumnLeft)
Set header = Me.lsdata.ColumnHeaders.Add(, , "KODE INDUK", 1500, lvwColumnLeft)
Set header = Me.lsdata.ColumnHeaders.Add(, , "VARIETAS", 2000, lvwColumnLeft)
59
Set header = Me.lsdata.ColumnHeaders.Add(, , "ASAL", 1500, lvwColumnCenter)
Set header = Me.lsdata.ColumnHeaders.Add(, , "REMS KE", 1500, lvwColumnCenter)
Set header = Me.lsdata.ColumnHeaders.Add(, , "TGL TANAM", 1500, lvwColumnCenter)
Set header = Me.lsdata.ColumnHeaders.Add(, , "JUMLAH", 1500, lvwColumnRight)
Set header = Me.lsdata.ColumnHeaders.Add(, , "KETERANGAN", 4000, lvwColumnLeft) End Sub
m. Prosedur Tampil Data
Kode untuk mengambil data dari basis data sesuai dengan kategori melalui perintah sql strquery yang telah dimodifikasi agar bisa dieksekusi pada Visual Basic. Bila data ditemukan maka data tersebut akan ditampilkan dalam kontrol list view. Perintah sql dieksekusi melalui objek recordset setelah membuka koneksi dengan basis data terlebih dahulu. Kemudian dilakukan proses pengkodean untuk menampilkan data tersebut menggunakan kontrol objek List View.
Private Sub tampildata() strquery = "select * "
strquery = strquery & "from (tbl_induk inner join tbl_varietas on " strquery = strquery & "tbl_induk.varid = tbl_varietas.varid) "
strquery = strquery & " INNER JOIN Tbl_trans_induk ON tbl_induk.ketinduk = tbl_trans_induk.transid "
Dim i As Long i = 1
Me.lsdata.ListItems.Clear Call bukadb
If Me.cmbjk.ListIndex = 1 Then 'berdasarkan kode induk
rs.Open strquery & "WHERE [tbl_induk.indukid] LIKE '" & Me.txtcari.Text & "%'ORDER BY tbl_induk.tgltanam desc", Conn
ElseIf Me.cmbjk.ListIndex = 2 Then 'berdasarkan varietas
rs.Open strquery & "WHERE [tbl_varietas.varietas] LIKE '" & Me.txtcari.Text & "%'ORDER BY tbl_induk.tgltanam desc", Conn
ElseIf Me.cmbjk.ListIndex = 3 Then
rs.Open strquery & "where [tbl_induk.lokasiid] LIKE '" & Me.txtcari.Text & "%'ORDER BY tbl_induk.tgltanam desc", Conn
Else
rs.Open strquery & "ORDER BY tbl_induk.tgltanam desc", Conn End If
'pengingkatan data dari recordset ke listview (databoundcontrol)
Do While Not rs.EOF
Me.lsdata.ListItems.Add i, , Trim(rs("indukid"))
Me.lsdata.ListItems(i).ListSubItems.Add 1, , Trim(rs("kodeinduk"))
Me.lsdata.ListItems(i).ListSubItems.Add 2, , Trim(rs("varid")) & " ‐ " & Trim(rs("varietas"))
Me.lsdata.ListItems(i).ListSubItems.Add 3, , Trim(rs("lokasiid")) Me.lsdata.ListItems(i).ListSubItems.Add 4, , Trim(rs("asalinduk")) Me.lsdata.ListItems(i).ListSubItems.Add 5, , Trim(rs("remske")) Me.lsdata.ListItems(i).ListSubItems.Add 6, , Trim(rs("tgltanam")) Me.lsdata.ListItems(i).ListSubItems.Add 7, , Trim(rs("jmlinduk")) Me.lsdata.ListItems(i).ListSubItems.Add 8, , Trim(rs("kettransinduk")) i = i + 1
60
rs.MoveNext
Loop Call tutupdb
Me.lblrecord.Caption = Me.lsdata.ListItems.Count & " Data Ditemukan" End Sub
o. Prosedur Simpan Data
Penyimpanan data master induk melibatkan 2 buah tabel, yaitu tbl_induk dan tbl_trans_induk. Proses pertama yang dilakukan pada prosedur ini adalah mengambil kode transaksi terakhir dari tbl_trans_induk untuk mendapatkan kode transaksi penanaman induk. Perintah query penyimpanan disimpan dalam variabel string strquery1 dan strquery2. Strquery1 untuk sintaks perintah penyimpanan data pada tabel_induk sedangkan strquery2 untuk penyimpanan data tbl_trans_induk.
Proses penyimpanan data ke dalam kedua tabel harus berhasil semuanya. Bila salah satu gagal maka proses penyimpanan pada kedua tabel harus dibatalkan. Oleh karena itu, digunakanlah metode begintrans, committrans, dan
RollbackTrans yang ada pada objek conn (ADODB.Connection).
Metode begintrans digunakan untuk memulai transaksi baru, comittrans untuk menyimpan perubahan dari proses transaksi baru yang diawali metode
begintrans. Rollbacktrans untuk membatalkan perubahan yang terjadi saat
transaksi atau mengakhiri transaksi yang gagal.
Private Sub simpan() On Error GoTo salahtransaksi Dim strtransid As String Dim strquery1 As String Dim strquery2 As String
'ambil data transid terbaru pemeliharaan induk Call bukadb
rs.Open "SELECT * FROM tbl_trans_induk WHERE transid in(select max(transid) from tbl_trans_induk) ORDER BY transid desc", Conn
strtransid = trans(rs, Date, "transid") Call tutupdb
'simpan data pada tabel induk
strquery1 = "INSERT INTO tbl_induk values ('" & Me.txtindukid.Text & "', " strquery1 = strquery1 & "'" & Me.txtkode.Text & "', "
strquery1 = strquery1 & "'" & Left(Me.cmbvarietas.Text, 5) & "', " strquery1 = strquery1 & "'" & Me.cmblokasi.Text & "', "
strquery1 = strquery1 & "'" & Me.txtasalinduk.Text & "', " strquery1 = strquery1 & "'" & Me.txtremske & "', "
61
strquery1 = strquery1 & "'" & Me.DTPtgltanam & "', " strquery1 = strquery1 & "'" & Me.txtjumlah.Text & "', " strquery1 = strquery1 & "'" & strtransid & "', "
strquery1 = strquery1 & "'" & Me.txtjumlah.Text & "')"