25
PEMBAHASAN
3.1. Tinjauan Perusahaan
Adapun tinjauan perusahaan Koperasi Guru dan Pegawai Sejahtera SMKN 1 Cikarang Barat, akan diuraikan dari Sejarah singkat berdirinya Koperasi tersebut, keanggotaanya sampai dengan struktur organisasinya seperti keterangan di bawah ini.
3.1.1. Sejarah Koperasi Sejahtera
Koperasi Guru dan Pegawai “SEJAHTERA” SMKN 1 Cikarang Barat, didirikan berawal dari ide dan masukan dari para Guru dan Pegawai yang melihat banyaknya guru ,pegawai dan siswa di jam istirahat keluar sekolah untuk berbelanja ke Toko hanya membeli makanan ringan minuman ringan,ATK, dll. ditambah lagi guru dan pegawai ingin mensejahterakan sekolah. Akhirnya setelah di musyawarahkan didirikanlah Koperasi Guru dan Pegawai “SEJAHTERA” SMKN 1 Cikarang Barat tepatnya bulan Juli 1999, dengan Nomor : 232 / BH / KDK.10.8/ VII / 1999. Tahap awal pendaftaran sebagai anggota Koperasi adalah membayar Simpanan pokok sebesar Rp 50.000 dan simpanan wajib Rp 5.000 (1999), namun dari tahun 2011 simpanan Wajib sudah Rp 100.000 per bulan yang di potong langsung dari gaji Guru dan Pegawai Honorer sesuai dengan persetujuan dua belah pihak. Secara aturan dan akta pendirian Koperasi bertujuan untuk menyelenggarakan usaha-usaha kepentingan anggota yaitu:
1. Warung Koperasi (menjual makanan, minuman, ATK, baju, buku, dll). 2. Pinjaman uang kepada anggota dengan jasa tidak di tentukan
3. Kredit barang dengan jasa 15% 4. Jasa pembayaran Online 5. Sewa kantin
6. Jasa Fotokopi dan ATK khusus
7. Mengelola iuran harian pedagang di lingkungan SMKN 1 Cikarang Barat Langkah awal Koperasi dalam pengadaan kebutuhan anggota adalah menyediakan warung koperasi, namun tidak secara keseluruhan seperti yang ada di lingkungan masyarakat luas, Koperasi melihat kebutuhan yang diperlukan oleh anggota sehari-hari seperti Air mineral / soft drink, snack ,ATK, mesin Fotokopi, Baju, Buku dan masih banyak lagi. Seiring dengan berjalannya waktu, usaha yang dijalankan dalam penyediaan kebutuhan anggota semakin berkembang, anggota yang dimanjakan dengan kebutuhannya semakin banyak melakukan transaksi terutama soft drink dan snack. Program Koperasi semakin dikembangkan sesuai dengan tujuan diatas, dimana modal yang semakin banyak untuk disalurkan ke anggotanya, Program selanjutnya dibuka pelayanan untuk simpan pinjam terutama bagi anggota yang ingin membeli barang dan meminjam uang,tentunya dengan syarat yang telah ditentukan.
Saat ini Modal yang dimiliki oleh Koperasi Guru dan Pegawai “SEJAHTERA” SMKN 1 Cikarang Barat sudah ratusan juta rupiah sebagai Koperasi Sekolah, sehingga Koperasi Guru dan Pegawai “SEJAHTERA” SMKN 1 Cikarang Barat juga setiap tahunnya juga melakukan rapat anggota, dimana pengurus akan memaparkan tentang pengusahaannya dalam tahun buku yang lampau, pembacaan rencana kerja, anggaran Pendapatan dan belanja Koperasi untuk tahun berikutnya, tanggapan anggota terhadap rencana kerja dan anggaran belanja, serta yang ditunggu-tunggu oleh anggota yaitu penetapan pembagian Sisa Hasil Usaha.
3.1.2. Kepengurusan Koperasi Sejahtera
Kepengurusan Koperasi Guru dan Pegawai “SEJAHTERA” SMKN 1 Cikarang Barat periode 2017-2019 per tanggal 1 januari 2017 adalah sebagai berikut :
1. Penasehat : Kepala Sekolah SMKN 1 Cikarang
Barat
2. Susunan Pengurus
Ketua : H.Irman Indria P., S.Pd, MM
Sekretaris : Asep Zulfikar I.S., ST
Bendahara : Heni Budianti, S.Pd
Divisi Simpan Pinjam : Didik Triwahyanto, S.Pd Divisi Foto Copy dan ATK : Drs. Eman Indra Gunawan Divisi Kantin dan Mini Market : Sulasmi, S.Pd
Divisi Pembayaran Online : Cucu Sudrajat, S.Pd, MM
Pengembangan : Haris Munbarzan, S.Pd
3. Susunan pengawas
Ketua : Kiswaya, S.Pd, SST
Anggota : 1. Ayi Saeful Hayat, S.Pd,SST
2. Drs. Jumanto
3.1.3. Keanggotaan Koperasi Sejahtera
Pada Tahun buku 2017 terjadi perubahan jumlah karena ada anggota yang keluar dan masuk sebagai berikut :
Jumlah anggota Koperasi sampai dengan 31 Desember 2017 adalah 180 orang
Tabel III.2
. Keanggotaan Koperasi Sejahtera
NO KELUAR MASUK NO ANGGOTA NAMA ANGGOTA NO ANGGOTA NAMA ANGGOTA
1 K.11.119 Siti Masithah, A.Md K.17.225 Suci Berliana M. A. R
2 K.14.201 Supendi, S.TH K.17.226 Nurhatia Asmawati
3 K.16.220 Windi Kurnia A., S.Pd K.17.227 Puspito W, S.Pd
4 K.17.228 Achmad Sutejo, S.Pd 5 K.17.229 Yuliana Sartika,S.Pd 6 K.17.230 Alfi dwi N., S.Pd 7 K.17.231 Gayah Andaryanti, S.Pd 8 K.17.232 Ahmad Khumaidi, S.Ag
Sumber : Laporan Pertanggung Jawaban (RAT) Koperasi Guru dan Pegawai “SEJAHTERA” SMKN 1 Cikarang Barat.
3.1.4. Ketercapaian Program Koperasi Sejahtera
Besarnya Sisa Hasil Usaha (SHU) Koperasi pada tahun 2017 adalah sebagai berikut :
Tabel III.3
NO SUMBER PEMASUKAN KOPERASI 2017 JUMLAH SHU
1
WARUNG (Penjualan Makanan, minuman, ATK, baju, buku, dll)
Rp 238.507.000
2 PENJUALAN KOMPUTER KE SEKOLAH
Rp 27.500.000
3 PENJUALAN BARANG
Rp 30.187.750
4 PENJUALAN MESIN FOTO COPY
Rp 12.500.000
5 ONLINE
Rp 5.422.880
6 IURAN HARIAN KANTIN ( Jan-Des 2017)
Rp 11.610.000
7 SEWA KANTIN
Rp 22.500.000
8 IURAN LISTRIK KANTIN
Rp 1.847.500 JUMLAH Rp 350.075.130 PENGELUARAN JUMLAH
1 RAT Tahun Buku 2017
Rp 40.000.000
2 PEMBELIAN MESIN KANGEN WATER
Rp 36.513.000
3 TABUNGAN UNTUK FAMILY GATHERING
Rp 88.900.000
4 BELANJA LISTRIK SELAMA 1 TAHUN
Rp 6.609.200
5 TRANSPORT RAPAT PENGEMBANGAN KOPERASI
Rp 128.550.000
JUMLAH PENGELUARAN
Rp 300.572.200
SHU YANG AKAN DI BAGIKAN
Rp 49.502.930 1 DANA CADANGAN (20%) Rp 9.900.586 2 UNTUK ANGGOTA (50%) Rp 24.751.465 3 DANA PENDIDIKAN (2,5%) Rp 1.237.573 4 PENGURUS (15%) Rp 7.425.440 5 KESEJAHTERAAN KARYAWAN (5%) Rp 2.475.147
6 PEMBANGUNAN DAERAH KERJA (2.5%)
Rp 1.237.573
7 DANA SOSIAL (5%)
Rp 2.475.147
Pembagian Sisa Hasil Usaha (SHU) berdasarkan Anggaran Dasar BAB XIII pasal 38 adalah sebagai berikut :
Berdasarkan Peraturan Khusus pada Poin 12, Pembagian SHU untuk anggota dibagikan sebesar 90% SHU berdasarkan simpanan pokok dan wajib serta 10% berdasarkan simpanan sukarela yang sudah menyimpan 9 bulan tahun berjalan.
3.1.5. Contoh Perhitungan Sisa Hasil Usaha (SHU) Koperasi Sejahtera
Komponen data untuk perhitungan Sisa Hasil Usaha (SHU) Tabel III.4.
Contoh perhitungan Sisa Hasil Usaha (SHU) (a) TOTAL SW &SP
TOTAL SIM. SUK 31/3/2017 PROVISI DI BAGIKAN SHU ANGGOTA Rp 700.000.000 Rp 67.000.000 Rp 4.000.000 Rp 80.000.000 Tabel III.5.
Contoh Perhitungan Sisa Hasil Usaha (SHU) (b) NAMA ANGGOTA JMLH SW &SP 31/12/2017 JMLH PROVISI JMLH S. SUK 31/03/2017 SHU 1 SW &SP 0,0977 SHU 2 PROVISI 15% SHU 3 SUKARELA 0,1134 JUMLAH Sri Pardianta Rp 6.000.000 Rp 700.000 Rp15.000.000 Rp 654.000 Rp. 105.000 Rp 1.701.000 Rp2.392.000 Contoh perhitungan :
Karena pemberian provisi pembelian barang oleh anggota sebesar 15% dari pinjaman Barang, maka perhitungan untuk provisi pembelian barang dikalikan dengan 15% dari provisi yang diberikan masing-masing anggota. Adapun perhitungan Sisa Hasil Usaha (SHU) adalah sebagai berikut :
Pak Sri Pardianta = Rp.6.000.000 x (Rp. 80.000.000 – Rp. 4.000.000)/ Rp. 700.000.000) x 90%
= Rp. 6.000.000 x 0.0977 = Rp. 586.200
SHU 2 berdasarkan 15% dari provisi pembelian barang Pak Sri Pardianta = Rp. 700.000 x 15%
= Rp.105.000
SHU 3 Berdasarkan simpanan sukarela
Pak Sri Pardianta = Rp.15.000.000x(Rp.80.000.000–Rp.4.000.000) /Rp.67.000.000) x 10%
= Rp.15.000.000x0,1134 = Rp.1.701.000
Total SHU yang di terima pak Sri Pardianta =
Rp.586.200+Rp.105.000+Rp.1.701.000
= Rp.2.392.200
= Rp.2.392.000 (pembulatan)
Sisa Hasil Usaha (SHU) di bagikan apabila Laporan pertanggung jawaban pengurus pada tahun buku 2017 di terima oleh anggota. Besaran SHU yang dihitung di atas akan di bagi menjadi dua bagian, pertama sebagai transportrapat pengembangan Koperasi dan yang kedua berupa SHU, dengan pembagian yang proporsional.
3.2. Tinjauan Kasus
Bendahara setiap tahunnya merekap laporan transaksi keuangan baik pemasukan maupun pengeluaran, setelahnya di laporkan kepada sekretaris untuk dibuatkan menjadi laporan keuangan seperti Neraca dan akan menjadi Laporan Pertanggung Jawaban Tahun Buku. Dari hasil laporan yang di peroleh koperasi, maka di hitunglah perkiraan sisa hasil usaha yang akan di bagikan kepada para anggota, dan akan menjadi laporan pertanggung jawaban. Sebelum dibagikan kepada para anggota laporan pertanggung jawaban di periksa dan disetujui oleh ketua dan pengurus yang lain agar hasil laporan sesuai dengan Undang-Undang No.25 Tahun 1992 Bab IX pasal 45 dan Pasal 5 ayat 1. Kemudian laporan pertanggung jawaban yang telah disetujui akan di bagikan kepada anggota melalui Rapat Anggota Tahunan (RAT). Dan anggota akan menandatangani serah terima Sisa Hasil Usaha dengan Nominal yang di sesuaikan di dalam Amplop ukuran 22 cm x 11 cm.
Gambar III.1
Activity Diagram Proses Bisinis Sistem Berjalan
3.2.3. Dokumen Masukan
Spesifikasi sistem berjalan yaitu serangkaian dari bentuk dokumen untuk mendukung terbentuknya file-file yang di butuhkan serta informasi yang di sajikan, maka dibutuhkan masukan-masukan untuk sistem. Dokumen masukan yang terdapat pada Koperasi Guru dan Pegawai Sejahtera sebagai berikut :
1. Nama Dokumen : Neraca
Fungsi : Sebagai bukti Laporan Keuangan per tahun
Sumber : Bendahara
Media : Kertas
Jumlah : Satu Lembar
Frekuensi : Satu Tahun Sekali
Format : Lampiran A.1
2. Nama Dokumen : Laporan Keuangan
Fungsi : Sebagai bukti Laporan Keuangan keseluruhan
Sumber : Bendahara
Tujuan : Sekretaris
Media : Kertas
Jumlah : Satu Lembar
Frekuensi : Satu Tahun Sekali
Format : Lampiran A.1
3.2.4. Dokumen Keluaran
1. Nama Dokumen : Sisa Hasil Usaha (SHU)
Fungsi : Sebagai bukti penerimaan Sisa Hasil Usaha (SHU)
Sumber : Bendahara
Tujuan : Anggota
Media : Amplop
Jumlah : Satu Lembar
Frekuensi : Satu Tahun Sekali
2. Nama Dokumen : Laporan Pertanggung Jawaban
Fungsi : Sebagai bukti Laporan SHU
Sumber : Bendahara
Tujuan : Anggota
Media : kertas
Jumlah : Satu Buku
Frekuensi : Satu Tahun Sekali
Format : Lampiran A.1
3.2.5. Permasalahan Pokok
Bentuk sistem yang baik akan sangat dibutuhkan dalam organisasi apapun.Sehingga usaha-usaha yang di operasikan sesuai dengan keinginan yang di harapkan.Akan tetapi perlu disadari bahwa dengan adanya keterbatasan yang diakibatkan oleh perkembangan zaman yang sedemikian pesat mengakibatkan semua ketentuan dan cara pengolahan bentuk usaha yang sesuai dengan pengaturan aktivitas yang baik, sering menimbulkan berbagai masalah.
Melihat dari semua proses yang terjadi, ada beberapa masalah yang dihadapi di Koperasi Guru dan Pegawai Sejahtera SMKN 1 Cikarang Barat adalah pencatatan setiap perhitungan sisa hasil usaha (SHU) masih menggunakan sistem yang Manual, hal ini mempersulit dalam menghitung sisa hasil usaha setiap anggota pada akhir tahunnya. Sistem Yang digunakan masih menggunakan microsoft Excel versi 2010. Input atau output masih harus di ketik manual. Apabila data yang sudah masuk hilang atau terformat dan tidak di back up, maka data semua anggota akan hilang.
Untuk mengatasi permasalahan tersebut, maka penulis memberikan alternatif pemecahan masalah yaitu berupa program perancangan sistem informasi perhitungan SHU yang sudah terkomputerisasi. Sistem yang dimaksud mempunyai kelebihan diantaranya; dibuatkannya suatu sistem komputerisasi sehingga dalam pencatatan yang dilakukan akan lebih cepat dan akurat. Dalam pembuatan laporan lebih efektif dan kesalahan perhitungan kemungkinan sangat kecil karna menggunakan media komputer sebagai alat bantu dalam pemprosesan dan perhitungan data sehingga dapat diperoleh informasi yang lebih cepat, tepat dan akurat. Serta penyimpanan data tidak hanya dilakukan dengan di arsipkan dalam bentuk kertas, dapat juga dalam bentuk flashdisk dan harddisk.
3.3. Analisis Kebutuhan Software
3.3.1. Analisis Kebutuhan Fungsional
Berdasarkan proses perhitungan Sisa Hasil Usaha (SHU) pada Koperasi Guru dan Pegawai “SEJAHTERA” SMKN 1 Cikarang Barat, maka analisis kebutuhanya sebagai berikut :
Halaman Admin 1. Admin Login
2. Admin Mengelola Data Anggota 3. Admin Mengelola Transaksi 4. Admin Mengelola Laporan
3.3.2. Usecase Diagram 1. Usecase Halaman Login
Gambar III.2
Usecase Halaman Login
Tabel III.6.
Deskripsi Usecase Halaman Login Usecase Narative Halaman Login
Tujuan Pengurus dapat melihat data yang ada di dalam sistem halaman login Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman login yang di
dalamnya ada input Id-pengurus, password yang akan di import ke database login dengan tekan tombol pilihan Login untuk lanjut ke sistem dan Cancel apabila batal masuk ke sistem.
Skenario Utama
Aktor Pengurus
Aksi Aktor Reaksi Sistem
1. Aktor menginput Id_pengurus Sistem akan menginput Id_pengurus sesuai yang di ketik aktor
2. Aktor menginput password Sistem akan menginput password sesuai yang di ketik aktor
3. Aktor memilih Login Sistem akan menampilkan Menu utama 4. Aktor memilih Cancel Sistem akan keluar otomatis
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang di inginkan
Gambar III.3
Usecase Halaman Data Anggota
Tabel III.7.
Deskripsi Usecase Halaman Data Anggota Usecase Narative Halaman Data Anggota
Tujuan Pengurus dapat melihat dan menambah data yang ada di dalam sistem halaman data anggota
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman data anggota yang nantinya bisa melihat dan menambah data anggota baik data anggota lama maupun data anggota baru, dan data akan di import ke database anggota dengan tekan tombol pilihan simpan untuk lanjut ke sistem, pilihan edit untuk mengedit data yang telah di simpan, pilihan hapus untuk menghapus data yang tidak sesuai , pilihan tambah anggota untuk menambahkan anggota baru, pilihan keluar apabila ingin kembali ke menu utama dan batal apabila batal untuk keluar dari menu data anggota.
Aktor Pengurus
Kondisi Awal Aktor membuka aplikasi halaman menu data anggota
Aksi Aktor Reaksi Sistem
1. Aktor menginput data anggota Sistem akan menginput data anggota sesuai yang di ketik aktor
2. Aktor memilih Simpan Sistem akan menyimpan data anggota dan tersimpan di database sesuai yang di ketik aktor
3. Aktor memilih Edit Sistem akan mengupdate data anggota dan terupdate di database sesuai yang di ketik aktor
4. Aktor memilih Hapus Sistem akan menghapus data anggota dan terhapus di database sesuai yang di hapus aktor
5. Aktor memilih Tambah Transaksi
Sistem akan menambahkan data anggota transaksi dan tersimpan di database sesuai yang di ketik aktor
6. Aktor memilih Keluar Sistem akan keluar dari menu data anggota dan kembali ke menu utama.
7. Aktor memilih Batal Sistem akan tetap berada di menu data anggota. Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan
apa yang di inginkan
Gambar III.4
Usecase Halaman Data Transaksi
Tabel III.8.
Deskripsi Usecase Halaman Data Transaksi Use Case Narative Halaman Data Transaksi
Tujuan Pengurus dapat melihat dan menambah data yang ada di dalam sistem halaman Transaksi.
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman transaksi yang nantinya bisa menginput jumlah pinjaman dan jumlah provisi dan selanjutnya akan menghitung jumlah SHU, kemudian data akan di import ke database Provisi, SHU 1, SHU 2, SHU 3, dan SHU dengan tekan tombol pilihan simpan dan dilanjutkan ke halaman SHU, pilihan hitung pada SHU 1, SHU 2, SHU 3 untuk lanjut ke sistem, dan pilihan total SHU untuk lanjut ke sistem.
Aktor Pengurus
Kondisi Awal Aktor membuka aplikasi halaman menu Transaksi
Aksi Aktor Reaksi Sistem
1. Aktor menghitung Provisi Sistem akan menginput data dan menghitung Provisi dan tersimpan di database sesuai yang di ketik aktor 2. Aktor menghitung SHU 1 Sistem akan menginput data dan menghitung SHU 1
dan tersimpan di database sesuai yang di ketik aktor 3. Aktor menghitung SHU 2 Sistem akan menginput data dan menghitung SHU 2
dan tersimpan di database sesuai yang di ketik aktor 4. Aktor menghitung SHU 3 Sistem akan menginput data dan menghitung SHU 3
dan tersimpan di database sesuai yang di ketik aktor 5. Aktor menghitung Total SHU Sistem akan menginput data dan menghitung Tota
SHU dan tersimpan di database sesuai yang di ketik aktor
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang di inginkan
4. Usecase Halaman DataLaporan
Gambar III.5
Tabel III.9.
Deskripsi Usecase Halaman Data Laporan Usecase Narative Halaman Data Laporan Tujuan Pengurus dapat melihat Laporan SHU
Deskripsi Sistem ini memungkinkan aktor untuk masuk ke halaman Laporan yang nantinya bisa melihat laporan dan data akan di import ke database laporan dengan tekan tombol pilihan cetak untuk lanjut ke sistem.
Skenario Utama
Aktor Pengurus
Kondisi Awal Aktor membuka aplikasi halaman menu SHU
Aksi Aktor Reaksi Sistem
1. Aktor menginput data Sisa Hasil Usaha 1
Sistem akan menginput data perhitungan SHU 1 sesuai yang di ketik aktor
2. Aktor menginput data sisa hasil usaha 2
Sistem akan menginput data perhitungan SHU 2 sesuai yang di ketik aktor
3. Aktor menginput data sisa hasil usaha 3
Sistem akan menginput data perhitungan SHU 3 sesuai yang di ketik aktor
4. Aktor memilih Hitung Sistem akan menghitung data pada setiap SHU sesuai yang di ketik aktor
5. Aktor memilih Total SHU Sistem akan menghitung keseluruhan data SHU yang telah terhitung sesuai yang di ketik aktor
6. Aktor memilih Keluar Sistem akan keluar dari menu SHU dan kembali ke menu utama.
7. Aktor memilih Batal Sistem akan tetap berada di menu SHU.
Kondisi Akhir Jika perintah sesuai maka sistem akan menampilkan apa yang di inginkan
3.3.3. Activity Diagram 1. Activity Diagram Halaman Login
Gambar III. 6
Activity Diagram Halaman Login
2. Activity Diagram Halaman Data Anggota
Gambar III.7
3. Activity Diagram Halaman Transaksi
Gambar III.8
Activity Diagram Halaman Transaksi
4. Activity Diagram Halaman Laporan
Gambar III.9 .
3.4. Desain
3.4.1. Database
1. Entity Relationship Diagram (ERD)
Gambar III.10
Entity Relationship Diagram (ERD)
2. Logical Record Structure (LRS)
Gambar III.11
3. Spesifikasi File 1. Spesifikasi File Data Login Nama Database : sejahterashu
Nama File : login
Tipe File : Login
Akses File : Random
Panjang Record : 20 Karakter
Field Key : id_pengurus
Tabel III.10. Spesifikasi File Data Login
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Identitas Pengurus id_pengurus Varchar 10 Primary key
2. Password password Int 10
2. Spesifikasi File Data Anggota Nama Database : sejahterashu
Nama File : anggota
Tipe File : Master Akun
Akses File : Random
Panjang Record : 106 Karakter
Field Key : id_pengurus
Tabel III.11
Spesifikasi File Data Anggota
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Nomor Anggota no_anggota Varchar 6 Primary key
2. Nama Anggota nama_anggota Varchar 25
3. Jumlah Simpanan Pokok Jmlh_sp Varchar 15 4. Jumlah Simpanan Wajib Jmlh_sw Varchar 15
5. Jumlah Sukarela Jmlh_suk Varchar 15
6. Jumlah Barang Jmlh_brng Varchar 15
7. Jumlah Uang Jmlh_uang Varchar 15
3. Spesifiksai File Provisi
Nama Database : sejahterashu
Nama File : provisi
Tipe File : Transaksi
Akses File : Random
Panjang Record : 136 Karakter
Field Key : no_anggota
Tabel III.12. Spesifikasi File Provisi
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Nomor Anggota no_anggota Varchar 6 Primary key
2. Nama Anggota nama_anggota Varchar 25
3. Jumlah Pinjaman Uang Uang Varchar 15 4. Jumlah Pinjaman Barang Barang Varchar 15
5. Jumlah Pinjaman Jmlh_pnjmn Varchar 15
6. Jumlah Provisi Jmlh_prov Varchar 15
7. Jumlah Simpanan Wajib Sw Varchar 15 8. Jumlah Simpanan Pokok Sp Varchar 15 9. Jumlah Simpanan Wajib dan Pokok
4. Spesifikasi File Data SHU 1 Nama Database : sejahterashu
Nama File :shu1
Tipe File : Transaksi
Akses File : Random
Panjang Record : 76 Karakter
Field Key : no_anggota
Tabel III.13.
Spesifikasi File Data SHU 1
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Nomor Anggota no_anggota Varchar 6 Primary key
2. Nama Anggota nama_anggota Varchar 25
3. Jumlah Simpanan Wajib dan
Simpanan Pokok
jmlh_swsp Varchar 15
4. Jumlah Sisa Hasil Usaha (SHU)
jmlh_shu Varchar 15
5. Total Sisa Hasil Usaha (SHU) yang ke satu
tot_shu1 Varchar 15
5. Spesifikasi File Data SHU 2 Nama Database : sejahterashu
Nama File :shu2
Tipe File : Transaksi
Akses File : Random
Panjang Record : 76Karakter
Tabel III.14.
Spesifikasi File Data SHU 2
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Nomor Anggota no_anggota Varchar 6 Primary key
2. Nama Anggota nama_anggota Varchar 25
3. Jumlah Provisi jmlh_prov Varchar 15
4. Provisi prov Varchar 15
5. Total Sisa Hasil Usaha (SHU) yang ke dua
tot_shu2 Varchar 15
6. Spesifikasi File Data SHU 3 Nama Database : sejahterashu
Nama File :shu3
Tipe File : Transaksi
Akses File : Random
Panjang Record : 76 Karakter
Field Key : no_anggota
Tabel III.15.
Spesifikasi File Data SHU 3
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Nomor Anggota no_anggota Varchar 6 Primary key
2. Nama Anggota nama_anggota Varchar 25
3. Jumlah Uang Sukarela
jmlh_suk Varchar 15
4. Sukarela suk Varchar 15
5. Total Sisa Hasil Usaha (SHU) yang ke tiga
7. Spesifikasi File Data SHU Nama Database : sejahterashu
Nama File :shu
Tipe File : Transaksi
Akses File : Random
Panjang Record :76 Karakter
Field Key : no_anggota
Tabel III.16. Spesifikasi File Data SHU
No. Elemen Data Akronim Tipe Panjang Keterangan
1. Nomor Anggota no_anggota Varchar 6 Primary key
2. Nama Anggota nama_anggota Varchar 25
3. Total Sisa Hasil Usaha (SHU) yang ke satu
tot_shu1 Varchar 15
4. Total Sisa Hasil Usaha (SHU) yang ke dua
tot_shu2 Varchar 15
5. Total Sisa Hasil Usaha (SHU) yang ke tiga
tot_shu3 Varchar 15
6. Jumlah Total Sisa Hasil Usaha (SHU)
jmlh_shu Varchar 6
8. Spesifikasi File Data Laporan Nama Database : sejahterashu
Nama File : laporan
Tipe File : Laporan
Akses File : Random
Panjang Record : 183 Karakter
Tabel III.17.
Spesifikasi File Data Laporan
No Elemen Data Akronim Tipe panjang keterangan
1 Nomor No Varchar 2
2 Nomor anggota No_anggota Varchar 6 Primary key
3 Nama anggota Nama_anggota Varchar 25
4 Pinjaman uang Uang Varchar 15
5 pinjaman barang Barang Varchar 15
6 Jumlah pinjaman Jmlh_pnjmn Varchar 15
7 Jumlah simpanan pokok
dan wajib Jmlh_swsp
Varchar 15
8 Jumlah provisi Jmlh_prov Varchar 15
9 Jumlah sukarela Jmlh_suk Varchar 15
10 Sisa hasil usaha 1 Shu1 Varchar 15
11 Sisa hasil usaha 2 Shu2 Varchar 15
12 Sisa hasil usaha 3 Shu3 Varchar 15
13 Jumlah sisa hasil usaha Jmlh_shu Varchar 15
3.4.2. User Interface
Gambar III. 12
Gambar III. 13
User Interface form menu utama
Gambar III.14
Gambar III.15.
User Interface form Transaksi
Gambar III.16
Gambar III.17
User Interface form Laporan
Gambar III.18
3.4.3. Sequence Diagram Gambar III.19 Sequence Diagram 3.4.4. Deployment Diagram Gambar III.20 Deployment Diagram
3.5. Implementasi
3.5.1. Code Generation
1. Code Generation Form Login package kop_shu; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.swing.JOptionPane; import java.sql.DriverManager;
public class loginn extends javax.swing.JFrame { public loginn() {
initComponents();
this.setExtendedState(loginn.MAXIMIZED_VERT);} private void initComponents() {
jPanel2 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); lid = new javax.swing.JLabel(); lpas = new javax.swing.JLabel(); txtid = new javax.swing.JTextField();
txtpass = new javax.swing.JPasswordField(); bcancel = new javax.swing.JButton();
blogin = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setBackground(new java.awt.Color(0, 0, 0));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jPanel2.setBackground(new java.awt.Color(0, 102, 102));
jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jLabel1.setFont(new java.awt.Font("Arial Narrow", 1, 48)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 255, 255));
jLabel1.setText("LOGIN");
jPanel2.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 10, -1, -1));
jLabel4.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N jLabel4.setForeground(new java.awt.Color(255, 255, 255));
jLabel4.setText("KOPERASI GURU DAN PEGAWAI \"SEJAHTERA\""); jPanel2.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 70, 420, -1));
jLabel5.setFont(new java.awt.Font("Times New Roman", 1, 18)); // NOI18N jLabel5.setForeground(new java.awt.Color(255, 255, 255));
jPanel2.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 90, 258, -1)); getContentPane().add(jPanel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, -10, 450, 130)); jPanel3.setBackground(new java.awt.Color(0, 102, 102)); jPanel3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); lid.setFont(new java.awt.Font("Arial Narrow", 1, 36)); // NOI18N lid.setText("ID_Pengurus");
jPanel3.add(lid, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 40, 250, 50));
lpas.setFont(new java.awt.Font("Arial Narrow", 1, 36)); // NOI18N lpas.setText("Password");
jPanel3.add(lpas, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 100, 210, -1));
txtid.setBackground(new java.awt.Color(255, 255, 153));
txtid.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N txtid.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { txtidActionPerformed(evt);} });
jPanel3.add(txtid, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 50, 166, -1));
txtpass.setBackground(new java.awt.Color(255, 255, 153));
txtpass.setFont(new java.awt.Font("Times New Roman", 0, 24)); // NOI18N txtpass.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { txtpassActionPerformed(evt); }});
jPanel3.add(txtpass, new
org.netbeans.lib.awtextra.AbsoluteConstraints(220, 110, 166, -1));
bcancel.setFont(new java.awt.Font("Tw Cen MT", 1, 24)); // NOI18N bcancel.setText("Cancel");
bcancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bcancelActionPerformed(evt); } });
jPanel3.add(bcancel, new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 200, 130, -1));
blogin.setFont(new java.awt.Font("Tw Cen MT", 1, 24)); // NOI18N blogin.setText("Login");
blogin.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { bloginActionPerformed(evt); } });
jPanel3.add(blogin, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 200, 120, -1));
jLabel2.setIcon(new javax.swing.ImageIcon("E:\\TUGAS AKHIR INTEN\\PROGRAM\\icon\\koperasi.png")); // NOI18N jLabel2.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jLabel2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); jLabel2.setMaximumSize(new java.awt.Dimension(50, 50)); jLabel2.setMinimumSize(new java.awt.Dimension(10, 10)); jLabel2.setPreferredSize(new java.awt.Dimension(50, 50));
jPanel3.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 0, 310, 310)); getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 120, 450, 350)); pack(); setLocationRelativeTo(null); }// </editor-fold>
private void bcancelActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
System.exit(0);
}
private void txtidActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
}
private void bloginActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
String user="KS001"; String pass="123456";
String uname= txtid.getText(); String pword= txtpass.getText();
if( uname.equals(user)&&pword.equals(pass)){ this.setVisible(false);
new menu().setVisible(true); }else {
javax.swing.JOptionPane.showMessageDialog(null,"Maaf Id_pengurus Atau Password Anda Salah");
txtid.setText(""); txtpass.setText(""); txtid.requestFocus(); }
}
private void txtpassActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
} /**
* @param args the command line arguments */
public static void main(String args[]) { /* 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(loginn.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(loginn.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(loginn.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(loginn.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
new loginn().setVisible(true); }}); }
// Variables declaration - do not modify private javax.swing.JButton bcancel;
private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JLabel lid; private javax.swing.JLabel lpas; private javax.swing.JTextField txtid;
private javax.swing.JPasswordField txtpass; // End of variables declaration }
2. Code Generation Form Menu Utama /*
* 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 kop_shu; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.view.JasperViewer; /** * * @author Uthankun */
public class menu extends javax.swing.JFrame { /**
* Creates new form menu */ public menu() { initComponents(); this.setExtendedState(menu.MAXIMIZED_VERT); } /**
* 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")
private void initComponents() { left = new javax.swing.JPanel();
JleftMenuutama = new javax.swing.JLabel(); jLeftdataAnggota = new javax.swing.JLabel(); jLeftDatapengurus = new javax.swing.JLabel(); jLeftSHU = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); menuUtama = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); menuBar = new javax.swing.JMenuBar(); logout = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setBackground(new java.awt.Color(51, 153, 0)); getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); left.setBackground(new java.awt.Color(0, 153, 153)); left.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); JleftMenuutama.setForeground(new java.awt.Color(255, 255, 255)); JleftMenuutama.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); JleftMenuutama.setIcon(new javax.swing.ImageIcon("E:\\TUGAS AKHIR INTEN\\PROGRAM\\icon\\home.png")); // NOI18N JleftMenuutama.setLabelFor(menuUtama); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("kop_shu/Bundle"); // NOI18N JleftMenuutama.setText(bundle.getString("menu.JleftMenuutama.text")); // NOI18N JleftMenuutama.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {
JleftMenuutamaMouseClicked(evt); } }); left.add(JleftMenuutama, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 20, -1, -1)); jLeftdataAnggota.setForeground(new java.awt.Color(255, 255, 255)); jLeftdataAnggota.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jLeftdataAnggota.setIcon(new javax.swing.ImageIcon("E:\\TUGAS AKHIR INTEN\\PROGRAM\\icon\\anggota.png")); // NOI18N
jLeftdataAnggota.setText(bundle.getString("menu.jLeftdataAnggota.text")); // NOI18N
public void mouseClicked(java.awt.event.MouseEvent evt) { jLeftdataAnggotaMouseClicked(evt); } }); left.add(jLeftdataAnggota, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 150, 90, 100)); jLeftDatapengurus.setForeground(new java.awt.Color(255, 255, 255)); jLeftDatapengurus.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); jLeftDatapengurus.setIcon(new javax.swing.ImageIcon("E:\\TUGAS AKHIR INTEN\\PROGRAM\\icon\\pengurus.png")); // NOI18N
jLeftDatapengurus.setText(bundle.getString("menu.jLeftDatapengurus.text")); // NOI18N
jLeftDatapengurus.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {
jLeftDatapengurusMouseClicked(evt); } }); left.add(jLeftDatapengurus, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 310, 80, -1)); jLeftSHU.setForeground(new java.awt.Color(255, 255, 255)); jLeftSHU.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
jLeftSHU.setIcon(new javax.swing.ImageIcon("E:\\TUGAS AKHIR INTEN\\PROGRAM\\icon\\shu.png")); // NOI18N
jLeftSHU.setText(bundle.getString("menu.jLeftSHU.text")); // NOI18N jLeftSHU.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { jLeftSHUMouseClicked(evt);
} });
left.add(jLeftSHU, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 460, -1, 80));
jLabel4.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N jLabel4.setForeground(new java.awt.Color(255, 255, 255));
jLabel4.setText(bundle.getString("menu.jLabel4.text_1")); // NOI18N
left.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 100, -1, -1));
jLabel5.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N jLabel5.setForeground(new java.awt.Color(255, 255, 255));
jLabel5.setText(bundle.getString("menu.jLabel5.text_1")); // NOI18N
left.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 250, -1, -1));
jLabel6.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N jLabel6.setForeground(new java.awt.Color(255, 255, 255));
jLabel6.setText(bundle.getString("menu.jLabel6.text_1")); // NOI18N
left.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 400, -1, -1));
jLabel7.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N jLabel7.setForeground(new java.awt.Color(255, 255, 255));
jLabel7.setText(bundle.getString("menu.jLabel7.text_1")); // NOI18N
left.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 540, 60, 20)); getContentPane().add(left, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 110, 590)); menuUtama.setBackground(new java.awt.Color(0, 102, 102)); menuUtama.setAutoscrolls(true); menuUtama.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jLabel1.setFont(new java.awt.Font("Arial Black", 1, 48)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 255, 255));
jLabel1.setText(bundle.getString("menu.jLabel1.text")); // NOI18N
menuUtama.add(jLabel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(380, 10, 320, 50));
jLabel2.setFont(new java.awt.Font("Arial Black", 1, 18)); // NOI18N jLabel2.setForeground(new java.awt.Color(255, 255, 255));
jLabel2.setText(bundle.getString("menu.jLabel2.text")); // NOI18N
menuUtama.add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(170, 60, 720, 50));
jLabel3.setIcon(new javax.swing.ImageIcon("E:\\TUGAS AKHIR INTEN\\PROGRAM\\icon\\koperasi.png")); // NOI18N jLabel3.setText(bundle.getString("menu.jLabel3.text")); // NOI18N menuUtama.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 180, -1, -1)); getContentPane().add(menuUtama, new org.netbeans.lib.awtextra.AbsoluteConstraints(106, 0, 1130, 590)); menuBar.setBackground(new java.awt.Color(255, 255, 255)); menuBar.setForeground(new java.awt.Color(255, 255, 255)); menuBar.setBorderPainted(false); logout.setForeground(new java.awt.Color(0, 102, 102)); logout.setText(bundle.getString("menu.logout.text")); // NOI18N logout.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { logoutMouseClicked(evt);
} });
logout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { logoutActionPerformed(evt); } }); menuBar.add(logout); setJMenuBar(menuBar); pack(); setLocationRelativeTo(null); }// </editor-fold>
private void jLeftSHUMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:
new laposhuu().setVisible(true); this.setVisible(false);
}
private void jLeftDatapengurusMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here
new provisi().setVisible(true); this.setVisible(false);
}
private void jLeftdataAnggotaMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:
new Anggota().setVisible(true); this.setVisible(false);
}
private void JleftMenuutamaMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:
new menuuu().setVisible(true); }
private void logoutActionPerformed(java.awt.event.ActionEvent evt) { }
private void logoutMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:
new loginn().setVisible(true); this.setVisible(false);
/**
* @param args the command line arguments */
public static void main(String args[]) { /* 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(menu.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(menu.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(menu.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(menu.class.getName()).log(java.util.logging.Lev el.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
new menu().setVisible(true); }
}); }
// Variables declaration - do not modify private javax.swing.JLabel JleftMenuutama;
private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLeftDatapengurus; private javax.swing.JLabel jLeftSHU;
private javax.swing.JLabel jLeftdataAnggota; private javax.swing.JPanel left;
private javax.swing.JMenu logout; private javax.swing.JMenuBar menuBar; private javax.swing.JPanel menuUtama; // End of variables declaration }
3. Code Generation Form Anggota /*
* 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 kop_shu; import java.awt.HeadlessException; import java.sql.Connection; import java.sql.SQLException; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; /** * * @author Uthankun */
public class Anggota extends javax.swing.JFrame { private void kosongkan_form(){
txtNo.setEditable(true); txtNo.setText(null); txtNama.setText(null); txtsp.setText(null); txtsw.setText(null); txtsuk.setText(null); txtbrng.setText(null); txtuang.setText(null); }
DefaultTableModel model = new DefaultTableModel(); model.addColumn("No."); model.addColumn("No Anggota"); model.addColumn("Nama Anggota"); model.addColumn("S.Pokok"); model.addColumn("S.Wajib"); model.addColumn("S.Sukarela"); model.addColumn("Pinjaman Barang"); model.addColumn("Pinjaman Uang"); try{ int no = 1;
String sql = "SELECT * FROM anggota";
java.sql.Connection conn = (Connection)config.configDB(); java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet res = stm.executeQuery(sql); while(res.next()){ model.addRow(new Object[]{no++,res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.g etString(5),res.getString(6),res.getString(7)}); } tabelAnggota.setModel(model); }catch (SQLException e){
System.out.println("Error : " + e.getMessage()); }
} /**
* Creates new form Anggota */ public Anggota() { initComponents(); tampilkan_data(); kosongkan_form(); } /**
* 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")
// <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); txtNo = new javax.swing.JTextField(); txtNama = new javax.swing.JTextField(); jScrollPane1 = new javax.swing.JScrollPane(); tabelAnggota = new javax.swing.JTable(); btnKeluar = new javax.swing.JButton(); btnSimpan = new javax.swing.JButton(); btnEdit = new javax.swing.JButton(); btnHapus = new javax.swing.JButton(); btnTambah = new javax.swing.JButton(); txtsp = new javax.swing.JTextField(); txtsw = new javax.swing.JTextField(); txtsuk = new javax.swing.JTextField(); txtbrng = new javax.swing.JTextField(); txtuang = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setFocusable(false);
setPreferredSize(new java.awt.Dimension(1236, 590)); jPanel1.setBackground(new java.awt.Color(0, 102, 102));
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setFont(new java.awt.Font("Tw Cen MT Condensed Extra Bold", 1, 36)); // NOI18N
jLabel1.setForeground(new java.awt.Color(255, 255, 255));
jLabel1.setText("Data Anggota Koperasi Guru dan pegawai \"SEJAHTERA\"");
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(180, 20, 870, -1));
jLabel2.setFont(new java.awt.Font("Trebuchet MS", 1, 18)); // NOI18N jLabel2.setForeground(new java.awt.Color(255, 255, 255));
jLabel2.setText("No Anggota");
jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 140, -1, -1));
jLabel3.setFont(new java.awt.Font("Trebuchet MS", 1, 18)); // NOI18N jLabel3.setForeground(new java.awt.Color(255, 255, 255));
jLabel3.setText("Nama Anggota");
jPanel1.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 190, -1, -1));
jLabel4.setForeground(new java.awt.Color(255, 255, 255)); jLabel4.setText("Jumlah Simpanan Pokok");
jPanel1.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 240, -1, -1));
jLabel5.setFont(new java.awt.Font("Trebuchet MS", 1, 18)); // NOI18N jLabel5.setForeground(new java.awt.Color(255, 255, 255));
jLabel5.setText("Jumlah Simpanan Wajib");
jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 290, -1, -1));
jLabel6.setFont(new java.awt.Font("Trebuchet MS", 1, 18)); // NOI18N jLabel6.setForeground(new java.awt.Color(255, 255, 255));
jLabel6.setText("Jumlah Simpanan Sukarela");
jPanel1.add(jLabel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 340, -1, -1));
jLabel7.setFont(new java.awt.Font("Trebuchet MS", 1, 18)); // NOI18N jLabel7.setForeground(new java.awt.Color(255, 255, 255));
jLabel7.setText("Jumlah Pinjaman Barang");
jPanel1.add(jLabel7, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 390, -1, -1));
jLabel8.setFont(new java.awt.Font("Trebuchet MS", 1, 18)); // NOI18N jLabel8.setForeground(new java.awt.Color(255, 255, 255));
jLabel8.setText("Jumlah Pinjaman Uang");
jPanel1.add(jLabel8, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 440, -1, -1));
txtNo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtNoActionPerformed(evt);
} });
jPanel1.add(txtNo, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 130, 90, 30));
jPanel1.add(txtNama, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 180, 150, 30));
tabelAnggota.setFont(new java.awt.Font("Times New Roman", 0, 12)); // NOI18N
tabelAnggota.setModel(new javax.swing.table.DefaultTableModel( new Object [][] {
{null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} },
"Title 1", "Title 2", "Title 3", "Title 4" }
));
tabelAnggota.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) {
tabelAnggotaMouseClicked(evt); } }); jScrollPane1.setViewportView(tabelAnggota); jPanel1.add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 90, 730, 320));
btnKeluar.setFont(new java.awt.Font("Tw Cen MT", 1, 18)); // NOI18N btnKeluar.setText("Keluar");
btnKeluar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnKeluarActionPerformed(evt);
} });
jPanel1.add(btnKeluar, new
org.netbeans.lib.awtextra.AbsoluteConstraints(1080, 490, -1, -1));
btnSimpan.setFont(new java.awt.Font("Tw Cen MT", 1, 18)); // NOI18N btnSimpan.setText("Simpan");
btnSimpan.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnSimpanActionPerformed(evt);
} });
jPanel1.add(btnSimpan, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 490, -1, -1));
btnEdit.setFont(new java.awt.Font("Tw Cen MT", 1, 18)); // NOI18N btnEdit.setText("Edit");
btnEdit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnEditActionPerformed(evt);
} });
jPanel1.add(btnEdit, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 490, -1, -1));
btnHapus.setFont(new java.awt.Font("Tw Cen MT", 1, 18)); // NOI18N btnHapus.setText("Hapus");
btnHapus.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnHapusActionPerformed(evt);
});
jPanel1.add(btnHapus, new org.netbeans.lib.awtextra.AbsoluteConstraints(320, 490, -1, -1));
btnTambah.setFont(new java.awt.Font("Tw Cen MT", 1, 18)); // NOI18N btnTambah.setText("Tambah Data");
btnTambah.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnTambahActionPerformed(evt); } }); jPanel1.add(btnTambah, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 430, -1, -1)); txtsp.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { txtspActionPerformed(evt);
} });
jPanel1.add(txtsp, new org.netbeans.lib.awtextra.AbsoluteConstraints(279, 230, 120, 30));
jPanel1.add(txtsw, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 290, 120, 30));
jPanel1.add(txtsuk, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 340, 120, 30));
jPanel1.add(txtbrng, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 390, 120, 30));
jPanel1.add(txtuang, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 440, 120, 30));
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.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 1236, 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(); setLocationRelativeTo(null); }// </editor-fold>
// TODO add your handling code here: }
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
try{
String sql = "INSERT INTO anggota VALUES ('"+txtNo.getText()+"','"+txtNama.getText()+"','"+txtsp.getText()+"','"+txtsw.getText ()+"','"+txtsuk.getText()+"','"+txtbrng.getText()+"','"+txtuang.getText()+"')";
java.sql.Connection conn = (Connection)config.configDB(); java.sql.PreparedStatement pstm = conn.prepareStatement(sql); pstm.execute();
JOptionPane.showMessageDialog(null, "Proses Simpan Data Berhasil.."); tampilkan_data();
kosongkan_form();
}catch(HeadlessException | SQLException e){
JOptionPane.showMessageDialog(this, e.getMessage()); }
}
private void btnEditActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
try{
String sql = "UPDATE anggota SET
no_anggota='"+txtNo.getText()+"',nama_anggota='"+txtNama.getText()+"',jmlh_sp= '"+txtsp.getText()+"',jmlh_sw='"+txtsw.getText()+"',jmlh_suk='"+txtsuk.getText()+"' ,jmlh_brng='"+txtbrng.getText()+"',jmlh_uang='"+txtuang.getText()+"' WHERE no_anggota = '"+txtNo.getText()+"'";
java.sql.Connection conn = (Connection)config.configDB(); java.sql.PreparedStatement pstm = conn.prepareStatement(sql); pstm.execute();
JOptionPane.showMessageDialog(null, "Edit Data Berhasil..."); }catch(HeadlessException | SQLException e){
JOptionPane.showMessageDialog(this, e.getMessage()); }
tampilkan_data(); kosongkan_form(); }
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
try{
String sql = "DELETE FROM anggota WHERE no_anggota='"+txtNo.getText()+"'";
java.sql.Connection conn = (Connection)config.configDB(); java.sql.PreparedStatement pstm = conn.prepareStatement(sql); pstm.execute();
JOptionPane.showMessageDialog(null, "Hapus Data Berhasil..."); }catch(HeadlessException | SQLException e){
JOptionPane.showMessageDialog(this, e.getMessage()); }
tampilkan_data(); kosongkan_form(); }
private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
kosongkan_form(); }
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
new menu().setVisible(true); this.setVisible(false);
}
private void tabelAnggotaMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:
int baris = tabelAnggota.rowAtPoint(evt.getPoint());
String no_anggota = tabelAnggota.getValueAt(baris, 1).toString(); txtNo.setText(no_anggota);
String nama_anggota = tabelAnggota.getValueAt(baris, 2).toString(); txtNama.setText(nama_anggota);
String jmlh_sp = tabelAnggota.getValueAt(baris, 3).toString(); txtsp.setText(jmlh_sp);
String jmlh_sw = tabelAnggota.getValueAt(baris, 4).toString(); txtsw.setText(jmlh_sw);
String jmlh_suk = tabelAnggota.getValueAt(baris, 5).toString(); txtsuk.setText(jmlh_suk);
String jmlh_brng = tabelAnggota.getValueAt(baris, 6).toString(); txtbrng.setText(jmlh_brng);
String jmlh_uang = tabelAnggota.getValueAt(baris, 7).toString(); txtuang.setText(jmlh_uang);
}
private void txtspActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here:
} /**
* @param args the command line arguments */
public static void main(String args[]) { /* 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(Anggota.class.getName()).log(java.util.logging.L evel.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Anggota.class.getName()).log(java.util.logging.L evel.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Anggota.class.getName()).log(java.util.logging.L evel.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Anggota.class.getName()).log(java.util.logging.L evel.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
new Anggota().setVisible(true); }
}); }
// Variables declaration - do not modify private javax.swing.JButton btnEdit;
private javax.swing.JButton btnHapus; private javax.swing.JButton btnKeluar; private javax.swing.JButton btnSimpan;
private javax.swing.JButton btnTambah; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable tabelAnggota; private javax.swing.JTextField txtNama; private javax.swing.JTextField txtNo; private javax.swing.JTextField txtbrng; private javax.swing.JTextField txtsp; private javax.swing.JTextField txtsuk; private javax.swing.JTextField txtsw; private javax.swing.JTextField txtuang; // End of variables declaration }
4. Code Generation Form Provisi /*
* 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 kop_shu; import java.awt.HeadlessException; import java.sql.Connection; import java.sql.SQLException; import java.text.DecimalFormat; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import sun.misc.FloatingDecimal; /** * * @author Uthankun */
public class provisi extends javax.swing.JFrame { private void kosongkanprov(){
txtNo.setEditable(true); txtNo.setText(null); txtnama.setText(null); txtuang.setText(null);
txtbrng.setText(null); txtswsp.setText(null); txtprov.setText(null); }
private void tampilkanprov(){
DefaultTableModel model = new DefaultTableModel(); model.addColumn("No."); model.addColumn("No Anggota"); model.addColumn("Nama Anggota"); model.addColumn("Uang"); model.addColumn("Barang"); model.addColumn("Jumlah Pinjaman"); model.addColumn("Jumlah Provisi"); model.addColumn("Jumlah SW"); model.addColumn("Jumlah SP"); model.addColumn("Jumlah SWSP"); try{ int no = 1;
String sql = "SELECT * FROM provisi";
java.sql.Connection conn = (Connection)config.configDB(); java.sql.Statement stm = conn.createStatement();
java.sql.ResultSet res = stm.executeQuery(sql); while(res.next()){ model.addRow(new Object[]{no++,res.getString(1),res.getString(2),res.getString(3),res.getString(4),res.g etString(5),res.getString(6),res.getString(7),res.getString(8),res.getString(9)}); } tabprov.setModel(model); }catch (SQLException e){
System.out.println("Error : " + e.getMessage()); }
} /**
* Creates new form provisi */ public provisi() { initComponents(); kosongkanprov(); tampilkanprov(); } /**
* 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")
// <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane(); tabprov = new javax.swing.JTable();
txtNo = new javax.swing.JTextField(); txtnama = new javax.swing.JTextField(); txtuang = new javax.swing.JTextField(); txtbrng = new javax.swing.JTextField(); txtswsp = new javax.swing.JTextField(); txtprov = new javax.swing.JTextField(); simpan = new javax.swing.JButton(); hapus = new javax.swing.JButton(); edit = new javax.swing.JButton(); next = new javax.swing.JButton(); txt15 = new javax.swing.JTextField(); jLabel10 = new javax.swing.JLabel(); jLabel11 = new javax.swing.JLabel(); jLabel12 = new javax.swing.JLabel(); txtpnjmn = new javax.swing.JTextField(); txtsw = new javax.swing.JTextField(); txtsp = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); jPanel1.setBackground(new java.awt.Color(0, 102, 102)); jPanel1.setForeground(new java.awt.Color(255, 255, 255)); jPanel1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); jPanel1.setMaximumSize(new java.awt.Dimension(1180, 540)); jPanel1.setPreferredSize(new java.awt.Dimension(1180, 540)); jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jLabel1.setFont(new java.awt.Font("Times New Roman", 1, 24)); // NOI18N jLabel1.setText("Karena pemberian provisi pembelian barang oleh anggota sebesar 15% ");