Aplikasi Apotik dengan menggunakan bahasa pemrograman java. Aplikasi ini mempunyai menu utama yaitu :
Login
Dalam login terdapat form yang harus diisi dengan username dan password. Username yang kami pakai untuk menjalankan program ini adalah Didi dengan password 1308063, Lyta dengan pasword 1308071, dan Yana dengan pasword 1308080. Nama dan password tersebut sudah terinput dalam database. Ini adalah tampilan form login dari Aplikasi Apotik yang kami buat. Tampilan login di bawah ini adalah tampilan jika tidak berhasil login, maka akan muncul Pesan Login seperti dibawah ini.
Kesalahan seperti ini biasanya username atau password yang dimasukkan tidak sesuai dengan nama admin yang sudah ter-input didatabase. Jika berhasil login maka akan muncul Pesan Login seperti dibawah ini.
Dalam menu utama berisi File, Obat, Penjualan, Distributor dan Help.berikut contoh dan penjelasannya :
File
Dalam menu file terdapat form Admin, About, dan Logout. Form Admin
Pada form admin terdapat beberapa tombol,yaitu : Simpan Tombol Simpan berguna untuk menyimpan data yang akan diinput dari aplikasi sehingga dapat tersimpan kedalam database. Di bawah ini adalah script dari tombol simpan:
private void simpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String user="root"; String pwd=""; String host="localhost"; String db="menulogin"; String urlValue=""; try { Class.forName("com.mysql.jdbc.Driver"); urlValue="jdbc:mysql://"+ host +"/"+ db +"?user="+ user +"&password="+ pwd; Connection conn= DriverManager.getConnection(urlValue); PreparedStatement pStatement=null; String sql ="insert into userapp"+ "(id,Nama,Password)" + "values(?,?,?)"; pStatement = conn.prepareStatement(sql); pStatement.setString(1, txt1.getText()); pStatement.setString(2, txt2.getText()); pStatement.setString(3, txt3.getText()); int intTambah=pStatement.executeUpdate(); if (intTambah > 0) JOptionPane.showMessageDialog(this, "Input data berhasil", "Informasi", JOptionPane.INFORMATION_MESSAGE); else JOptionPane.showMessageDialog(this, "Input data gagal !!!", "Error", JOptionPane.INFORMATION_MESSAGE); pStatement.close(); conn.close(); txt1.setText(""); txt2.setText(""); txt3.setText(""); txt1.requestFocus(); tampilTabel(); } catch (ClassNotFoundException e){
Cari Tombol cari berguna untuk mencari data admin yang kita inginkan. Caranya yaitu dengan mengetik ID admin pada teks Id yang terdapat pada form admin, kemudian klik tombol cari. Di bawah ini adalah script tombol cari pada form admin :
private void cariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String user="root"; String pwd=""; String host="localhost"; String db="menulogin"; String urlValue=""; Connection Lconnection=null; try{ Class.forName("com.mysql.jdbc.Driver"); urlValue="jdbc:mysql://"+ host +"/"+ db +"?user="+ user + "&password="+ pwd; Lconnection=DriverManager.getConnection(urlValue); Statement st= Lconnection.createStatement(); ResultSet rs= st.executeQuery( "Select * from userapp"+ " where id = "+ txt1.getText()); if(rs.next()){ txt2.setText(rs.getString("Nama")); txt3.setText(rs.getString("Password")); } else { JOptionPane.showMessageDialog(this, "Id : Salah","Informasi", JOptionPane.INFORMATION_MESSAGE); txt1.setText(""); txt2.setText(""); txt3.setText(""); txt1.requestFocus(); } } catch(ClassNotFoundException e){
Edit Tombol edit digunakan untuk mengedit database yang sudah terinput. Untuk menggunakan tombol edit harus mengetikan ID admin yang ingin diedit kemudian klik tombol cari sehingga muncul data admin yang ingin diedit. Setalah muncul data admin tersebut kita langsung dapat mengedit dan klik tombol edit. Di bawah ini adalah script tombol edit :
private void editActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String user="root"; String pwd=""; String host="localhost"; String db="menulogin"; String urlValue=""; Connection Lconnection=null; try{ Class.forName("com.mysql.jdbc.Driver"); urlValue="jdbc:mysql://"+ host +"/"+ db +"?user="+ user + "&password="+ pwd; Lconnection=DriverManager.getConnection(urlValue); PreparedStatement pStatement = null; String sql ="update userapp set Nama=?, Password=? where id=?"; pStatement = Lconnection.prepareStatement(sql); pStatement.setString(1, txt2.getText()); pStatement.setString(2, txt3.getText()); pStatement.setString(3, txt1.getText()); int intTambah = pStatement.executeUpdate(); if(intTambah > 0) JOptionPane.showMessageDialog(this, "Edit Sukses","Informasi", JOptionPane.INFORMATION_MESSAGE); else JOptionPane.showMessageDialog(this, "Edit Gagal","Informasi", JOptionPane.INFORMATION_MESSAGE); pStatement.close(); txt1.setText("");
txt2.setText(""); txt3.setText(""); txt1.requestFocus(); tampilTabel(); } catch(ClassNotFoundException e){ System.out.println("jdbc.Driver tidak ditemukan"); } catch(SQLException e){ System.out.println("Koneksi Gagal"+ e.toString()); } }
Bersih Tombol ini digunakan untuk mengkosongkan data yang masih mucul. Berikut contoh scriptnya :
private void bersihActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: txt1.setText(""); txt2.setText(""); txt3.setText(""); txt1.requestFocus(); }
Hapus Tombol ini digunakan untuk menghapus data yang sudah terinput ke dalam database. Berikut contoh scriptnya :
private void hapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String user="root"; String pwd=""; String host="localhost"; String db="menulogin"; String urlValue=""; try{ Class.forName("com.mysql.jdbc.Driver"); urlValue ="jdbc:mysql://"+ host +"/"+ db +"?user="+ user +"&password="+ pwd; Connection conn = DriverManager.getConnection(urlValue); PreparedStatement pStatement = null; String sql ="delete from userapp where id=?"; pStatement=conn.prepareStatement(sql);
pStatement.setString(1, txt1.getText()); int intTambah = pStatement.executeUpdate(); if(intTambah >0) JOptionPane.showMessageDialog(this, "Hapus data sukses", "Informasi", JOptionPane.INFORMATION_MESSAGE); else JOptionPane.showMessageDialog(this, "Hapus data gagal", "Informasi", JOptionPane.INFORMATION_MESSAGE); pStatement.close(); conn.close(); txt1.setText(""); txt2.setText(""); txt3.setText(""); txt1.requestFocus(); tampilTabel(); } catch (ClassNotFoundException e){ System.out.println("jdbc.Driver tidak ditemukan"); } catch (SQLException e){ System.out.println("Koneksi gagal"+ e.toString()); } }
Keluar Tombol ini digunakan untuk keluar dari form admin. Berikut contoh scriptnya :
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: this.dispose(); }
Form About
Form Logout
Obat
Dalam menu Obat terdapat form Entry Data, Back Order, dan Informasi. Dibawah ini adalah Form Entry Data: Form Entry Data
Form Informasi
Penjualan
Dalam menu Penjualan terdapat form Entry Beli dan Informasi Jual. Dibawah ini adalah Form Entry Beli: Form Entry Beli
10
Distributor
Dalam menu Distributor terdapat form Entry Distributor dan Data Distributor. Dibawah ini adalah Form Entry Distributor:
11
Bila ingin keluar dan kita mengklik tanda X pada kanan atas form menu utama maka akan muncul tampilan seperti ini :
Apabila kita tekan Yes maka akan keluar form berikutnya tetapi bila kita tekan No maka akan kembali ke form menu utama. Ini adalah form berikutnya bila kita mengklik Yes pada form diatas :
Setelah meng-klik tombol OK maka tampilan seluruh form akan keluar dan akan muncul form Login. Hal ini kami buat bertujuan untuk memudahkan pengguna agar tidak merasa repot untuk membuka aplikasi kembali.
Data Base
Nama Database : menulogin Di dalam database menulogin terdapat beberapa tabel, yaitu : 1. backorder Nama Field kd_obat nama_obat satuan t_border jam tanggal Tipe Data Int Varchar Varchar Varchar Time Date Length 10 20 30 30
12
2. distributor Nama Field kd_distributor nama alamat no_telp tgl_input 3. entrydata Nama Field kd_obat nama_obat nama_distributor satuan total jam tanggal 4. pembelian Nama Field kd_kasir nama_kasir nama_obat jml_barang total jam tanggal Tipe Data Varchar Varchar Varchar Varchar Int Time Date Length 10 20 30 10 30 Tipe Data Varchar Varchar Varchar Varchar Int Time Date Length 6 20 30 10 11 Tipe Data Varchar Varchar Varchar Varchar Date Length 10 20 50 30
13
5. userapp Nama Field id nama password Tipe Data Int Varchar Varchar Length 20 30 10
Tb_backorder
Kd_obat Nama_obat Satuan T_border Jam Tanggal
Tb_entrydata
kd_obat nama_obat nama_distributor Satuan Total Jam Tanggal
Tb_pembelian
kd_kasir nama_kasir nama_obat jml_barang Total Jam Tanggal
14
Dibawah ini bentuk UML dari Aplikasi Apotik yaitu terdiri dari :
Use case diagram
uses
uses
uses uses
uses
extends view data admin bersih data admin uses entry data obat uses uses
uses
edit data obat uses view data obat uses uses bersih data obat hapus data obat
uses
uses
entry data distributor uses bersih data backorder cari data distributor uses uses
bersih data distributor entry data pembelian uses cari data pembelian uses uses hapus data pembelian
uses
uses
15
Class diagram
Distributor -KdDistributor : String -Nama : String -Alamat : String -No_Tlp : Integer -Tgl_input : Date 1
End1 1 End2 EntryData -KdObat : String -NamaObat : String -NamaDistributor : String -Satuan : String -Total : Integer -Jam : String -Tanggal : Date 1 Pembelian -KdKasir : String -NamaKasir : String -NamaObat : String -JmlBarang : Integer -Total : Integer -Jam : String -Tanggal : Date
BackOrder -KdObat : String -NamaObat : String -Satuan : String -Tborder : String -Jam : String -Tanggal : Date
16
Sequence diagram
Login
EntryData
BackOrder
Distributor
Pembelian
Admin
-vertifikasi
17