bab iii pembahasan · 21 bab iii pembahasan 3.1.tinjauan perusahaan dilihat dari segi fungsinya...

104
21 BAB III PEMBAHASAN 3.1.Tinjauan Perusahaan Dilihat dari segi fungsinya apotek memegang peranan penting dalam bidang kesehatan. Apotek menyediakan berbagai macam obat yang dibutuhkan oleh masyarakat. Apotek Tanjungpura Karawang berdiri pada tanggal 15 April 2003. Awalnya Apotek Tanjungpura Karawang belum mempunyai tempat sendiri, hanya ditempat kontrakan yang kecil. Karena terbilang baru maka pembeli nya hanya sedikit. Biasa nya orang-orang sekitar membeli obat ditoko-toko obat yang ada. Setelah kurang lebih 5 tahun pemilik apotek ini membeli tanah dan mencoba membuat tempat apotek sendiri, yaitu di JL. Raya Tanjungpura Karawang RT/RW001/013,Kel.Tanjungpura, Kec. Karawang Barat, Kab. Karawang. Hingga saat ini masyarakat sudah banyak yang mengenal Apotek Tanjungpura Karawang. Apotek ini juga bekerjasama dengan dokter-dokter yang membuka praktek di sini. Apotek Tanjungpura Karawang ini sendiri sudah memiliki Surat Izin Usaha yaitu dengan nomor SIUP 503/1053/240/II/PO/DPMPTSP/2017/P.2. Apotek Tanjungpura Karawang menjual berbagai macam macam jenis obat, baik obat bebas dan obat tidak bebas baik yang dari resep dokter maupun tanpa resep dokter.

Upload: others

