bab iii pembahasan 3.1. tinjauan perusahaan 3.1.1 ......dan bagian purchasing akan memesan barang...

Post on 30-Oct-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

30

BAB III

PEMBAHASAN

3.1. Tinjauan Perusahaan

Dalam tinjauan perusahaan ini berisi sejarah perusahaan, struktur organisasi serta

tugas dan fungsi dari masing-masing bagian yang ada dalam perusahaan.

3.1.1. Sejarah Perusahaan

PT. Nutech Pundi Arta bergerak dibidang jasa Cutting, Assembly Cutting, Mandrel

dan sebagainya. Perusahaan didirikan oleh Bp. Harun Abdul Munir pada tanggal 14

januari 2004 yang berletak di Jl. H. Junaidi No. 91, Kemanggisan Pulo, Jakarta Barat.

Pada tanggal 1 Maret 2014 PT. Nutech Pundi Arta membuka cabang di Purwakarta

yang menjadi pusat produksi. Sedangkan cabang perusahaan di Purwakarta beralamat

di Kamp. KarangMulya, Desa Cikopo, Kec. BungurSari, Purwakarta. PT. Nutech

Pundi Arta kurang lebih memiliki karyawan / karyawati 150 orang. PT. Nutech Pundi

Arta memiliki beberapa departemen. Salah satu dari departemen yang akan di

fokuskan pada kajian riset ini adalah workshop. Workshop menjadi tempat produksi

untuk mandrel dan dies (pisau) baik itu untuk Costumer atau kebutuhan Dies di

internal. Ada perlengkapan dasar yang harus dimiliki di workshop. Diantaranya Mesin

Bubut, Welding, Gerinda, Bor, Miling, Plate Cutting dan tentunya operator yang

memiliki skill untuk mengoperasikannya. Workshop memproduksi mandrel dan Dies

(Pisau) untuk setiap custumer dibidang manufaktur. Seperti proses pada umumnya,

costumer akan melakukan pemesanan barang mandrel atau dies yang memiliki

beberapa tipe atau item yang berbeda. Setiap customer yang memesan mandrel atau

31

dies akan mengirimkan drawing atau jig mandrel untuk setiap part name atau itemnya

pada admin gudang bagian workshop. Lalu, akan dilakukan perhitungan untuk

penawaran dies atau mandrel. Setelahnya admin gudang workshop memeriksa

kebutuhan material yang diperlukan. Melakukan permintaan barang atau material

kepada Purchasing setelah PO dikeluarkan. Dan bagian Purchasing akan memesan

barang atau material kepada Supplier sesuai dengan permintaan dari pihak gudang

melalui BPB (Bukti Permintaan Barang).

3.1.2. Struktur Organisasi Perusahaan dan Fungsi

Sumber: Company Profile PT. Nutech Pundi Arta

Gambar III.1. Struktur Organisasi yang dimiliki PT. NPA

Bp. Kurniawan Achadi

Manager Produksi

PT. NPA

Bp. Asep S.

Manager Workshop

PT. NPA

Amirsyah

SuperVisor Workshop

Bp. Harun Abdul Munir

Direktur PT. NPA

Khoer

Leader Workdshop Desi

Admin Gudang

Workshop

Operator Produksi

Erryk

Marketing

Wawan

Purchasing

Efa Huzaifah

Accounting

32

Untuk melengkapi struktur organisasi suatu perusahaan, diperlukan uraian tugas

yang akan menjelaskan tentang wewenang dan tanggung jawab masing-masing fungsi

dalam perusahaan. Uraian jabatan pada PT. Nutech Pundi Arta adalah sebagai berikut:

1. Direktur

Tugasnya yaitu sebagai pemimpin dan pemilik perusahaan.

2. Manager Produksi

a. Membuat perencanaan dan jadwal proses produksi

b. Mengawasi proses produksi agar kualitas, kuantitas dan waktunya sesuai dengan

perencanaan yang sudah dibuat

c. Bertanggung jawab mengatur manajemen gudang agar tidak terjadi kelebihan

atau kekurangan persediaan bahan baku, bahan penolong maupuan produk yang

sudah jadi di gudang

d. Bertanggung jawab mengatur manajemen alat agar fasilitas produksi berfungsi

sebagaimana mestinya dan beroperasi dengan lancar

e. Membuat laporan secara berkala mengenai kegiatan di bagiannya

f. Bertanggung jawab pada peningkatan ketrampilan dan keahlian karyawan yang

berada di bawah tanggung jawabnya

g. Memberikan penilaian dan sanksi jika karyawan di bawah tanggung jawabnya

melakukan kesalahan dan pelanggaran

h. Berinovasi dalam pengerjaan produksi dan memberikan masukan pada

perusahaan yang berkaitan dengan bagian produksi

3. Manajer Workshop

Tugas seorang yang menjabat sebagai manager sebenarnya adalah penyatuan yakni

bagaimana mengintegrasikan berbagai macam variabel (karakteristik, budaya,

33

pendidikan dan lain sebagainya) kedalam suatu tujuan organisasi yang sama dengan

cara melakukan mekanisme penyesuaian.

4. Accounting

Bertanggung jawab atas laporan aktivitas keuangan secara tertulis selain itu pada

jabatan ini dituntut untuk mengerti masalah perpajakan yang berlaku di negara

Indonesia karena laporan perpajakan perusahaan dibuat oleh Accounting staff.

5. Purchasing

Bertanggung jawab atas pemesanan barang atau keperluan perusahaan baik dalam

kantor maupun luar kantor.

6. SuperVisor

Supervisor harus bertanggung jawab dalam memastikan semua pekerjaan

dilaksanakan dengan baik sehingga semua proses produksi berjalan lancar seperti

monitoring produksi, pengawasah anak buah, melakukan instruksi kerja,

bertanggung jawab keamanan, keselamatan atau kesehatan yang terancam. Ia harus

mampu menjalin kerja sama dengan atasan perusahaan atau dengan bawahannya

agar tidak terjadi konflik.

7. Leader

Tanggung jawab team Leader sangat bervariasi, tetapi biasanya mencakup beberapa

tanggung jawab untuk membangun tim dan memastikan kerja sama tim.

8. Admin Gudang

Bertanggung jawab terhadap pengelolaan barang di gudang, memastikan stock

barang tersedia digudang sesuai kebutuhan operasional perusahaan, memberikan

informasi terhadap stock up to date barang per hari ke bagian yang membutuhkan,

memberikan informasi terhadap stock up to date barang per hari ke bagian yang

