BAB I PENDAHULUAN
1.1
Latar Belakang Masalah Sejalan dengan perkembangan kemajuan teknologi informasi yang cukup pesat, hal ini
juga dipicu oleh adanya kebutuhan akan data dan informasi oleh pengguna baik secara individu, organisasi atau lembaga maupun kelompok tertentu. Manfaat suatu informasi mempunyai dampak yang cukup besar terhadap perkembangan lembaga itu sendiri. Informasi yang berkualitas atau bernilai tinggi hanya bisa dihasilkan dari sebuah sistem informasi yang juga berkualitas. Sekecil apapun suatu sistem pada akhirnya pasti akan berhubungan dengan data dan informasi. Didalam sistem informasi juga dapat diatur bagaimana informasi yang dihasilkan dapat didistribusikan dengan cepat dan tepat sehingga mempunyai nilai dan arti yang tinggi. Kendala yang sering dihadapi dalam menangani registrasi barang pada TelkoMedika erat kaitannya dengan masalah keakuratan dalam pengolahan data barang. Hal ini untuk mempercepat proses data barang yang ada di gudang TelkoMedika. Pengolahan data barang yang ada di TelkoMedika banyak yang belum terkomputerisasi dengan baik, masih banyak proses yang menggunakan Microsoft Excel yang pengelolaan datanya tidak dilakukan secara otomatis.
Berdasarkan hasil wawancara yang telah dilakukan di TelkoMedika, maka perlu untuk membuat sebuah aplikasi yang dapat mengatasi masalah dalam data barang pada gudang TelkoMedika dan penulis mencoba membangun “Aplikasi Pengolahan Data Barang Telkomedika”.
1.2
Rumusan Masalah Berdasarkan pemaparan yang dijelaskan pada latar belakang terdapat permasalahan
yang berkembang untuk dicari solusi pemecahannya, diantaranya adalah bagaimana membangun aplikasi pengelolaan data barang TelkoMedika yang mampu mempercepat transaksi di dalam kegiatan pengelolaan data barang sehingga membuat para pegawai dapat lebih cepat dan akurat dalam melakukan pendataan seluruh transaksi barang.
1.3
Tujuan Dengan adanya aplikasi pengelolaan data barang TelkoMedika ini diharapkan dapat
mempermudah para pegawai TelkoMedika khususnya yang melakukan transaksi tentang pengelolaan data barang agar menjadi lebih cepat dalam melakukan transaksi dan juga mempermudah dalam pembuatan suatu laporan data secara akurat dan tersusun rapih.
2
1.4
Batasan Masalah Dalam menganalisis dan mengidentifikasi terhadap masalah yang terjadi pada aplikasi
pengelolaan data barang TelkoMedika agar lebih terarah dan dapat mudah dipahami maka perlu dilakukan pembatasan masalah terhadap aplikasi ini adalah : 1. Pengolahan data transaksi mencakup pengelolaan transaksi pemesanan, transaksi keluar (mutasi barang), dan transaksi kontra bon (penerimaan barang) 2. Pengelolaan data master meliputi pengelolaan data barang, data supplier, data laboratorium, dan data pegawai. 3. Pembuatan laporan dalam bentuk file meliputi keseluruhan data transaksi dan data master.
1.5
Metode Penelitian Metode penelitian ini terdiri dari dua tahap, yaitu tahap pengumpulan data dan tahap
pengembangan perangkat lunak. 1.5.1 Tahap Pengumpulan Data a. Wawancara Melakukan tanya jawab langsung dengan pihak perusahaan untuk mengetahui data-data apa saja yang akan ditampilkan di aplikasi. b. Pengamatan Pengumpulan data dengan cara mengadakan pengamatan atau peninjauan langsung ke objek yang sedang diteliti. c. Studi Literatur
3
Mengamati situs-situs yang mempunyai topik yang sama dengan sistem yang akan dibuat. 1.5.2 Tahap Pengembangan Perangkat Lunak Adapun untuk pembuatan aplikasi ini, menggunakan metode pengembangan perangkat lunak Prototype, karena metode ini lebih memudahkan proses dalam membangun sebuah perancangan aplikasi. Keuntungan dari prototype : 1. Menghasilkan syarat yang lebih baik dari produksi yang dihasilkan oleh metode ‘spesifikasi tulisan’. 2. User dapat mempertimbangkan sedikit perubahan selama masih bentuk protoype. 3. Memberikan hasil yang lebih akurat dari pada perkiraan sebelumnya, karena fungsi yang diinginkan dan kerumitannya sudah dapat diketahui dengan baik. 4. User merasa puas. Pertama, user dapat mengenal melalui komputer. Dengan melakukan prototipe (dengan analisis yang sudah ada), user belajar mengenai komputer dan aplikasi yang akan dibuatkan untuknya. Kedua, user terlibat langsung dari awal dan memotivasi semangat untuk mendukung analisis selama proyek berlangsung.
Gambar 1.1 Metode Pengembangan Perangkat Lunak Prototype
4
Berdasarkan Gambar 1.1, proses model prototyping dapat dijelaskan sebagai berikut: a. Communication Developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diinginkan dan gambaran bagian-bagian yang akan dibutuhkan berikutnya. b. Quick Plan Perancangan dilakukan cepat dan mewakili semua aspek software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype. c. Modelling Quick Design Berfokus pada representasi aspek software yang bisa dilihat customer/user.Modelling QuickDesign cenderung ke pembuatan prototipe. d. Construction of Prototype Membangun kerangka atau rancangan prototype dari software yang akan dibangun. e. Deployment Delivery & Feedback Prototype yang telah dibuat oleh developer akan disebarkan kepada user/klien untuk dievaluasi, kemudian klien akan memberikan feedback yang akan digunakan untuk merevisi kebutuhan software yang akan dibangun. Pengulangan proses ini terus berlangsung sampai semua kebutuhan terpenuhi.
1.6
Sistematika Penulisan
Penulisan laporan kerja praktik ini dibagi ke dalam enam bab, yang disusun berdasarkan sistematika berikut :
5
BAB I PENDAHULUAN Bab ini berisi mengenai latar belakang masalah, rumusan masalah, tujuan , batasan masalah, metode pengembangan perangkat lunak yang digunakan dan sistematika penulisan laporan . BAB II LANDASAR TEORI Bab ini menjelaskan tentang teori-teori yang berkaitan dengan topik yang dibuat berdasarkan hasil penelitian dan hal-hal yang berguna dalam proses penulisan laporan. BAB III TINJAUAN UMUM PERUSAHAAN Bab ini berisi tentang profil perusahaan tempat melaksanakan kerja praktek. BAB IV ANALISIS DAN PERANCANGAN Bab ini menjelaskan tentang kajian aplikasi yang akan dibuat mulai dari melakukan analisis sistem sampai perancangan sistem itu sendiri . BAB V IMPLEMENTASI DAN PENGUJIAN Bab ini mejelaskan tentang pengujian sistem secara umum maupun terperinci BAB IV PENUTUP Bab ini berisi tentang pernyataan singkat berupa kesimpulan dari pembahasan perangkat lunakyang dibuat secara keseluruhan dan saran untuk mengembangan perangkat lunak yang lebih baik.
6
BAB II LANDASAN TEORI
2.1
Pengertian Perancangan Sistem Hal yang paling dominan ketika perancangan suatu aplikasi dilakukan adalah
memodelkan kebutuhan pemakai. Ada banyak cara untuk memodelkan aplikasi sebagaimana banyak cara yang digunakan oleh seorang arsitek untuk membangun sebuah rumah. Pada dasarnya pemodelan tersebut merupakan kombinasi antara perangkat lunak dan perangkat keras yang digunakan (Priyanta,F, 2011). Perancangan suatu aplikasi termasuk dalam kegiatan rekayasa perangkat lunak. Proses rekayasa perangkat lunak dimulai jauh sebelum coding dilakukan
dan
berlanjut
sampai
tercapainya
sebuah
aplikasi
yang
diinginkan
(Fikri,Rijalul,2009). Pada dasarnya Rekayasa Perangkat Lunak dilakukan untuk merancang suatu aplikasi atau software dengan mengurutkan transformasi masalah menjadi solusi perangkat lunak yang dapat bekerja dengan baik. 2.1.1 Prinsip Dasar Perancangan Sistem Proses perancangan perangkat lunak merupakan serangkaian kegiatan dan hasil yang berhubungan dengan perangkat lunak, yang bertujuan untuk dihasilkannya suatu produk perangkat lunak. Walaupun ada banyak proses dalam perancangan suatu perangkat lunak, ada kegiatan-kegiatan mendasar yang umum bagi semua proses perancangan perangkat lunak (Azis, MF. ,2003), antara lain: 1. Penspesifikasian perangkat lunak fungsionalitas perangkat lunak dan batasan operasinya harus didefenisikan.
7
2. Perancangan dan implementasi perangkat lunak perangkat lunak yang memenuhi persyaratan harus dibuat. 3. Validasi perangkat lunak perangkat lunak tersebut harus divalidasi untuk menjamin bahwa perangkat lunak bekerja sesuai dengan apa yang diinginkan. 4. Pengevolusian perangkat lunak perangkat lunak harus dapat berkembang untuk menghadapi kebutuhan yang dapat berubah sewaktu-waktu. Dalam menciptakan sebuah aplikasi, terdapat beberapa hal yang perlu diperhatikan guna perolehan hasil yang maksimal (Priyanta,F, 2011), antara lain sebagai berikut : a. Produktivitas Saat ini hampir segala bidang memerlukan aplikasi yang dapat digunakan sesuai dengan keperluan dalam bidangnya.Hal ini menyebabkan permintaan terhadap pengadaan aplikasi lebih banyak. Dan tuntutan terhadap kualitas aplikasi yang lebih bagus dan handal. Tentunya hal ini membutuhkan lebih banyak programmer dan penganalisa sistem yang berkualitas, kondisi kerja ekstra, kemampuan pemakai untuk mengembangkan sendiri, bahasa pemrograman yang lebih baik, perawatan sistem yang lebih baik, disiplin teknis pemakaian perangkat lunak dan perangkat pengembangan sistem yang terotomasi. b. Reliabilitas Reliabilitas suatu perangkat lunak tidak seperti faktor kualitas lain yang dapat diukur, diarahkan dan diestimasi dengan menggunakan data pengembangan historis. Reliabilitas perangkat lunak didefenisikan dalam bentuk statistik sebagai kemungkinan operasi program komputer bebas kegagalan didalam suatu lingkungan dalam kurun waktu tertentu.
8
c.
Maintabilitas Maintabilitas mencakup perawatan aplikasi, seperti : –
Koreksi jika ditemukan kesalahan pada program.
–
Pengadaptasian jika lingkungan berubah.
–
Modifikasi jika pengguna membutukan perubahan kebutuhan.
d. Integritas Integritas adalah mengukur kemampuan sistem suatu aplikasi untuk menahan serangan terhadap sekuritasnya. Dalam hal ini kekuatan sistem akan diuji terhadap serangan dari tipe tertentu yang dapat terjadi suatu waktu. e. Usabilitas Usabilitas merupakan ukuran terhadap kualitas interaksi yang terjadi antara aplikasi dengan pengguna. Ukuran usabilitas dapat diketahui melalui tampilan fisik suatu aplikasi (user friendly), penggunaan waktu yang efisien dan lain sebagainya. 2.1.2 Karakteristik Sistem Karakteristik sistem yang akan dirancang dalam skripsi ini adalah sistem yang terotomasi, yang merupakan bagian dari sistem buatan manusia dan berinteraksi atau dikontrol oleh satu atau lebih komputer sebagai bagian dari sistem yang digunakan dalam masyarakat modern. Menurut (Priyanta,F, 2011), sistem terotomasi mempunyai sejumlah komponen yaitu: a.
Perangkat keras, antara lain CPU, disk, terminal, printer dan perangkat keras pendukung lainnya. Sedangkan perangkat lunaknya antara lain sistem operasi, sistem database, program aplikasi dan lain sebagainya.
b.
Personil, antara lain pengguna sistem, menyediakan masukan, mengkonsumsi keluaran, dan melakukan aktivitas yang mendukung sistem. 9
2.1.3 Klasifikasi Sistem Pada dasarnya hanya ada dua jenis sistem yaitu: a. Sistem alami, seperti sistem matahari, sistem luar angkasa, sistem reproduksi dan lain sebagainya. b. Sistem buatan manusia, seperti sistem hukum, sistem perpustakaan, sistem transportasi dan lain sebagainya. Sistem alami terbagi menjadi dua yaitu: a. Sistem fisik, seperti sistem molekul, luar angkasa. b. Sistem kehidupan, seperti sistem tumbuhan, sistem manusia. Sedangkan sistem buatan manusia umumnya dibagi berdasarkan spesifikasi tertentu seperti: a. Sistem sosial (hukum, doktrin, seragam). b. Sistem organisasi (perpustakaan). c. Sistem transportasi (jaringan jalan raya, kanal, udara, lautan). d. Sistem komunikasi (telepon, teleks, sinyal). e. Sistem produksi (pabrik). f. Sistem keuangan (akuntasi, inventori, buku besar).
2.2
Pengertian Aplikasi Aplikasi merupakan penerapan, menyimpan sesuatu hal, data permasalahan, pekerjaan
kedalam
suatu
sarana
atau
media
yang
digunakan
untuk
menerapkan
atau
mengimplementasika hal atau permasalahan tersebut sehinggga berubah menjadi bentuk yang baru tanpa meenghilangkan nilai-nilai dasar hal, data (Priyanta,F, 2011), permasalahan atau
10
pernasalahan atau pekerjaan. Jadi dalam hal ini hanya bentuk dari tampilan data yang berubah, sedangkan isi yang termuat dalam data tersebut tidak mengalami perubahan.Jadi program aplikasi adalah sederetan kode yang digunakan untuk mengatur komputer supaya dapat melakukan pekerjaan sesuai dengan keinginan programmer atau user. Atau definisi lain aplikasi merupakan kumpulan dari prosedur-prosedur yang digunakan untuk mengolah data menjadi informasi. Misalnya penjumlahan, klasifikasi, rotasi, koreksi geometri, query, overlay, buffer, jointabel dan sebagainya. 2.2.1 Komponen Aplikasi Komponen-komponen aplikasi (Priyanta,F, 2011), yang digunakan dalam pengembangannya adalah: 1. Perangkat keras, diperlukan untuk menjalankan Database Management Sistem(DBMS). Database Management Sistem adalah koleksi terpadu dari databasedan programprogram komputer (utilities) yang digunakan untuk mengaksesdan memelihara database. 2. Program, terdiri atas sistem operasi, Database Management Sistem danprogram aplikasi. 3. Data, terdiri atas sumber data, meta data, kamus data dan overhead data. 4. Prosedur, yang menjelaskan bagaimana sistem dijalankan 5. Personalia, yang terkait dengan pengembangan maupun pemanfaatan aplikasi. 2.2.2 Data untuk Aplikasi 1. Data Sumber (source data), ialah fakta yang disimpan di dalam basis data,misalnya: nama, tempat lahir, tanggal lahir, dan lain-lain. 2. Meta Data, digunakan untuk menjelaskan struktur dari basis data, type dan format penyimpanan data item dan berbagai pembatas (constraint) pada data.
11
3. Data Dictionary atau Data Repository, digunakan untuk menyimpan informasi katalog schema dan pembatas serta data lain seperti: pembakuan, deskripsiprogram aplikasi dan informasi pemakai.
2.3
Pengertian OOP (object-oriented programming) Pemrograman berorientasi objek (object-oriented programming disingkat OOP)
merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti\lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Konsep dasar OOP (Azis, M.F.,2010). 1. Kelas Kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu.Sebagai contoh 'class of cat' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari kucing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object.Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang
12
non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya. 2.
Objek Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer.objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.
3.
Abstraksi Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
4.
Enkapsulasi Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak, hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang
13
menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut. 5.
Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan, metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu dimana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama. Dengan menggunakan OOP (Azis, M.F.,2010), maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bagian administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. 14
Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.
2.4
Database
2.4.1 Pengertian Database Database adalah susunan record data operasional lengkap dari suatu organisasi atau perusahaan, yang diorganisir dan disimpan secara terintegrasi dengan menggunakan metode tertentu sehingga mampu memenuhi informasi yang optimal yang dibutuhkan oleh para pengguna (Kroenke, David M., 2007). 2.4.2 Asal Mula Istilah Database Istilah “database” berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal yang di luar bidang elektronika, artikel mengenai database komputer. Catatan yang mirip dengan database sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis (Kroenke, David M., 2007). 2.4.3 Konsep Dasar Database Konsep dasar database adalah kumpulan dari catatan (Kroenke, David M., 2007), atau potongan dari pengetahuan.Sebuah database memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya, penjelasan ini disebut skema. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur database ini dikenal sebagai database model atau model data. Model yang umum digunakan sekarang adalah model relasional, yang
15
menurut istilah yaitu mewakili semua informasi dalam bentuk tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili dengan menggunakan nilai yang sama antar tabel. 2.4.4 Perangkat Untuk Membuat Database Database dapat dibuat dan diolah dengan menggunakan suatu program komputer, yaitu yang biasa disebut dengan software (perangkat lunak).Software yang digunakan untuk mengelola dan memanggil query database disebut Database Management Sistem (DBMS) atau jika diterjemahkan kedalam bahasa indonesia berarti “Sistem Manajemen Basis Data” (Kroenke, David M., 2007). DBMS terdiri dari dua komponen, yaitu Relational Database Management Sistem (RDBMS) dan Overview of Database Management Sistem (ODBMS).RDBMS meliputi Interface Drivers, SQL Engine, Transaction Engine, Relational Engine, dan Storage Engine. Sedangkan ODBMS meliputi Language Drivers,Query Engine, Transaction Engine, dan Storage Engine. Sedangkan level dari softwarenya sendiri, terdapat dua level software yang memungkinkan untuk membuat sebuah database antara lain : a. High Level Software dan Low Level Software. High Level Software, antara lain Microsoft SQL Server, Oracle, Sybase, Interbase, XBase, Firebird, MySQL, PostgreSQL, Microsoft Access, dBase III, Paradox, FoxPro, Visual FoxPro, Arago, Force, Recital, dbFast, dbXL,Quicksilver, Clipper, FlagShip, Harbour, Visual dBase,dan Lotus Smart Suite Approach.
16
b. Low Level Software. Sedangkan yang termasuk di dalam Low Level Software antara lain Btrieve dan Tsunami Record Manager. 2.4.5 Tipe Database Terdapat 12 tipe database, antara lain Operational database, Analyticaldatabase, Data warehouse, Distributed database, End-user database, External data base, Hypermedia databases on the web, Navigational database, In-memory data bases, Document-oriented databases, Real-time databases, dan Relational Database (Kroenke, David M., 2007). 2.4.6 Mysql MySQL adalah sebuah perangkat lunakdatabase (basis data) sistem tebuka yang sangat terkenal dikalangan pengembang sistem database dunia yang di gunakan untuk berbagai aplikasi terutama untuk aplikasi berbasis web. MySQL mempunyai fungsi sebagai SQl (Structured Query Language) yang di miliki sendiri dan telah di perluas.MySQL umumnya digunakan bersamaan dengan PHP untuk membuat aplikasi yang dinamis dan powerful. Database adalah sebuah struktur yang umumnya dikategorikan dalam dua hal, Sebuah database flatdan sebuah database relasional. Database relasional lebih disukai karena lebih masuk akal dibandingkan database flat (Kroenke, David M., 2007). Pada database yang memiliki struktur relasional meimiliki tabel-tabel yang menyimpan data. Setiap tabel terdiri dari kolom dan baris, sebuah kolom mendefinisikan jenis informasi apa yang akan disimpan. Diperlukan kolom khusus untuk setiap jenis informasi yang ingin di simpan (misalnya umur, tinggi, berat, alamat). Kalau kolom mendefinisikan jenis informasi apa yang akan disimpan, maka sebuah baris adalah data aktual yang disimpan.
17
Setiap baris dari tabel adalah masukan dari tabel tersebut dan berisi nilai-nilai untuk setiap kolom tabel tersebut. (contoh masukannya adalah Fadli: umur 55 tahun, 65kg dan 165cm).Lalu mengapa menggunakan database? Database merupakan representasi kumpulan fakta yang saling berhubungan disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan. Data perlu disimpan dalam database untuk keperluan penyediaan informasi lebih lanjut.Data di dalam database perlu diorganisasikan sedemikian rupa, supaya informasi yang dihasilkan berkualitas.
Organisasi database yang baik
juga
berguna
untuk
efisiensi
kapasitas
penyimpanannya. Contoh, katakanlah jika ingin menyimpan informasi tentang semua karyawan pada sebuah perusahaan. Dengan database, kita bisa mengelompokkan berbagai hal menjadi beberapa tabel. Sedangkan SQL (dibaca “ess-que-el”) merupakan kependekan dari Structured Query Language. Sesuai dengan standard ANSI, SQL merupakan bahasa standar untuk sistem menajemen database relasional. Statemen
SQL
digunakan
melakukan update terhadap database,
atau
untuk
melakukan
mengambil
data
tugas-tugas dari
seperti
sebuah database.
Beberapa database relasional yang menggunakan SQL dan yang cukup terkenal diantaranya adalah: MySQL, Oracle, Sybase, Ms SQL, dan lainya. Meskipun sebagian besar sistem database menggunakan SQL, namun sebagian besar dari mereka juga memiliki ekstensi khusus yang hanya bisa digunakan di sistem masing-masing. Namun demikian, perintah standar SQL seperti “Select”, “Insert”, “Update”, “Delete”, “Create”, dan “Drop” dapat digunakan untuk melakukan hampir semua hal yang perlu dilakukan terhadap sebuah database. 18
2.5
Bahasa Pemrograman NetBeans
2.5.1 Pengertian NetBeans NetBeans adalah Integrated Development Environment(IDE) berbasiskan Java dari Sun Microsistems yang berjalan di atas Swing. Swing sebuah teknologi Java untuk pengembangan aplikasi Desktop yang dapat bejalan di berbagai macam platforms seperti Windows, Linux, Mac OS X and Solaris (Fikri, Rijalul, 2009). Suatu IDE adalah lingkup pemrograman yang diintegrasikan kedalam suatu aplikasi perangkat
lunak
yang
menyediakan
pembangun
Graphic
User
Interface
(GUI),
suatu text atau kode editor, suatu compiler atau interpreter dan suatu debugger. Netbeans merupakan software development yang open source, dengan kata lain software ini di bawah pengembangan bersama, bebas biaya NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra. Sun Microsistems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama. Saat ini terdapat dua produk : NetBeans IDE dan NetBeans Platform. The NetBeans IDE adalah sebuah lingkungan pengembangan - sebuah kakas untuk pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan. Tersedia juga NetBeans Platform sebuah fondasi yang modular dan dapat diperluas yang dapat digunakan sebagai perangkat lunak dasar untuk membuat aplikasi desktop yang
19
besar.Mitra ISV menyediakan plug-in bernilai tambah yang dapat dengan mudah diintegrasikan ke dalam Platform dan dapat juga digunakan untuk membuat kakas dan solusi sendiri. Kedua produk adalah kode terbuka (open source) dan bebas (free) untuk penggunaan komersial dan non komersial. Kode sumber tersedia untuk guna ulang dengan lisensi Common Development and Distribution License (CDDL). 2.5.2 Kelebihan dan Kekurangan Netbeans Salah satu yang menjadi kelebihan NetBeans GUI Builder adalah yang telah disebutkan diatas, yaitu GRATIS. Selain itu NetBeans GUI Builder sangat kompetebel dengan Swing karena memang langsung dikembangkan oleh Sun yang notabenenya sebagai pengembang Swing (Fikri, Rijalul, 2009). NetBeans hanya mendukung 1 pengembangan Java GUI, yaitu Swing, yang padahal ada Java GUI yang dikembangkan oleh eclipse yang bernama SWT dan JFace yang sudah cukup populer.NetBeans mempatenkan source untuk Java GUI yang sedang dikerjakan dalam sebuah Generated Code, sehingga programmer tak dapat mengeditnya secara manual.
2.6 UML (Unified Modeling Language) Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya (Azis, M.F.,2010). UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan
20
standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP.UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM. UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi.UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar
Jacobson.
Namun
demikian
UML dapat
digunakan
untuk
memahami
dan
mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat.Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.
Diagram UML
Gambar 2.1 Diagram UML
21
Sesuai Gambar 2.1 UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, yaitu: 1.
Use Case Diagram untuk memodelkan proses bisnis.
2.
Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
3.
Sequence Diagram untuk memodelkan pengiriman pesan (message) antar objects.
4.
Collaboration Diagram untuk memodelkan interaksi antar objects.
5.
State Diagram untuk memodelkan perilaku objects di dalam sistem.
6.
Activity Diagram untuk memodelkan perilaku Use Cases dan objects di dalam sistem.
7.
Class Diagram untuk memodelkan struktur kelas.
8.
Object Diagram untuk memodelkan struktur object.
9.
Component Diagram untuk memodelkan komponen object.
10. Deployment Diagram untuk memodelkan distribusi aplikasi. Berikut akan dijelaskan 4 macam diagram yang paling sering digunakan dalam pembangunan aplikasi berorientasi object, yaitu use case diagram, sequence diagram, collaboration diagram, dan class diagram. 1.
Use Case Diagram Use case diagram digunakan untuk memodelkan bisnis proses berdasarkan perspektif pengguna sistem. Use case diagram terdiri atas diagram untuk use case dan actor. Actor merepresentasikan orang yang akan mengoperasikan atau orang yang berinteraksi dengan sistem aplikasi.
22
Use case merepresentasikan operasi-operasi yang dilakukan oleh actor. Use case digambarkan berbentuk elips dengan nama operasi dituliskan didalamnya. Actor yang melakukan operasi dihubungkan dengan garis lurus ke use case . 2.
Sequence Diagram Sequence diagram menjelaskan secara detail urutan proses yang dilakukan dalam sistem untuk mencapai tujuan dari use case: interaksi yang terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masingmasing operasi.
3.
Collaboration Diagram Collaboration diagram dipakai untuk memodelkan interaksi antar object di dalam sistem. Berbeda dengan sequenc ediagram yang lebih menonjolkan kronologis dari operasi-operasi yang dilakukan, collaboration diagram lebih fokus pada pemahaman atas keseluruhan operasi yang dilakukan oleh object
4.
Class Diagram Class diagram menggambarkan struktur dan penjelasan class, paket, dan objek serta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class diagram juga menjelaskan hubungan antar class dalam sebuah sistem yang sedang dibuat dan bagaimana caranya agar mereka saling berkolaborasi untuk mencapai sebuah tujuan.
23
BAB III TINJAUAN UMUM PERUSAHAAN
3.1
Sejarah TelkoMedika TelkoMedika adalah perusahaan yang bergerak di bidang kesehatan, dan merupakan
salah satu anak perusahaan Yakes Telkom yang didirikan pada tahun 2008, dan pada tanggal 11 Desember 2013 PT SARANA USAHA SEJAHTERA INSAN PALAPA meluncurkan logo dan brand baru dengan nama TelkoMedika. Dengan pesatnya perkembangan industri farmasi,layanan, penunjang beserta pengelolaan kesehatan diatas infrastruktur kesehatan, TelkoMedia terus melakukan peningkatan baik dari sisi kemampuan team untuk terus memberikan yang terbaik, juga pengembangan terhadap target pasar di bidang kesehatan, klinik, apotek, laboratorium medis dan optik. Selain di dukung penuh oleh anggota team yang berpengalaman di bidangnya, TelkoMedika juga di dukung oleh kelompok kerja yang dibentuk guna peningkatan mutu sumberdaya manusia serta keilmuan yang dimiliki. Dari mulai terbentuk, TelkoMedika telah memberikan layanan kesehatan, dan Telkomedika adalah transformasi dari Rasapala, yaitu perusahaan pemberi layanan kesehatan dengan layanan berkualitas dan harga kompetitif.
24
3.2 Visi dan Misi a. Visi Menjadi perusahaan penyedia layanan kesehatan terkemuka di Indonesia. b. Misi 1. Perusahaan pengelola layanan kesehatan yang paling efektif dan efisien. 2. Pengendalian beban kesehatan Telkom & Telkom Group
3.3 Struktur Organisasi Perusahaan
Gambar 3.1 Organigram Perusahaan TelkoMedika
Pada Gambar 3.1 tentang organigram perusahaan TelkoMedika dapat terlihat bahwa perusahaan telah memiliki struktur organisasi yang cukup terarah adanya pembagian tugas bagi setiap sisi pekerjaan membuat perusahaan ini telah memiliki banyak cabang perusahaan.
25
3.4
Lingkup Usaha TelkoMedika memberikan layanan kesehatan secara profesional. Bidang layanan dan
lingkup kerja Telkomedika meliputi : 1.
Industri Farmasi Bisnis awal Telkomedika dimulai dari pendirian Apotik Telemedika Farma diikuti dengan bisnis kolaboratoriumorasi sinergi dengan industri Farmasi lain yaitu Pedangan Besar Farmasi (PBF) dan Pabrik Obat dengan tujuan untuk memberikan jaminan pengobatan yg rasional efektif dan efisien bagi peserta Telkomedika.
2.
Industri Layanan Kesehatan Untuk mendekatkan dan memudahkan aksesibilitas peserta Telkomedika dalam mendapatkan layanan Kesehatan, Telkomedika menyediakan fasilitas layanan berupa Klinik Pratama / Utama ( Telemedika Health Center yg dikelola langsung Telkomedika maupun bentuk kemitraan dengan Klinik / RS Umum atau Khusus).
3.
Industri Penunjang Kesehatan Untuk melengkapi pelayanan rawat jalan dengan konsep one stop service dibuka usaha Telkomedika di bidang : laboratorium. Selain bisnis di bidang laboratorium, Telkomedika juga memberikan Jasa pengelolaan layanan kesehatan dan manajemen kesehatan perusahaan.
4.
Industri Pengelolaan Kesehatan Manage Care Customize atau manajemen pelayanan kesehatan melalui pengendalian utilisasi dan biaya tanpa meninggalkan mutu untuk memberikan pelayanan kesehatan yang efektif dan efisien, yang didukung dengan sistem delivery Manage Care
26
yang terintegrasi dengan provider kesehatan, Manajemen pelayanan kesehatan sesuai dengan kebutuhan, keinginan dan kemampuan coorporate dalam segi pengendalian biaya.
3.5
Keunggulan
Keunggulan pengelolaan layanan kesehatan apabila bekerjasama dengan TelkoMedika adalah a.
Kondisi kesehatan karyawan dan keluarganya selalu terpelihara
b.
Perasaan aman dalam diri dan keluarga
c.
Cashless dalam menerima layanan kesehatan
d.
Collaborative innovations
e.
Layanan 24 jam
Keunggulan Produk Telkomedika adalah : a.
Layanan berkualitas
b.
Harga kompetitif
c.
Integrated Sistem Information
d.
SDM Profesional & Expert
e.
Quality Control
f.
Ramah lingkungan (go green)
27
BAB IV ANALISIS DAN PERANCANGAN
Berdasarkan hasil penelitian yang dilakukan di e-laboratorium TelkoMedika informasiinformasi pengeluaran barang yang dilakukan didalam program Microscoft Excel yang pengelolaan datanya masih belum otomatis, sehingga sering terjadi kesalahan-kesalahan yang dilakukan oleh karyawannya dari bagian tersebut. Untuk menghindari terjadinya kesalahankesalahan tersebut maka akan dibuat sebuah perancangan aplikasi yang mendukung kegiatankegiatan yang dilakukan di e-laboratorium TelkoMedika. Adapun proses perancangan aplikasi mencakup proses pemasukan data barang, pemesanan barang hingga barang datang dari supplier.
4.1 Analisis Kebutuhan Software dan Hardware Kebutuhan software dan hardware dari pembuatan perancangan aplikasi data barang perusahaan TelkoMedika yakni : 4.1.1. Hardware yang digunakan 1. Resolusi Monitor
:
Resolusi monitor minimal bila dijalankan pada ukuran,1024 x 600 piksel.
2. Processor
:
Intel Pentium IV 1,8 GHz
3. VGA
:
Shared onboard 64 MB.
4. RAM
:
512 MB.
5. Harddisk
:
80 GB
28
4.1.2
Software yang dibutuhkan
1.
XAMPP Control Panel
2.
MYSQL
3.
Netbeans
4.2 Analisis Kebutuhan Fungsional Merupakan tahap persiapan, dimana pada tahapan ini dilakukan wawancara dengan pihak perusahaan untuk mengidentifikasi hal-hal yang dibutuhkan yang berhubungan dengan sistem yang akan dibangun. Adapun hasil wawancara kepada pihak perusahaan untuk kebutuhan fungsional sistem mengenai konten aplikasi akan dijelaskan pada Tabel 4.1 Tabel 4.1 Analisis Kebutuhan Fungsional No 1 2 3 4 5 6
Kode Reqirement req1 req2 req3 req3.1 req4 req4.1 req5 req5.1 req6 req6.1
7 8 9 10
req7 req8 req9 req10
11
req11
12
req12
Nama Modul Login Menu Utama Data Master Barang Data Register Barang Data Master Pegawai Data Register Pegawai Data Master Supplier Data Register Supplier Data Master Laboratorium Data Register Laboratorium Pemesanan Transaksi Keluar Kontra Bon Data Register Pemesanan Data Register Transaksi Keluar Data Register Kontra Bon
29
Keterangan Form Awal Form Utama Form Kelola Data Form Laporan Form Kelola Data Form Laporan Form Kelola Data Form Laporan Form Kelola Data Form Laporan Form Transaksi Form Transaksi Form Transaksi
Form Laporan Form Laporan Form Laporan
4.3 Perancangan Perancangan aplikasi ini menggunakan pendekatan berorientasi objek dengan menggunakan metode Unified Modeling Language (UML), dan berikut ini gambarannya . 4.3.1 Use Case Diagram Mendeskripsikan kelakuan sistem dari sudut pandang pengguna, berguna untuk membantu memahami kebutuhan.
A. Use Case Admin
Gambar 4.1 Use Case Admin
30
a. Login Pada Gambar 4.1 terlihat login merupakan tampilan pertama pada saat admin menjalankan aplikasi, disini tempat verifikasi username dan password dan membuat session dari username yang dimasukkan apakah seorang admin atau owner. b. Menu Utama Pada Gambar 4.1 terdapat menu utama, dari menu utama ini kita dapat langsung mengakses berbagai menu lainnya di menu strip yang telah disediakan. c. Data Master Pada Gambar 4.1 terdapat data master yang merupakan generatitation dari berbagai sub menu pengelolaan data (data barang, data pegawai, data laboratorium, data supplier) yang berfungsi sama yaitu untuk mengelola data master yang berguna untuk transaksi selanjutnya. d. Data Register Pada Gambar 4.1 terdapat menu register yang merupakan menu yang di generatitation dari berbagai register yang dibutuhkan yaitu register pemesanan, register transaksi keluar, register kontra bon yang berfungsi mencetak laporan yang berasal dari transaksi. e. Pemesanan Pada Gambar 4.1 terdapat transaksi pemesanan yang merupakan menu untuk melakukan pemesanan dari barang yang dianggap perlu, di menu ini akan mencatat jumlah pesanan kita, supplier yang dituju untuk memesan, dan barang pesanan ditujukan untuk dikirim ke laboratorium tujuan. f. Transaksi Keluar Pada Gambar 4.1 terdapat transaksi keluar yang merupakan menu untuk mengeluarkan suatu barang dari gudang ke laboratorium yang sedang membutuhkan, pencatatan transaksi 31
keluar meliputi berapa banyak barang yang akan dikirim beserta siapa penanggung jawab dari pengiriman barang tersebut. g. Kontra Bon Pada Gambar 4.1 terdapat transaksi kontra bon yang merupakan menu untuk menerima pesanan yang sebelumnya telah dipesan, di dalam menu ini meliputi pencatatan no faktur dari supplier hingga persetujuan bahwa barang yang dikirimkan sesuai dengan pesanan. h. Logout Pada Gambar 4.1 terdapat menu logout, menu ini hanyalah sebuah proses penghapusan sebuah session yang telah menyimpan data pegawai yang sedang aktif memakai aplikasi, setelah itu langsung kembali ke tampilan login
B.
Use Case Owner atau Manager
Gambar 4.2 Use Case Owner / Manager
32
a. Login Pada Gambar 4.2 terdapat menu login yang merupakan tampilan pertama pada saat admin menjalankan aplikasi, disini tempat verifikasi username dan password dan membuat session dari username yang dimasukkan apakah seorang admin atau owner b. Menu Utama Pada Gambar 4.2 terdapat menu utama yang merupakan menu utama pada aplikasi ini, dari menu ini kita dapat langsung mengakses berbagai menu lainnya di menu strip yang telah disediakan. c. Data Register Pada Gambar 4.2 terdapat menu data register yang merupakan menu yang di generatitation dari berbagai register yang dibutuhkan yaitu register pemesanan, register transaksi keluar, register kontra bon yang berfungsi mencetak laporan yang berasal dari transaksi. d. Logout Pada Gambar 4.1 terdapat menu logout, menu ini hanyalah sebuah proses penghapusan sebuah session yang telah menyimpan data pegawai yang sedang aktif memakai aplikasi, setelah itu langsung kembali ke tampilan login
Tabel 4.2 Pembagian Hak Akses No
User Pemakai
1
Admin
2
Owner / Manager
Hak Akses Pengelolaan Data Master Melakukan Transaksi Barang Mencetak Laporan Transaksi Mencetak Laporan Transaksi
33
4.3.2 Class Diagram a. Class Diagram Untuk Admin
Gambar 4.3 Class Diagram admin
Gambar 4.3 menggambarkan berbagai class yang saling terhubung. Class tersebut diawali pada class login yang akan menghubungkan pada class menu utama yang selanjutnya akan menghubungkan ke berbagai class lain b. Class Diagram Untuk Owner atau Manager
Gambar 4.4 Class Diagram Owner atau Manager
34
Gambar 4.4 menjelaskan tentang class-class yang ada pada saat kita akan masuk ke dalam aplikasi dengan username dan password sebagai owner / manager. Hanya terdapat 3 class yang dihubungkan dari mulai login, menu utama dan register data. Kesimpulan dari class diagram ini owner atau manager hanya bisa mencetak laporan data.
4.3.3 Activity Diagram a. Activity Diagram Untuk Login
Gambar 4.5 Activity Diagram Login
35
Gambar 4.5 menunjukan bahwa user diminta untuk memasukan username dan password, bila username dan password sudah terdaftar dan cocok maka akan diarahkan ke menu utama dan akan disimpan pula data username tersebut (session) yang fungsinya menyimpan apa yang dilakukan user tersebut saat membuka aplikasi
b. Activity Diagram Pemesanan
Gambar 4.6 Activity Diagram Pemesanan
36
Gambar 4.6 menunjukan bahwa pada saat melakukan pemesanan admin memilih terlebih dahulu barang yang akan dipesan lalu memasukan banyaknya serta tujuan barang tersebut ke laboratorium yang membutuhkan, bila lebih dari satu barang maka tinggal menambah kembali barang, untuk melengkapinya inputkan juga pemesan dan penanggung jawab agar dapat disahkan pemesanannya setelah surat pesanan dicetak.
c. Activity Diagram Transaksi Keluar
Gambar 4.7 Activity Diagram Transaksi Keluar
37
Gambar 4.7 menunjukan transaksi keluar adalah mengeluarkan barang dari gudang untuk memenuhi kebutuhan laboratorium. Prosesnya admin tinggal memilih barang yang akan dikirimkan ke laboratorium tujuan beserta inputkan volumenya. Untuk menambah barang yang akan dikirim tinggal menambah kembali ataupun mungkin menghapusnya bila gagal. Selanjutnya mengisi pula pemesan transaksi tersebut agar sah ketika surat transaksi telah dicetak dapat ditandatangani.
d. Activity Diagram Transaksi Kontra Bon
Gambar 4.8 Activity Diagram Transaksi Kontra Bon
38
Gambar 4.8 menunjukan bahwa kontra bon adalah penukaran bon beserta barang yang telah dipesan dengan pembayaran kepada pihak TelkoMedika. Proses dalam aplikasi ini admin memilih no pemesanan yang akan di kontra bon sesuai pesanan sebelumnya, setelah itu admin melihat dan mencocokkan detail pesanan dengan barang yang dibawa, bila sesuai masukan nomor faktur dari supplier lalu cetak tanda bukti untuk memberikan bukti bahwa pesanan telah berhasil dikirim.
e. Activity Diagram Register Data (Cetak Laporan)
Gambar 4.9 Activity Diagram Register Data
39
Gambar 4.9 menunjukan bahwa pencetakkan laporan adalah mengambil data master lalu dikelola untuk sebuah pelaporan. Didalam pencetakkan laporan kita pilih dahulu tipe tampilan yang akan mensorting data, setelah itu pilih juga kategori yang disediakan pada database, setelah itu data dapat dicetak langsung yang sebelumnya akan di review terlebih dahulu file yang akan dicetak.
f. Activity Diagram Tambah Data Master
Gambar 4.10 Activity Diagram Tambah Data Master
40
Gambar 4.10 menunjukan bahwa penambahan data master dalam aplikasi ini cukup untuk memilih dahulu tipe data masternya (barang, pegawai, laboratorium atau supplier) lalu pilih tambah data lalu masukan seluruh detail data yang akan dimasukan sehingga data selanjutnya akan bertambah
g. Activity Diagram Edit Data Master
Gambar 4.11 Activity Diagram Edit Data Master
41
Gambar 4.11 menunjukan bahwa mengubah data master yang tersedia dengan cara memilih dahulu tipe data master yang akan diubah lalu pilih data yang akan diubah, setelah field aktif maka admin tinggal mengeditnya sesuai dengan keinginan dan akan tersimpan sesuai hasil edit tersebut.
h. Activity Diagram Hapus Data Master
Gambar 4.12 Activity Diagram Hapus Data Master
Gambar 4.12 menunjukan bahwa menghapus sebuah data dalam data master tinggal memilih tipe master datanya apakah pada data barang, pegawai, supplier atau data laboratorium. Setelah itu pilih saja mana data yang akan dihapus lalu akan ada verifikasi untuk setuju mengahapus data, bila setuju maka data akan langsung terhapus.
42
4.3.4 Sequence Diagram a. Sequence Diagram Untuk Login
Gambar 4.13 Sequence Diagram Login
Pada Gambar 4.13 dapat terlihat bahwa dalam sebuah login, admin berhubungan langsung dengan user interface. Dalam sequence pada login, user interface terhubung dengan dua class yaitu class Login dan class Menu Utama. Dalam sequence login ini user interface memanggil beberapa method yang tersedia dari dua class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
43
b. Sequence Diagram Untuk Tambah Data
Gambar 4.14 Sequence Diagram Tambah Data
Pada Gambar 4.14 dapat terlihat bahwa dalam sebuah Tambah Data, admin berhubungan langsung dengan user interface. Dalam sequence pada Tambah Data, user interface terhubung dengan satu class yaitu class Data Master. Dalam sequence Tambah Data ini user interface memanggil beberapa method yang tersedia dari satu class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
44
c. Sequence Diagram Untuk Edit Data
Gambar 4.15 Sequence Diagram Edit Data
Pada Gambar 4.15 dapat terlihat bahwa dalam sebuah Edit Data, admin berhubungan langsung dengan user interface. Dalam sequence pada Edit Data, user interface terhubung dengan satu class yaitu class Data Master. Dalam sequence Edit Data ini user interface memanggil beberapa method yang tersedia dari satu class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
45
d. Sequence Diagram Untuk Hapus Data
Gambar 4.16 Sequence Diagram Hapus Data
Pada Gambar 4.16 dapat terlihat bahwa dalam sebuah Hapus Data, admin berhubungan langsung dengan user interface. Dalam sequence pada Hapus Data, user interface terhubung dengan satu class yaitu class Data Master. Dalam sequence Hapus Data ini user interface memanggil beberapa method yang tersedia dari satu class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
46
e. Sequence Diagram Untuk Data Register
Gambar 4.17 Sequence Diagram Data Register
Pada Gambar 4.17 dapat terlihat bahwa dalam sebuah Data Register, admin berhubungan langsung dengan user interface. Dalam sequence pada Data Register, user interface terhubung dengan satu class yaitu class Data Register. Dalam sequence Data Register ini user interface memanggil beberapa method yang tersedia dari satu class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
47
f. Sequence Diagram Untuk Transaksi Pemesanan
Gambar 4.18 Sequence Diagram Transaksi Pemesanan
Pada Gambar 4.18 dapat terlihat bahwa dalam sebuah Transaksi Pemesanan, admin berhubungan langsung dengan user interface. Dalam sequence pada Transaksi Pemesanan, user interface terhubung dengan satu class yaitu class Transaksi Pemesanan. Dalam sequence Pemesanan ini user interface memanggil beberapa method yang tersedia dari satu class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
48
g. Sequence Diagram Untuk Transaksi Keluar
Gambar 4.19 Sequence Diagram Transaksi Keluar
Pada Gambar 4.19 dapat terlihat bahwa dalam sebuah Transaksi Keluar, admin berhubungan langsung dengan user interface. Dalam sequence pada Transaksi Keluar, user interface terhubung dengan satu class yaitu class Transaksi Keluar. Dalam sequence Transaksi Keluar ini user interface memanggil beberapa method yang tersedia dari satu class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
49
h. Sequence Diagram Untuk Transaksi Kontra Bon
Gambar 4.20 Sequence Diagram Transaksi Transaksi Kontra Bon
Pada Gambar 4.20 dapat terlihat bahwa dalam sebuah Transaksi Kontra Bon, admin berhubungan langsung dengan user interface. Dalam sequence pada Transaksi Kontra Bon, user interface terhubung dengan satu class yaitu class Transaksi Kontra Bon. Dalam sequence Kontra Bon ini user interface memanggil beberapa method yang tersedia dari satu class tersebut, dan dari pemanggilan tersebut memberikan return (nilai balik) kembali kepada user interface untuk ditampilkan di layar.
50
4.3.5 Relasi Antar Tabel Pada aplikasi ini terdapat 7 buah tabel yang akan saling terhubung karena bila dikelompokkan tabel ini terdiri dari tabel master data (barang, pegawai, laboratorium, supplier) yang akan menjadi bahan di tabel-tabel transaksi (input,order,output) yang dimana di masing-masing tabel transaksi tersebut banyak keterkaitan dengan tabel master data. Terlihat pada Gambar 4.21.
Gambar 4.21 Relasi Antar Tabel
51
4.3.6 Perancangan Tabel 1.
Tabel Barang Nama Tabel
:
Barang
Primary Key
:
Kode_brg
Foreign Key
:
-
Fungsi
:
Menyimpan data barang
Struktur Tabel
:
Tabel 4.3 Tabel Barang
No 1 2 3 4 5 6
2.
Nama Field Kode_brg Nama_brg Merk_brg Kemasan_brg Stok_brg Harga_brg
Tipe data varchar varchar varchar varchar bigint bigint
Tabel Laboratorium Nama Tabel
:
Laboratorium
Primary Key
:
Kode_laboratorium
Foreign Key
:
Kode_pgw
Fungsi
:
Menyimpan data laboratorium
Struktur Tabel
:
52
Ukuran 20 50 50 50 20 20
Tabel 4.4 Tabel Laboratorium
No 1 2 3 4 5 6
3.
Nama Field Kode_laboratorium Nama_laboratorium Alamat_laboratorium Telp_laboratorium Email_laboratorium Kode_pgw
Tipe Data varchar varchar varchar varchar varchar varchar
Ukuran 20 50 100 20 20 20
Tabel Pegawai Nama Tabel
:
Pegawai
Primary Key
:
Kode_pgw
Foreign Key
:
Kode_user
Fungsi
:
Menyimpan data pegawai hingga koordinator laboratorium.
Struktur Tabel
: Tabel 4.5 Tabel Pegawai
No 1 2 3 4 5 6 7 8 9 10 11
Nama Field Kode_pgw Nama_pgw Jabatan Alamat Telp Email Username Password Keterangan Status Kode_user
Tipe data varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar
53
Ukuran 20 50 50 100 20 20 50 50 50 50 20
4.
Tabel Supplier Nama Tabel
:
Supplier
Primary Key
:
Kode_sup
Foreign Key
:
Kode_brg
Fungsi
:
Menyimpan data supplier yang bekerjasama
Struktur Tabel
:
Tabel 4.6 Tabel Supplier
No 1 2 3 4 5 6 7 8 9 10
5.
Nama Field Kode_sup Nama_sup Alamat_sup Telp_sup Kontak_sup Email_sup Kode_brg Kemasan_brg Harga_brg Diskon
Tipe data varchar varchar varchar varchar varchar varchar varchar varchar bigint bigint
Ukuran 20 50 100 20 20 20 20 20 20 20
Tabel Input Nama Tabel
:
Input
Primary Key
:
Kode_in
Foreign Key
:
Kode_order, Kode_user
Fungsi
:
Menyimpan data barang yang datang sesuai pesanan
Struktur Tabel
:
54
Tabel 4.7 Tabel Input
No 1 2 3 4 5
Nama Field Kode_in Kode_order Kode_faktur Kode_user Tgl_in
Tipe data varchar varchar varchar varchar date
Ukuran 20 20 20 20
6. Tabel Pesan Nama Tabel
:
Pesan
Primary Key
:
Kode_order
Foreign Key
:
Kode_brg, Kode_sup, Kode_laboratorium, Keterangan, Kode_psn, Kode_pgw, Kode_user
Fungsi
:
Struktur Tabel
:
Menyimpan data pesanan barang
Tabel 4.8 Tabel Pesan
No 1 2 3 4 5 6 7 8 9 10 11
Nama Field Kode_order Kode_brg Volume Total_harga Kode_sup Kode_laboratorium Keterangan Kode_psn Kode_pgw Kode_user Tgl_order
Tipe data Varchar Varchar Bigint bigint varchar varchar varchar varchar varchar varchar date
55
Ukuran 20 50
20 20 20 20 20 20 20
7. Tabel Output Nama Tabel
:
Output
Primary Key
:
Kode_out
Foreign Key
:
Kode_laboratorium, Kode_brg, Kode_pgw, Kode_user
Fungsi
:
Menyimpan data barang yang keluar dari gudang
Struktur Tabel
: Tabel 4.9 Tabel Output
No 1 2 3 4 5 6 7
4.3.7 a.
Nama Field Kode_out Kode_laboratorium Kode_brg Volume Tgl_out Kode_pgw Kode_user
Tipe data Varchar Varchar Varchar Bigint Date Varchar Varchar
Ukuran 20 20 20
20 20
Perancangan Antarmuka Rancangan antarmuka form login Sebelum administrator bisa mengakses data barang dalam aplikasi, admin harus
melakukan login terlebih dahulu, seperti pada umumnya form login terdapat username dan password yang harus diisi. Setelah admin berhasil login maka admin mempunyai hak akses penuh untuk merubah data pada aplikasi tersebut bisa dilihat pada Gambar 4.22.
56
Gambar 4.22 Form Login Admin
b.
Rancangan antarmuka form Menu Setelah admin berhasil login maka akan tampil menu untuk administrator yang
sudah terdapat menu navigasi di atasnya untuk memudahkan admin dalam mengelola data, Halaman antarmuka yang dijadikan sebagai halaman utama untuk administrator terdapat beberapa modul diantaranya terdapat informasi tentang perusahaan terdapat beberapa modul yaitu File, Data Master, Data Transaksi, Register. Ke empat modul tersebut terdapat dalam satu halaman, bisa dilihat pada Gambar 4.23.
Gambar 4.23 Menu Admin
57
c.
Rancangan antarmuka form untuk pengelolaan data barang Salah satu dari tugas administrator adalah mengelola data. Disediakan tampilan
untuk mengelola data pada konten bisa dilihat pada Gambar 4.24
Gambar 4.24 Form Pengelolaan Data Barang
d.
Rancangan antarmuka form untuk pengelolaan data PBF Salah satu dari tugas administrator adalah mengelola data supplier. Disediakan
tampilan untuk mengelola data pada konten bisa dilihat pada Gambar 4.25.
Gambar 4.25 Form Pengelolaan Data PBF
58
e.
Rancangan antarmuka form untuk pengelolaan data pegawai Salah satu dari tugas administrator adalah mengelola data pegawai. Disediakan
tampilan untuk mengelola data pada konten bisa dilihat pada Gambar 4.26.
Gambar 4.26 Pengelolaan Data Pegawai
f.
Rancangan antarmuka form untuk pengelolaan data e-laboratoriums Salah satu dari tugas administrator adalah mengelola data e-laboratoriums.
Disediakan tampilan untuk mengelola data pada konten bisa dilihat pada Gambar 4.27.
Gambar 4.27 Form Pengelolaan Data E-laboratoriums
59
g.
Rancangan antarmuka form untuk Formulir Pemesanan Barang Salah satu dari tugas administrator adalah mengelola pesanan barang. Disediakan
tampilan untuk formulir pemesanan barang pada konten bisa dilihat pada Gambar 4.28.
Gambar 4.28 Form Formulir Pemesanan Barang
h.
Rancangan antarmuka form untuk Formulir Transaksi Keluar Salah satu dari tugas administrator adalah mengelola formulir transaksi keluar.
Disediakan tampilan untuk mengelola transaksi keluar pada konten bisa dilihat pada Gambar 4.29.
Gambar 4.29 Form Formulir Transaksi Keluar
60
i.
Rancangan antarmuka form untuk Formulir Kontra Bon Salah satu dari tugas administrator adalah mengelola formulir kontra bon.
Disediakan tampilan untuk mengelola data pada konten bisa dilihat pada Gambar 4.30.
Gambar 4.30 Form Formulir Kontra Bon
j.
Rancangan antarmuka untuk Register Laporan Data Pemesanan Salah satu dari tugas administrator adalah mengelola laporan data pemesanan.
Disediakan tampilan untuk mengelola laporan data pada konten bisa dilihat pada Gambar 4.31.
Gambar 4.31 Register Laporan Data Pemesanan
61
k.
Rancangan antarmuka untuk Register Laporan Data Transaksi Keluar Salah satu dari tugas administrator adalah mengelola laporan data transaksi keluar.
Disediakan tampilan untuk mengelola laporan data bisa dilihat pada Gambar 4.32.
Gambar 4.32 Register Laporan Data Transaksi Keluar
l.
Rancangan antarmuka untuk Register Laporan Kontra Bon Salah satu dari tugas administrator adalah mengelola lapoan. Disediakan tampilan
untuk mengelola laporan pada konten bisa dilihat pada Gambar 4.33.
Gambar 4.33 Register Laporan Data Kontra Bon
62
m.
Rancangan antarmuka untuk Register Laporan Data E-laboratoriums Salah satu dari tugas administrator adalah mengelola laporan data e-laboratoriums.
Disediakan tampilan untuk mengelola laporan data e-laboratoriums pada konten bisa dilihat pada Gambar 4.34.
Gambar 4.34 Register Laporan Data E-laboratoriums
n.
Rancangan antarmuka untuk Register Laporan Data Supplier Salah satu dari tugas administrator adalah mengelola laporan data supplier.
Disediakan tampilan untuk mengelola laporan data supplier pada konten bisa dilihat pada Gambar 4.35.
Gambar 4.35 Register Laporan Data Supplier
63
o.
Rancangan antarmuka untuk Register Laporan Data Pegawai Salah satu dari tugas administrator adalah mengelola laporan data pegawai.
Disediakan tampilan untuk mengelola laporan data pegawai pada konten bisa dilihat pada Gambar 4.36.
Gambar 4.36 Register Laporan Data Pegawai
p.
Rancangan antarmuka untuk Register Laporan Data Barang Salah satu dari tugas administrator adalah mengelola laporan data barang.
Disediakan tampilan untuk mengelola laporan data barang pada konten bisa dilihat pada Gambar 4.37.
Gambar 4.37 Register Laporan Data Barang
64
q.
Rancangan antarmuka untuk Cetak Laporan Salah satu dari tugas administrator adalah mencetak laporan. Disediakan tampilan
untuk mencetak laporan pada konten bisa dilihat pada Gambar 4.38.
Gambar 4.38 Cetak Laporan
65
BAB V IMPLEMENTASI DAN PENGUJIAN
5.1 Implementasi Sistem
Tahap implementasi sistem ini merupakan tahap meletakan sistem agar siap untuk dioperasikan. Dalam implementasi perancangan aplikasi data barang e-laboratorium TelkoMedika
ini
ada beberapa tahapan implementasi sistem yang harus dilaksanakan
diantaranya yaitu : 5.1.1 Persiapan Sistem Langkah pertama yang harus dilakukan yaitu mempersiapkan sistem terlebih dahulu. Adapun hal-hal yang harus dipersiapkan yaitu : 1.
Persiapan perangkat lunak (software) Perangkat lunak yang digunakan untuk pembuatan aplikasi dalam penelitian ini adalah dengan menggunakan: a. Netbeans 7.2.1 atau sublime untuk text editor. b. Implementasi basisdata menggunakan MySQL dan XAMPP 1.7.1 sebagai server localhost.
2.
Persiapan perangkat keras ( hardware ) Kebutuhan perangkat keras yang diperlukan untuk implementasi pembuatan aplikasi pengelolaan data barang TelkoMedika yakni : a. CPU dengan processor Intel® Pentium 4, memori 256 MB. (minimal)
66
b. Harddisk dengan kapasitas penyimpanan data 40 Gbyte. (minimal) c. Monitor d. Keyboard dan Mouse. 5.1.2 Konversi Sistem Tahap konversi sistem dilakukan setelah kode program selesai dibuat, dan sarana pendukung telah dipersiapkan dengan baik, yaitu dengan memasukan data-data yang diperlukan pada sistem baru, sehingga sistem yang baru yaitu perancangan aplikasi data barang ini harus dilakukan pengujian sebelum sistem dioperasikan. 5.1.3 Pengujian Sistem Tahap pengujian sistem merupakan tahap dilakukannya pengujian terhadap sistem yang baru, untuk meyakinkan bahwa sistem mampu bekerja secara optimal. Tujuan utama dari pengujian ini adalah untuk memastikan bahwa komponen-komponen sistem telah berfungsi sesuai dengan yang diharapkan. Pengujian sistem ini untuk memeriksa fungsi-fungsi antar komponen sistem dan pengujian pada program secara keseluruhan. Pengujian program sangat perlu, hal ini untuk mengetahui apakah program dapat menerima input, memproses sebuah input dan memberikan keluaran sesuai dengan tujuan dari sistem. 5.1.4 Pemasangan Sistem Untuk menjalanakan atau mengoprasikan aplikasi pengelolaan data barang ini pada komputer atau laptop, maka harus dijadikan dekstop yang telah siap diakses.
67
5.2
Implementasi Basis Data Implementasi basis data diambil berdasarkan perancangan basis data yang
telah
dibuat. Implementasi basis data diimplementasikan menggunakan MySQL. Berikut adalah kode SQL untuk setiap tabel. 5.2.1 Implementasi Tabel a) Tabel Barang Tabel barang berfungsi untuk menyimpan setiap detail identitas barang yang terdata pada gudang. Untuk implementasi pembuatan tabel barang bisa dilihat dalam query SQL di Gambar 5.1 1 2 3 4 5 6 7 8 9
CREATE TABEL `barang` ( `kode_brg` varchar(20) NOT NULL, `nama_brg` varchar(50) NOT NULL, `merk_brg` varchar(50) DEFAULT NULL, `kemasan_brg` varchar(50) DEFAULT NULL, `stok_brg` bigint(20) NOT NULL, `harga_brg` bigint(20) NOT NULL, PRIMARY KEY (`kode_brg`)
) Gambar 5.1 Query Tabel Barang
Adapun gambar untuk implementasi dari sintak SQL tabel barang dapat dilhat pada Gambar 5.2.
Gambar 5.2 Tabel Barang
68
Dari Gambar 5.2 dapat dilihat jika table barang memiliki 6 field, kode_brg berfungsi untuk menyimpan kode dari ssetiap barang yang menjadi primary key, karena setiap barang akan berbeda, nama_brg berfungsi menyimpan nama barang, merk_brg berfungsi menyimpan merk barang, kemasan_brg berfungsi menyimpan jenis kemasan barang, stok_brg berfungsi menyimpan stok barang tersebut, dan harga_brg berfungsi menyimpan harga barang yang dimasukkan. b) Tabel Pegawai Tabel pegawai berfungsi untuk menyimpan data pegawai yang bekerja di perusahaan tersebut. Untuk query pembuatan tabelnya dapat dilihat pada Gambar 5.3 1 2 3 4 5 6 7 8 9 10 11 12 13
CREATE TABEL `pegawai` ( `kode_pgw` varchar(20) NOT NULL, `nama_pgw` varchar(50) NOT NULL, `jabatan` varchar(50) NOT NULL, `alamat` varchar(100) NOT NULL, `email` varchar(20) DEFAULT NULL, `username` varchar(50) DEFAULT NULL, `password` varchar(50) DEFAULT NULL, `keterangan` varchar(50) NOT NULL, `status` varchar(50) NOT NULL, `kode_user` varchar(20) NOT NULL, PRIMARY KEY (`kode_pgw`) )
Gambar 5.3 Query Tabel Pegawai
Adapun gambar untuk implementasi dari sintak SQL tabel pegawai dapat dilhat pada gambar 5.4.
69
Gambar 5.4 Tabel Pegawai
Dari Gambar 5.4 dapat dilihat bahwa tabel pegawai memiliki 11 field, kode_pgw berfunsi sebagai primary key sehingga masing-masing pegawai memiliki kode yang berbeda, nama_pgw berfungsi menyimpan nama pegawai, jabatan berfungsi menyimpan jabatan pegawai tersebut, alamat berfungsi untuk menyimpan alamat dari pegawai, telp berfungsi untuk menyimpan nomor telepon pegawai, email berfungsi menyimpan email pegawai, username berfungsi menyimpan username untuk masuk aplikasi, password berfungsi untuk menyimpan password untuk masuk ke dalam aplikasi, keterangan berfungsi untuk menyimpan data kantor pegawai, status berfungsi untuk menyimpan data bila pegawai sedang membuka aplikasi, kode_user berfungsi menyimpan kode pegawai yang mengelola (menambahkan atau mengedit) data pegawai tersebut. c) Tabel Laboratorium Tabel laboratorium berfungsi untuk menyimpan data laboratorium yang bekerja sama dengan TelkoMedika. Untuk sintak SQL pembuatan table laboratorium dapat dilihat pada Gambar 5.5
70
1 2 3 4 5 6 7 8 9
CREATE TABEL `laboratorium` ( `kode_laboratorium` varchar(20) NOT NULL, `nama_laboratorium` varchar(50) NOT NULL, `alamat_laboratorium` varchar(100) NOT NULL, `telp_laboratorium` varchar(20) DEFAULT NULL, `email_laboratorium` varchar(20) DEFAULT NULL, `kode_pgw` varchar(20) DEFAULT NULL, PRIMARY KEY (`kode_laboratorium`) )
Gambar 5.5 Query Tabel Laboratorium
Adapun gambar untuk implementasi merupakan implementasi dari tabel laboratorium dapat dilihat pada Gambar 5.6.
Gambar 5.6 Tabel Laboratorium
Dari Gambar 5.6 dapat dilihat bahwa tabel laboratorium memiliki 6 field, kode_laboratorium merupakan primary key sehingga masing-masing laboratorium memiliki kode yang berbeda-beda, nama_laboratorium berfungsi menyimpan nama laboratorium tersebut, alamat_laboratorium berfungsi menyimpan alamat laboratorium tersebut, telp_laboratorium berfungsi untuk menyimpan nomor telp laboratorium, email_laboratorium berfungsi menyimpan alamat email laboratorium,dan kode_pgw berfungsi untuk menyimpan siapa pegawai yang terakhir kali mengedit data laboratorium ini, atau yang menambahkan data laboratorium tersebut.
71
d) Tabel Supplier Tabel supplier berfungsi untuk menyimpan data supplier yang telah bekerja sama dengan TelkoMedika untuk menyediakan barang dengan harga yang sudah disepakati. Untuk sintak SQL pembuatan tabelnya dapat dilihat pada Gambar 5.7 1 2 3 4 5 6 7 8 9 10 11 12
CREATE TABEL `supplier` ( `kode_sup` varchar(20) NOT NULL, `nama_sup` varchar(50) NOT NULL, `alamat_sup` varchar(100) DEFAULT NULL, `telp_sup` varchar(20) DEFAULT NULL, `kontak_sup` varchar(20) DEFAULT NULL, `email_sup` varchar(20) DEFAULT NULL, `kode_brg` varchar(20) NOT NULL, `kemasan_brg` varchar(20) DEFAULT NULL, `harga_brg` bigint(20) NOT NULL, `diskon` bigint(20) DEFAULT NULL )
Gambar 5.7 Query Tabel Supplier
Untuk implementasi dari table supplier dapat dilihat pada Gambar 5.8.
Gambar 5.8 Tabel Supplier
Dari Gambar 5.8, dapat dilihat bahwa tabel supplier memiliki 10 field, kode_sup merupakan primary key sehingga masing-masing supplier memiliki kode yang berbeda, nama_sup berfungsi untuk menyimpan nama supplier, alamat_sup berfungsi untuk menyimpan alamat supplier, telp_sup berfungsi menyimpan telepon kantor supplier,
72
kontak_sup berfungsi menyimpan kontak personal yang dapat dihubungi di supplier tersebut, email_sup berfungsi menyimpan alamat email supplier, kode_brg berfungsi menyimpan kode barang yang telah sepakat untuk bisa menyediakannya, kemasan_brg berfungsi menyimpan kemasan barang yang siap disediakan supplier, harga_brg berfungsi menyimpan jumlah harga yang telah disepakati untuk barang tersebut, diskon berfungsi menyimpan presentase diskon yang diberikan supplier akan sebuah barang. e) Tabel Input Tabel input berfungsi menyimpan data pemesanan yang telah datang dan harus sesuai dengan pemesanan yang ada pada tabel pesan. Untuk
sintak SQL dalam
pembuatan tabel input dapat dilihat pada Gambar 5.9 1 2 3 4 5 6 7
CREATE TABEL `input` ( `kode_in` varchar(20) NOT NULL, `kode_order` varchar(20) NOT NULL, `kode_faktur` varchar(20) NOT NULL, `kode_user` varchar(20) NOT NULL, `tgl_in` date NOT NULL )
Gambar 5.9 QueryTabel Input
Adapun gambar untuk implementasi dari tabel input dapat dilihat pada Gambar 5.10.
Gambar 5.10 Tabel Input
73
Dari Gambar 5.10, dapat dilihat bahwa tabel input memiliki 5 field yaitu kode_in yang merupakan primary key sehingga setiap terdapat barang pesanan datang diberikan kode yang berbeda-beda, kode_order merupakan foreign key dari tabel pesan yang mencatat tentang kode pesanan yang datang, kode_faktur berfungsi menyimpan nomor faktur dari supplier atas pemesanan barang, kode_user berfungsi menyimpan siapa pegawai yang sedang memakai aplikasi ini, dan tgl_in berfungsi menyimpan tanggal pada saat barang pesanan tersebut datang. f) Tabel Output Tabel output berfungsi untuk menyimpan data barang yang dikirimkan ke laboratorium yang telah terdata di TelkoMedika. Untuk sintak SQL dapat dilihat pada Gambar 5.11 1 2 3 4 5 6 7 8 9
CREATE TABEL `output` ( `kode_out` varchar(20) NOT NULL, `kode_lab` varchar(20) DEFAULT NULL, `kode_brg` varchar(20) NOT NULL, `volume` bigint(20) NOT NULL, `tgl_out` date NOT NULL, `kode_pgw` varchar(20) DEFAULT NULL, `kode_user` varchar(20) NOT NULL )
Gambar 5.11 QueryTabel Output
Gambar 5.12 Tabel Output
74
Pada Gambar 5.12 terlihat tabel memiliki 7 field yaitu kode_out yang merupakan primary key sehingga setiap transaksi barang keluar memiliki no transaksi yang berbedabeda, kode_laboratorium merupakan foreign key dari tabel laboratorium yang berfungsi menyimpan laboratorium tujuan dari pengiriman barang tersebut, kode_brg juga merupakan foreign key dari tabel barang yang berfungsi menyimpan kode barang yang dikirim ke laboratorium tujuan, volume berfungsi menyimpan banyaknya data yang dikirim, tgl_out berfungsi menyimpan tanggal saat pengiriman barang tersebut dilakukan, kode_pgw berfungsi menyimpan data pegawai yang meminta terjadinya pengiriman (transaksi keluar gudang), kode_user berfungsi menyimpan kode pegawai yang memakai aplikasi tersebut dan menjadi admin transaksi tersebut. g) Tabel Pesan Tabel pesan berfungsi untuk menyimpan data pemesanan TelkoMedika saat memesan sebuah barang ke sebuah supplier. Tabel pesan juga menyimpan secara detail tujuan dan pemesan dari pesanan tersebut. Untuk mengetahui sintak SQL dalam pembuatan tabel pesan dapat dilihat pada Gambar 5.13 1 2 3 4 5 6 7 8 9 10 11 12 13
CREATE TABEL `pesan` ( `kode_order` varchar(20) NOT NULL, `kode_brg` varchar(20) NOT NULL, `volume` bigint(20) NOT NULL, `total_harga` bigint(20) NOT NULL, `kode_sup` varchar(20) NOT NULL, `kode_lab` varchar(20) DEFAULT NULL, `keterangan` varchar(20) DEFAULT NULL, `kode_psn` varchar(20) DEFAULT NULL, `kode_pgw` varchar(20) DEFAULT NULL, `kode_user` varchar(20) DEFAULT NULL, `tgl_order` date NOT NULL )
Gambar 5.13 Query Tabel Pesan
75
Gambar 5.14 Tabel Pesan
Terlihat pada Gambar 5.14 tabel memiliki 11 field, kode_order merupakan sebuah primary key sehingga disetiap pemesanan kepada supplier akan memiliki kode pesan yang berbeda, kode_brg yang merupakan foreign key dari tabel barang menyimpan tentang kode barang apa yang dipesan, volume berfungsi menyimpan banyaknya barang yang dipesan, total_harga berfungsi menyimpan harga yang harus dibayar, kode_sup merupakan foreign key dari tabelsupplier yang menyimpan supplier yang diminta untuk mengirimkan barang, kode_laboratorium merupakan foreign key juga dari tabel laboratorium yang menyimpan laboratorium tujuan barang pesanan tersebut, keterangan berfungsi menyimpan kode pegawai yang mengetahui pemesanan, kode_psn berfungsi menyimpan data pegawai yang memesan, kode_pgw berfungsi menyimpan data pegawai yang bertanggung jawab atas pesanan, kode_user berfungsi menyimpan data pegawai yang sedang menjadi admin aplikasi saat di pesan, tgl_order berfungsi menyimpan tanggal pada saat pemesanan itu terjadi.
76
5.3 a.
Implementasi Antarmuka Form Login Gambar 5.15 merupakan gambar form login yang merupakan tampilan pertama
aplikasi yang meminta username dan password
akan mendetekasi apakah user tersebut
sebagai admin atau sebagai manager atau owner
Gambar 5.15 Form Login
b.
Form Menu Utama Admin Gambar 5.16 merupakan gambar dari menu utama saat masuk dengan username dan
password sebagai administrator, sehingga seluruh menu dapat dilakukan karena admin memiliki hak akses tertinggi dalam aplikasi ini
77
Gambar 5.16 Form Menu Utama Admin
c.
Form Menu Utama Manager / Owner Gambar 5.17 merupakan gambar dari menu utama saat masuk dengan username dan
password sebagai manager atau owner, perbedaan hak akses dengan menggunakan username dan password manager atau owner adalah hanya dapat membuka menu register data.
Gambar 5.17 Form Menu Utama Manager atau Owner
78
d.
Menu Master Data
a)
Data Barang Gambar 5.18 merupakan gambar dari master data pada sub menu data barang, yang
merupakan form untuk mengelola data barang dari mulai melihat detail data barang, menambahkan data barang baru, mengedit detail data barang, menghapus sebuah data barang serta mencetak data barang sesuai tipe tampilan data
Gambar 5.18 Form Pengelolaan Data Barang
Gambar 5.19 merupakan gambar dari menu “Registrasi” yang merupakan registrasi laporan data barang.
79
Gambar 5.19 Form Cetak Laporan Data Barang
b)
Data Pegawai Gambar 5.20 merupakan gambar dari master data pada sub menu data pegawai, yang
merupakan form untuk mengelola data pegawai dari mulai melihat detail data pegawai, menambahkan data pegawai baru, mengedit detail data pegawai, menghapus sebuah data pegawai serta mencetak data pegawai sesuai tipe tampilan data
Gambar 5.20 Form Pengelolaan Data Pegawai
80
Gambar 5.21 merupakan gambar dari menu “Registrasi” yang merupakan registrasi laporan data pegawai.
Gambar 5.21 Form Cetak Laporan Data Pegawai
c)
Data Supplier Gambar 5.22 merupakan gambar dari master data pada sub menu data PBF, yang
merupakan form untuk mengelola data supplier dari mulai melihat detail data supplier, menambahkan data supplier baru, mengedit detail data supplier, menghapus sebuah data supplier serta mencetak data supplier sesuai tipe tampilan data.
81
Gambar 5.22 Form Pengelolaan Data Supplier
Gambar 5.23 merupakan gambar dari menu “Registrasi” yang merupakan registrasi laporan data supplier.
Gambar 5.23 Form Cetak Laporan Data Supplier
82
d)
Data Laboratorium Gambar 5.24 merupakan gambar dari master data pada sub menu data e-
laboratoriums, yang merupakan form untuk mengelola data laboratorium dari mulai melihat detail data laboratorium, menambahkan data laboratorium baru, mengedit detail data laboratorium, menghapus sebuah data laboratorium serta mencetak data laboratorium sesuai tipe tampilan data
Gambar 5.24 Form Pengelolaan Data Laboratorium
Gambar 5.25 merupakan gambar dari menu “Registrasi” yang merupakan registrasi laporan data e-laboratoriums.
83
Gambar 5.25 Form Cetak Laporan Data Laboratorium
e.
Form Transaksi
a)
Form Pemesanan Gambar 5.26 merupakan gambar dari form pemesanan yang berfungsi untuk melakukan
sebuah pemesanan barang untuk memenuhi stok yang dibutuhkan,pemesanan dilakukan ke satu supplier terpilih dengan jumlah barang dapat lebih dari satu macam, serta mencantumkan juga pemesan serta penanggung jawab untuk kolom tanda tangan surat pemesanan tersebut
84
Gambar 5.26 Form Transaksi Pemesanan
Gambar 5.27 merupakan gambar dari menu “Data Transaksi” yang merupakan review Cetak Surat Pemesanan.
Gambar 5.27 Review Cetak Surat Pemesanan
85
b)
Form Transaksi Keluar Gambar 5.28 merupakan gambar dari form transaksi keluar yang memiliki fungsi untuk
membuat sebuah surat pengiriman barang dari gudang ke laboratorium tujuan yang membutuhkan, barang yang dikirim pun dapat lebih dari satu jenis. Proses transaksi keluar ini pula harus menginputkan pemesan transaksi ini untuk kolom penanggung jawab pada surat mutasi yang akan diprint.
Gambar 5.28 Form Transaksi Keluar
Gambar 5.29 merupakan gambar dari menu “Data Transaksi” yang merupakan review Cetak Surat Transaksi Keluar.
86
Gambar 5.29 Review Cetak Surat Transaksi Keluar
c)
Form Kontra Bon Gambar 5.30 merupakan gambar dari form kontra bon yang memiliki fungsi menerima
pengiriman barang dari supplier, dimana pengiriman barang tersebut sesuai dengan pemesanan barang sebelumnya. Proses kontra bon adalah dengan memilih nomor pemesanan yang sesuai dengan pengiriman barang, lalu cek kecocokkan barang dengan detail pemesanan yang terdapat di database, bila cocok maka masukan nomor faktur yang diberikan supplier lalu menyetujui kelengkapan dan selanjutnya akan di cetak tanda bukti penerimaan barang
87
Gambar 5.30 Form Transaksi Kontra Bon
Gambar 5.31 merupakan gambar dari menu “Data Transaksi” yang merupakan review Cetak Bukti Transaksi Kontra Bon.
Gambar 5.31 Review Cetak Bukti Transaksi Kontra Bon
88
f.
Register Data
a)
Data Pemesanan Gambar 5.32 merupakan gambar dari menu register data dengan memilih sub menu
data pemesanan, di dalam menu ini kita disediakan untuk memilih tipe tampilan untuk menampilkan data pemesanan yang akan dicetak menjadi sebuah pelaporan data.
Gambar 5.32 Form Register Data Pemesanan
Gambar 5.33 merupakan gambar dari menu “Register Data” yang merupakan review Cetak Register Data Pemesanan.
89
Gambar 5.33 Review Cetak Register Data Pemesanan
b)
Data Transaksi Keluar Gambar 5.34 merupakan gambar dari menu register data dengan memilih sub menu
data transaksi keluar, di dalam menu ini kita disediakan untuk memilih tipe tampilan untuk menampilkan data transaksi keluar yang akan dicetak menjadi sebuah pelaporan data.
Gambar 5.34 Form Register Data Transaksi Keluar
90
Gambar 5.35 merupakan gambar dari menu “Register Data” yang merupakan review Cetak Register Data Transaksi Keluar.
Gambar 5.35 Review Cetak Register Data Transaksi Keluar
c)
Data Kontra Bon Gambar 5.36 merupakan gambar dari menu register data dengan memilih sub menu
data kontra bon, di dalam menu ini kita disediakan untuk memilih tipe tampilan untuk menampilkan data kontra bon yang akan dicetak menjadi sebuah pelaporan data.
Gambar 5.36 Form Register Data Kontra Bon
91
Gambar 5.37 merupakan gambar dari menu “Register Data” yang merupakan review Cetak Register Data Kontra Bon.
Gambar 5.37 Review Cetak Register Data Kontra Bon
5.4
Pengujian Sistem Proses pengujian yaitu mencoba program dengan memasukkan data kedalam form-
form masukan yang telah disediakan. Pada tahap ini merupakan kelanjutan dari tahap implementasi yaitu melakukan pengujian terhadap aplikasi yang dibangun. Pengujian yang akan dilakukan yaitu dengan pengujian black box yang berfokus pada persyaratan fungsional perangkat lunak.
92
a) Uji Form Login Pada pengujian form login dapat dilihat pada Tabel 5.1 Tabel 5.1 Uji Login
No
1
2
3
Kode
T01
T02
T03
Skenario Login dengan username dan password yang benar Login dengan username dan password yang salah Tidak mengisi username dan password atau salah satunya lalu menekan tombol login
Hasil Sukses Gagal
Keterangan Login sukses dan user berhasil masuk ke menu utama Ketika username dan password salah , akan muncul pesan "Maaf password anda salah" Ketika username dan password tidak di isi dan menekan tombol login, maka akan muncul pesan “Maaf username dan password tidak boleh kosong”
b) Uji Form Menu Utama Pada pengujian form menu utama dapat dilihat pada Tabel 5.2. Tabel 5.2 Uji Form Menu Utama
Hasil Sukses Gagal
No
Kode
Skenario
1
T04
Klik semua menu
Berhasil di buka
T05
Klik menu yang disable karena login atas nama manager
Tidak menimbulkan pengaruh apapapun
2
93
Keterangan
c) Uji Kelola Data Master Barang (Tambah, Ubah, Hapus dan Cetak Data ) Pada pengujian kelola data barangdapat dilihat pada Tabel 5.3. Tabel 5.3 Uji Kelola Data Barang
No
Kode
1
T06
2
T07
3
T08
4
T09
5
T10
Skenario Memasukan data barang baru Mengubah data barang yang sudah ada Menghapus data barang Memilih tampilan cetak data data sesuai kategori Mencetak data barang
Hasil Sukses Gagal
Keterangan
Data barang berhasil disimpan
Data barang berhasil diubah sesuai input
Data barang berhasil dihapus
Data barang tampil sesuai kategori terpilih
Data berhasil dicetak dengan tampil previewnya
d) Uji Kelola Data Master Supplier (Tambah, Ubah, Hapus dan Cetak Data ) Pada pengujian kelola data supplier dapat dilihat pada Tabel 5.4. Tabel 5.4 Uji Kelola Data Supplier
No
Kode
1
T11
2
T12
3
T13
Skenario Memasukan data supplier baru Mengubah data supplier yang sudah ada Menghapus data supplier
4
T14
Memilih tampilan cetak data data sesuai kategori
5
T15
Mencetak data supplier
Hasil Sukses Gagal
Keterangan Data supplier berhasil disimpan
Data supplier berhasil diubah sesuai input
Data supplier berhasil dihapus
Data supplier tampil sesuai kategori terpilih
Data berhasil dicetak dengan tampil previewnya
94
e) Uji Kelola Data Master Pegawai (Tambah, Ubah, Hapus dan Cetak Data ) Pada pengujian kelola data pegawai dapat dilihat pada Tabel 5.5. Tabel 5.5 Uji Kelola Data Pegawai
No
Kode
1
T16
Skenario
Hasil Sukses Gagal
Keterangan
Memasukan data pegawai baru Mengubah data pegawai yang sudah ada
Data pegawai berhasil disimpan
Data pegawai berhasil diubah sesuai input
T18
Menghapus data pegawai
Data pegawai berhasil dihapus
4
T19
Memilih tampilan cetak data data sesuai kategori
Data pegawai tampil sesuai kategori terpilih
5
T20
Mencetak data pegawai
Data berhasil dicetak dengan tampil previewnya
2 3
T17
f) Uji Kelola Data Master Laboratorium (Tambah, Ubah, Hapus dan Cetak Data ) Pada pengujian kelola data laboratorium dapat dilihat pada Tabel 5.6 Tabel 5.6 Uji Kelola Data Laboratorium
No
Kode
1
T21
2 3
T22 T23
Skenario Memasukan data laboratorium baru Mengubah data laboratorium yang sudah ada Menghapus data laboratorium
4
T24
Memilih tampilan cetak data data sesuai kategori
5
T25
Mencetak data laboratorium
Hasil Sukses Gagal
Keterangan Data laboratorium berhasil disimpan Data laboratorium berhasil diubah sesuai input Data laboratorium berhasil dihapus
Data laboratorium tampil sesuai kategori terpilih
Data berhasil dicetak dengan tampil previewnya
95
g) Uji Kelola Transaksi Pemesanan Pada pengujian form transaksi pemesanan dapat dilihat pada Tabel 5.7 Tabel 5.7 Uji Kelola Transaksi Pemesanan No
Hasil Sukses Gagal
Kode
Skenario
T26
Melihat data sesuai pilihan atau search
2
T27
Memilih data untuk di pesan
3
T28
4
T29
5
T30
6
T31
Menambahkan data pesanan Menghapus beberapa data pesanan Mengisikan penanggung jawab pesanan dengan tombol search Menekan tombol batal untuk batal memesan
7
T32
Menekan tombol cetak
1
Keterangan Data tampil sesuai pilihan yang dipilih Keluar form meminta jumlah dan tujuan pesanan Data pesanan bertambah sesuai input
Data pesanan yang dipilih terhapus
Data penanggung jawab tampil sesuai yang dipilih
Data pesanan dengan nomor tersebut terhapus Tampil review surat pemesanan yang dapat dicetak
h) Uji Kelola Transaksi Keluar Pada pengujian form transaksi keluar dapat dilihat pada Tabel 5.8 Tabel 5.8 Uji Kelola Transaksi Keluar
No
Kode
Skenario
1
T33
Mencari data pada field search
T34
Memilih data untuk dikirim
2
Hasil Sukses Gagal
Keterangan
Data tampil sesuai
Keluar form meminta jumlah barang yang dikirim
96
Tabel 5.8 Uji Kelola Transaksi Keluar
No
Kode
3
T35
4
T36
5
T37
6
T38
7
T39
Skenario
Hasil Sukses Gagal
Keterangan
Menambahkan data transaksi Menghapus beberapa data transaksi Mengisikan penanggung jawab pesanan dengan tombol search Menekan tombol batal untuk batal tranaksi keluar
Data transaksi bertambah sesuai input
Data transaksi yang dipilih terhapus
Data penanggung jawab tampil sesuai yang dipilih
Menekan tombol cetak
Data transaksi dengan nomor tersebut terhapus Tampil review surat transaksi yang dapat dicetak
i) Uji Kelola Transaksi Kontra Bon Pada pengujian form transaksi kontra bon dapat dilihat pada Tabel 5.9 Tabel 5.9 Uji Kelola Transaksi Kontra Bon
No
1
2
Kode T40
T41
3
T42
4
T43
Skenario Melihat nomor pesanan sesuai pilihan atau search Memilih nomor pesanan untuk dilakukan kontra bon Menyetujui kelengkapan pesanan dengan mencentang Menekan tombol batal untuk batal kontra bon
Hasil Sukses Gagal
Keterangan Data nomor pesanan tampil sesuai pilihan yang dipilih Detail pesanan nomor tersebut tampil
Tombol cetak bukti kontra bon menjadi aktif
Data kontra bon dengan nomor tersebut terhapus
97
Tabel 5.9 Uji Kelola Transaksi Kontra Bon
No
Kode
Skenario
5
T44
Menekan tombol cetak
Hasil Sukses
Keterangan
Gagal
Tampil review bukti kontra bon yang dapat dicetak
j) Uji Kelola Register Data Pemesanan Pada pengujian form register data pemesanan dapat dilihat pada Tabel 5.10 Tabel 5.10 Uji Register Data Pemesanan
No
Hasil Sukses Gagal
Kode
Skenario
T45
Memilih tampilan untuk cetak data
T46
Memilih kategori yang diinginkan
3
T47
Memilih kategori dengan range tanggal
4
T48
Menambahkan tombol cetak
1 2
Keterangan Pilihan ketegori untuk tampilan dipilih menjadi aktif Tampil data sesuai kategori di dalam tabel Tampil data sesuai kategori range tanggal yang dipilih di dalam tabel Tampil review laporan data sesuai dengan tampilan di form yang dapat dicetak
k) Uji Kelola Register Data Transaksi Keluar Pada pengujian form register data transaksi keluar dapat dilihat pada Tabel 5.11 Tabel 5.11 Uji Register Data Transaksi Keluar
No 1
Kode
Skenario
T49
Memilih tampilan untuk cetak data
Hasil Sukses Gagal
98
Keterangan Pilihan ketegori untuk tampilan dipilih menjadi aktif
Tabel 5.11 Uji Register Data Transaksi Keluar
Hasil No
Kode
Skenario
2
T50
Memilih kategori yang diinginkan
3
T51
Memilih kategori dengan range tanggal
4
T52
Menambahkan tombol cetak
Sukses
Gagal
Keterangan Tampil data sesuai kategori di dalam tabel Tampil data sesuai kategori range tanggal yang dipilih di dalam tabel Tampil review laporan data sesuai dengan tampilan di form yang dapat dicetak
l) Uji Kelola Register Data Kontra Bon Pada pengujian form register data kontra bon dapat dilihat pada Tabel 5.12 Tabel 5.12 Uji Register Data Kontra Bon
No
Hasil Sukses Gagal
Kode
Skenario
1
T47
Memilih kategori dengan range tanggal
2
T48
Menambahkan tombol cetak
99
Keterangan Tampil data sesuai kategori range tanggal yang dipilih di dalam table Tampil review laporan data sesuai dengan tampilan di form yang dapat dicetak
BAB VI PENUTUP
6.1
Kesimpulan
Dapat disimpulkan dari pembuatan aplikasi ini bahwa: a. Dengan adanya aplikasi ini diharapkan dapat mempermudah pengolahan data barang TelkoMedika yang tersimpan dalam sebuah database sehingga data barang lebih akurat dan meminimalisir kesalahan pengelolaan data. b. Dapat mempermudah pegawai TelkoMedika dalam pembuatan laporan, baik itu laporan barang, supplier, laboratorium, pegawai lalu laporan transaksi yang terjadi dari mulai pemesanan, transaksi keluar dan kontra bon (penerimaan barang). c. Dengan adanya aplikasi ini diharapkan dapat mempercepat sebuah transaksi yang sebelumnya tidak secara otomatis dan rentan rusak, kini menjadi lebih otomatis karena bersifat komputerisasi.
6.2
Saran Dengan keterbatasan yang dimiliki maka, terdapat beberapa saran yang untuk pengembangan
slah satunya adalah dalam pencetakkan laporan diusahakan memiliki pilihan lain tidak hanya bentuk pdftapi bisa juga dalam bentuk format .xls, karena dalam pengelolaan selanjutnya perkantoran masih mayoritas menggunakan Microsoft Excel dalam pengelolaan datanya. Diharapkan pula aplikasi ini dapat dikembangkan menjadi sebuah sistem online yang mempermudah pegawai dalam input dan melihat data tanpa keterbatasan tempat dan waktu.
100
DAFTAR PUSTAKA
Azis, M.F. , 2010, Object Oriented Programming Php 5, Elex Media Komputindo, Jakarta Dharwiyanti , S., 2003, Pengantar Unified Modeling Language (UML), IlmuKomputer.Com, Jakarta Fikri, Rijalul, 2009, Pemrograman Java, Andi Publisher, Jakarta Kroenke , David M., 2007, Database Processing Jilid 1 edisi 9, Erlangga, Jakarta Nugroho, Adi., 2009, Rekayasa Perangkat Lunak Menggunakan UML dan Java, Andi, Bandung Priyanta, F, 2011, Pemrograman Android Untuk Pemula, Cerdas Pustaka Publisher, Jakarta Raharjo, Budi., Heryanto, Imam. dan Haryono, Srif., 2012, Mudah Belajar Java, Informatika, Jakarta
101
LAMPIRAN Source code class input transaksi package telkommedika; import import import import import import import import import import import import import import import import import import import import import import import import import import
Koneksi.KoneksiDB; com.mysql.jdbc.PreparedStatement; com.toedter.calendar.JDateChooser; java.awt.GraphicsDevice; java.awt.GraphicsEnvironment; java.io.File; java.sql.Connection; java.sql.ResultSet; java.sql.SQLException; java.sql.Statement; java.text.SimpleDateFormat; java.util.HashMap; java.util.Map; javax.swing.DefaultListModel; javax.swing.JList; javax.swing.JOptionPane; javax.swing.JScrollPane; javax.swing.ListSelectionModel; javax.swing.table.DefaultTableModel; net.sf.jasperreports.engine.JasperCompileManager; net.sf.jasperreports.engine.JasperFillManager; net.sf.jasperreports.engine.JasperPrint; net.sf.jasperreports.engine.JasperReport; net.sf.jasperreports.engine.design.JasperDesign; net.sf.jasperreports.engine.xml.JRXmlLoader; net.sf.jasperreports.view.JasperViewer; /** * * @author MA_Pratama */ public class Input extends javax.swing.JInternalFrame { JasperReport jasperReport; JasperDesign jasperDesign; JasperPrint jasperPrint; Map<String, Object> param = new HashMap<String, Object>(); DefaultListModel model = new DefaultListModel(); private DefaultTableModel tabel; String kode_user, kode_in, pilih, masuk, tgl_awal, tgl_akhir, b, thn, bln, koor,jbtnKoor; String[] ada = new String[10000]; int p; String[] h1 = new String[100]; String[] h2 = new String[100]; /** * Creates new form Barang */ public Input() { initComponents(); tabel = new DefaultTableModel();
102
barang.setModel(tabel); tabel.addColumn("Nama Barang"); tabel.addColumn("Volume"); tabel.addColumn("Total Harga"); tabel.addColumn("Keterangan"); loadList1(); user(); } public void loadPesan() { p = 0; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM input"; ResultSet r = s.executeQuery(sql); while (r.next()) { ada[p] = r.getString("kode_order"); p++; } p--; data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } public void loadList1() { loadPesan(); model.removeAllElements(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM pesan group by kode_order order by kode_order"; ResultSet r = s.executeQuery(sql); while (r.next()) { String ItemList2 = r.getString("kode_order"); int a = 0; int b = 0; while(a<=p) { if(ada[a].equals(ItemList2)) { b = 1; break; } a++;
103
} if(b != 1) { model.addElement(ItemList2); } } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } public void loadList2() { loadPesan(); model.removeAllElements(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM pesan where tgl_order >= '" + tgl_awal +"' and tgl_order <= '" + tgl_akhir +"' group by kode_order order by kode_order"; ResultSet r = s.executeQuery(sql); while (r.next()) { String ItemList2 = r.getString("kode_order"); int a = 0; int b = 0; while(a<=p) { if(ada[a].equals(ItemList2)) { b = 1; break; } a++; } if(b != 1) { model.addElement(ItemList2); } } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } public void user() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from pegawai where status = 'aktif'"; ResultSet r = s.executeQuery(sql);
104
while (r.next()) { kode_user = r.getString("kode_pgw"); koor = r.getString("nama_pgw"); jbtnKoor = r.getString("jabatan"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void aktif() { total.setEnabled(true); faktur.setEnabled(true); lengkap.setEnabled(true); } public void loadData() { tabel.getDataVector().removeAllElements(); tabel.fireTableDataChanged(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT barang.`nama_brg`, pesan.`volume`, pesan.`total_harga`, lab.`nama_lab`FROM barang, pesan, lab WHERE pesan.`kode_brg` = barang.`kode_brg` AND pesan.`kode_lab` = lab.`kode_lab` AND kode_order = '"+pilih+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { Object[] o=new Object[4]; o[0]=r.getString("nama_brg"); o[1]=r.getString("volume"); o[2]=r.getString("total_harga"); o[3]=r.getString("nama_lab"); tabel.addRow(o); } r.close(); s.close(); }catch(SQLException e) { System.out.println(e); } } public void nomor() { bulan(); tahun(); try {
105
Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM input ORDER BY kode_in DESC;"; ResultSet r = s.executeQuery(sql); if (r.next()) { String kode = r.getString("kode_in").substring(3,7); String AN = "" + (Integer.parseInt(kode) + 1); String Nol = ""; if(AN.length()==1) {Nol = "000";} else if(AN.length()==2) {Nol = "00";} else if(AN.length()==3) {Nol = "0";} else if(AN.length()==4) {Nol = "";} no.setText("IN." + Nol + AN + "." + bln + "." + thn); } else { no.setText("IN.0001." + bln + "." + thn); } }catch(SQLException e) { System.out.println("Terjadi kesalahan" + e); } } public void bulan() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT SUBSTR(NOW(),6,2) AS bln;"; ResultSet r = s.executeQuery(sql); while (r.next()) { bln = r.getString("bln"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void tahun() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT SUBSTR(NOW(),1,4) AS thn;"; ResultSet r = s.executeQuery(sql); while (r.next()) { thn = r.getString("thn");
106
} r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void hapus() { no.setText(""); nama.setText(""); tgl.setText(""); total.setText(""); faktur.setText(""); total.setEnabled(false); faktur.setEnabled(false); lengkap.setEnabled(false); cetak.setEnabled(false); clear.setEnabled(false); lengkap.setSelected(false); tabel.getDataVector().removeAllElements(); tabel.fireTableDataChanged(); } private void dataMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: int i=data.getSelectedIndex(); if(i==-1) { return; } pilih = (String) model.getElementAt(i); } private void keyFocusLost(java.awt.event.FocusEvent evt) { // TODO add your handling code here: } private void keyInputMethodTextChanged(java.awt.event.InputMethodEvent evt) { // TODO add your handling code here: } private void keyPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: } private void keyKeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: model.removeAllElements(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM pesan WHERE
107
kode_order
LIKE
'%"+key.getText()+"%'"; ResultSet r = s.executeQuery(sql); while (r.next()) { String ItemList2 = r.getString("kode_order"); element in column "item_code" model.addElement(ItemList2); } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } }
//get
the
private void lengkapActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(lengkap.isSelected()== true) { if(faktur.getText().equals("")) { cetak.setEnabled(false); } else { cetak.setEnabled(true); } } else if(lengkap.isSelected()== false) { cetak.setEnabled(false); } } private void cetakActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String kf = faktur.getText(); String pbf = nama.getText(); String tot = total.getText(); kode_in = no.getText(); int q = 0; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from pesan +pilih+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { h1[q] = r.getString("kode_brg"); h2[q] = r.getString("volume"); q++; } r.close(); s.close();
108
where
kode_order
=
'"
}catch(SQLException e) { System.out.println("Terjadi kesalahan"); } q--; while(q>=0) { try { Connection c = KoneksiDB.getkoneksi(); String sql = "UPDATE barang Set stok_brg = stok_brg + ? WHERE kode_brg = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, h2[q]); p.setString(2, h1[q]); q--; p.executeUpdate(); p.close(); }catch(SQLException e){ System.out.println(e); } } try { Connection c = KoneksiDB.getkoneksi(); String sql = "Insert into input values (?,?,?,?,now())"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, kode_in); p.setString(2, pilih); p.setString(3, kf); p.setString(4, kode_user); p.executeUpdate(); p.close(); JOptionPane.showMessageDialog(null, "Data telah tersimpan, tunggu beberapa saat untuk mencetak tanda bukti" ); hapus(); kontra.setEnabled(true); loadList1(); }catch(SQLException e){ System.out.println(e); }
File file = new File("src/Laporan/Input.jrxml"); Map param = new HashMap(); param.put("kode",pilih); param.put("koor",koor); param.put("jKoor",jbtnKoor); param.put("pbf",pbf); param.put("total",tot);
109
try { jasperDesign = JRXmlLoader.load(file); jasperReport = JasperCompileManager.compileReport(jasperDesign); jasperPrint = JasperFillManager.fillReport(jasperReport, param, KoneksiDB.getkoneksi()); JasperViewer.viewReport(jasperPrint, false); } catch (Exception e) { e.printStackTrace(); } } private void clearActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int n = JOptionPane.showConfirmDialog(null, "Yakin membatalkan kontra bon?","Konfirmasi",JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { hapus(); kontra.setEnabled(true); } } private void allActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(all.isSelected()== true) { loadList1(); awal.setEnabled(false); akhir.setEnabled(false); awal.setDate(null); akhir.setDate(null); } } private void sortActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(sort.isSelected()) { awal.setEnabled(true); akhir.setEnabled(true); } } private void awalPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if ("date".equals(evt.getPropertyName())) { masuk = "asyik"; b = "yyyy-MM-dd"; SimpleDateFormat format = new SimpleDateFormat(b); tgl_awal = String.valueOf(format.format(awal.getDate())); tgl_akhir = String.valueOf(format.format(akhir.getDate())); loadList2(); } } private void akhirPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if ("date".equals(evt.getPropertyName()))
110
{ if(masuk == "asyik") { b = "yyyy-MM-dd"; SimpleDateFormat format = new SimpleDateFormat(b); tgl_awal = String.valueOf(format.format(awal.getDate())); tgl_akhir = String.valueOf(format.format(akhir.getDate())); loadList2(); } } } private void kontraActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: kontra.setEnabled(false); clear.setEnabled(true); nomor(); aktif(); loadData(); String no = null; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT kode_sup, tgl_order, harga FROM pesan where kode_order = '"+pilih+"'"; ResultSet r = s.executeQuery(sql);
sum(total_harga)
as
while (r.next()) { no = r.getString("kode_sup"); tgl.setText(r.getString("tgl_order")); total.setText(r.getString("harga")); } r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM supplier where kode_sup = '"+no+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { nama.setText(r.getString("nama_sup")); } r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } }
111
Source code class order (pemesanan barang) package telkommedika; import import import import import import import import import import import import import import import import import import import import import import
Koneksi.KoneksiDB; com.mysql.jdbc.PreparedStatement; java.io.File; java.sql.Connection; java.sql.ResultSet; java.sql.SQLException; java.sql.Statement; java.util.HashMap; java.util.Map; javax.swing.DefaultListModel; javax.swing.JList; javax.swing.JOptionPane; javax.swing.JScrollPane; javax.swing.ListSelectionModel; javax.swing.table.DefaultTableModel; net.sf.jasperreports.engine.JasperCompileManager; net.sf.jasperreports.engine.JasperFillManager; net.sf.jasperreports.engine.JasperPrint; net.sf.jasperreports.engine.JasperReport; net.sf.jasperreports.engine.design.JasperDesign; net.sf.jasperreports.engine.xml.JRXmlLoader; net.sf.jasperreports.view.JasperViewer;
/** * * @author MA_Pratama */ public class Order extends javax.swing.JInternalFrame { JasperReport jasperReport; JasperDesign jasperDesign; JasperPrint jasperPrint; Map<String, Object> param = new HashMap<String, Object>(); DefaultListModel model = new DefaultListModel(); private DefaultTableModel tabel; String sorting, bln, thn, pilih_brg, kode_brg, no_out, banyak, kode_user, kode_lab, kode_sup, kode_ket, kode_psn, kode_pj, harga; String psn, koor, jbtnPsn, jbtnKoor; /** * Creates new form Barang */ public Order() { initComponents(); tabel = new DefaultTableModel(); barang.setModel(tabel); tabel.addColumn("Nama Barang"); tabel.addColumn("Volume"); tabel.addColumn("Harga Satuan"); tabel.addColumn("Total Harga"); tabel.addColumn("Keterangan"); loadList1(); user(); aaa.setVisible(false);bbb.setVisible(false);ccc.setVisible(false);ddd.setVisible(fal se);eee.setVisible(false);fff.setVisible(false);ggg.setVisible(false);
112
x.setVisible(false);y.setVisible(false);z.setVisible(false);zz.setVisible(false); a1.setVisible(false);a2.setVisible(false);a3.setVisible(false);a4.setVisible(false); a5.setVisible(false);a6.setVisible(false); } public void loadList1() { model.removeAllElements(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM barang"; ResultSet r = s.executeQuery(sql); while (r.next()) { String ItemList2 = r.getString("nama_brg"); //get the element in column "item_code" model.addElement(ItemList2); } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } public void loadList2() { model.removeAllElements(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM barang order by "+ sorting + ""; ResultSet r = s.executeQuery(sql); while (r.next()) { String ItemList2 = r.getString("nama_brg"); //get the element in column "item_code" model.addElement(ItemList2); } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } public { int int int
void simpan() volume = Integer.parseInt(banyak); h = Integer.parseInt(harga); t = h*volume;
try { Connection c = KoneksiDB.getkoneksi();
113
String sql = "Insert into pesan values (?,?,?,?,?,?,'','','',?,now())"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, no_out); p.setString(2, kode_brg); p.setInt(3, volume); p.setInt(4, t); p.setString(5, kode_sup); p.setString(6, kode_lab); p.setString(7, kode_user); p.executeUpdate(); p.close(); }catch(SQLException e){ System.out.println(e); } } public void user() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from pegawai where status = 'aktif'"; ResultSet r = s.executeQuery(sql); while (r.next()) { kode_user = r.getString("kode_pgw"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void jabatan1() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from pegawai where nama_pgw = '" +psn+ "'"; ResultSet r = s.executeQuery(sql); while (r.next()) { jbtnPsn = r.getString("keterangan"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void jabatan2() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from pegawai where nama_pgw = '" +koor+ "'"; ResultSet r = s.executeQuery(sql); while (r.next()) {
114
jbtnKoor = r.getString("jabatan"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } }
public void aktif() { tambah.setEnabled(true); hapus.setEnabled(true); ket.setEnabled(true); bket.setEnabled(true); pesan.setEnabled(true); pj.setEnabled(true); cetak.setEnabled(true); clear.setEnabled(true); barang.setEnabled(true); } public void combo() { nama.removeAllItems(); nama.addItem("--Pilih PBF--"); String nm = null; String st = null; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from supplier where kode_brg = '"+kode_brg+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { nm = (r.getString("nama_sup")); st = (r.getString("harga_brg")); nama.addItem(nm + " (Rp." + st + ")" ); } nama.addItem("PBF Baru"); r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void loadData() { tabel.getDataVector().removeAllElements(); tabel.fireTableDataChanged(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT barang.`nama_brg`, pesan.`volume`, barang.`harga_brg`, pesan.`total_harga`, lab.`nama_lab`FROM barang, pesan, lab WHERE pesan.`kode_brg` = barang.`kode_brg` AND pesan.`kode_lab` = lab.`kode_lab` AND kode_order = '"+no_out+"'"; ResultSet r = s.executeQuery(sql);
115
int h,v,t,jumlah = 0; while (r.next()) { Object[] o=new Object[5]; o[0]=r.getString("nama_brg"); o[1]=r.getString("volume"); v = Integer.parseInt(r.getString("volume")); t = Integer.parseInt(r.getString("total_harga")); h = t/v; o[2]=h; o[3]=r.getString("total_harga"); o[4]=r.getString("nama_lab"); jumlah = jumlah + (v*h); tabel.addRow(o); } total.setText(String.valueOf(jumlah)); r.close(); s.close(); }catch(SQLException e) { System.out.println(e); } } public void loadData2() { tabel.getDataVector().removeAllElements(); tabel.fireTableDataChanged(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT barang.`nama_brg`, pesan.`volume`, barang.`harga_brg`, pesan.`total_harga`, lab.`nama_lab`FROM barang, pesan, lab WHERE pesan.`kode_brg` = barang.`kode_brg` AND pesan.`kode_lab` = lab.`kode_lab` AND kode_order = '"+no_out+"'"; ResultSet r = s.executeQuery(sql); int x,y,jumlah = 0; while (r.next()) { Object[] o=new Object[5]; o[0]=r.getString("nama_brg"); o[1]=r.getString("volume"); o[2]= harga; o[3]=r.getString("total_harga"); o[4]=r.getString("nama_lab"); x = Integer.parseInt(r.getString("volume")); y = Integer.parseInt(harga); jumlah = jumlah + (x*y); tabel.addRow(o); } total.setText(String.valueOf(jumlah)); r.close(); s.close(); }catch(SQLException e) { System.out.println(e); }
116
} public void nomor() { bulan(); tahun(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM pesan ORDER BY kode_order DESC;"; ResultSet r = s.executeQuery(sql); if (r.next()) { String kode = r.getString("kode_order").substring(3,7); String AN = "" + (Integer.parseInt(kode) + 1); String Nol = ""; if(AN.length()==1) {Nol = "000";} else if(AN.length()==2) {Nol = "00";} else if(AN.length()==3) {Nol = "0";} else if(AN.length()==4) {Nol = "";} no.setText("PO." + Nol + AN + "." + bln + "." + thn); } else { no.setText("PO.0001." + bln + "." + thn); } }catch(SQLException e) { System.out.println("Terjadi kesalahan" + e); } } public void kode() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from barang where nama_brg = '" +pilih_brg+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { kode_brg = r.getString("kode_brg"); harga = r.getString("harga_brg"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void bulan() {
117
try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT SUBSTR(NOW(),6,2) AS bln;"; ResultSet r = s.executeQuery(sql); while (r.next()) { bln = r.getString("bln"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void tahun() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT SUBSTR(NOW(),1,4) AS thn;"; ResultSet r = s.executeQuery(sql); while (r.next()) { thn = r.getString("thn"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void sup() { String cek = ""; String a = ""; cek = (String) nama.getSelectedItem(); a = cek.substring(0,5); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from supplier where nama_sup like '%"+a+"%' and kode_brg = '"+kode_brg+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { kode_sup =r.getString("kode_sup"); alamat.setText(r.getString("alamat_sup")); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } }
118
public void hapus() { nama.setEnabled(false); alamat.setEnabled(false); barang.setEnabled(false); tambah.setEnabled(false); hapus.setEnabled(false); ket.setEnabled(false); pesan.setEnabled(false); pj.setEnabled(false); cetak.setEnabled(false); clear.setEnabled(false); bket.setEnabled(false); nama.setSelectedItem("--Pilih PBF--"); alamat.setText(""); ket.setText(""); pesan.setText(""); pj.setText(""); tabel.getDataVector().removeAllElements(); tabel.fireTableDataChanged(); } private void dataMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: int i=data.getSelectedIndex(); if(i==-1) { return; } pilih_brg =(String) model.getElementAt(i); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM barang where nama_brg = '"+pilih_brg+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { stok.setText(r.getString("stok_brg")); } r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } private void keyKeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: model.removeAllElements(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM barang WHERE nama_brg LIKE '%"+key.getText()+"%'"; ResultSet r = s.executeQuery(sql);
119
while (r.next()) { String ItemList2 = r.getString("nama_brg"); //get the element in column "item_code" model.addElement(ItemList2); } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } private void tambahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String a = "abcd"; Tambah2 frame = new Tambah2(x, kode_sup, y, a, z, a, zz, a); this.getParent().add(frame); frame.setVisible(true); } private void hapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int i = barang.getSelectedRow(); if(i==-1) { return; } String nama =(String) tabel.getValueAt(i, 0); String kode = null; int n = JOptionPane.showConfirmDialog(null, "Yakin akan menghapus pesanan terpilih?","Konfirmasi",JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from barang where nama_brg = '" +nama+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { kode = r.getString("kode_brg"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } String noo = no.getText(); try { Connection c = KoneksiDB.getkoneksi(); String sql = "DELETE From pesan WHERE kode_order = ? and kode_brg = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, noo);
120
p.setString(2, kode); p.executeUpdate(); p.close(); JOptionPane.showMessageDialog(null, "Data telah terhapus"); loadData(); }catch(SQLException e){ System.out.println("Terjadi kesalahan"); } } } private void bketActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String a = "abcd"; PJ2 frame = new PJ2(a1, a, a2, a, a3, a, a4, a, a5, a, a6, a); this.getParent().add(frame); frame.setVisible(true); } private void cetakActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String nma = (String) nama.getSelectedItem(); if(nma.equals("")) { JOptionPane.showMessageDialog(null, "Silahkan isi dahulu PBF tujuan pesanan !" ); } else { String pbf = null; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from supplier where kode_sup = '"+ kode_sup +"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { pbf = r.getString("nama_sup"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } psn = pesan.getText(); koor = pj.getText(); jabatan1(); jabatan2(); String on = no.getText(); String q1 = a1.getText(); String q2 = a3.getText(); String q3 = a5.getText(); try { Connection c = KoneksiDB.getkoneksi(); String sql = "UPDATE pesan Set keterangan = ?, kode_psn = ?,
121
kode_pgw = ? WHERE kode_order = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, q1); p.setString(2, q2); p.setString(3, q3); p.setString(4, on); p.executeUpdate(); p.close(); JOptionPane.showMessageDialog(null, "Data telah tersimpan, tunggu beberapa saat untuk mencetak surat pemesanan" ); loadData(); File file = new File("src/Laporan/Order.jrxml"); Map param = new HashMap(); param.put("kode",on); param.put("psn",psn); param.put("jPsn",jbtnPsn); param.put("koor",koor); param.put("jKoor",jbtnKoor); param.put("pbf",pbf); try { jasperDesign = JRXmlLoader.load(file); jasperReport = JasperCompileManager.compileReport(jasperDesign); jasperPrint = JasperFillManager.fillReport(jasperReport, param, KoneksiDB.getkoneksi()); JasperViewer.viewReport(jasperPrint, false); } catch (Exception e) { e.printStackTrace(); } hapus(); nomor(); order.setEnabled(true); }catch(SQLException e){ System.out.println(e); } nama.addItem("--Pilih PBF--"); } } private void clearActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int n = JOptionPane.showConfirmDialog(null, "Yakin membatalkan pemesanan?","Konfirmasi",JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { hapus(); String nooo = no.getText(); try { Connection c = KoneksiDB.getkoneksi(); String sql = "DELETE From pesan WHERE kode_order = ?"; PreparedStatement p =(PreparedStatement) c.prepareStatement(sql); p.setString(1, nooo); p.executeUpdate(); p.close();
122
JOptionPane.showMessageDialog(null, "Data telah batal dimasukan"); loadData(); order.setEnabled(true); }catch(SQLException e){ System.out.println("Terjadi kesalahan"); } } } private void allActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: loadList1(); } private void byStockActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: if(byStock.isSelected()) { sorting = "stok_brg"; loadList2(); } } private void orderActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: nomor(); no_out = no.getText(); nama.setEnabled(true); int i=data.getSelectedIndex(); if(i==-1) { return; } pilih_brg =(String) model.getElementAt(i); String a = pilih_brg; kode(); Volume2 frame = new Volume2(aaa, a, bbb, a); this.getParent().add(frame); frame.setVisible(true); combo(); order.setEnabled(false); clear.setEnabled(true); } private void gggPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: String cek = ccc.getText(); String x = null; if (cek != "-") { try { Connection c = KoneksiDB.getkoneksi();
123
Statement s = c.createStatement(); String sql = "SELECT * FROM supplier ORDER BY kode_sup DESC;"; ResultSet r = s.executeQuery(sql); if (r.next()) { String kode = r.getString("kode_sup").substring(4); String AN = "" + (Integer.parseInt(kode) + 1); String Nol = ""; if(AN.length()==1) {Nol = "000";} else if(AN.length()==2) {Nol = "00";} else if(AN.length()==3) {Nol = "0";} else if(AN.length()==4) {Nol = "";} x = "PBF-"+ Nol +""+ AN +""; } else { x = "PBF-0001"; } }catch(SQLException e) { System.out.println("Terjadi kesalahan" + e); } kode_sup = x; harga = ggg.getText(); try { Connection c = KoneksiDB.getkoneksi(); String sql = "Insert into supplier values (?,?,?,?,'','',?,?,?,0)"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, x); p.setString(2, ccc.getText()); p.setString(3, ddd.getText()); p.setString(4, eee.getText()); p.setString(5, kode_brg); p.setString(6, fff.getText()); p.setString(7, ggg.getText()); p.executeUpdate(); p.close(); alamat.setText(ddd.getText()); simpan(); loadData(); stok.setText("0"); }catch(SQLException e){ System.out.println(e); } } ccc.setText("-"); } private void a6PropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here:
124
kode_ket = a1.getText(); ket.setText(a2.getText()); kode_psn = a3.getText(); pesan.setText(a4.getText()); kode_pj = a5.getText(); pj.setText(a6.getText()); } private void zzPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(zz.getText()!= "-") { banyak = x.getText(); pilih_brg = y.getText(); kode_lab = z.getText(); kode(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from supplier where kode_sup = '"+kode_sup+"' and kode_brg = '"+kode_brg+"'"; ResultSet r = s.executeQuery(sql); if (r.next()) { harga = r.getString("harga_brg"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } simpan(); System.out.print("2"); loadData(); zz.setText("-"); } } private void bbbPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(bbb.getText() != "-" ) { JOptionPane.showMessageDialog(null, "Selanjutnya pilih PBF tujuan Anda" ); banyak = aaa.getText(); kode_lab = bbb.getText(); bbb.setText("-"); } } private void namaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String pil = (String) nama.getSelectedItem(); if(pil=="PBF Baru")
125
{
String o = "abc"; Harga frame = new Harga(ccc, pilih_brg, ddd, o, eee, o, fff, o, ggg, o); this.getParent().add(frame); frame.setVisible(true); aktif(); stok.setText("0"); nama.setEnabled(false);
} else if(pil=="--Pilih PBF--") { } else if(pil== null) { } else { sup(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from supplier where kode_sup = '"+kode_sup+"' and kode_brg = '"+kode_brg+"'"; ResultSet r = s.executeQuery(sql); if (r.next()) { harga = r.getString("harga_brg"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } simpan(); loadData(); aktif(); stok.setText("0"); nama.setEnabled(false); } }
Source code output (pengiriman barang) package telkommedika; import import import import import import import import
Koneksi.KoneksiDB; com.mysql.jdbc.PreparedStatement; java.awt.GraphicsDevice; java.awt.GraphicsEnvironment; java.io.File; java.sql.Connection; java.sql.ResultSet; java.sql.SQLException;
126
import import import import import import import import import import import import import import import import
java.sql.Statement; java.util.HashMap; java.util.Map; javax.swing.DefaultListModel; javax.swing.JList; javax.swing.JOptionPane; javax.swing.JScrollPane; javax.swing.ListSelectionModel; javax.swing.table.DefaultTableModel; net.sf.jasperreports.engine.JasperCompileManager; net.sf.jasperreports.engine.JasperFillManager; net.sf.jasperreports.engine.JasperPrint; net.sf.jasperreports.engine.JasperReport; net.sf.jasperreports.engine.design.JasperDesign; net.sf.jasperreports.engine.xml.JRXmlLoader; net.sf.jasperreports.view.JasperViewer;
/** * * @author MA_Pratama */ public class Output extends javax.swing.JInternalFrame { JasperReport jasperReport; JasperDesign jasperDesign; JasperPrint jasperPrint; Map<String, Object> param = new HashMap<String, Object>(); DefaultListModel model = new DefaultListModel(); private DefaultTableModel tabel; String pilih_brg,kode_brg, no_out, banyak, kode_user, kode_pgw, kode_lab, bln, thn, koor; String jbtn = "-"; String[] h1 = new String[100]; String[] h2 = new String[100]; /** * Creates new form Barang */ public Output() { initComponents(); tabel = new DefaultTableModel(); barang.setModel(tabel); tabel.addColumn("Nama Barang"); tabel.addColumn("Volume"); loadList(); user(); combo(); aaa.setVisible(false);bbb.setVisible(false);ccc.setVisible(false);ddd.setVisible(fal se);eee.setVisible(false);fff.setVisible(false); } public void loadList() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM barang"; ResultSet r = s.executeQuery(sql);
127
while (r.next()) { String ItemList2 = r.getString("nama_brg"); //get the element in column "item_code" model.addElement(ItemList2); } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } public void loadData() { tabel.getDataVector().removeAllElements(); tabel.fireTableDataChanged(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT barang.nama_brg as nama, output.volume FROM barang,output WHERE barang.`kode_brg` = output.`kode_brg` and kode_out = '" +no_out+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { Object[] o=new Object[2]; o[0]=r.getString("nama"); o[1]=r.getString("volume"); tabel.addRow(o); } r.close(); s.close(); }catch(SQLException e) { System.out.println(e); } } public void jabatan() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from pegawai where nama_pgw = '" +koor+ "'"; ResultSet r = s.executeQuery(sql); while (r.next()) { jbtn = r.getString("jabatan"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void nomor() {
128
bulan(); tahun(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM output ORDER BY kode_out DESC;"; ResultSet r = s.executeQuery(sql); if (r.next()) { String kode = r.getString("kode_out").substring(4,8); System.out.print(kode); String AN = "" + (Integer.parseInt(kode) + 1); System.out.println(AN); String Nol = ""; if(AN.length()==1) {Nol = "000";} else if(AN.length()==2) {Nol = "00";} else if(AN.length()==3) {Nol = "0";} else if(AN.length()==4) {Nol = "";} no.setText("MTS." + Nol + AN + "." + bln + "." + thn); } else { no.setText("MTS.0001." + bln + "." + thn); } no_out = no.getText(); }catch(SQLException e) { System.out.println("Terjadi kesalahan" + e); } } public void bulan() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT SUBSTR(NOW(),6,2) AS bln;"; ResultSet r = s.executeQuery(sql); while (r.next()) { bln = r.getString("bln"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void tahun() { try {
129
Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT SUBSTR(NOW(),1,4) AS thn;"; ResultSet r = s.executeQuery(sql); while (r.next()) { thn = r.getString("thn"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void simpan() { try { Connection c = KoneksiDB.getkoneksi(); String sql = "Insert into output values (?,'',?,?,now(),'',?)"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, no_out); p.setString(2, kode_brg); p.setString(3, banyak); p.setString(4, kode_user); p.executeUpdate(); p.close(); loadData(); stock(); }catch(SQLException e){ System.out.println(e); } } public void stock() { try { Connection c = KoneksiDB.getkoneksi(); String sql = "UPDATE barang Set stok_brg = stok_brg - ? WHERE kode_brg = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, banyak); p.setString(2, kode_brg); p.executeUpdate(); p.close(); loadData(); }catch(SQLException e){ System.out.println(e); } } public void kode() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from barang where nama_brg = '" +pilih_brg+"'";
130
ResultSet r = s.executeQuery(sql); while (r.next()) { kode_brg=r.getString("kode_brg"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void combo() { nama.removeAllItems(); nama.addItem("Pilih E-Labs"); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from lab"; ResultSet r = s.executeQuery(sql); while (r.next()) { nama.addItem(r.getString("nama_lab")); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void lab() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from lab where nama_lab = '" + nama.getSelectedItem() +"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { kode_lab=r.getString("kode_lab"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void user() { try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from pegawai where status = 'aktif'"; ResultSet r = s.executeQuery(sql); while (r.next()) { kode_user = r.getString("kode_pgw"); } r.close();
131
s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } } public void hapus() { nama.setEnabled(false); alamat.setEnabled(false); tambah.setEnabled(false); hapus.setEnabled(false); pj.setEnabled(false); cetak.setEnabled(false); clear.setEnabled(false); alamat.setText(""); pj.setText(""); tabel.getDataVector().removeAllElements(); tabel.fireTableDataChanged(); } private void keyKeyTyped(java.awt.event.KeyEvent evt) { // TODO add your handling code here: model.removeAllElements(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "SELECT * FROM lab WHERE nama_lab LIKE '%"+key.getText()+"%'"; ResultSet r = s.executeQuery(sql); while (r.next()) { String ItemList2 = r.getString("nama_lab"); //get the element in column "item_code" model.addElement(ItemList2); } data.setModel(model); r.close(); s.close(); }catch(SQLException e) { System.out.println("kesalahan"); } } private void outActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: nomor(); nama.setEnabled(true); alamat.setEnabled(true); barang.setEnabled(true); tambah.setEnabled(true); hapus.setEnabled(true); pj.setEnabled(true); cetak.setEnabled(false); clear.setEnabled(true); cari.setEnabled(true); out.setEnabled(false);
132
int i=data.getSelectedIndex(); if(i==-1) { return; } pilih_brg =(String) model.getElementAt(i); String a = pilih_brg; kode(); Volume frame = new Volume(aaa, a); this.getParent().add(frame); frame.setVisible(true); } private void namaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String pilih = (String) nama.getSelectedItem(); try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from lab where nama_lab = '" +pilih+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { alamat.setText(r.getString("alamat_lab")); } r.close(); s.close(); lab(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } if(pilih != "Pilih E-Labs") { cetak.setEnabled(true); } } private void tambahActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String a = pilih_brg; Tambah frame = new Tambah(ddd, a, ccc, a); this.getParent().add(frame); frame.setVisible(true); } private void hapusActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int n = JOptionPane.showConfirmDialog(null, "Yakin akan menghapus transaksi terpilih?","Konfirmasi",JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { int i = barang.getSelectedRow(); if(i==-1)
133
{ return; } String nama =(String) tabel.getValueAt(i, 0); String kode = null; String bnyk = null; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from barang where nama_brg = '" +nama+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { kode = r.getString("kode_brg"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from output where kode_out = '" +no_out+"' and kode_brg = '" +kode+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { bnyk = r.getString("volume"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } try { Connection c = KoneksiDB.getkoneksi(); String sql = "UPDATE barang Set stok_brg = stok_brg + ? WHERE kode_brg = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, bnyk); p.setString(2, kode); p.executeUpdate(); p.close(); }catch(SQLException e){ System.out.println(e); } String noo = no.getText(); try { Connection c = KoneksiDB.getkoneksi(); String sql = "DELETE From output WHERE kode_out = ? and kode_brg = ?";
134
PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, noo); p.setString(2, kode); p.executeUpdate(); p.close(); JOptionPane.showMessageDialog(null, "Data telah terhapus"); loadData(); }catch(SQLException e){ System.out.println("Terjadi kesalahan"); } } } private void cariActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String a = pilih_brg; PJ frame = new PJ(eee, a, fff, a); this.getParent().add(frame); frame.setVisible(true); } private void cetakActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String nma = (String) nama.getSelectedItem(); if(nma.equals("")) { JOptionPane.showMessageDialog(null, "Silahkan isi dahulu LAB tujuan transaksi !" ); } else { String x = eee.getText(); String o = no.getText(); koor = pj.getText(); jabatan(); out.setEnabled(true); try { Connection c = KoneksiDB.getkoneksi(); String sql = "UPDATE output Set kode_lab = ?, kode_pgw = ? WHERE kode_out = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, kode_lab); p.setString(2, x); p.setString(3, o); p.executeUpdate(); p.close(); loadData(); JOptionPane.showMessageDialog(null, "Data telah tersimpan, tunggu beberapa saat untuk mencetak tanda bukti" ); hapus(); nomor(); }catch(SQLException e){ System.out.println(e); } File file = new File("src/Laporan/Output.jrxml"); Map param = new HashMap();
135
param.put("kode",o); param.put("koor",koor); param.put("jKoor",jbtn); try { jasperDesign = JRXmlLoader.load(file); jasperReport = JasperCompileManager.compileReport(jasperDesign); jasperPrint = JasperFillManager.fillReport(jasperReport, param, KoneksiDB.getkoneksi()); JasperViewer.viewReport(jasperPrint, false); } catch (Exception e) { e.printStackTrace(); } } } private void clearActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int n = JOptionPane.showConfirmDialog(null, "Yakin membatalkan transaksi?","Konfirmasi",JOptionPane.YES_NO_OPTION); if (n == JOptionPane.YES_OPTION) { int q = 0; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from output where kode_out = '" +no_out+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { h1[q] = r.getString("kode_brg"); h2[q] = r.getString("volume"); q++; } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } q--; while(q>=0) { try { Connection c = KoneksiDB.getkoneksi(); String sql = "UPDATE barang Set stok_brg = stok_brg + ?
WHERE
kode_brg = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, h2[q]); p.setString(2, h1[q]); q--; p.executeUpdate(); p.close();
136
}catch(SQLException e){ System.out.println(e); } } out.setEnabled(true); hapus(); String nooo = no.getText(); try { Connection c = KoneksiDB.getkoneksi(); String sql = "DELETE From output WHERE kode_out = ?"; PreparedStatement p=(PreparedStatement) c.prepareStatement(sql); p.setString(1, nooo); p.executeUpdate(); p.close(); JOptionPane.showMessageDialog(null, "Data telah terhapus"); loadData(); }catch(SQLException e){ System.out.println("Terjadi kesalahan"); } } } private void bbbPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: } private void eeePropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(eee.getText() != "-") { kode_pgw = eee.getText(); } } private void aaaMouseWheelMoved(java.awt.event.MouseWheelEvent evt) { // TODO add your handling code here: } private void aaaPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(aaa.getText() != "-" ) { banyak = aaa.getText(); JOptionPane.showMessageDialog(null, "Selanjutnya pilih LAB tujuan Anda" ); simpan(); System.out.print("masuk"); aaa.setText("-"); } } private void cccPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(ccc.getText() != "-")
137
{ String n = ccc.getText(); String b = ddd.getText(); String k = null; try { Connection c = KoneksiDB.getkoneksi(); Statement s = c.createStatement(); String sql = "Select * from barang where nama_brg = '" +n+"'"; ResultSet r = s.executeQuery(sql); while (r.next()) { k = r.getString("kode_brg"); } r.close(); s.close(); }catch(SQLException e) { System.out.println("Terjadi kesalahan"); } kode_brg = k; banyak = b; simpan(); ccc.setText("-"); } } private void dddPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: } private void fffPropertyChange(java.beans.PropertyChangeEvent evt) { // TODO add your handling code here: if(eee.getText() != "-") { pj.setText(fff.getText()); eee.setText("-"); } }
138