Post on 12-Feb-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

  • 21

    BAB III

    PEMBAHASAN

    3.1.Tinjauan Perusahaan

    Dilihat dari segi fungsinya apotek memegang peranan penting dalam

    bidang kesehatan. Apotek menyediakan berbagai macam obat yang

    dibutuhkan oleh masyarakat.

    Apotek Tanjungpura Karawang berdiri pada tanggal 15 April 2003.

    Awalnya Apotek Tanjungpura Karawang belum mempunyai tempat sendiri,

    hanya ditempat kontrakan yang kecil. Karena terbilang baru maka pembeli

    nya hanya sedikit. Biasa nya orang-orang sekitar membeli obat ditoko-toko

    obat yang ada. Setelah kurang lebih 5 tahun pemilik apotek ini membeli

    tanah dan mencoba membuat tempat apotek sendiri, yaitu di JL. Raya

    Tanjungpura Karawang RT/RW001/013,Kel.Tanjungpura, Kec. Karawang

    Barat, Kab. Karawang. Hingga saat ini masyarakat sudah banyak yang

    mengenal Apotek Tanjungpura Karawang. Apotek ini juga bekerjasama

    dengan dokter-dokter yang membuka praktek di sini. Apotek Tanjungpura

    Karawang ini sendiri sudah memiliki Surat Izin Usaha yaitu dengan nomor

    SIUP 503/1053/240/II/PO/DPMPTSP/2017/P.2. Apotek Tanjungpura

    Karawang menjual berbagai macam – macam jenis obat, baik obat bebas

    dan obat tidak bebas baik yang dari resep dokter maupun tanpa resep

    dokter.

  • 22

    Organisasi di Apotek Tanjungpura Karawang adalah setiap sistem

    kerjasama yang ada di Apotek Tanjungpura Karawang dijalankan oleh

    sekelompok orang untuk tujuan merupakan faktor yang sangat penting bagi

    Apotek Tanjungpura Karawang di dalam peursahaan atau badan usaha.

    Apotek Tanjungpura Karawang ini bertujuan untuk pelayanan kesehatan

    masyarakat. Adapun tinjauan tersebut meliputi sejarah perusahaan, serta

    struktur organisasi dan fungsi nya.

    3.1.1. Sejarah Perusahaan

    Apotek Tanjungpura Karawang pertama kali berdiri pada tanggal 15

    April 2003. Awalnya Apotek Tanjungpura Karawang belum mempunyai

    tempat sendiri, hanya di tempat kontrakan yang kecil. Karena terbilang baru

    maka pembeli nya hanya sedikit. Biasa nya orang-orang sekitar membeli

    obat di toko-toko obat yang ada. Setelah kurang lebih 5 tahun pemilik

    apotek ini membeli tanah dan mencoba membuat tempat apotek sendiri,

    yaitu di JL. Raya Tanjungpura Karawang RT/RW001/013,

    Kel.Tanjungpura, Kec. Karawang Barat, Kab. Karawang. hingga saat ini

    masyarakat sudah banyak yang mengenal Apotek Tanjungpura Karawang.

    Apotek ini juga bekerja sama dengan dokter-dokter yang membuka praktek

    di sini. Apotek Tanjungpura Karawang sudah memiliki Surat Izin Usaha

    yaitu dengan nomor SIUP503/1053/240/II/PO/DPMPTSP/2017/P.2.

    Sebagai sarana pelayanan kesehatan yang beroperasi sejak 2003,

    Apotek Tanjungpura Karawang senantiasa berupaya memberikan

    pelayanan kesehatan secara tepat, cepat, dan efisien dengan fokus

  • 23

    kepuasan kostamer (custumer satisfaction). Hal ini terlihat pada visi,

    misi, dan pedoman nilai yang dianut oleh Apotek Tanjungpura Karawang.

    Visi :

    Menjadikan Apotek Tanjungpura Karawang yang profesional dan

    berorientasi pada kepuasan pasien.

    1. Menyelanggarakan pelayanan kesehatan profesional dengan berorientasi

    pada kepuasan pasien.

    2. Melaksanakan integralisasi nilai kebersamaan dan kekurangan

    keseluruhan aspek pelayanan.

    3. Membangun kemitraan dan jejaring dengan perusahaan, instansi

    pendidikan, organisasi masyarakat dan pemerintah daerah.

    4. Mengembangkan dan menyediakan pelayanan prima dan terjangkau.

    3.1.2. Struktur Organisasi dan Fungsi

    Struktur organisasi merupakan suatu pengaturan atau pengorganisasian

    dalam upaya pencapaian tujuan suatu perusahaan. Adanya struktur organisasi

    yang jelas dapat memberikan pengertian yang mudah mengenai organisasi.

    Selain itu para pegawai dapat mengetahui dengan pasti apa yang harus mereka

    lakukan dan untuk siapa mereka bekerja serta dapat mengetahui dengan jelas

    dari siapa menerima perintah atau mempertanggungjawabkan pekerjaan.

    1. Adapun Struktur Organisasi yang ada diApotek Tanjungpura Karawang

    sebagai berikut :

  • 24

    Sumber : Pemilik Apotek Tanjungpura Karawang

    Gambar III. 1.

    Struktur Organisasi

    1. Fungsi– fungsi struktur organisasi

    1. Pemilik Apotek

    a. Membuat visi dan misi

    b. Membuat strategi, tujuan, sasaran, dan program kerja.

    c. Bertanggung jawab terhadap kinerja yang diperoleh.

    2. Bagian Kasir

    a. Menjalankan proses penjualan dan pembayaran

    b. Melakukan proses transaksi pelayanan jual beli serta melakukan

    pembungkusan.

    c. Melakukan pencatatan atas semua transaksi

    3.Bagian Pengecekan

    Tugasnya untuk mengecek barang yang ada di Apotek, apabila

    barang tidak datang ditulis kembali ke buku depecta (buku besar).

    Bagian Kasir Bagian Pengecekan

    Pemilik Apotek

  • 25

    3.2.Tinjauan Kasus

    3.2.1. Proses Bisnis Sistem Berjalan

    Pasien datang ke Apoktek Tanjungpura Karawang dengan membawa

    resep dari Dokter, Kemudian pasien menyerahkan resep kepada kasir. Kasir

    menerima resep selanjutnya memberikan resep kepada bagian gudang.

    Bagian gudang menerima resep, selanjutnya mengecek ketersediaan obat.

    Jika tersedia akan menyiapkan obat sesuai resep. Jika tidak tersedia akan

    membuat laporan daftar obat, selanjutnya bagian gudang memberikan

    informasi ketersediaan kepada bagian kasir. Kasir mengecek harga jual obat

    dan menghitung jumlah yang harus dibayar. Kasir menyiapkan nota

    pembayaran, copyan resep, dan obat. Kemudian kasir memberikan nota

    pembayaran, copyan resep, obat, kepada pasien kemudian pasien menerima

    nota pembayaran, copyan resep, obat. Kemudian konsumen melakukan

    pembayaran kepada kasir. Kemudian kasir menerima pembayaran. Kasir

    membuat laporan penjualan dan memberikan laporan penjualan kepada

    pemilik Apotek, pemilik Apotek menerima laporan penjualan obat dari kasir.

  • 26

    3.2.2. Activity Diagram

    Activity Diagram Penjualan Obat di Apotek

    Kasir Bagian Gudang Pemilik ApotekPasien

    Datang ke Apotek

    Menyerahkan resep Menerima resep

    Memberikan resep

    Start

    Menerima resep

    Mengecek ketersediaan obat

    Ada

    Tidak

    Akan menyiapkan sesuai resep

    Akan membuat laporan daftar obat

    Memberikan informasi

    ketersediaan obat

    Menerima informasi ketersediaan obat

    Mengecek harga jual obat dan menghitung

    jumlah

    Menyiapkan nota pembayaran, copyan

    resep, obat

    Melakukan pembayaran

    Menerima nota

    pembayaran, copyan

    resep, obat

    Menerima pembayaran

    Selesai

    Membuat laporan penjualan

    Menerima laporan penjualan

    Selesai

    Gambar III. 2.

    Activity Diagram Proses Bisnis Sistem Berjalan

  • 27

    3.2.3. Dokumen Masukan

    Bentuk dokumen masukan adalah segala bentuk masukan yang

    dibutuhkan oleh sistem, dimana setiap masukan sebagai berikut:

    1. Nama Dokumen : Resep

    Fungsi : Sebagai petunjuk permintaan obat

    Sumber : Pasien

    Tujuan : Apotek

    Media : Kertas

    Jumlah : Satu Kertas

    Frekuensi : Setiap ada pemeriksaan pasien

    Format : Lampiran A1

    3.2.4. Dokumen Keluaran

    Berisikan mengenai gambaran keluaran yang dihasilkan oleh sistem,

    dimana setiap keluaran dirinci sebagai berikut:

    1. Nama Dokumen : Salinan Resep

    Fungsi : Sebagai pengganti resep

    Sumber : Pasien

    Tujuan : Apotek

    Media : Kertas

    Jumlah : Satu Lembar

    Frekuensi : Setiap ada pembelian obat

    Format : Lampiran B1

  • 28

    2. Nama Dokumen : Nota Pembayaran

    Fungsi : Sebagai bukti pembayaran

    Sumber : Pasien

    Tujuan : Apotek

    Media : Kertas

    Jumlah : Satu lembar

    Frekuensi : Setiap ada transaksi pembayaran

    Format : Lampiran B2

    3. Nama Dokumen : Laporan Penjualan Obat Perbulan

    Fungsi : Sebagai laporan penjualan obat

    Sumber : Kasir

    Tujuan : Pemilik Apotek

    Media : Kertas

    Jumlah : Satu Lembar

    Frekuensi : Perbulan

    Format : Lampiran B3

    3.2.5. Permasalahan Pokok

    Pada proses bisnis berjalan penjualan obat di Apotek Tanjungpura

    Karawang ini sudah tertata baik, namun penulis menyimpulkan bahwa

    proses bisnis berjalan dan pelaksanaannya belum efisien karena sistem

    yang digunakan masih bersifat manual, yaitu menggunakan microsoft excel

    dan buku besar dan belum terkomputerisasi. Adapun permasalahan yang

    terdapat pada Apotek Tanjungpura Karawang adalah sebagai berikut:

  • 29

    1. Sistem pencatatan penjualan dan pembuatan laporan penjualan masih

    manual dengan menggunakan kertas, sehingga pembuatan laporan masih

    ada yang salah.

    1. Penyimpanan data atau file yang ada pada Apotek Tanjungpura

    Karawang masih tercampur menumpuk dengan data yang lain sehingga

    menyulitkan dalam pencarian data yang dibutuhkan.

    2. Pembuatan laporan dilakukan setiap hari pada saat adanya proses

    penjualan obat dikertas.

    3.2.6. Pemecahan Masalah

    Dari permasalahan yang terkait dengan penjualan obat yang ada di

    Apotek Tanjungpura Karawang, penyeselesaian permasalahannya adalah

    sebagai berikut:

    1. Mengubah sistem manual menjadi sistem terkomputerisasi Java web

    denganmenggunakan aplikasi Netbeans IDE 8.2

    2. Sebagai media penyimpanan menggunakan Database Mysql agar data

    yang tersimpan terjaga dengan keamanan dan lebih efektif dan efisien

    dibandingkan dengan penyimpanan secara manual.

    3. Dengan menggunakan sistem komputerisasi tidak harus menulis laporan

    penjualan obat setiap harinya tinggal melihat di data transaksi penjualan

    obat.

  • 30

    3.2. Analisa Kebutuhan Software

    Berdasarkan proses bisnis pada Apotek Tanjungpura Karawang, maka

    tahapan berikutnya adalah analisa kebutuhan, berikut ini spesifikasi

    kebutuhan (system requirement) dari sistem penjualan obat.

    Bagian kasir dapat masuk ke sistem master data, transaksi laporan.

    Bagian kasir membuka master data, didalam sistem master data kasir dapat

    melakukan pencatatan data obat, data konsumen dan juga data kasir. Di

    sistem transaksi kasir melakukan pencatatan pembayaran dan menginput

    semua data transaksi keuangan dan dapat mencetak laporan yang akan

    diberikan kepada pemilik Apotek.

    3.3.1. Analisa Kebutuhan

    a. Hak akses kasir akan sistem adalah sebagai berikut :

    A.1. Kasir login

    A.2. Kasir ke menu utama

    A.3. Kasir ke menu master data obat

    A.4.Kasir ke menu master data akun

    A.5. Kasir ke menu transaksi input resep

    A.6. Kasir ke menu transaksi input penjualan

    A.7. Kasir ke menu transaksi input jurnal

    A.8. Kasir ke menu cetak penjualan

    A.9. Kasir ke menu cetak resep

    A.10. Kasir logout

    b. Hak akses pemilik akan sistem adalah sebagai berikut :

    B.1. Pemilik login

  • 31

    B.2. Pemilik ke menu utama

    B.3. Pemilik melihat ke menu master data pengguna

    B.4.Pemilik melihat ke menu laporan data obat

    B.5. Pemilik melihat ke menu laporan data pengguna

    B.6. Pemilik melihat ke menu laporan data penjualan

    B.7. Pemilik melihat ke menu laporan data resep

    B.8. Pemilik logout

    1.3.2. Use Case Diagram

    a. Hak akses kasir akan sistem adalah sebagai berikut :

    A.1. Kasir login

    Gambar IV.1

    Use Case Diagram Login

    Tabel III.1 Deskripsi Use Case Diagram Login

    Use Case Diagram Narative Login

    Tujuan Melakukan login dan masuk ke sistem apotek

    Deskrpisi Sistem ini memungkinkan aktor mengakses sistem

    pada apotek

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi apotek

    Aksi Aktor

    Reaksi Sistem

    1. Aktor memilih

    tombol masuk

    2. Aktor memilih

    tombol logout

    Sistem akan menampilkan pilihan mengisi user

    name dan password

    Sistem akan membatalkan proses dan logout dari

    aktivitas

    Login

    Logout

    Masukan user name

    Masukan password

    Kasir

    Use Case Diagram Kasir login

  • 32

    Kondisi Akhir Jika perintah sesuai maka sistem akan masuk ke

    dalam aplikasi apotek dan dapat memilih aktivitas

    di dalam sistem.

    A.2. Kasir ke menu utama

    Gambar IV.2

    Use Case Diagram Menu Utama

    Tabel III.2 Deskripsi Use Case Diagram Menu Utama

    Use Case Diagram Narative Menu Utama

    Tujuan Melakukan Login dan Masuk kedalam sistem

    Deskrpisi Sistem ini memungkinkan aktor untuk mengakses

    sistem penjualan

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu utama

    Aksi Aktor

    Reaksi Sistem

    1. Aktor memilih

    menu Master

    2. Aktor memilih

    menu transaksi

    3. Aktor memilih

    menu laporan

    4. Aktor memilih

    logout

    Sistem akan menampilkan sub menu master,

    seperti master data obat, data akun

    Sistem akan menampilkan sub menu transaksi

    seperti, input resep, input penjualan, input jurnal

    Sistem akan menampilkan sub menu laporan

    seperti, laporan penjualan, laporan resep

    Sistem sub menu logout kasir akan keluar dari

    menu utama

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh si

    Aktor

    Login

    Menu master

    Use Case Diagram Kasir ke menu utama

    Kasir

    Menu transaksi

    Menu laporan

    Logout

  • 33

    A.3. Kasir ke menu master data obat

    Gambar IV.3

    Use Case Diagram Master Data Obat

    Tabel III.3 Deskripsi Use Case Diagram Menu Data Obat

    Use Case Diagram Narative Menu Data Obat

    Tujuan Kasir dapat memilih aktivitas menu master data,

    dan memilih menu data obat

    Deskrpisi Sistem ini memungkinkan kasir untuk mengelola

    sistem pencatatan data obat

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu data obat

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol baru

    2. Aktor menekan

    tombol simpan

    3. Aktor menekan

    tombol batal

    4. Aktor menekan

    tombol cari

    5. Aktor menekan

    tombol hapus

    6. Aktor menekan

    tombol keluar

    Sistem akan menambah data obat baru

    Sistem akan menyimpan data obat baru

    Sistem akan membatalkan data obat baru

    Sistem akan mencari data obat baru

    Sistem akan menghapus data obat

    Sistem akan keluar dari data obat

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh si

    Aktor

    Logout

    Cari kode obat

    Data obat

    Use Case Diagram Kasir ke menu master data obat

    Kasir

    Batal

    Ubah

    Tambah

    Hapus

    Simpan

  • 34

    A.4. Kasir ke menu master data akun

    Gambar IV.4

    Use Case Diagram Master Data Akun

    Tabel III.4 Deskripsi Use Case Diagram Menu Data Akun

    Use Case Diagram Narative Menu Data Akun

    Tujuan Kasir dapat memilih aktivitas menu master

    data, dan memilih menu data akun

    Deskrpisi Sistem ini memungkinkan kasir untuk

    mengelola sistem pencatatan data akun

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu data akun

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol baru

    2. Aktor menekan

    tombol simpan

    3. Aktor menekan

    tombol batal

    4. Aktor menekan

    tombol hapus

    5. Aktor menekan

    tombol cari

    6. Aktor menekan

    tombol keluar

    Sistem akan menambah data akun baru

    Sistem akan menyimpan data akun baru

    Sistem akan membatalkan data akun baru

    Sistem akan menghapus data akun baru

    Sistem akan mencari data akun

    Sistem akan keluar dari data akun

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh si

    Aktor

    Logout

    Cari kode

    akun

    Data akun

    Use Case Diagram Kasir ke menu master data akun

    Kasir

    Batal

    Ubah

    Tambah

    Hapus

    Simpan

  • 35

    A.5. Kasir ke menu transaksi input resep

    Gambar IV.5

    Use Case Diagram Transaksi Input Resep

    Tabel III.5 Deskripsi Use Case Diagram Input Resep

    Use Case Diagram Narative nput Resep

    Tujuan Kasir dapat memilih aktivitas menu transaksi

    dan memilih input resep

    Deskrpisi Sistem ini memungkinkan kasir untuk

    mengelola sistem pencatatan resep

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu transaksi

    input resep

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol baru

    2. Aktor menekan

    tombol simpan

    3. Aktor menekan

    tombol batal

    4. Aktor menekan

    tombol keluar

    Sistem akan menambah data resep baru

    Sistem akan menyimpan data resep baru

    Sistem akan membatalkan data resep baru

    Sistem akan keluar dari data resep

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh si

    Aktor

    Logout

    Data resep

    Use Case Diagram Kasir ke menu transaksi input resep

    Kasir

    BatalSimpanTambah

  • 36

    A.6. Kasir ke menu transaksi input penjualan

    Gambar IV.6

    Use Case Diagram Transaksi Input Penjualan

    Tabel III.6 Deskripsi Use Case Diagram Input Penjualan

    Use Case Diagram Narative Input Penjualan

    Tujuan Kasir dapat memilih aktivitas menu

    transaksi dan memilih input penjualan

    Deskrpisi Sistem ini memungkinkan kasir untuk

    mengelola sistem pencatatan penjualan

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu transaksi

    input penjualan

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol baru

    2. Aktor menekan

    tombol simpan

    3. Aktor menekan

    tombol batal

    4. Aktor menekan

    Sistem akan menambah data penjualan

    baru

    Sistem akan menyimpan data penjualan

    baru

    Sistem akan membatalkan data penjualan

    baru

    Logout

    Data penjualan

    Use Case Diagram Kasir ke menu transaksi input penjualan

    Kasir

    BatalSimpanTambah

  • 37

    tombol keluar Sistem akan keluar dari data penjualan

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh

    si Aktor

    A.7. Kasir ke menu transaksi input jurnal

    Gambar IV.7

    Use Case Diagram Transaksi Input Jurnal

    Tabel III.7 Deskripsi Use Case Diagram Input Jurnal

    Use Case Diagram Narative Jurnal

    Tujuan Kasir dapat memilih aktivitas menu

    transaksi dan memilih menu input jurnal

    Deskrpisi Sistem ini memungkinkan kasir untuk

    mengelola sistem pencatatan jurnal

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu transaksi

    input jurnal

    Aksi Aktor

    Reaksi Sistem

    Logout

    Data jurnal

    Use Case Diagram Kasir ke menu transaksi input jurnal

    Kasir

    BatalSimpanTambah

  • 38

    1. Aktor menekan

    tombol baru

    2. Aktor menekan

    tombol simpan

    3. Aktor menekan

    tombol batal

    4. Aktor menekan

    tombol keluar

    Sistem akan menambah data jurnal baru

    Sistem akan menyimpan data jurnal baru

    Sistem akan membatalkan data jurnal baru

    Sistem akan keluar dari menu input jurnal

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh

    si Aktor

    A.8. Kasir ke menu cetak penjualan

    Gambar IV.8

    Use Case Diagram Cetak Penjualan

    Tabel III.8 Deskripsi Use Case Diagram Cetak Penjualan

    Use Case Diagram Narative Cetak Penjualan

    Tujuan Kasir dapat memilih aktivitas menu

    laporan dan memilih menu laporan cetak

    penjualan

    Deskrpisi Sistem ini memungkinkan kasir melihat

    dan mencetak laporan penjualan

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu laporan

    cetak penjualan

    Aksi Aktor

    Reaksi Sistem

    Kasir

    Use Case Diagram Kasir ke menu cetak penjualan

    Cetak penjualan

    Batal

    Cetak

  • 39

    1. Aktor menekan

    tombol cetak

    2. Aktor menekan

    tombol keluar

    Sistem akan mencetak laporan cetak

    penjualan

    Sistem akan keluar dari menu laporan

    cetak penjualan dan kembali ke menu

    utama

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    masuk ke dalam aplikasi apotek dan

    dapat memilih aktivitas di dalam sistem.

    A.9. Kasir ke menu cetak resep

    Gambar IV.9

    Use Case Diagram Cetak Resep

    Tabel III.9 Deskripsi Use Case Diagram Cetak Resep

    Use Case Diagram Narative Cetak Resep

    Tujuan Kasir dapat memilih aktivitas menu

    laporan dan memilih menu laporan

    cetak resep

    Deskrpisi Sistem ini memungkinkan kasir

    melihat dan mencetak laporan resep

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu

    laporan cetak penjualan

    Aksi Aktor

    Reaksi Sistem

    Kasir

    Use Case Diagram Kasir ke menu cetak resep

    Cari resep

    Keluar

    Cetak

  • 40

    1. Aktor menekan

    tombol cetak

    2. Aktor menekan

    tombol keluar

    Sistem akan mencetak laporan cetak

    resep

    Sistem akan keluar dari menu laporan

    cetak resep dan kembali ke menu

    utama

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    masuk ke dalam aplikasi apotek dan

    dapat memilih aktivitas di dalam

    sistem.

    A.10. Kasir logout

    Gambar IV.10

    Use Case Diagram Logout

    Tabel III.10 Deskripsi Use Case Diagram Logout

    Use Case Diagram Narative Logout

    Tujuan Kasir dapat memilih aktivitas menu

    logout

    Deskrpisi Sistem ini memungkinkan kasir untuk

    logout

    Skenario Utama

    Aktor Kasir

    Kondisi Awal Aktor membuka aplikasi menu keluar

    Aksi Aktor

    Reaksi Sistem

    1. Aktor memilih

    menu logout

    Sistem akan menampilkan menu logout

    Kasir

    Use Case Diagram Kasir logout

    Logout Keluar

  • 41

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    masuk ke dalam aplikasi apotek dan

    dapat memilih aktivitas di dalam sistem.

    a. Hak akses pemilik akan sistem adalah sebagai berikut :

    B.1. Pemilik login

    Gambar IV.11

    Use Case Diagram Login

    Tabel III.11 Deskripsi Use Case Diagram Login

    Use Case Diagram Narative Login

    Tujuan Pemilik melakukan login dan masuk ke

    sistem apotek

    Deskrpisi Sistem ini memungkinkan pemilik

    mengakses sistem pada apotek

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi apotek

    Aksi Aktor

    Reaksi Sistem

    1. Aktor memilih

    tombol masuk

    2. Aktor memilih

    tombol keluar

    Sistem akan menampilkan pilihan mengisi

    user name dan password

    Sistem akan membatalkan proses dan keluar

    dari aktivitas

    Kondisi Akhir Jika perintah sesuai maka sistem akan masuk

    ke dalam aplikasi apotek dan dapat memilih

    aktivitas di dalam sistem.

    Login

    Logout

    Masukan user name

    Masukan password

    Pemilik

    Use Case Diagram Pemilik login

  • 42

    B.2. Pemilik ke menu utama

    Gambar IV.12

    Use Case Diagram Menu Utama

    Tabel III.12 Deskripsi Use Case Diagram Menu Utama

    Use Case Diagram Narative Menu Utama

    Tujuan Pemilik dapat memilih aktivitas menu

    master, menu laporan, menu logout

    Deskrpisi Sistem ini memungkinkan pemilik untuk

    mengelola sistem pencatatan data mulai dari

    menu master sampai dengan pembuatan

    laporan

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi menu utama

    Aksi Aktor

    Reaksi Sistem

    1. Aktor memilih

    menu Master

    2. Aktor memilih

    menu laporan

    3. Aktor memilih

    logout

    Sistem akan menampilkan sub menu master,

    seperti master data pengguna

    Sistem akan menampilkan sub menu laporan

    seperti, laporan data obat, data pengguna,

    data penjualan, data resep

    Sistem sub menu logout pemilik akan keluar

    dari menu utama

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh si

    Aktor

    Login

    Menu master

    Use Case Diagram Pemilik ke menu utama

    Pemilik

    Menu transaksi

    Logout

  • 43

    B.3. Pemilik melihat ke menu master data pengguna

    Gambar IV.13

    Use Case Diagram Master Data Pengguna

    Tabel III.13 Deskripsi Use Case Diagram Master Data Pengguna

    Use Case Diagram Narative Master Data Pengguna

    Tujuan Pemilik dapat memilih aktivitas menu

    data pengguna

    Deskrpisi Sistem ini memungkinkan pemilik untuk

    mengelola sistem pencatatan data

    pengguna

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi menu master

    data pengguna

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol baru

    2. Aktor menekan

    tombol simpan

    3. Aktor menekan

    tombol batal

    4. Aktor menekan

    tombol cari

    5. Aktor menekan

    tombol ubah

    6. Aktor menekan

    tombol hapus

    7. Aktor menekan

    tombol keluar

    Sistem akan menambah data pengguna

    baru

    Sistem akan menyimpan data pengguna

    baru

    Sistem akan membatalkan data pengguna

    baru

    Sistem akan mencari data pengguna

    Sistem akan mengubah data pengguna

    Sistem akan menghapus data pengguna

    Sistem akan keluar dari menu master data

    pengguna

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh

    si Aktor

    Logout

    Cari kode

    pengguna

    Data pengguna

    Use Case Diagram Pemilik melihat data pengguna

    Pemilik

    Batal

    Ubah

    Tambah

    Hapus

    Simpan

  • 44

    B.4. Pemilik melihat ke menu laporan data obat

    Gambar IV.14

    Use Case Diagram Laporan Data Obat

    Tabel III.14 Deskripsi Use Case Diagram Laporan Data Obat

    Use Case Diagram Narative Laporan Data Obat

    Tujuan Pemilik dapat memilih aktivitas menu

    laporan dan memilih menu laporan data

    obat

    Deskrpisi Sistem ini memungkinkan

    pemilikmelihat dan mencetak laporan

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi menu laporan

    data obat

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol data obat

    2. Aktor menekan

    tombol cetak

    3. Aktor menekan

    tombol keluar

    Sistem akan memilih laporan data obat

    Sistem akan mencetak laporan data obat

    Sistem akan keluar dari menu laporan

    data obat dan kembali ke menu utama

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan

    oleh si Aktor

    Use Case Diagram Pemilik melihat menu laporan data obat

    Pemilik

    Pilih laporan data

    obat

    Logout Cetak

    Tampil form laporan

    data obat

  • 45

    B.5. Pemilik melihat ke menu laporan data pengguna

    Gambar IV.15

    Use Case Diagram Laporan Data Pengguna

    Tabel III.15 Deskripsi Use Case Diagram Laporan Data Pengguna

    Use Case Diagram Narative Laporan Data Pengguna

    Tujuan Pemilik dapat memilih aktivitas menu

    laporan dan memilih menu laporan data

    pengguna

    Deskrpisi Sistem ini memungkinkan pemilik melihat

    dan mencetak laporan

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi menu laporan

    data pengguna

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol data akun

    2. Aktor menekan

    tombol cetak

    3. Aktor menekan

    tombol keluar

    Sistem akan memilih data akun

    Sistem akan mencetak laporan data

    pengguna

    Sistem akan keluar dari menu laporan data

    pengguna dan kembali ke menu utama

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh

    si Aktor

    Use Case Diagram Pemilik melihat menu laporan data pengguna

    Pemilik

    Pilih laporan data

    pengguna

    Logout Lihat

    Tampil form laporan data

    pengguna

  • 46

    B.6. Pemilik melihat ke menu laporan data penjualan

    Gambar IV.16

    Use Case Diagram Laporan Data Penjualan

    Tabel III.16 Deskripsi Use Case Diagram Laporan Data Penjualan

    Use Case Diagram Narative Laporan Data Penjualan

    Tujuan Pemilik dapat memilih aktivitas menu

    laporan dan memilih menu laporan data

    enjualan

    Deskrpisi Sistem ini memungkinkan pemilik melihat

    dan mencetak laporan

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi menu laporan

    data penjualan

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol laporan

    data penjualan

    2. Aktor menekan

    tombol cetak

    3. Aktor menekan

    tombol keluar

    Sistem akan menampilkan form laporan

    data penjualan

    Sistem akan mencetak laporan data

    penjualan

    Sistem akan keluar dari menu laporan data

    penjualan dan kembali ke menu utama

    Use Case Diagram Pemilik melihat menu laporan data penjualan

    Pemilik

    Tampil form laporan

    data penjualan

    Logout

    Pilih periode laporan Cetak

    Tampil laporan

    periode penjualan

    Pilih laporan

    perbulan

    Cetak

    Tampil laporan

    penjualan perbulan

  • 47

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh

    si Aktor

    B.7. Pemilik melihat ke menu laporan data resep

    Gambar IV.17

    Use Case Diagram Laporan Data Resep

    Tabel III.17 Deskripsi Use Case Diagram Laporan Data Resep

    Use Case Diagram Narative Laporan Data Resep

    Tujuan Pemilik dapat memilih aktivitas menu

    laporan dan memilih menu laporan data

    resep

    Deskrpisi Sistem ini memungkinkan pemilik melihat

    dan mencetak laporan

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi menu laporan

    data resep

    Aksi Aktor

    Reaksi Sistem

    1. Aktor menekan

    tombol laporan

    data resep

    2. Aktor menekan

    tombol cetak

    3. Aktor menekan

    tombol keluar

    Sistem akan menampilkan form laporan

    data resep

    Sistem akan mencetak laporan data resep

    Sistem akan keluar dari menu laporan data

    resep dan kembali ke menu utama

    Use Case Diagram Pemilik melihat menu laporan data resep

    Pemilik

    Tampil form

    laporan data resep

    Logout

    Pilih periode

    laporanCetak

    Tampil laporan

    periode resep

    Pilih laporan

    perbulan

    Cetak

    Tampil laporan

    resep perbulan

  • 48

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    menampilkan seperti yang diinginkan oleh

    si Aktor

    B.8. Pemilik logout

    Gambar IV.18

    Use Case Diagram Logout

    Tabel III.18 Deskripsi Use Case Diagram Logout

    Use Case Diagram Narative Logout

    Tujuan Pemilik dapat memilih aktivitas menu

    logout

    Deskrpisi Sistem ini memungkinkan pemilik untuk

    logout

    Skenario Utama

    Aktor Pemilik

    Kondisi Awal Aktor membuka aplikasi menu logout

    Aksi Aktor

    Reaksi Sistem

    1. Aktor memilih

    menu logout

    Sistem akan menampilkan menu logout

    Kondisi Akhir Jika perintah sesuai maka sistem akan

    masuk ke dalam aplikasi apotek dan dapat

    memilih aktivitas di dalam sistem.

    Pemilik

    Use Case Diagram Pemilik logout

    Logout Keluar

  • 49

    1.3.3. Activity Diagram

    a. Hak akses kasir akan sistem adalah sebagai berikut :

    A.1. Kasir login

    Activity Diagram Kasir melakukan login

    Kasir Sistem

    Melakukan Login

    Start

    Mengecek kode user

    dan password

    Masuk ke menu

    utama

    Menampilkan data

    tidak ditemukan

    Apakah ada kesalahan?

    Selesai

    Masukan kode user

    dan password

    Gambar IV.19

    Activity Diagram Halaman Login

    A.2. Kasir ke menu utama

    Activity Diagram Kasir ke menu utama

    Kasir Sistem

    Masuk ke dalam

    sistem menu utama

    Start

    Menampilkan menu

    utama

    Menu TransaksiMenu Master Menu Cetak

    Menekan Tpmbol Logout

    Keluar dari menu utama

    Finish

    Gambar IV.20

    Activity Diagram Menu Utama

  • 50

    A.3. Kasir ke menu master data obat

    Activity Diagram Kasir ke menu master data obat

    Kasir Sistem

    Mengklik menu

    master

    Start

    Memilih menu data

    obat

    Simpan

    Finish

    Cari kode

    obat

    Ubah Hapus

    Update

    Keluar

    Tutup form

    data obat

    Masukan data obat

    Gambar IV.21

    Activity Diagram Menu Master Data Obat

    A.4. Kasir ke menu master data akun

    Activity Diagram Kasir ke menu master data akun

    Kasir Sistem

    Mengklik menu

    master

    Start

    Memilih menu data

    akun

    Simpan

    Finish

    Cari kode

    akun

    Ubah Hapus

    Update

    Keluar

    Tutup form

    data akun

    Masukan data akun

    Gambar IV.22

    Activity Diagram Menu Master Data Akun

  • 51

    A.5. Kasir ke menu transaksi input resep

    Activity Diagram Kasir ke menu transaksi input resep

    Kasir Sistem

    Mengklik menu

    transaksi

    Start

    Memilih menu

    transaksi input resep

    Simpan

    Finish

    Cari kode

    resep

    Ubah Hapus

    Update

    Keluar

    Tutup form

    input resep

    Mengklik menu

    transaksi

    Masukan input resep

    Gambar IV.23

    Activity Diagram Menu Transaksi Input Resep

    A.6. Kasir ke menu transaksi input penjualan

    Activity Diagram Kasir ke menu transaksi input penjualan

    Kasir Sistem

    Mengklik menu

    transaksi

    Start

    Memilih menu

    dtransaksi input

    penjualan

    Simpan

    Finish

    Cari kode

    penjualan

    Ubah Hapus

    Update

    Keluar

    Tutup form

    input

    penjualan

    Masukan input

    penjualan

    Gambar IV.24

    Activity Diagram Menu Transaksi Input Penjualan

  • 52

    A.7. Kasir ke menu transaksi input jurnal

    Activity Diagram Kasir ke menu transaksi input jurnal

    Kasir Sistem

    Mengklik menu

    transaksi

    Start

    Memilih menu

    dtransaksi input

    jurnal

    Simpan

    Finish

    Cari kode

    akun

    Ubah Hapus

    Update

    Keluar

    Tutup form

    input jurnal

    Masukan input jurnal

    Gambar IV.25

    Activity Diagram Menu Transaksi Input Jurnal

    A.8. Kasir ke menu cetak penjualan

    Activity Diagram Kasir ke menu cetak penjualan

    Kasir Sistem

    Menekan tombol

    menu cetak

    Start

    Memilih menu form

    cetak penjualan

    Cari kode penjualan

    Keluar

    Cetak

    Tutup form cetak penjualan

    Finish

    Gambar IV.26

    Activity Diagram Menu Cetak Penjualan

  • 53

    A.9. Kasir ke menu cetak resep

    Activity Diagram Kasir ke menu cetak resep

    Kasir Sistem

    Menekan tombol

    menu cetak resep

    Start

    Memilih menu form

    cetak resep

    Cari kode resep Keluar

    Cetak

    Tutup form cetak resep

    Finish

    Gambar IV.27

    Activity Diagram Menu Cetak Resep

    A.10. Kasir logout

    Activity Diagram Kasir logout

    Kasir Sistem

    Klik menu logout

    Start

    Keluar dari sistem

    Finish

    Gambar IV.28

    Activity Diagram Halaman Logout

  • 54

    b. Hak akses pemilik akan sistem adalah sebagai berikut :

    B.1. Pemilik login

    Activity Diagram Pemilik melakukan login

    Pemilik Sistem

    Melakukan Login

    Start

    Mengecek kode user

    dan password

    Masuk ke menu

    utama

    Menampilkan data

    tidak ditemukan

    Apakah ada kesalahan?

    Finish

    Masukan kode user

    dan password

    Gambar IV.29

    Activity Diagram Halaman Login

    B.2. Pemilik ke menu utama

    Activity Diagram Pemilik ke menu utama

    Pemilik Sistem

    Mengakses menu

    utama

    Start

    Menampilkan menu

    utama

    Finish

    Menu master Menu laporan

    Keluar dari

    menu utama

    Gambar IV.30

    Activity Diagram Menu Utama

  • 55

    B.3. Pemilik melihat ke menu master data pengguna

    Activity Diagram Kasir ke menu master data pengguna

    Kasir Sistem

    Mengklik menu

    master

    Start

    Memilih menu data

    pengguna

    Simpan

    Finish

    Cari kode

    pengguna

    Ubah Hapus

    Update

    Keluar

    Tutup form

    data

    pengguna

    Masukan data

    pengguna

    Gambar IV.31

    Activity Diagram Menu Master Data Pengguna

    B.4. Pemilik melihat ke menu laporan data obat

    Activity Diagram Pemilik ke menu laporan data obat

    Pemilik Sistem

    Mengklik laporan

    data obat

    Start

    Menampilkan form

    laporan data obat

    Finish

    Tampil

    Peilih periode

    laporanKeluar

    Cetak

    Tutup form

    laporan data

    obat

    Gambar IV.32

    Activity Diagram Menu Laporan Data Obat

  • 56

    B.5. Pemilik melihat ke menu laporan data pengguna

    Activity Diagram Pemilik ke menu laporan data pengguna

    Pemilik Sistem

    Mengklik data

    pengguna

    Start

    Menampilkan form

    data user

    Finish

    Tampil Keluar

    Cetak

    Tutup form

    data user

    Gambar IV.33

    Activity Diagram Menu Laporan Data Pengguna

    B.6. Pemilik melihat ke menu laporan data penjualan

    Activity Diagram Pemilik ke menu laporan data penjualan

    Pemilik Sistem

    Mengklik laporan

    data obat

    Start

    Menampilkan form

    laporan data

    penjualan

    Finish

    Tampil

    Peilih periode

    laporanKeluar

    Cetak

    Tutup form

    laporan data

    penjualan

    Gambar IV.34

    Activity Diagram Menu Laporan Data Penjualan

  • 57

    B.7. Pemilik melihat ke menu laporan data resep

    Activity Diagram Pemilik ke menu laporan data resep

    Pemilik Sistem

    Mengklik laporan

    data resep

    Start

    Menampilkan form

    laporan data resep

    Finish

    Tampil

    Peilih periode

    laporanKeluar

    Cetak

    Tutup form

    laporan data

    resep

    Gambar IV.35

    Activity Diagram Menu Laporan Data Resep

    B.8. Pemilik logout

    Activity Diagram Pemilik logout

    Pemilik Sistem

    Klik menu logout

    Start

    Keluar dari sistem

    Finish

    Gambar IV.36

    Activity Diagram Halaman Logout

    3.4. Desain

    3.4.1. Entity Relationship Diagram (ERD)

  • 58

    Gambar IV.37

    Entity Relationship Diagram (ERD)

    akun jurnaldetailjurnal mengelola pengguna

    melakukan

    penjualanobat detailpenjualan melakukan

    resepdetailresep

    1m mn

    n

    m m

    m

    akun

    m

    kode_akun

    saldo_normal

    kode_jurnal

    kode_akun

    kode_jurnal

    debet

    kredit

    kode_jurnaltanggal keterangan

    kode_jurnal kode_pengguna kode_pengguna

    password

    nama_pengguna

    level

    kode_obat

    stok

    jenis_obat

    nama_obat harga_jualkode_obat

    kode_penjualan

    jumlah beli

    subtotal

    kode_penjualan

    kode_pengguna

    tanggal

    totalbayar

    kode_penjualan kode_pengguna

    kode_obat

    kode_resep

    jumlahbeli

    subtotal

    tanggal

    alamat

    totalbayar dokter

    umur

    nama_pasien

    kode_resep nama_pengguna

  • 59

    3.4.2. Logical Record Structure (LRS)

    Gambar IV.38

    Logical Record Structure (LRS)

    3.4.3. Spesifikasi File

    1. Spesifikasi File Tabel Pengguna

    Nama Database : apotek_tanjungpura

    Nama File : pengguna

    Akronim : pengguna.sql

    Tipe file : file master

    Akses file : random

    Panjang record : 40 karakter

    Kunci field : kode_pengguna

  • 60

    Tabel III.19.

    Spesifikasi File Data Pengguna

    No Elemen Data Nama Field Type Size Ket

    1 kode pengguna kode_pengguna Varchar 8 primary

    key

    2 nama

    pengguna

    nama_pengguna Varchar 15

    3 Password Pasword Varchar 7

    4 Level Level Varchar 10

    2. Spesifikasi File Tabel Obat

    Nama Database : apotek_tanjungpura

    Nama File : obat

    Akronim : obat.sql

    Tipe file : file master

    Akses file : random

    Panjang record : 57 karakter

    Kunci field : kode_obat

  • 61

    Tabel III.20.

    Spesifikasi File Obat

    3. Spesifikasi File Tabel Akun

    Nama Database : apotek_tanjungpura

    Nama File : akun

    Akronim : akun.sql

    Tipe file : file master

    Akses file : random

    Panjang record : 74 karakter

    Kunci field : kode_akun

    Tabel III.21.

    Spesifikasi File Akun

    No Elemen Data Nama Field Type Size Ket

    1 kode akun kode_akun varchar 8 primary key

    2 nama akun nama_akun varchar 15

    3 saldo normal saldo_normal varchar 6

    No Elemen Data Nama Field Type Size Ket

    1 kode obat kode_pengguna Varchar 25 primary

    key

    2 nama obat nama_pengguna Varchar 15

    3 jenis obat jenis_obat Varchar 12

    4 harga jual harga_jual Int 11

    5 Stok Stok Int 11

  • 62

    4. Spesifikasi File Tabel Detail Jurnal

    Nama Database : apotek_tanjungpura

    Nama File : detailjurnal

    Akronim : detailjurnal.sql

    Tipe file : file master

    Akses file : random

    Panjang record : 45 karakter

    Kunci field : kode_jurnal, kode_akun

    Tabel III.22.

    Spesifikasi File Detail Jurnal

    No Elemen Data Nama Field Type Size Ket

    1 kode jurnal kode_jurnal Varchar 15 foreign key

    2 kode_akun kode_akun Varchar 8 foreign key

    3 Debet Debet Int 11

    4 Kredit Kredit Int 11

    5. Spesifikasi File Tabel Detail Penjualan

    Nama Database : apotek_tanjungpura

    Nama File : detailpenjualan

    Akronim : detailpenjualan.sql

    Tipe file : file master

  • 63

    Akses file : random

    Panjang record : 45 karakter

    Kunci field : kode_penjualan, kode_obat

    Tabel III.23.

    Spesifikasi File Detail Penjualan

    No Elemen Data Nama Field Type Size Ket

    1 kode

    penjualan

    kode_penjualan varchar 15 foreign key

    2 kode obat kode_obat varchar 8 foreign key

    3 jumlah beli Jumlahbeli Int 11

    4 sub total Subtotal Int 11

    6. Spesifikasi File Tabel Detail Resep

    Nama Database : apotek_tanjungpura

    Nama File : detailresep

    Akronim : detailresep.sql

    Tipe file : file master

    Akses file : random

    Panjang record : 45 karakter

    Kunci field : kode_resep, kode_oba

  • 64

    Tabel III.24.

    Spesifikasi File Detail Resep

    No Elemen Data Nama Field Type Size Ket

    1 kode resep kode_resep Varchar 15 foreign key

    2 kode obat kode_obat Varchar 8 foreign key

    3 jumlah beli Jumlahbeli Int 11

    4 sub total Subtotal Int 11

    7. Spesifikasi File Tabel Jurnal

    Nama Database : apotek_tanjungpura

    Nama File : jurnal

    Akronim : jurnal.sql

    Tipe file : file master

    Akses file : random

    Panjang record : 30 karakter

    Kunci field : kode_jurnal

    Tabel III.25.

    Spesifikasi File Jurnal

    No Elemen Data Nama Field Type Size Ket

    1 kode jurnal kode_jurnal Varchar 15 primary

    key

    2 Tanggal Tanggal Date -

    3 Keterangan Keterangan Varchar 15

  • 65

    8. Spesifikasi File Tabel Penjualan

    Nama Database : apotek_tanjungpura

    Nama File : penjualan

    Akronim : penjualan.sql

    Tipe file : file master

    Akses file : random

    Panjang record : 34 karakter

    Kunci field : kode_penjualan, kode_pengguna

    Tabel III.26.

    Spesifikasi File Penjualan

    No Elemen Data Nama Field Type Size Ket

    1 kode

    penjualan

    kode_penjualan Varchar 15 primary

    key

    2 kode

    pengguna

    kode_pengguna Varchar 8 foreign key

    3 Tanggal Tanggal Date -

    4 total bayar Totalbayar Int 11

    9. Spesifikasi File Tabel Resep

    Nama Database : apotek_tanjungpura

    Nama File : resep

    Akronim : resep.sql

    Tipe file : file master

  • 66

    Akses file : random

    Panjang record : 65 karakter

    Kunci field : kode_resep, kode_pengguna

    Tabel III.27.

    Spesifikasi File Resep

    No Elemen Data Nama Field Type Size Ket

    1 kode penjualan kode_penjualan varchar 15 primary key

    2 kode pengguna kode_pengguna varchar 8 foreign key

    3 Tanggal Tanggal Date -

    4 total bayar Totalbayar Int 11

    5 nama pasien nama_pasien varchar 15

    6 Umur Umur smallint 3

    7 Alamat Alamat Text -

    8 Dokter Dokter Varchar 13

  • 67

    3.4.5. Sequence Diagram

    1. Sequence Diagram Data Obat

    Sequence Diagram Data Obat

    Data Obat

    Message1

    Display kode_obat

    simpan

    batal

    hapus

    keluar

    get (nama_obat)

    get(Harga_jual)

    get(stok)

    Control Data ObatForm Data Obat

    Top Package::Kasir

    tambah()

    get(kode_Obat)

    get(nama_obat)

    get(hargA_jual)

    get(stok)

    Gambar IV.39

    Sequence Diagram Data Obat

    2. Sequence Diagram Penjualan

    Sequence Diagram Penjualan

    Penjualan

    Message1

    Display kode_penjualan

    simpan

    batal

    hapus

    keluar

    get (tanggal)

    get(totalbayar)

    get(kode_pengguna)

    Control PenjualanForm Penjualan

    Top Package::Kasir

    tambah()

    get(kode_penjualan

    get(tanggal)

    get(totalbayar)

    get(kode_pengguna)

    Gambar IV.40

    Sequence Diagram Penjualan

  • 68

    3.4.5. Deployment Diagram

    Gambar IV.41

    Deployment Diagram

    3.4.6. User Interface

    a.User Interface Bagian Kasir

    Gambar IV.42

    User Interface Form Login Kasir

    Main

  • 69

    Gambar IV.43

    User Interface Form Menu Master Data Obat

    Gambar IV.44

    User Interface Form Menu Master Akun

    Gambar IV.45

    User Interface Form Menu Transkasi

  • 70

    Gambar IV.46

    User Interface Form Transaksi Input Jurnal

    Gambar IV.47

    User Interface Form Transaksi Input Penjualan

    Gambar IV.48

    Gambar IV.48

    User Interface Form Transaksi Input Resep

  • 71

    Gambar IV.51

    User Interface Form Cetak Penjualan

    Gambar IV.52

    User Interface Form Cetak Resep

    Gambar IV.53

    User Interface Form Logout

  • 72

    b. User Interface Bagian Pemilik

    Gambar IV.54

    User Interface Form Login Pemilik

    Pemilik ke menu utama

    Gambar IV.55

    User Interface Form Menu Utama Pemilik

    Gambar IV.56

    User Interface Form Menu Master Pengguna

  • 73

    Pemilik melihat ke menu laporan data obat

    Gambar IV.57

    User Interface Form Laporan Data Obat

    Pemilik melihat ke menu laporan data pengguna

  • 74

    Gambar IV.58

    User Interface Form Laporan Data Pengguna

    Pemilik melihat ke menu laporan data penjualan

    Gambar IV.59

    User Interface Form Laporan Penjualan Perbulan

    Gambar IV.60

    User Interface Form Laporan Data Resep

    Gambar IV.61

    User Interface Form Pemilik logout

  • 75

    3.5. Implementasi

    3.5.1. Code Generation

    A. Form Input Jurnal

    /*

    * To change this license header, choose License Headers in Project

    Properties.

    * To change this template file, choose Tools | Templates

    * and open the template in the editor.

    */

    package menu;

    import com.sun.glass.events.KeyEvent;

    import java.sql.SQLException;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    import javax.swing.JOptionPane;

    public class inputJurnal extends javax.swing.JFrame {

    koneksi kon = new koneksi();

    /**

    * Creates new form inputJurnal

    */

    public inputJurnal() {

    initComponents();

    kon.setKoneksi();

    label();

    setTanggal();

    }

  • 76

    private void label(){

    l1.setText("0");

    l1.setVisible(false);

    jurnal.setVisible(false);

    }

    public Date date = new Date();

    public SimpleDateFormat noformat = new

    SimpleDateFormat("yyMM");

    public String KodeAkun;

    public String NamaAkun;

    public String SaldoNormal;

    public String KodeUser;

    public String getKodeAkun() {

    return KodeAkun;

    }

    public String getNamaAkun() {

    return NamaAkun;

    }

    public String getSaldoNormal() {

    return SaldoNormal;

    }

    public String getKodeUser() {

    return KodeUser;

    }

    private void bersih(){

    kode.setText("");

  • 77

    keterangan.setText("");

    balance.setText("0");

    kode1.setText(""); nama1.setText(""); debet1.setText("0");

    kredit1.setText("0");

    kode2.setText(""); nama2.setText(""); debet2.setText("0");

    kredit2.setText("0");

    kode3.setText(""); nama3.setText(""); debet3.setText("0");

    kredit3.setText("0");

    kode4.setText(""); nama4.setText(""); debet4.setText("0");

    kredit4.setText("0");

    kode5.setText(""); nama5.setText(""); debet5.setText("0");

    kredit5.setText("0");

    kode6.setText(""); nama6.setText(""); debet6.setText("0");

    kredit6.setText("0");

    debet1.setEditable(false);

    debet2.setEditable(false); kredit2.setEditable(false);

    debet3.setEditable(false); kredit3.setEditable(false);

    debet4.setEditable(false); kredit4.setEditable(false);

    debet5.setEditable(false); kredit5.setEditable(false);

    kredit6.setEditable(false);

    }

    /**

    * This method is called from within the constructor to initialize the

    form.

    * WARNING: Do NOT modify this code. The content of this

    method is always

    * regenerated by the Form Editor.

    */

    @SuppressWarnings("unchecked")

  • 78

    //

    private void initComponents() {

    jPanel1 = new javax.swing.JPanel();

    jLabel1 = new javax.swing.JLabel();

    kode = new javax.swing.JTextField();

    jLabel2 = new javax.swing.JLabel();

    tanggal = new javax.swing.JTextField();

    jLabel3 = new javax.swing.JLabel();

    keterangan = new javax.swing.JTextField();

    l1 = new javax.swing.JLabel();

    jPanel2 = new javax.swing.JPanel();

    jLabel4 = new javax.swing.JLabel();

    jLabel5 = new javax.swing.JLabel();

    jLabel6 = new javax.swing.JLabel();

    jLabel7 = new javax.swing.JLabel();

    bt1 = new javax.swing.JButton();

    kode1 = new javax.swing.JTextField();

    nama1 = new javax.swing.JTextField();

    debet1 = new javax.swing.JTextField();

    kredit1 = new javax.swing.JTextField();

    bt2 = new javax.swing.JButton();

    kode2 = new javax.swing.JTextField();

    nama2 = new javax.swing.JTextField();

    debet2 = new javax.swing.JTextField();

    kredit2 = new javax.swing.JTextField();

    kode3 = new javax.swing.JTextField();

  • 79

    kredit3 = new javax.swing.JTextField();

    bt3 = new javax.swing.JButton();

    debet3 = new javax.swing.JTextField();

    nama3 = new javax.swing.JTextField();

    bt4 = new javax.swing.JButton();

    debet4 = new javax.swing.JTextField();

    nama4 = new javax.swing.JTextField();

    kode4 = new javax.swing.JTextField();

    kredit4 = new javax.swing.JTextField();

    bt5 = new javax.swing.JButton();

    nama5 = new javax.swing.JTextField();

    kode5 = new javax.swing.JTextField();

    kredit5 = new javax.swing.JTextField();

    debet5 = new javax.swing.JTextField();

    kredit6 = new javax.swing.JTextField();

    kode6 = new javax.swing.JTextField();

    bt6 = new javax.swing.JButton();

    debet6 = new javax.swing.JTextField();

    nama6 = new javax.swing.JTextField();

    jPanel3 = new javax.swing.JPanel();

    tambah = new javax.swing.JButton();

    keluar = new javax.swing.JButton();

    jLabel8 = new javax.swing.JLabel();

    balance = new javax.swing.JLabel();

    jurnal = new javax.swing.JLabel();

  • 80

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOS

    E);

    setTitle("Input Jurnal");

    setUndecorated(true);

    jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.Bo

    rderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED),

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

    javax.swing.border.TitledBorder.DEFAULT_POSITION, new

    java.awt.Font("Times New Roman", 1, 18))); // NOI18N

    jPanel1.setToolTipText("");

    jLabel1.setText("Kode Jurnal");

    kode.setEditable(false);

    jLabel2.setText("Tanggal");

    tanggal.setEditable(false);

    jLabel3.setText("Keterangan");

    javax.swing.GroupLayout jPanel1Layout = new

    javax.swing.GroupLayout(jPanel1);

    jPanel1.setLayout(jPanel1Layout);

    jPanel1Layout.setHorizontalGroup(

    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme

    nt.LEADING)

    .addGroup(jPanel1Layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.LEADING)

    .addComponent(jLabel1)

    .addComponent(jLabel2))

    .addGap(47, 47, 47)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.TRAILING, false)

  • 81

    .addComponent(tanggal,

    javax.swing.GroupLayout.Alignment.LEADING,

    javax.swing.GroupLayout.DEFAULT_SIZE, 90,

    Short.MAX_VALUE)

    .addComponent(kode,

    javax.swing.GroupLayout.Alignment.LEADING))

    .addGap(18, 18, 18)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.LEADING)

    .addGroup(jPanel1Layout.createSequentialGroup()

    .addComponent(jLabel3,

    javax.swing.GroupLayout.PREFERRED_SIZE, 70,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(keterangan,

    javax.swing.GroupLayout.PREFERRED_SIZE, 199,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addComponent(l1,

    javax.swing.GroupLayout.PREFERRED_SIZE, 25,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

    Short.MAX_VALUE))

    );

    jPanel1Layout.setVerticalGroup(

    jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignme

    nt.LEADING)

    .addGroup(jPanel1Layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(jLabel1,

    javax.swing.GroupLayout.PREFERRED_SIZE, 23,

    javax.swing.GroupLayout.PREFERRED_SIZE)

  • 82

    .addComponent(kode,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(keterangan,

    javax.swing.GroupLayout.PREFERRED_SIZE, 25,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(jLabel3,

    javax.swing.GroupLayout.PREFERRED_SIZE, 25,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.TRAILING)

    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(jLabel2,

    javax.swing.GroupLayout.PREFERRED_SIZE, 21,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(tanggal,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addComponent(l1,

    javax.swing.GroupLayout.PREFERRED_SIZE, 23,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

    Short.MAX_VALUE))

    );

    jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax

    .swing.border.BevelBorder.RAISED));

  • 83

    jLabel4.setFont(new java.awt.Font("Times New Roman", 1, 14));

    // NOI18N

    jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTE

    R);

    jLabel4.setText("Kode Akun")

    jLabel5.setFont(new java.awt.Font("Times New Roman", 1, 14));

    // NOI18N

    jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTE

    R);

    jLabel5.setText("Nama Akun")

    jLabel6.setFont(new java.awt.Font("Times New Roman", 1, 14));

    // NOI18N

    jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);

    jLabel6.setText("Debet");

    jLabel7.setFont(new java.awt.Font("Times New Roman", 1, 14));

    // NOI18N

    jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT)

    ;

    jLabel7.setText("Kredit");

    bt1.setText("...");

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

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

    bt1ActionPerformed(evt);

    }

    });

    kode1.setEditable(false);

    kode1.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    nama1.setEditable(false);

  • 84

    nama1.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    debet1.setEditable(false);

    debet1.setHorizontalAlignment(javax.swing.JTextField.LEFT);

    debet1.setText("0");

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

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

    debet1ActionPerformed(evt);

    }

    });

    debet1.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet1KeyTyped(evt);

    }

    });

    kredit1.setEditable(false);

    kredit1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    kredit1.setText("0");

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

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

    kredit1ActionPerformed(evt);

    }

    });

    bt2.setText("...");

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

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

  • 85

    bt2ActionPerformed(evt);

    }

    });

    kode2.setEditable(false);

    kode2.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    nama2.setEditable(false);

    nama2.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    debet2.setEditable(false);

    debet2.setHorizontalAlignment(javax.swing.JTextField.LEFT);

    debet2.setText("0");

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

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

    debet2ActionPerformed(evt);

    }

    });

    debet2.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet2KeyTyped(evt);

    }

    });

    kredit2.setEditable(false);

    kredit2.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    kredit2.setText("0");

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

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

  • 86

    kredit2ActionPerformed(evt);

    }

    });

    kredit2.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    kredit2KeyTyped(evt);

    }

    });

    kode3.setEditable(false);

    kode3.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    kredit3.setEditable(false);

    kredit3.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    kredit3.setText("0");

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

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

    kredit3ActionPerformed(evt);

    }

    });

    kredit3.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet3KeyTyped(evt);

    }

    });

    bt3.setText("...");

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

  • 87

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

    bt3ActionPerformed(evt);

    }

    });

    debet3.setEditable(false);

    debet3.setHorizontalAlignment(javax.swing.JTextField.LEFT);

    debet3.setText("0");

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

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

    debet3ActionPerformed(evt);

    }

    });

    debet3.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet3KeyTyped(evt);

    }

    });

    nama3.setEditable(false);

    nama3.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    bt4.setText("...");

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

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

    bt4ActionPerformed(evt);

    }

    });

  • 88

    debet4.setEditable(false);

    debet4.setHorizontalAlignment(javax.swing.JTextField.LEFT);

    debet4.setText("0");

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

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

    debet4ActionPerformed(evt);

    }

    });

    debet4.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet3KeyTyped(evt);

    }

    });

    nama4.setEditable(false);

    nama4.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    kode4.setEditable(false);

    kode4.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    kredit4.setEditable(false);

    kredit4.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    kredit4.setText("0");

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

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

    kredit4ActionPerformed(evt);

    }

    });

  • 89

    kredit4.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet3KeyTyped(evt);

    }

    });

    bt5.setText("...");

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

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

    bt5ActionPerformed(evt);

    }

    });

    nama5.setEditable(false);

    nama5.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    kode5.setEditable(false);

    kode5.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    kredit5.setEditable(false);

    kredit5.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    kredit5.setText("0");

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

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

    kredit5ActionPerformed(evt);

    }

    });

    kredit5.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

  • 90

    debet3KeyTyped(evt);

    }

    });

    debet5.setEditable(false);

    debet5.setHorizontalAlignment(javax.swing.JTextField.LEFT);

    debet5.setText("0");

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

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

    debet5ActionPerformed(evt);

    }

    });

    debet5.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet3KeyTyped(evt);

    }

    });

    kredit6.setEditable(false);

    kredit6.setHorizontalAlignment(javax.swing.JTextField.RIGHT);

    kredit6.setText("0");

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

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

    kredit6ActionPerformed(evt);

    }

    });

    kredit6.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

  • 91

    debet3KeyTyped(evt);

    }

    });

    kode6.setEditable(false);

    kode6.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    bt6.setText("...");

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

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

    bt6ActionPerformed(evt);

    }

    });

    debet6.setEditable(false);

    debet6.setHorizontalAlignment(javax.swing.JTextField.LEFT);

    debet6.setText("0");

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

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

    debet6ActionPerformed(evt);

    }

    });

    debet6.addKeyListener(new java.awt.event.KeyAdapter() {

    public void keyTyped(java.awt.event.KeyEvent evt) {

    debet3KeyTyped(evt);

    }

    });

    nama6.setEditable(false);

  • 92

    nama6.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    javax.swing.GroupLayout jPanel2Layout = new

    javax.swing.GroupLayout(jPanel2);

    jPanel2.setLayout(jPanel2Layout);

    jPanel2Layout.setHorizontalGroup(

    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignme

    nt.LEADING)

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

    jPanel2Layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.LEADING, false)

    .addGroup(jPanel2Layout.createSequentialGroup()

    .addComponent(bt6,

    javax.swing.GroupLayout.PREFERRED_SIZE, 24,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(kode6))

    .addGroup(jPanel2Layout.createSequentialGroup()

    .addComponent(bt5,

    javax.swing.GroupLayout.PREFERRED_SIZE, 24,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(kode5))

    .addGroup(jPanel2Layout.createSequentialGroup()

  • 93

    .addComponent(bt4,

    javax.swing.GroupLayout.PREFERRED_SIZE, 24,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(kode4))

    .addGroup(jPanel2Layout.createSequentialGroup()

    .addComponent(bt3,

    javax.swing.GroupLayout.PREFERRED_SIZE, 24,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(kode3))

    .addGroup(jPanel2Layout.createSequentialGroup()

    .addComponent(bt2,

    javax.swing.GroupLayout.PREFERRED_SIZE, 24,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(kode2))

    .addComponent(jLabel4,

    javax.swing.GroupLayout.DEFAULT_SIZE,

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

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

    jPanel2Layout.createSequentialGroup()

    .addComponent(bt1,

    javax.swing.GroupLayout.PREFERRED_SIZE, 24,

    javax.swing.GroupLayout.PREFERRED_SIZE)

  • 94

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(kode1,

    javax.swing.GroupLayout.PREFERRED_SIZE, 100,

    javax.swing.GroupLayout.PREFERRED_SIZE)))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.LEADING)

    .addComponent(nama1)

    .addComponent(nama2)

    .addComponent(nama3)

    .addComponent(nama4)

    .addComponent(nama5)

    .addComponent(nama6)

    .addComponent(jLabel5,

    javax.swing.GroupLayout.Alignment.TRAILING,

    javax.swing.GroupLayout.DEFAULT_SIZE,

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

    .addGap(18, 18, 18)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.LEADING, false)

    .addComponent(jLabel6,

    javax.swing.GroupLayout.DEFAULT_SIZE, 99,

    Short.MAX_VALUE)

    .addComponent(debet1)

    .addComponent(debet2)

    .addComponent(debet3)

  • 95

    .addComponent(debet4)

    .addComponent(debet5)

    .addComponent(debet6))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignm

    ent.LEADING, false)

    .addComponent(kredit1,

    javax.swing.GroupLayout.DEFAULT_SIZE, 99,

    Short.MAX_VALUE)

    .addComponent(kredit2)

    .addComponent(kredit3)

    .addComponent(kredit4)

    .addComponent(kredit5)

    .addComponent(kredit6)

    .addComponent(jLabel7,

    javax.swing.GroupLayout.PREFERRED_SIZE, 91,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addContainerGap())

    );

    jPanel2Layout.setVerticalGroup(

    jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignme

    nt.LEADING)

    .addGroup(jPanel2Layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

  • 96

    .addComponent(jLabel4)

    .addComponent(jLabel5)

    .addComponent(jLabel6)

    .addComponent(jLabel7))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(bt1)

    .addComponent(kode1,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(nama1,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(debet1,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(kredit1,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(bt2)

  • 97

    .addComponent(kode2,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(nama2,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(debet2,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(kredit2,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(bt3)

    .addComponent(kode3,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(nama3,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(debet3,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(kredit3,

    javax.swing.GroupLayout.PREFERRED_SIZE,

  • 98

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(bt4)

    .addComponent(kode4,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(nama4,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(debet4,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(kredit4,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(bt5)

    .addComponent(kode5,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(nama5,

    javax.swing.GroupLayout.PREFERRED_SIZE,

  • 99

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(debet5,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(kredit5,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(bt6)

    .addComponent(kode6,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(nama6,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(debet6,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(kredit6,

    javax.swing.GroupLayout.PREFERRED_SIZE,

    javax.swing.GroupLayout.DEFAULT_SIZE,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addContainerGap(34, Short.MAX_VALUE))

    );

  • 100

    jPanel3.setBorder(javax.swing.BorderFactory.createBevelBorder(javax

    .swing.border.BevelBorder.RAISED));

    tambah.setIcon(new

    javax.swing.ImageIcon(getClass().getResource("/gambar/Pencil.png"))

    ); // NOI18N

    tambah.setText("TAMBAH");

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

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

    tambahActionPerformed(evt);

    }

    });

    keluar.setIcon(new

    javax.swing.ImageIcon(getClass().getResource("/gambar/Error.png")))

    ; // NOI18N

    keluar.setText("KELUAR");

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

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

    keluarActionPerformed(evt);

    }

    });

    jLabel8.setFont(new java.awt.Font("Times New Roman", 1, 14));

    // NOI18N

    jLabel8.setText("Total Balance");

    balance.setFont(new java.awt.Font("Times New Roman", 1, 14));

    // NOI18N

    balance.setHorizontalAlignment(javax.swing.SwingConstants.CENTE

    R);

    balance.setText("0");

  • 101

    javax.swing.GroupLayout jPanel3Layout = new

    javax.swing.GroupLayout(jPanel3);

    jPanel3.setLayout(jPanel3Layout);

    jPanel3Layout.setHorizontalGroup(

    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignme

    nt.LEADING)

    .addGroup(jPanel3Layout.createSequentialGroup()

    .addContainerGap()

    .addComponent(tambah)

    .addGap(18, 18, 18)

    .addComponent(keluar)

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UN

    RELATED)

    .addComponent(jLabel8,

    javax.swing.GroupLayout.PREFERRED_SIZE, 101,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addGap(29, 29, 29)

    .addComponent(balance,

    javax.swing.GroupLayout.PREFERRED_SIZE, 99,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addContainerGap(39, Short.MAX_VALUE))

    );

    jPanel3Layout.setVerticalGroup(

    jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignme

    nt.LEADING)

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

    jPanel3Layout.createSequentialGroup()

  • 102

    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

    Short.MAX_VALUE)

    .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLay

    out.Alignment.BASELINE)

    .addComponent(tambah)

    .addComponent(keluar)

    .addComponent(jLabel8,

    javax.swing.GroupLayout.PREFERRED_SIZE, 49,

    javax.swing.GroupLayout.PREFERRED_SIZE)

    .addComponent(balance,

    javax.swing.GroupLayout.PREFERRED_SIZE, 49,

    javax.swing.GroupLayout.PREFERRED_SIZE))

    .addContainerGap())

    );

    javax.swing.GroupLayout layout = new

    javax.swing.GroupLayout(getContentPane());

    getContentPane().setLayout(layout);

    layout.setHorizontalGroup(

    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA

    DING)

    .addGroup(layout.createSequentialGroup()

    .addContainerGap()

    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align

    ment.LEADING)

    .addComponent(jPanel3,

    javax.swing.GroupLayout.DEFAULT_SIZE,

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

    .addComponent(jPanel2,

    javax.swing.GroupLayout.DEFAULT_SIZE,

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

  • 103

    .addComponent(jPanel1,

    javax.swing.GroupLayout.Alignment.TRAILING,

    javax.swing.GroupLayout.DEFAULT_SIZE,

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

    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.REL

    ATED)

    .addComponent(jurnal,

    javax.swing.GroupLayout.DEFAULT_SIZE,

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

    );

    layout.setVerticalGroup(

    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA

    DING)

    .addGroup(layout.createSequentialGroup()

    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Align

    ment.LEADING)

    .addGroup(layout.createSequentialGroup()

    .addGap(125,