membutuhkan, Menerima barang datang untuk stock barang di gudang dan

34

mengelompokkannya sesuai item atau klasifikasi barang, menyediakan barang yang

akan digunakan, sesuai dengan Surat Perintah Kerja (SPK), membuat laporan akhir

bulan (Inventory Report), membuat surat jalan untuk setiap pengiriman projek yang

ada di workshop, mencatat dan mendata setiap pengiriman barang.

9. Operator Produksi

Dasar kualitas Sumber Daya Manusia (SDM) bagian produksi perusahaan yang telah

melewati pelatian khusus yang tentunya sangat berbeda dengan pelatihan pekerja

pabrik pada umumnya. Hal ini dilaksakan berdasarkan standar prosedur perusahaan

Melaksanakan proses produksi dengan prosedur berdasarkan target kualitas

perusahaan, mengoperasikan mesin, mengolah dan mengontrol proses produksi.

Melaksanakan, mengatur serta mengontrol dari bahan dasar "baku" menjadi bahan

jadi proses produksi dengan target bedasarkan prosedur perusahaan Mengutamakan

disiplin kerja, keselamatan kerja, keamanan berstandarkan prosedur perusahaan dan

kesehatan yang menjadikan hal yang diutamakan dalam cacatan perusahaan.

35

3.2. Tinjauan Kasus

3.2.1. Proses Bisnis Sistem Berjalan

Prosedur sistem berjalan pembelian secara kredit pada PT. Nutech Pundi Arta

adalah sebagai berikut :

1. Setiap ada pemesanan mandrel, pneumatic dan dies dari costumer melalui email

pada bagian marketing, lalu bagian marketing membuat penawaran harga. Setelah

itu, marketing memberikan informasi mengenai projek mandrel, pneumatic dan

dies berupa pola, drawing atau jig kepada manajer workshop. Manajer workshop

setelah menerima projek tersebut akan memberikannya kepada Supervisor

workshop yang akan melakukan analisa projek tersebut serta menganalisa

kebutuhan material.

2. Setelah Supervisor melakukan analisa, selajutnya akan membuat catatan dan

menyerahkan catatan tersebut kepada bagian admin gudang workshop dan meminta

admin untuk memenuhi kebutuhan material sesuai dengan catatan yang diberikan.

3. Bagian admin gudang workshop mengecek material. Jika ada material walaupun

sebagian maka akan memberikan informasi secara langsuung kepada Supervisor

dimana Supervisor akan memerintah kepada leader untuk mengerjakan projek. Jika

kurang material atau tidak ada material, maka admin gudang akan membuat BPB

(bukti permintaan barang). Admin gudang memberikan BPB tersebut kepada

Purchasing.

4. Purchasing melakukan pemesanan kepada supplier melalui pesan WhatsApp.

Umumnya membutuhkan waktu satu atau dua hari material akan datang. Namun

jika Supplier tidak memiliki barang, maka purchasing akan menegosiasikan

36

material kepada Supervisor. Sedangkan material yang dikirim akan diterima oleh

admin gudang. Admin gudang akan menerima surat jalan rangkap dari supplier.

Surat jalan 2 rangkap berwarna putih dan merah dikembalikan kepada supplier

sedangkan surat jalan 2 rangkap berwarna kuning dan hijau untuk admin dan

purchasing. Admin gudang mendapat fotocopy berwarna hijau sedangkan fotocopy

surat jalan berwarna kuning diberikan kepada Purchasing.

5. Purchasing akan membuat data laporan pembelian barang beserta lampiran PO.

Mengirimkan PO kepada Accounting dan juga Supplier. Sedangkan PO untuk

supplier adalah sebagai bukti untuk mencocokkan barang yang diminta. Sedangkan

untuk Accounting sebagai data untuk menyesuaikan laporan pembelian dan Faktur.

37

3.2.2. Activity Diagram

1. Activity diagram marketing menerima PO dan projek

Gambar III.2.Gambar Activity Diagram Marketing menerima PO

38

2. Acivity diagram Admin gudang workshop membuat BPB

Gambar III.3. Gambar Activity Diagram Admin gudang membuat BPB

39

3. Activity diagram Purchasing melakukan pemesanan barang/material

Gambar III.4. Gambar Activity diagram pemesanan barang

40

4. Activity diagram Admin gudang workshop menerima material

Gambar III.5. activity diagram admin gudang menerima material

41

5. Activity diagram Purchasing membuat laporan pembelian

Gambar III.6. Activity Diagram purchasing membuat laporan pembelian

42

3.2.3. Dokumen Masukan

Bentuk dokumen masukkan (input) yang dibutuhkan dalam spesifikasi sistem

informasi akuntansi berjalan adalah :

1. Nama Dokumen : Purchase Order (PO)

Fungsi Dokumen : Sebagai bukti pemesanan barang dari Customer

Sumber : Marketing

Tujuan : Purchasing

Frekuensi : Setiap akan mengajukan permintaan barang

Media : Email (PDF)

Jumlah : Satu lembar

Lampiran : A.1

2. Nama Dokumen : Bukti Permintaan Barang (BPB)

Fungsi Dokumen : Untuk mengajukan permintaan pembelian barang

Sumber : Admin Gudang Workshop

Tujuan : Purchasing

Frekuensi : Setiap akan mengajukan permintaan barang

Media : Kertas

Jumlah : Tiga lembar

Lampiran : A.2

43

3.2.4. Dokumen Keluaran

Bentuk dokumen keluaran (output) yang dibutuhkan dalam spesifikasi

sistem akuntansi berjalan adalah:

1. Nama Dokumen : Data Pesanan

Fungsi Dokumen : Untuk mengajukan permintaan material

Sumber : Purchasing

Tujuan : Supplier

Frekuensi : Setiap akan mengirim barang

Media : Kertas

Jumlah : Tiga lembar

Lampiran : A.3

2. Nama Dokumen : Surat Jalan

Fungsi Dokumen : Sebagai bukti mengirim material

Sumber : Supplier

Tujuan : Admin Gudang

Frekuensi : Sebagai bukti menerima barang dari supplier

Media : Kertas

Jumlah : Empat lembar

Lampiran : A.4

44

4. Nama Dokumen : Laporan pembelian

Fungsi Dokumen : Sebagai bukti pembelian barang/material

Sumber : Purchasing

Tujuan : Accounting

Frekuensi : Setiap seminggu sekali

Media : Kertas

Jumlah : Dua Lembar

Lampiran : A.5

