• Tidak ada hasil yang ditemukan

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 & "')" 

Dokumen terkait