3.2.5. Permasalahan Pokok

Proses yang belum terkomputerisasi atas pembelian secara kredit yang

dilakukan oleh purchasing kepada supplier sering terjadi salah komunikasi dan

kurang sesuainya permintaan barang dengan barang yang diterima. Sehingga

menghambat proses produksi yang akan berimbas pada keterlambatan target yang

telah ditentukan. Setelah mengamati, penulis sering mendapati kesalahan barang

yang datang, menjadi masalah yang cukup serius. Tentu hal ini tidak bisa

diremehkan kan membutuhkan solusi yang serius dalam menanggapi masalah

tersebut.

45

3.2.6. Pemecahan Masalah

Sistem yang terkompterisasi akan sangat membantu pekerjaan dari purchasing

itu sendiri dalam melakukan pekerjaannya. Akan mempermudah dalam pendataan

dan melakukan pemesanan barang atau material sehingga tidak merugikan satu

sama lain serta mempermudah dalam mengelola laporan pembelian barang.

Maka dari itu, penulis mengusulkan beberapa aternatif masalah dari masalah

yang dihadapi, antara lain:

1. Membuat sebuah rancangan aplikasi pembelian kredit pada purchasing,

dimana akan mempermudah pencatatan pembelian setiap barang atau material.

2. Aplikasi yang dibuat harus terdatabase agar data lebih rapih dan tidak

tergabung menjadi satu dengan data yang lain.

3. Aplikasi yang dapat mengelola laporan pembelian barang.

3.3. Analisis Kebutuhan Software

3.3.1. Analisa Kebutuhan

1. Halaman Bagian Purchasing

A.1. Purchasing melakukan login

A.2. Purchasing mengelola Data Purchase Order (PO)

A.3. Purchasing mengelola Data Supplier

A.4. Purchasing mengelola Data Costumer

A.5. Purchasing mengelola Data Pesanan (Order Data)

A.6. Purchasing mengelola Jurnal Pembelian (Purchase Journal)

A.7. Purchasing mengelola Laporan Pembelian (Purchase Report)

46

3.3.2. Use Case Diagram

1. Use Case Purchasing melakukan Login

Gambar III.6. Purchasing melakukan Login

Tabel III.1. Deskripsi Use Case login Admin

Use Case Narrative Purchasing Login

Tujuan Melakukan Login

Deskripsi Sistem ini memungkinkan aktor untuk

melakukan Login dan masuk

kehalaman menu utama

Skenario Utama

Aktor Admin

Kondisi Awal Aktor membuka aplikasi Java Berbasis

Desktop Pembelian

Aktsi Aktor Reaksi Sistem

47

1. Aktor memilih Login Sistem akan menampilkan Menu Utama

ssetelah aktor memasukkan Username

dan Password

2. Aktor memilih Cancel Sistem akan menampilkan Menu Login

Kondisi Akhir Jika perintah sesuai maka sistem akan

menampilkan seperti permintaan

2. Use Case Purchasing mengelola Data Purchase Order (PO)

Gambar III.7.Gambar Use Case Purchasing mengelola Data Purchase Order

Tabel III.2. Deskripsi Purchasing mengelola Data Purchase Order (PO)

Use Case Narrative Purchase Order

Tujuan Mengelola Data PO yang diterima

Deskripsi Sistem ini memungkinkan aktor untuk

melakukan menambah, mengubah,

menyimpan, membatalkan Data PO.

48

Serta dapat keluar dari aplikasi secara

langsung

Skenario Utama

Aktor Purchasing

Kondisi Awal Aktor membuka aplikasi Java Berbasis

Desktop

Aktsi Aktor Reaksi Sistem

3. Aktor memilih Login Sistem akan menampilkan Menu Utama

setelah aktor memasukkan Username

dan Password

4. Aktor memilih Data PO Sistem akan menampilkan Form PO

Kondisi Akhir Jika perintah sesuai maka sistem akan

menampilkan seperti permintaan

3. Use Case Diagram Purchasing mengelola Data Supplier

Gambar. III.8. Gambar Use Case Purchasing mengelola Data Supplier

Tabel III.3. Deskripsi Purchasing mengelola Data Costumer dan Supplier

49

Use Case Narrative Data Supplier

Tujuan Mengelola Data Supplier

Deskripsi Sistem ini memungkinkan aktor untuk

melakukan menambah, mengubah,

menyimpan, membatalkan Data

Supplier. Serta dapat keluar dari form

tersebut

Skenario Utama

Aktor Purchasing

Kondisi Awal Aktor membuka aplikasi Java Berbasis

Desktop

Aktsi Aktor Reaksi Sistem

5. Aktor memilih Login Sistem akan menampilkan Menu Utama

ssetelah aktor memasukkan Username

dan Password

6. Aktor memilih Data Supplier Sistem akan menampilkan Form Data

Supplier

Kondisi Akhir Jika perintah sesuai maka sistem akan

menampilkan seperti permintaan

50

4. Use Case Diagram mengelola Data Costumer

Gambar III.8. Gambar Use Case Diagram mengelola Data Costumer

TABEL III.4. Purchasing mengelola Data Costumer

Use Case Narrative Customer

Tujuan Mengelola Data Costumer

Deskripsi Sistem ini memungkinkan aktor untuk

melakukan menambah, mengubah,

menyimpan, membatalkan Data

Supplier. Serta dapat keluar dari form

tersebut

Skenario Utama

Aktor Purchasing

51

Kondisi Awal Aktor membuka aplikasi Java Berbasis

Desktop

Aktsi Aktor Reaksi Sistem

7. Aktor memilih Login Sistem akan menampilkan Menu Utama

ssetelah aktor memasukkan Username

dan Password

8. Aktor memilih Data Supplier Sistem akan menampilkan Form Data

Customer

Kondisi Akhir Jika perintah sesuai maka sistem akan

menampilkan seperti permintaan

5. Use Case Diagram mengelola Data Pesanan

Gambar III.9. Gambar Use Case Diagram mengelola Data Pesanan

Tabel III.5. Deskripsi Purchasing mengelola Data Pesanan

52

Use Case Narrative Pesanan

Tujuan Mengelola Data Pesanan

Deskripsi Sistem ini memungkinkan aktor untuk

melakukan menambah, mengubah,

menyimpan, membatalkan Form Jurnal

Pembelian. Serta dapat keluar dari

Form tersebut

Skenario Utama

Aktor Purchasing

Kondisi Awal Aktor membuka aplikasi Java Berbasis

Desktop

Aktsi Aktor Reaksi Sistem

9. Aktor memilih Login Sistem akan menampilkan Menu Utama

ssetelah aktor memasukkan Username

dan Password

10. Aktor memilih Data Jurnal

Pembelian

Sistem akan menampilkan Form Data

Pemesanan

Kondisi Akhir Jika perintah sesuai maka sistem akan

menampilkan seperti permintaan

53

6. Use Case Diagram mengelola Jurnal Pembelian

Gambar III.10. Gambar Use Case Diagram mengelola Jurnal Pembelian

Tabel III.6. Deskripsi Purchasing mengelola Jurnal Pembelian

Use Case Narrative Jurnal Pembelian

Tujuan Mengelola Data Jurnal Pembelian

Deskripsi Sistem ini memungkinkan aktor untuk

melakukan menambah, mengubah,

menyimpan, membatalkan Form Jurnal

Pembelian. Serta dapat keluar dari

aplikasi secara langsung

Skenario Utama

Aktor Purchasing

Kondisi Awal Aktor membuka aplikasi Java Berbasis

Desktop

54

Aktsi Aktor Reaksi Sistem

11. Aktor memilih Login Sistem akan menampilkan Menu Utama

ssetelah aktor memasukkan Username

dan Password

12. Aktor memilih Data Jurnal

Pembelian

Sistem akan menampilkan Form Jurnal

Pembelian

Kondisi Akhir Jika perintah sesuai maka sistem akan

menampilkan seperti permintaan

7. Use Case Diagram Purchasing mengelola Laporan Pembelian

Gambar III.11. Use Case Diagram Purchasing mengelola Laporan Pembelian

55

Tabel. III.5. Deskripsi Purchasing mengelola Laporan Pembelian

Use Case Narrative Laporan Pembelian

Tujuan Mengelola Data Laporan Pembelian

Deskripsi Sistem ini memungkinkan aktor untuk

melakukan menambah, mengubah,

menyimpan, membatalkan Data

Laporan Pembelian. Serta dapat keluar

dari aplikasi secara langsung

Skenario Utama

Aktor Purchasing

Kondisi Awal Aktor membuka aplikasi Java Berbasis

Desktop

Aktsi Aktor Reaksi Sistem

13. Aktor memilih Login Sistem akan menampilkan Menu Utama

ssetelah aktor memasukkan Username

dan Password

14. Aktor memilih Data Jurnal

Pembelian

Sistem akan menampilkan Form

Laporan Pembelian

Kondisi Akhir Jika perintah sesuai maka sistem akan

menampilkan seperti permintaan

56

3.3.3. Activity Diagram

1. Activity Diagram Menu Login Purchasing

Gambar III.12. Activity Diagram Data Login

57

2. Activity Diagram Data Purchase Order Purchasing

Gambar III.13. Activity Diagram Data PO

58

3. Activity Diagram Data Supplier

Gambar III.14. Activity Diagram Data

59

4. Activity Diagram Data Costumer

Gambar III.15. Activity Diagram Data Costumer

60

5. Activity Diagram Data Pesanan

Gambar III.16. Activity Diagram Data Pesanan

61

6. Activity Diagram Jurnal Pembelian

Gambar III.17. Activity Diagram Jurnal Pembelian

62

7. Activity Diagram Laporan Pembelian

Gambar III.18. Activity Diagram Laporan Pembelian

63

3.4. Desain

3.4.1. Entity Relationship Diagram (ERD)

Gambar III.19. Gambar Entity Relationship Diagram (ERD)

64

3.4.2. Logical Record Structure (LRS)

Gambar III.20. Gambar Entity Relationship Diagram

65

3.4.3. Spesifikasi File

a. Spesifikasi File Data Admin/user

Nama Database : Db_pembelian

Nama File : Tb_admin

Tipe File :

Panjang Record : 90

Field Key : id_user

Tabel III.8.

Spesifikasi File data admin

No Elemen Data Akronim Tipe Panjang Keterangan

1 Identitas admin Id_user Varchar 20 Primery Key

2 Username Username Varchar 25

3 Password Password Varchar 25

4 Hak hak Varchar 20

b. Spesifikasi File Data Supplier

Nama Database : Db_pembelian

Nama File : Tb_supplier

Tipe File : Master Data

Panjang Record : 212

Field Key : id_supplier

Tabel III.9.

66

Spesifikasi File Data Supplier

No Elemen Data Akronim Tipe Panjang Keterangan

1 Identitas Supplier Id_suplier Varchar 100 Primery Key

2 Nama Supplier Nama Varchar 100 Foreign Key

3 Alamat Alamat text

4 No Telepon telepon Varchar 12

c. Spesifikasi File Data Customer

Nama Database : Db_pembelian

Nama File : Tb_customer

Tipe File : Master Data

Panjang Record : 70

Field Key : id_customer

Tabel III.10.

Spesifikasi File Data Customer

No Elemen Data Akronim Tipe Panjang Keterangan

1 Identitas Customer Id_customer Varchar 20 Primery Key

2 Nama Customer Nama Varchar 50 Foreign Key

3 Alamat Alamat text

d. Spesifikasi File Data Purchase Order (PO)

Nama Database : Db_pembelian

67

Nama File : Tb_po

Tipe File : Transaksi

Panjang Record : 195

Field Key : no_po

Tabel III.11.

Spesifikasi File Data Purchase Order

No Elemen Data Akronim Tipe Panjang Keterangan

1 Identitas Customer Id_customer Varchar 20 Primery Key

2 Nama Customer Nama Varchar 50 Foreign Key

3 Alamat Alamat text

e. Spesifikasi File Data pemesanan

Nama Database : Db_pembelian

Nama File : Tb_pemesanan

Tipe File : Transaksi

Panjang Record : 245

Field Key : no_faktur

Tabel III.12.

Spesiifikasi File Data Pemesanan

No Elemen Data Akronim Tipe Panjang Keterangan

1 Nomor faktur No_faktur Varchar 50 Primery Key

2 Supplier Supplier Varchar 50 Foreign Key

3 Tanggal Pemesanan tgl date

4 Nama barang Nama_barang Varchar 100 Foreign Key

68

5 Banyak nya barang Qty Int 20

6 Satuan barang satuan Varchar 25

7 Keterangan Keterangan text

3.4.4. Sequence Diagram

Gambar III.21. Sequence Diagram pembelian

69

3.4.5. Deployment Diagram

Gambar III.22. Deployment Diagram

70

3.4.6. User Interface

1. Halaman Login

Gambar III.23. Halaman Login Purchasing

2. Halaman Menu Utama (Main Menu)

Gambar III.24. Halaman Menu Utama

71

3. Halaman Data Purchase Order

Gambar III.25. Halaman Form Purchase Order

4. Halaman Data Supplier

Gambar III.26. Halaman Form Supplier

72

5. Halaman Data Costumer

Gambar III.27. Halaman Form Supplier

6. Halaman Jurnal Pembelian

Gambar III.28. Halaman Form Jurnal Pembelian

73

7. Halaman Laporan Pembelian

Gambar III. 29. Halaman Form Laporan Pembelian

74

3.5. Implementasi

3.5.1. Code Generation

package Form;

import Class.sysKoneksi;

import java.awt.Dimension;

import java.awt.Toolkit;

import Class.sysKoneksi;

import Class.koneksiDB;

import Class.koneksis;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.text.SimpleDateFormat;

import javax.swing.JOptionPane;

import javax.swing.table.DefaultTableModel;

75

import java.sql.ResultSet;

import java.sql.Statement;

import java.text.SimpleDateFormat;

/**

*

* @author Ogatz

*/

public class Pemesanan extends javax.swing.JFrame {

Connection conn;

Statement stat;

ResultSet hasil;

public static String namauser;

private koneksiDB db = new koneksiDB();

String driver,database, user,pass,userlogin;

String tanggallahir;

private Dimension dimensi = Toolkit.getDefaultToolkit().getScreenSize();

76

private DefaultTableModel _tabel;

Connection _Cnn;

sysKoneksi getCnn = new sysKoneksi();

String _User;

// Deklarasi Komponen = Sesuaikan dengan nm_klien field pada tabel database

String faktur,supplier,tanggal,nama_barang,qty, satuan, ket;

/**

* Creates new form frProfil

*/

public Pemesanan() {

initComponents();

tNama3.setText(frLogin.namauser);

dataFromDataBaseToComboBox2();

tampil_combo();

koneksi();

datatabel();

77

form_awal();

this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);

}

public void HapusTabel(){

int row = _tabel.getRowCount();

for (int i = 0;i < row;i++){

_tabel.removeRow(0);

}

}

public void koneksi(){

}

private void LoadData(){

78

String[] kolom = {"No Faktur","Nama Barang","Qty","Satuan","Keterangan"};

_tabel = new DefaultTableModel(null,kolom){

Class[] types = new Class [] {

java.lang.String.class,

java.lang.String.class,

java.lang.String.class,

java.lang.String.class,

java.lang.String.class,

};

public Class getColumnClass(int columnIndex) {

return types [columnIndex];

}

// Agar table tidak bisa diedit

public boolean isCellEditable(int row, int col) {

int cola = _tabel.getColumnCount();

return (col < cola) ? false : true;

79

}

};

tbTabel.setModel(_tabel);

try{

_Cnn = null;

sysKoneksi getCnn = new sysKoneksi();

_Cnn = getCnn.getConnection();

//HapusTabel();

String sql = ""+" SELECT * from tb_pemesanan";

Statement stat = _Cnn.createStatement();

ResultSet res = stat.executeQuery(sql);

while(res.next()){

String faktur = res.getString(1);

String nama_barang = res.getString(4);

String qty = res.getString(5);

String satuan = res.getString(6);

String ket = res.getString(7);

80

Object[] data = {faktur,nama_barang,qty,satuan,ket};

_tabel.addRow(data);

}

tbTabel.getColumnModel().getColumn(0).setPreferredWidth(100);

tbTabel.getColumnModel().getColumn(1).setPreferredWidth(100);

tbTabel.getColumnModel().getColumn(2).setPreferredWidth(100);

tbTabel.getColumnModel().getColumn(3).setPreferredWidth(100);

tbTabel.getColumnModel().getColumn(4).setPreferredWidth(100);

} catch(Exception ex) {

JOptionPane.showMessageDialog(this,"Error : " + ex);

}

}

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

81

jPanel1 = new javax.swing.JPanel();

jPanel2 = new javax.swing.JPanel();

jLabel9 = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

jLabel2 = new javax.swing.JLabel();

tNama = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

tNama2 = new javax.swing.JTextField();

jttgllahirdatechoser = new com.toedter.calendar.JDateChooser();

jLabel5 = new javax.swing.JLabel();

tNama1 = new javax.swing.JComboBox();

jPanel4 = new javax.swing.JPanel();

btTambah = new javax.swing.JButton();

btHapus = new javax.swing.JButton();

btSimpan = new javax.swing.JButton();

btBatal = new javax.swing.JButton();

jScrollPane1 = new javax.swing.JScrollPane();

tbTabel = new javax.swing.JTable();

jPanel5 = new javax.swing.JPanel();

82

jLabel7 = new javax.swing.JLabel();

tNama5 = new javax.swing.JTextField();

tNama6 = new javax.swing.JTextField();

tNama7 = new javax.swing.JTextField();

jLabel10 = new javax.swing.JLabel();

jLabel11 = new javax.swing.JLabel();

jLabel3 = new javax.swing.JLabel();

tNama3 = new javax.swing.JTextField();

jLabel8 = new javax.swing.JLabel();

tNama8 = new javax.swing.JTextField();

jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

jPanel1.setBackground(new java.awt.Color(255, 255, 255));

jPanel2.setBackground(java.awt.SystemColor.textHighlight);

jLabel9.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N

83

jLabel9.setForeground(new java.awt.Color(255, 255, 255));

jLabel9.setText("FORM PEMESANAN");

javax.swing.GroupLayout jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE,

350, javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jPanel2Layout.setVerticalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

84

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addContainerGap())

);

jPanel3.setBackground(new java.awt.Color(255, 255, 255));

jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Form ",

javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 0, 11), java.awt.SystemColor.textHighlight)); // NOI18N

jLabel2.setText("NO ");

tNama.setBackground(new java.awt.Color(218, 255, 255));

tNama.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNamaActionPerformed(evt);

}

85

});

jLabel4.setText("Supplier");

tNama2.setEditable(false);

tNama2.setEnabled(false);

tNama2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNama2ActionPerformed(evt);

}

});

jttgllahirdatechoser.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

jttgllahirdatechoserMouseClicked(evt);

}

});

jttgllahirdatechoser.addPropertyChangeListener(new

java.beans.PropertyChangeListener() {

public void propertyChange(java.beans.PropertyChangeEvent evt) {

86

jttgllahirdatechoserPropertyChange(evt);

}

});

jLabel5.setText("Tanggal");

tNama1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNama1ActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel3Layout = new

javax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(jPanel3Layout.createSequentialGroup()

87

.addContainerGap()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

.addComponent(jLabel4,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel2,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel5,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addComponent(tNama2,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE)

88

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jttgllahirdatechoser,

javax.swing.GroupLayout.PREFERRED_SIZE, 20,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addComponent(tNama1,

javax.swing.GroupLayout.PREFERRED_SIZE, 126,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tNama, javax.swing.GroupLayout.PREFERRED_SIZE,

99, javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(8, 8, 8))

);

jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(jPanel3Layout.createSequentialGroup()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.BASELINE)

89

.addComponent(tNama, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel2))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.BASELINE)

.addComponent(jLabel4)

.addComponent(tNama1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.BASELINE)

90

.addComponent(tNama2,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel5))

.addComponent(jttgllahirdatechoser,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(0, 0, Short.MAX_VALUE))

);

jPanel4.setBackground(new java.awt.Color(255, 255, 255));

jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(null,

"Navigasi", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 0, 11), java.awt.SystemColor.textHighlight)); // NOI18N

btTambah.setText("Tambah");

btTambah.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

91

btTambahActionPerformed(evt);

}

});

btHapus.setText("Hapus");

btHapus.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btHapusActionPerformed(evt);

}

});

btSimpan.setText("Simpan");

btSimpan.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btSimpanActionPerformed(evt);

}

});

btBatal.setText("Batal");

92

btBatal.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

btBatalActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel4Layout = new

javax.swing.GroupLayout(jPanel4);

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

jPanel4Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.TRAILING)

.addComponent(btBatal, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

93

.addComponent(btTambah,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE)

.addComponent(btHapus,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(btSimpan,

javax.swing.GroupLayout.Alignment.LEADING,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addContainerGap())

);

jPanel4Layout.setVerticalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(jPanel4Layout.createSequentialGroup()

.addComponent(btTambah)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btSimpan)

94

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btBatal)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(btHapus))

);

tbTabel.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {

{null, null, null, null},

{null, null, null, null},

{null, null, null, null},

{null, null, null, null}

},

new String [] {

"Title 1", "Title 2", "Title 3", "Title 4"

}

));

tbTabel.setRowHeight(20);

95

tbTabel.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

tbTabelMouseClicked(evt);

}

});

jScrollPane1.setViewportView(tbTabel);

jPanel5.setBackground(new java.awt.Color(255, 255, 255));

jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Barang

", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,

javax.swing.border.TitledBorder.DEFAULT_POSITION, new

java.awt.Font("Tahoma", 0, 11), java.awt.SystemColor.textHighlight)); // NOI18N

jLabel7.setText("Qty");

tNama5.setBackground(new java.awt.Color(218, 255, 255));

tNama5.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNama5ActionPerformed(evt);

}

96

});

tNama6.setBackground(new java.awt.Color(218, 255, 255));

tNama6.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNama6ActionPerformed(evt);

}

});

tNama7.setBackground(new java.awt.Color(218, 255, 255));

tNama7.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNama7ActionPerformed(evt);

}

});

jLabel10.setText("Satuan");

jLabel11.setText("Keterangan");

97

jLabel3.setText("Nama Barang");

tNama3.setBackground(new java.awt.Color(218, 255, 255));

tNama3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNama3ActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel5Layout = new

javax.swing.GroupLayout(jPanel5);

jPanel5.setLayout(jPanel5Layout);

jPanel5Layout.setHorizontalGroup(

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(jPanel5Layout.createSequentialGroup()

.addContainerGap()

98

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

.addComponent(jLabel7,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel10,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel11,

javax.swing.GroupLayout.PREFERRED_SIZE, 80,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(12, 12, 12)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

99

.addComponent(tNama7,

javax.swing.GroupLayout.PREFERRED_SIZE, 137,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tNama6,

javax.swing.GroupLayout.PREFERRED_SIZE, 125,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(tNama5,

javax.swing.GroupLayout.PREFERRED_SIZE, 66,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addGroup(jPanel5Layout.createSequentialGroup()

.addComponent(jLabel3,

javax.swing.GroupLayout.PREFERRED_SIZE, 88,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(tNama3,

javax.swing.GroupLayout.PREFERRED_SIZE, 153,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap(52, Short.MAX_VALUE))

);

jPanel5Layout.setVerticalGroup(

100

jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(jPanel5Layout.createSequentialGroup()

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.BASELINE)

.addComponent(jLabel3)

.addComponent(tNama3,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

.addComponent(tNama5,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel7))

101

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.BASELINE)

.addComponent(tNama6,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel10))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.BASELINE)

.addComponent(tNama7,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jLabel11))

.addGap(0, 0, Short.MAX_VALUE))

);

102

jLabel8.setText("Cari");

tNama8.setBackground(new java.awt.Color(218, 255, 255));

tNama8.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

tNama8ActionPerformed(evt);

}

});

jButton1.setText("Cari");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

}

});

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

103

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE,

821, Short.MAX_VALUE)

.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jPanel4,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jPanel3,

javax.swing.GroupLayout.PREFERRED_SIZE,

104

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jPanel5,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(15, 15, 15)

.addComponent(jLabel8,

javax.swing.GroupLayout.PREFERRED_SIZE, 23,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(tNama8,

javax.swing.GroupLayout.PREFERRED_SIZE, 150,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

105

.addComponent(jButton1,

javax.swing.GroupLayout.PREFERRED_SIZE, 59,

javax.swing.GroupLayout.PREFERRED_SIZE)))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING

)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.LEADING, false)

.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

106

.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jPanel5,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment

.BASELINE)

.addComponent(tNama8,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(jButton1)

.addComponent(jLabel8))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jScrollPane1,

javax.swing.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE))

);

107

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

);

pack();

}// </editor-fold>

private void btTambahActionPerformed(java.awt.event.ActionEvent evt) {

aksi_tambah();

108

tNama.requestFocus(true);

}

private void btSimpanActionPerformed(java.awt.event.ActionEvent evt) {

if (btSimpan.getText().equals("Simpan")){

aksi_simpan();

}else{

aksi_ubah();

}

}

private void btBatalActionPerformed(java.awt.event.ActionEvent evt) {

109

form_awal();

}

private void btHapusActionPerformed(java.awt.event.ActionEvent evt) {

aksi_hapus();

}

private void tNamaActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void tbTabelMouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

btTambah.setEnabled(true);

btSimpan.setEnabled(true);

btSimpan.setText("Ubah");

btBatal.setEnabled(false);

btHapus.setEnabled(true);

form_enable();

110

tNama.setEnabled(false);

String kode = tbTabel.getValueAt(tbTabel.getSelectedRow(), 0).toString();

try {

_Cnn = null;

_Cnn = getCnn.getConnection();

String sql = "SELECT * FROM tb_pemesanan WHERE

no_faktur='"+kode+"'";

Statement stat = _Cnn.createStatement();

ResultSet res = stat.executeQuery(sql);

while(res.next()){

tNama.setText(res.getString(1));

tNama1.setSelectedItem(res.getString(2));

tNama2.setText(res.getString(3));

tNama3.setText(res.getString(4));

tNama5.setText(res.getString(5));

tNama6.setText(res.getString(6));

tNama7.setText(res.getString(7));

}

} catch(Exception ex) {

111

JOptionPane.showMessageDialog(null, ex);

}

}

private void tNama3ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void tNama2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void jttgllahirdatechoserMouseClicked(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

}

private void jttgllahirdatechoserPropertyChange(java.beans.PropertyChangeEvent

evt) {

// TODO add your handling code here:

if (jttgllahirdatechoser.getDate() != null) {

112

SimpleDateFormat Format = new SimpleDateFormat("yyyy-MM-dd");

tanggallahir = Format.format(jttgllahirdatechoser.getDate());

tNama2.setText(tanggallahir);

}

}

private void tNama5ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void tNama1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void tNama6ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

113

private void tNama7ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void tNama8ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

datatabel();

}

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

114

/* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code

(optional) ">

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look

and feel.

* For details see

http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info :

javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

}

}

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Pemesanan.class.getName()).log(java.util.loggin

g.Level.SEVERE, null, ex);

} catch (InstantiationException ex) {

115

java.util.logging.Logger.getLogger(Pemesanan.class.getName()).log(java.util.loggin

g.Level.SEVERE, null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Pemesanan.class.getName()).log(java.util.loggin

g.Level.SEVERE, null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Pemesanan.class.getName()).log(java.util.loggin

g.Level.SEVERE, null, ex);

}

//</editor-fold>

//</editor-fold>

//</editor-fold>

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Pemesanan().setVisible(true);

116

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton btBatal;

private javax.swing.JButton btHapus;

private javax.swing.JButton btSimpan;

private javax.swing.JButton btTambah;

private javax.swing.JButton jButton1;

private javax.swing.JLabel jLabel10;

private javax.swing.JLabel jLabel11;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JLabel jLabel5;

private javax.swing.JLabel jLabel7;

private javax.swing.JLabel jLabel8;

private javax.swing.JLabel jLabel9;

117

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JPanel jPanel5;

private javax.swing.JScrollPane jScrollPane1;

private com.toedter.calendar.JDateChooser jttgllahirdatechoser;

private javax.swing.JTextField tNama;

private javax.swing.JComboBox tNama1;

private javax.swing.JTextField tNama2;

private javax.swing.JTextField tNama3;

private javax.swing.JTextField tNama5;

private javax.swing.JTextField tNama6;

private javax.swing.JTextField tNama7;

private javax.swing.JTextField tNama8;

private javax.swing.JTable tbTabel;

// End of variables declaration

public void tampil_combo()

118

{

try {

Connection con = koneksis.getKoneksi();

Statement stt = con.createStatement();

String sql = "select nama from tb_supplier order by id_supplier asc"; // disini

saya menampilkan NIM, anda dapat menampilkan

ResultSet res = stt.executeQuery(sql); // yang anda ingin kan

while(res.next()){

Object[] ob = new Object[1];

ob[0] = res.getString(1);

tNama1.addItem(ob[0]); // fungsi ini bertugas menampung

isi dari database

}

res.close(); stt.close();

} catch (Exception e) {

System.out.println(e.getMessage());

}

119

}

public void dataFromDataBaseToComboBox2(){

db.koneksiDatabase();

try {

String query = "SELECT * FROM tb_barang";

Statement st = db.getKoneksi().createStatement();

ResultSet rs = st.executeQuery(query);

while (rs.next()) {

}

rs.last();

int jumlahdata = rs.getRow();

rs.first();

} catch (SQLException e) {

120

}

}

public void tampil1()

{

}

public void hasil(){

int nilai1;

int nilai2;

int nilai3;

int nilai4;

String hasil;

nilai1= Integer.valueOf(tNama5.getText());

nilai2= Integer.valueOf(tNama6.getText());

nilai3= nilai1+nilai2;

hasil=String.valueOf(nilai3);

tNama7.setText(hasil);

}

121

private void form_awal(){

form_disable();

form_clear();

LoadData();

//LoadData();

btSimpan.setText("Simpan");

btTambah.requestFocus(true);

btTambah.setEnabled(true);

btSimpan.setEnabled(false);

btBatal.setEnabled(false);

btHapus.setEnabled(false);

}

private void form_clear(){

tNama.setText("");

tNama1.setSelectedItem("");

122

tNama2.setText("");

tNama3.setText("");

tNama5.setText("");

tNama6.setText("");

tNama7.setText("");

}

private void form_disable(){

tNama.setEnabled(false);

tNama1.setEnabled(false);

tNama2.setEnabled(false);

tNama5.setEnabled(false);

}

private void form_enable(){

123

tNama.setEnabled(true);

tNama1.setEnabled(true);

tNama2.setEnabled(true);

tNama5.setEnabled(true);

}

private void aksi_tambah(){

form_enable();

btTambah.setEnabled(true);

btSimpan.setEnabled(true);

btBatal.setEnabled(true);

btHapus.setEnabled(false);

tNama3.requestFocus(true);

}

public void AutoNumber() {

try {

124

Connection con = koneksis.getKoneksi();

Statement stt = con.createStatement();

String sql = "SELECT * FROM tb_pemesanan ORDER BY no_faktur DESC";

ResultSet rs = stt.executeQuery(sql);

if (rs.next()) {

String faktur = rs.getString("no_faktur").substring(1);

String AN = "" + (Integer.parseInt(faktur) + 1);

String Nol = "";

if(AN.length()==1)

{Nol = "";}

else if(AN.length()==2)

{Nol = "0";}

else if(AN.length()==3)

{Nol = "0";}

else if(AN.length()==4)

{Nol = "1";}

tNama.setText("0" + Nol + AN);//sesuaikan dengan variable namenya

125

} else {

tNama.setText("01");//sesuaikan dengan variable namenya

}

} catch (Exception e) {

e.printStackTrace();//penanganan masalah

}

}

private void aksi_simpan(){

faktur = tNama.getText();

supplier = tNama1.getSelectedItem().toString();

tanggal = tNama2.getText();

nama_barang= tNama3.getText();

qty = tNama5.getText();

satuan= tNama6.getText();

ket = tNama7.getText();

try{

126

_Cnn = null;

_Cnn = getCnn.getConnection();

String sqlinsert = "insert into tb_pemesanan values ('"+faktur+"', "

+ "'"+supplier+"', "

+ "'"+tanggal+"', "

+ "'"+nama_barang+"', "

+ "'"+qty+"', "

+ "'"+satuan+"', "

+ "'"+ket+"')";

Statement state = _Cnn.createStatement();

state.executeUpdate(sqlinsert);

form_awal();

JOptionPane.showMessageDialog(null, "Data berhasil disimpan");

}catch(SQLException e) {

JOptionPane.showConfirmDialog(null, "Ada kesalahan Input",

"Informasi",

JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE);

}

}

127

private void aksi_ubah(){

faktur = tNama.getText();

supplier = tNama1.getSelectedItem().toString();

tanggal = tNama2.getText();

nama_barang= tNama3.getText();

qty = tNama5.getText();

satuan= tNama6.getText();

ket = tNama7.getText();

try{

_Cnn = null;

_Cnn = getCnn.getConnection();

String sqlupdate = "update tb_pemesanan set supplier = '"+supplier+"', tgl=

'"+tanggal+"', "

+ " nama_barang = '"+nama_barang+"', qty = '"+qty+"', satuan =

'"+satuan+"', keterangan = '"+ket+"'"

128

+ "where no_faktur = '"+faktur+"'";

Statement state = _Cnn.createStatement();

state.executeUpdate(sqlupdate);

form_awal();

JOptionPane.showMessageDialog(null, "Data berhasil diubah");

}catch(SQLException e) {

JOptionPane.showConfirmDialog(null, "Ada kesalahan Input edit",

"Informasi",

JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE);

}

}

private void ubah_stok(){

}

private void aksi_hapus(){

try{

_Cnn = null;

_Cnn = getCnn.getConnection();

129

String sqldelete = "delete from tb_pemesanan where no_faktur =

'"+tNama.getText()+"'";

Statement state = _Cnn.createStatement();

state.executeUpdate(sqldelete);

form_awal();

JOptionPane.showMessageDialog(null, "Data berhasil dihapus");

}catch(SQLException e) {

JOptionPane.showConfirmDialog(null, "Ada kesalahan Input",

"Informasi",

JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE);

}

}

public void datatabel(){

Object[] Baris={"No Faktur","Nama Barang","Qty","Satuan","Keterangan"};

DefaultTableModel tabmode = new DefaultTableModel(null, Baris);

tbTabel.setModel(tabmode);

String sql = "SELECT * from tb_pemesanan where tb_pemesanan.no_faktur like

'%"+tNama8.getText()+"%'";

try {

130

hasil=stat.executeQuery(sql);

while(hasil.next()){

String a = hasil.getString("no_faktur");

String b = hasil.getString("nama_barang");

String c = hasil.getString("qty");

String d = hasil.getString("satuan");

String e = hasil.getString("ket");

String[] data = {a,b,c,d,e};

tabmode.addRow(data);

}

} catch (Exception e) {

}

}

}

131

3.5.2. Black Box Testing

a. Form Login Admin

No. Skenario Pengujian Test Case Hasil yang diharapkan Hasil

Pengujian Kesimpulan

1 User name dan Password

tidak diisi kemudian klik

tombol login

username:

(kosong)

password: (kosong)

Sistem akan menolak dan

menampilkan “username

belum diisi dan password belum diisi”

Sesuai

Harapan Valid

2

Memasukkan username dan password tidak diisi

atau kosong kemudian

klik tombol login

username: wawan

password: (kosong)

Sistem akan menolak dan

menampilkan “username dan password salah”

Sesuai

Harapan Valid

3

Mengkosongkan username dan password

diisi kemdian klik tombol

login

username: (kosong)

password: wawan

Sistem akan menolak dan

menampilkan “username dan password salah”

Sesuai

Harapan Valid

4

Memasukkan dengan kondisi salah satu data

benar dan salah satu data

salah lalu klik tombol login

username:

rhs password:

124 (salah)

Sistem akan menolak dan

menampilkan “username

dan password salah”

Sesuai Harapan Valid

132

5 Menginputkan data login yang benar lalu klik

tombol login

username:

wawan

password: wawan(benar)

Sistem menerima akses login kemudian masuk

sebagai admin

Sesuai

Harapan Valid

b. Form Pemesanan

No. Skenario Pengujian Test Case Hasil yang diharapkan Hasil

Pengujian Kesimpulan

1

Klik menu pesanan, no faktur dan tanggal

faktur di kosongkan

lalu klik simpan

No Faktur (kosong)

Tanggal Faktur

(kosong)

Sistem akan menolak

dan menampilkan

informasi: “Data belum

terisi”

Sesuai

Harapan Valid

2

Klik menu pesanan,

memasukan no faktur dan tanggal faktur di

kosongkan lalu klik

simpan

No Faktur: P0001 Tanggal Faktur

(kosong)

Sistem akan menolak

dan menampilkan informasi: “Data

belum

terisi”

Sesuai

Harapan Valid

3

Klik menu pesanan,

memasukan no faktur

dan tanggal faktur, lalu klik simpan

No Faktur:

19A/19405558

Tanggal Faktur: 26 Februari 2019

Sistem menerima dan

menyimpan data Sesuai

Harapan Valid

3.5.3. Spesifikasi Hardware dan Software

a. Spesifikasi Hardware

a. Server

i. Laptop

a. Intel® Celeron (R) CPU N3050

b. RAM 2 GB

c. Flasdisk 32 GB

d. Mouse

e. Keyboard

133

f. Monitor dengan resolusi layar minimum 1366x768

g. Koneksi internet dengan kecepatan 2 Mbps

b. Spesifikasi Software

a. Sistem Operasi Windows 8

b. Aplikasi bundle web server: Xampp yang terdiri dari beberapa komponen,

diantaranya;

(1) Aplikasi PhpMyAdmin

(2) Aplikasi Java Neatbeans

c. Aplikasi web : Mozilla Firefox, Google Chrome

top related