Professional Documents
Culture Documents
Tugas Akhir ini diajukan sebagai salah satu syarat untuk kelulusan Progam Studi (Strata 1) STTIS BANDUNG
JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI INFORMATIKA SONY SUGEMA BANDUNG 2007
LEMBAR PENGESAHAN
PENGEMBANGAN PERANGKAT LUNAK PENGOLAHAN TERA, TERA ULANG DAN KALIBRASI BERBASIS CLIENT-SERVER (Studi Kasus di Balai Metrologi Wilayah Surakarta)
Telah Diterima dan Disahkan Untuk Memenuhi Persyaratan Dalam Menyelesaikan Program Studi S-1 (Strata 1) Sarjana Teknik Informatika STTIS BANDUNG
Pembimbing
ABSTRACT
Balai Metrologi Surakarta was a Technical Executive Unit of Departemen Perdagangan, which have 4 (four) main task, which one of them is doing tera and tera ulang toward measurement device and its equipment and also calibrating measurement device. To help Balai Metrologi doing one of their main task it need a software development which will accommodate the tera, calibrating process and inventorial list of measurement device and its equipment. The software development using Rational Unified Process (RUP) approachment, with Unified Modeling Language (UML). At the implementation work phase it using web based programing tools, PHP 5.1.2 and also MySQL 5.0.18 as the storage engine. Black box testing method is used at testing work phase. The result of the software development product is a web based software, which have centralize storage media in a database server for a better data integrity. With usertype seperation based on division at the organization, the software is functionaly divided appropriate with each division job description at Balai Metrologi, in other word the software consist of several software components with dependencies in one another process, the aim is to preserve the business sequentiality. The software product have been capable to help tera and calibrating process in registration, tera and calibration income (cost collecting), tera, tera ulang and calibration data saving, and also tera, tera ulang, and calibration recapitulation. It also handle the inventory for measurement device and its equipment along with tarif determination. Keyword : Balai Metrologi, Departemen Perdagangan, Rational Unified Process (RUP), Unified Modeling Language (UML), PHP 5.1.2, MySQL 5.0.18, black box testing, database server, tera, tera ulang, calibration.
ABSTRAK
Balai Metrologi wilayah Surakarta merupakan salah satu Unit Pelaksana Teknis dari Departemen Perdagangan, yang memiliki 4 tugas pokok, yang salah satunya adalah melakukan tera dan tera ulang terhadap alat-alat Ukur Takar Timbang dan Perlengkapannya (UTTP) serta kalibrasi alat ukur. Untuk membantu dalam menjalankan salah satu tugas pokok tersebut maka penulis mengembangkan sebuah perangkat lunak yang mampu membantu proses peneraan, kalibrasi dan juga inventarisir alat-alat UTTP. Pengembangan perangkat lunak tersebut menggunakan metode Rational Unified Process (RUP), dengan bahasa permodelan Unified Modeling Language (UML). Pada tahap implementasi penulis menggunakan perangkat pemrograman berbasis web, PHP versi 5.1.2 serta menggunakan mesin basis data MySQL versi 5.0.18. Pengujian terhadap perangkat lunak dilakukan dengan metode blackbox testing. Produk dari pengembangan tersebut adalah sebuah perangkat lunak berbasis web, yang memiliki media penyimpanan terpusat di dalam sebuah database server sehingga integritas data lebih terjamin. Dengan pembagian tipe pemakai perangkat lunak berdasarkan divisi atau seksi, maka perangkat lunak ini terbagi secara fungsional sesuai dengan divisi atau seksi di Balai Metrologi, dengan kata lain perangkat lunak terdiri dari sub-sub perangkat lunak yang saling bergantung satu sama lain, hal ini bertujuan agar proses yang terjadi terjaga keberurutannya. Perangkat lunak yang dihasilkan mampu membantu peneraan dan kalibrasi dalam hal pendaftaran, penghitungan uang tera dan kalibrasi, penyimpanan data tera, tera ulang dan kalibrasi serta rekapitulasi tera, tera ulang dan kalibrasi. Perangkat lunak juga menangani inventarisir untuk daftar alat-alat UTTP beserta pengaturan tarif. Kata Kunci : Balai Metrologi, Departemen Perdagangan, Rational Unified Process (RUP), Unified Modeling Language (UML), PHP versi 5.1.2, MySQL versi 5.0.18, black box testing, database server, tera, tera ulang, kalibrasi.
KATA PENGANTAR
Bismillahirrahmanirrahim, Dengan nama Allah Yang Maha Pengasih dan Maha Penyayang, Segala puji bagi Allah. SWT, Rabb seluruh alam. Semoga Shalawat dan salam tercurah kepada Muhammad SAWW, Keluarga-Sucinya, para sahabat dan para pengikutnya. Hanya karena kasih sayang dan kekuatan-Nya lah penulis mampu menyelesaikan Skripsi yang berjudul PENGEMBANGAN PERANGKAT LUNAK PENGOLAHAN TERA, TERA ULANG DAN KALIBRASI BERBASIS CLIENT-SERVER (Studi Kasus di Balai Metrologi Wilayah Surakarta) yang merupakan salah satu syarat kelulusan yang harus dipenuhi dalam mencapai gelar Sarjana Teknik di Sekolah Tinggi Teknologi Informatika Sony Sugema. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya dan penghargaan yang setinggi-tingginya kepada yang terhormat Bapak Toto Suharto, M.T., selaku dosen pembimbing skripsi yang dengan penuh ketulusan, kesabaran, perhatian, dan ketelitian telah meluangkan waktu, tenaga, dan pemikirannya untuk memberikan pengarahan kepada penulis selama penulisan skripsi ini. Pada kesempatan ini pula, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada yang saya hormati : 1. Bapak Ir. Kahar Mulyani, selaku ketua STTIS Bandung.
2. Ibu Nia Ambarsari, Ssi., selaku ketua program studi jurusan Teknik Informatika STTIS Bandung. 3. Bapak Ali Ahmadi, S.T., selaku dosen jurusan Teknik Informatika STTIS Bandung. 4. Bapak Taufik Hidayat, S.H., selaku Kepala Balai Metrologi Wilayah Surakarta. 5. Bapak Wahyu Veteranto, S.H., selaku Kepala Seksi Standar Ukuran dan Kalibrasi Balai Metrologi Wilayah Surakarta. 6. Bapak Edi Wahyuono, S.T., selaku Kepala Seksi Penyuluhan dan Pengawasan Balai Metrologi Wilayah Surakarta. 7. Bapak Gunawan Hutomo, S.H., selaku Kepala Seksi Teknik Balai Metrologi Wilayah Surakarta. 8. Ibu Anik Sofiah, Bc. Hk., selaku Kepala Sub Bagian Tata Usaha Balai Metrologi Wilayah Surakarta. 9. Bapak A. Martoto, mas Devi, dan mas Dedi di Balai Metrologi Surakarta. 10. Sahabat dan teman dekat yang telah memberikan masukan dan bantuannya : Muis, Rachmat Suwandi. S.H., Agung Kurniawan, A.Md., Dani Suherlan, A.Md., Arif Budiman, Gindo, Pandu, Chepy, dan R. Ahadian. 11. Keluarga besar Kakek. Moch. Yasir tercinta di Jember. 12. Bapak dan ibu dosen pengajar pada Sekolah Tinggi Teknologi Informatika Sony Sugema Bandung, serta seluruh Civitas Akademia. 13. Haidar Hasan Nasrullah, Muhammad Haidar Velayati, Zahra Telaga Rahmah, Lahya Alwiya Azzahra. Kalian adalah sumber motivasiku.
14. Keponakanku Alya dan Echa yang selalu memberikan keceriaan diselasela kesibukanku. 15. Semua pihak yang turut memberikan dukungan dalam penulisan skripsi ini yang tidak bisa disebutkan satu per satu Secara khusus, penulis ingin mengucapkan terima kasih setulus-tulusnya dan penghargaan yang sebesar-besarnya kepada Ibunda tercinta Nani Kurniani (alm) dan Ayahanda tercinta Wahyu Veteranto Muhammad, S.H., dukungan beserta doa ayah dan ibu sangat berarti dalam perjalanan hidupku, redup kerlip jiwaku dan senantiasa selalu menjadi pelita dalam hatiku. Kepada adik-adikku Asri Fajar Mahmudah dan Asad Haidar, dan Matahariku Angelia Laura G., A.Md, yang tiada hentinya memberikan dukungan moril dan spirituil kepada penulis hingga terselesaikannya skripsi ini, kiranya hanya Allah SWT. yang dapat membalas semua kebaikan mereka. Penulis sadar bahwa dalam penulisan skripsi ini masih terdapat banyak kekurangan baik dari segi teknik penyajian penulisan, maupun materi penulisan mengingat keterbatasan ilmu yang dimiliki penulis. Oleh karena itu, penulis sangat mengharapkan segala bentuk saran dan kritik dari semua pihak demi penyempurnaan skripsi ini. Akhir kata penulis secara pribadi berharap karya tulis ini bisa memberikan manfaat khususnya bagi penulis, dan bagi para pembaca pada umumnya.
Penulis
DAFTAR ISI
ABSTRAK ... iii KATA PENGANTAR ..... v DAFTAR ISI ... viii DAFTAR TABEL ... xii DAFTAR GAMBAR ... xv DAFTAR SIMBOL ..... xxi DAFTAR LAMPIRAN ... xxiii BAB I PENDAHULUAN .... I-1 1.1. Latar Belakang Masalah .. I-1 1.2. Identifikasi Masalah ......... I-2 1.3. Batasan Masalah .. I-3 1.4. Tujuan Penelitian . I-3 1.5. Tempat dan Waktu Penelitian .. I-4 1.6. Metodologi ........... I-4 1.6.1. Pengumpulan Data .. I-4 1.6.2. Pengembangan Perangkat Lunak .... I-5 1.7. Sistematika Penulisan .. I-5 BAB II LANDASAN TEORI . II-1 2.1. Metrologi dan Metrologi Legal .... II-1 2.1.1. Alat-alat UTTP ....II-1 2.1.2. Tera . II-1 2.1.3. Tera Ulang .. II-2
2.1.4. Kalibrasi .. II-2 2.2. Konsep Perangkat Lunak . II-2 2.2.1. Rational Unified Process (RUP) . II-2 2.2.2. Konsep Object Oriented .. II-3 2.2.3. Unified Modeling Language (UML) .. II-5 2.2.4. PHP:Hypertext Preprocessor (PHP) ... II-6 2.2.5. MySQL ... II-7 BAB III DEFINISI KEBUTUHAN ... III-1 3.1. Balai Metrologi dan Prosedur Peneraan .. III-1 3.1.1. Prosedur Tera .. III-1 3.1.2. Prosedur Tera Ulang ... III-2 3.1.3. Prosedur Kalibrasi ... III-4 3.2. Proses Bisnis III-5 3.2.1. Business Use Case Diagram ... III-5 3.2.2. Business Object Model ... III-6 3.2.3. Business Activity Diagram . III-8 3.3. Gambaran Umum . III-11 3.4. Kebutuhan Perangkat Lunak III-11 3.4.1. Deskripsi Kebutuhan ... III-11 3.4.2. Use Case Diagram ...III-15 3.4.3. Flow of Event (Skenario) III-19 BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK . IV-1 4.1. Analisis IV-1 4.1.1. Identifikasi Kelas IV-1
4.1.2. Diagram Kolaborasi IV-4 4.1.3. Diagram Kelas IV-13 4.2. Perancangan . IV-15 4.2.1. Diagram Sequence .. IV-15 4.2.2. Diagram Deployment .. IV-35 4.2.3. Diagram Package IV-35 4.2.4. Diagram Component ... IV-38 4.2.5. Rancangan Database ... IV-39 4.2.6. Rancangan User Interface ... IV-41 4.2.7. Diagram Spesifikasi Kelas .. IV-43 4.2.8. Tabel Spesifikasi Kelas ... IV-47 BAB V IMPLEMENTASI DAN PENGUJIAN V-1 5.1. Implementasi V-1 5.1.1. Lingkungan Implementasi .. V-1 5.1.1.1. Perangkat Keras Yang Digunakan . V-1 5.1.1.2. Perangkat Lunak Yang Digunakan V-2 5.1.2. Batasan Implementasi . V-2 5.1.3. Implementasi Program V-3 5.1.3.1. Implementasi Kelas V-3 5.1.3.1.1. Front Office (Pendaftaran) V-3 5.1.3.1.2. Kepala Balai .. V-3 5.1.3.1.3. Sub Bagian Tata Usaha . V-4 5.1.3.1.4. Seksi Standar Ukuran dan Kalibrasi . V-4 5.1.3.1.5. Seksi Teknik ..V-4
5.1.3.2. Implementasi Database .. V-5 5.1.3.3. Implementasi User Interface .. V-9 5.1.3.4. Implementasi Konfigurasi Apache2Triad 1.5.4 . V-11 5.1.3.5. Implementasi Konfigurasi SIP Metrologi .. V-13 5.1.3.6. Implementasi Jaringan ... V-15 5.2. Pengujian Perangkat Lunak SIP Metrologi ..V-16 5.2.1. Pengujian Aplikasi SIP Metrologi .. V-16 5.2.2. Kasus Yang Diujikan .. V-16 5.2.3. Identifikasi dan Rencana Pengujian V-16 BAB VI KESIMPULAN DAN SARAN VI-1 6.1. Kesimpulan .. VI-1 6.2. Saran VI-2 DAFTAR PUSTAKA DAFTAR RIWAYAT HIDUP LAMPIRAN-LAMPIRAN
DAFTAR TABEL
Tabel 3.1. Business Activity Diagram Pendaftaran .. III-8 Tabel 3.2. Business Activity Diagram Laporan Bulanan ..III-9 Tabel 3.3. Business Activity Diagram Inventarisir ... III-9 Tabel 3.4. Business Activity Diagram Kalibrasi ...III-10 Tabel 3.5. Business Activity Diagram Tera .. III-10 Tabel 3.6. Business Activity Diagram Tera Ulang ... III-10 Tabel 3.7. Kebutuhan Fungsional Front Office (pendaftaran) ...... III-13 Tabel 3.8. Kebutuhan Fungsional Kepala Balai ... III-13 Tabel 3.9. Kebutuhan Fungsional Sub Bagian Tata Usaha ...III-14 Tabel 3.10. Kebutuhan Fungsional Seksi Standar Ukuran dan Kalibrasi ... III-14 Tabel 3.11. Kebutuhan Fungsional Teknik . III-15 Tabel 3.12. Flow of Event Front Office 1 ... III-19 Tabel 3.13. Flow of Event Front Office 1.1 III-19 Tabel 3.14. Flow of Event Front Office 2 ... III-20 Tabel 3.15. Flow of Event Front Office 2.1 III-20 Tabel 3.16. Flow of Event Front Office 2.2 III-21 Tabel 3.17. Flow of Event Front Office 2.3 III-21 Tabel 3.18. Flow of Event Front Office 3 ... III-22 Tabel 3.19. Flow of Event Front Office 3.1 III-22 Tabel 3.20. Flow of Event Front Office 3.2 III-22 Tabel 3.21. Flow of Event Front Office 3.3 III-23 Tabel 3.22. Flow of Event Front Office 3.4 III-23
Tabel 3.23. Flow of Event Kepala Balai 1 .. III-24 Tabel 3.24. Flow of Event Kepala Balai 2 .. III-24 Tabel 3.25. Flow of Event Kepala Balai 3 .. III-24 Tabel 3.26. Flow of Event Sub Bagian Tata Usaha 1 . III-25 Tabel 3.27. Flow of Event Sub Bagian Tata Usaha 1.1 .. III-25 Tabel 3.28. Flow of Event Sub Bagian Tata Usaha 1.2 .. III-26 Tabel 3.29. Flow of Event Sub Bagian Tata Usaha 1.3 .. III-26 Tabel 3.30. Flow of Event Sub Bagian Tata Usaha 1.4 .. III-27 Tabel 3.31. Flow of Event Sub Bagian Tata Usaha 1.5 .. III-27 Tabel 3.32. Flow of Event Sub Bagian Tata Usaha 1.6 .. III-28 Tabel 3.33. Flow of Event Sub Bagian Tata Usaha 2 . III-28 Tabel 3.34. Flow of Event Sub Bagian Tata Usaha 2.1 .. III-29 Tabel 3.35. Flow of Event Sub Bagian Tata Usaha 2.2 .. III-29 Tabel 3.36. Flow of Event Sub Bagian Tata Usaha 2.3 .. III-30 Tabel 3.37. Flow of Event Sub Bagian Tata Usaha 3 . III-30 Tabel 3.38. Flow of Event Sub Bagian Tata Usaha 3.1 .. III-31 Tabel 3.39. Flow of Event Sub Bagian Tata Usaha 3.2 .. III-31 Tabel 3.40. Flow of Event Sub Bagian Tata Usaha 3.3 .. III-32 Tabel 3.41. Flow of Event Sub Bagian Tata Usaha 4 . III-32 Tabel 3.42. Flow of Event Sub Bagian Tata Usaha 4.1 .. III-33 Tabel 3.43. Flow of Event Sub Bagian Tata Usaha 4.2 .. III-33 Tabel 3.44. Flow of Event Sub Bagian Tata Usaha 4.3 III-34 Tabel 3.45. Flow of Event Seksi Kalibrasi 1 .. III-34 Tabel 3.46. Flow of Event Seksi Kalibrasi 1.1 ... III-35
Tabel 3.47. Flow of Event Seksi Teknik 1 ..III-35 Tabel 3.48. Flow of Event Seksi Teknik 1.1 ...III-36 Tabel 3.49. Flow of Event Seksi Teknik 2 ..III-36 Tabel 3.50. Flow of Event Seksi Teknik 2.1 ...III-37 Tabel 4.1. Identifikasi Kelas Front Office (Pendaftaran) ..IV-1 Tabel 4.2. Identifikasi Kelas Kepala Balai ... IV-2 Tabel 4.3. Identifikasi Kelas Sub Bagian Tata Usaha ...IV-2 Tabel 4.4. Identifikasi Kelas Seksi Sandar Ukuran dan Kalibrasi IV-3 Tabel 4.5. Identifikasi Kelas Seksi Teknik ... IV-3 Tabel 4.6. Spesifikasi Kelas Front Office (Pendaftaran) .. IV-47 Tabel 4.7. Spesifikasi Kelas Kepala Balai IV-48 Tabel 4.8. Spesifikasi Kelas Sub Bagian Tata Usaha ... IV-49 Tabel 4.9. Spesifikasi Kelas Seksi Standar Ukuran dan Kalibrasi IV-51 Tabel 4.10. Spesifikasi Kelas Seksi Teknik IV-52 Tabel 5.1. Perangkat Keras yang digunakan . V-1 Tabel 5.2. Perangkat Lunak Yang digunakan ... V-2 Tabel 5.3. Implementasi Kelas Front Office (Pendaftaran) .. V-3 Tabel 5.4. Implementasi Kelas Kepala Balai V-3 Tabel 5.5. Implementasi Kelas Sub Bagian Tata Usaha ... V-4 Tabel 5.6. Implementasi Kelas Seksi Standar Ukuran dan Kalibrasi ... V-4 Tabel 5.7. Implementasi Kelas Seksi Teknik V-4 Tabel 5.8. Implementasi Database V-5 Tabel 5.9. Identifikasi Pengujian. . V-17
DAFTAR GAMBAR
Gambar 2.1. Gambar 2.2. Gambar 2.3. Gambar 2.4. Gambar 2.5. Gambar 2.6. Gambar 2.7. Gambar 3.1. Gambar 3.2. Gambar 3.3. Gambar 3.4. Gambar 3.5. Gambar 3.6. Gambar 3.7. Gambar 3.8. Gambar 3.9. Gambar 3.10. Gambar 3.11. Gambar 3.12. Gambar 3.13. Gambar 3.14. Gambar 3.14
Model proses di RUP . II-2 Ilustrasi objek dan kelas . II-4 PHP Server side scripting .................................. II-6 MySQL Multiple Storage Engine Architecture . II-7 Buat koneksi ...II-8 Pilih database . II-8 Pengiriman Perintah MySQL .II-9 Prosedur Tera . III-1 Prosedur Tera Ulang .. III-2 Prosedur Kalibrasi ..III-4 Business Use Case Diagram .. III-5 Business Object Model Pendaftaran .. III-6 Business Object Model Laporan Bulanan ..III-6 Business Object Model Inventarisir ... III-7 Business Object Model Kalibrasi ...III-7 Business Object Model Tera . III-7 Business Object Model Tera Ulang ... III-8 Gambaran Umum ... III-11 Use Case Diagram Front Office .III-15 Use Case Diagram Kepala Balai III-16 Use Case Diagram Sub Bagian Tata Usaha ... III-17 Use Case Diagram Seksi Standar Ukuran dan Kalibrasi ... III-18
Gambar 3.16. Gambar 4.1. Gambar 4.2. Gambar 4.3. Gambar 4.4. Gambar 4.5. Gambar 4.6. Gambar 4.7. Gambar 4.8. Gambar 4.9. Gambar 4.10. Gambar 4.11. Gambar 4.12. Gambar 4.13. Gambar 4.14. Gambar 4.15. Gambar 4.16. Gambar 4.17. Gambar 4.18. Gambar 4.19. Gambar 4.20. Gambar 4.21. Gambar 4.22. Gambar 4.23.
Use Case Diagram Teknik . III-18 Diagram Kolaborasi Pendaftaran ... IV-4 Diagram Kolaborasi Periksa Client ... IV-4 Diagram Kolaborasi Kelola Client .IV-4 Diagram Kolaborasi Catat Client ... IV-5 Diagram Kolaborasi Edit Client .IV-5 Diagram Kolaborasi Hapus Client . IV-5 Diagram Kolaborasi Kelola Pembayaran Client IV-5 Diagram Kolaborasi Catat Pembayaran Client .. IV-5 Diagram Kolaborasi Cetak Tanda Terima . IV-6 Diagram Kolaborasi Cetak Bukti Pembayaran... IV-6 Diagram Kolaborasi Hapus Data Pendaftaran IV-6 Diagram Kolaborasi Melihat Data Tera .IV-6 Diagram Kolaborasi Melihat Data Tera Ulang... IV-7 Diagram Kolaborasi Melihat Data Kalibrasi.. IV-7 Diagram Kolaborasi Kelola Alat UTTP. IV-7 Diagram Kolaborasi Catat Jenis UTTP ..IV-7 Diagram Kolaborasi Edit Jenis UTTP ... IV-8 Diagram Kolaborasi Hapus Jenis UTTP IV-8 Diagram Kolaborasi Catat Alat UTTP ...IV-8 Diagram Kolaborasi Edit Alat UTTP IV-8 Diagram Kolaborasi Hapus Alat UTTP . IV-8 Diagram Kolaborasi Kelola Cap Tera IV-9 Diagram Kolaborasi Catat Cap Tera .. IV-9
Gambar 4.24. Gambar 4.25. Gambar 4.26. Gambar 4.27. Gambar 4.28. Gambar 4.29. Gambar 4.30. Gambar 4.31. Gambar 4.32. Gambar 4.33. Gambar 4.34. Gambar 4.35. Gambar 4.36. Gambar 4.37. Gambar 4.38. Gambar 4.39. Gambar 4.40. Gambar 4.41. Gambar 4.42. Gambar 4.43. Gambar 4.44. Gambar 4.45. Gambar 4.46. Gambar 4.47.
Diagram Kolaborasi Edit Cap Tera IV-9 Diagram Kolaborasi Hapus Cap Tera IV-9 Diagram Kolaborasi Kelola Standar Ukuran . IV-10 Diagram Kolaborasi Catat Standar Ukuran ... IV-10 Diagram Kolaborasi Edit Standar Ukuran . IV-10 Diagram Kolaborasi Hapus Standar Ukuran ..IV-10 Diagram Kolaborasi Kelola Pegawai . IV-10 Diagram Kolaborasi Catat Pegawai ... IV-11 Diagram Kolaborasi Edit Pegawai . IV-11 Diagram Kolaborasi Hapus Pegawai . IV-11 Diagram Kolaborasi Kelola Kalibrasi IV-11 Diagram Kolaborasi Edit Kalibrasi IV-12 Diagram Kolaborasi Kelola Tera ... IV-12 Diagram Kolaborasi Edit Tera ... IV-12 Diagram Kolaborasi Kelola Tera Ulang IV-12 Diagram Kolaborasi Edit Tera Ulang IV-13 Diagram Kelas Front Office (Pendaftaran) IV-13 Diagram Kelas Kepala Balai .. IV-13 Diagram Kelas Sub Bagian Tata Usaha . IV-14 Diagram Kelas Seksi Standar Ukuran dan Kalibrasi . IV-14 Diagram Kelas Seksi Teknik . IV-14 Diagram Sequence Catat Pendaftaran IV-15 Diagram Sequence Periksa Client ..IV-16 Diagram Sequence Kelola Client ... IV-16
Gambar 4.48. Gambar 4.49. Gambar 4.50. Gambar 4.51. Gambar 4.52. Gambar 4.53. Gambar 4.54. Gambar 4.55. Gambar 4.56. Gambar 4.57. Gambar 4.58. Gambar 4.59. Gambar 4.60. Gambar 4.61. Gambar 4.62. Gambar 4.63. Gambar 4.64. Gambar 4.65. Gambar 4.66. Gambar 4.67. Gambar 4.68. Gambar 4.69. Gambar 4.70. Gambar 4.71.
Diagram Sequence Catat Client . IV-17 Diagram Sequence Edit Client ... IV-17 Diagram Sequence Hapus Client ... IV-18 Diagram Sequence Kelola Pembayaran Client .. IV-18 Diagram Sequence Catat Pembayaran Client IV-19 Diagram Sequence Cetak Tanda Terima ... IV-19 Diagram Sequence Cetak Bukti Pembayaran IV-20 Diagram Sequence Hapus Data Pendaftaran . IV-20 Diagram Sequence Melihat Data Tera IV-21 Diagram Sequence Melihat Data Tera Ulang IV-21 Diagram Sequence Melihat Data Kalibrasi IV-22 Diagram Sequence Kelola Alat UTTP ...IV-22 Diagram Sequence Catat Jenis UTTP IV-23 Diagram Sequence Edit Jenis UTTP ..IV-23 Diagram Sequence Hapus Jenis UTTP .. IV-24 Diagram Sequence Catat Alat UTTP . IV-24 Diagram Sequence Edit Alat UTTP ...IV-25 Diagram Sequence Hapus Alat UTTP ... IV-25 Diagram Sequence Kelola Cap Tera .. IV-26 Diagram Sequence Catat Cap Tera IV-26 Diagram Sequence Edit Cap Tera .. IV-27 Diagram Sequence Hapus Cap Tera .. IV-27 Diagram Sequence Kelola Standar Ukuran ... IV-28 Diagram Sequence Catat Standar Ukuran ..IV-28
Gambar 4.72. Gambar 4.73. Gambar 4.74. Gambar 4.75. Gambar 4.76. Gambar 4.77. Gambar 4.78. Gambar 4.79. Gambar 4.80. Gambar 4.81. Gambar 4.82. Gambar 4.83. Gambar 4.84. Gambar 4.85. Gambar 4.86. Gambar 4.87. Gambar 4.88. Gambar 4.89. Gambar 4.90. Gambar 4.91. Gambar 4.92. Gambar 4.93. Gambar 4.94. Gambar 4.95.
Diagram Sequence Edit Standar Ukuran ... IV-29 Diagram Sequence Hapus Standar Ukuran IV-29 Diagram Sequence Kelola Pegawai ... IV-30 Diagram Sequence Catat Pegawai . IV-30 Diagram Sequence Edit Pegawai ... IV-31 Diagram Sequence Hapus Pegawai ... IV-31 Diagram Sequence Kelola Kalibrasi .. IV-32 Diagram Sequence Edit Kalibrasi .. IV-32 Diagram Sequence Kelola Tera . IV-33 Diagram Sequence Edit Tera . IV-33 Diagram Sequence Kelola Tera Ulang .. IV-34 Diagram Sequence Edit Tera Ulang .. IV-34 Diagram Deployment . IV-35 Diagram Package Front Office (Pendaftaran) IV-35 Diagram Package Kepala Balai . IV-36 Diagram Package Sub Bagian Tata Usaha .IV-36 Diagram Package Seksi Kalibrasi .. IV-37 Diagram Package Seksi Teknik . IV-37 Diagram Package Keseluruhan .. IV-38 Diagram Component SIP Metrologi .. IV-38 Rancangan Database CDM IV-39 Rancangan Database PDM IV-40 Rancangan User Interface login . IV-41 Rancangan User Interface control panel IV-41
Rancangan User Interface reporting .. IV-42 Rancangan User Interface form baru dan ubah ..IV-42 Diagram Spesifikasi Kelas Front Office (Pendaftaran) . IV-43 Diagram Spesifikasi Kelas Kepala Balai ... IV-44
Gambar 4.100. Diagram Spesifikasi Kelas Sub Bagian Tata Usaha .. IV-45 Gambar 4.101. Diagram Spesifikasi Kelas Seksi S.U.K. ... IV-46 Gambar 4.102. Diagram Spesifikasi Kelas Seksi Teknik ... IV-46 Gambar 5.1. Gambar 5.2. Gambar 5.3. Gambar 5.4. Gambar 5.5. Gambar 5.6. Implementasi User Interface Login ... V-9 Implementasi User Interface Control Panel ... V-10 Implementasi User Interface Reporting . V-10 Implementasi User Interface Form Baru da Ubah . V-11 Setting password root V-12 Apache2Triad Manager . V-13
DAFTAR SIMBOL
SIMBOL RATIONAL ROSE Actor, entitas eksternal yang berinteraksi dengan sistem yang sedang dibangun.
NewClass
Business actor, orang, perusahaan, atau entitas diluar organisasi yang berinteraksi dengan
NewClass
proses bisnis.
Undirectional association Dependencies or instantiates << include >> << extend >> Include use case Extend use case Boundary class, kelas yang membatasi interaksi antara sistem dan dunia lainnya.
NewClass
Control class (manager class), kelas yang mengendalikan pemanggilan kelas lain, control
NewClass2
class memiliki aturan-aturan dari bisnis. Entity class, kelas yang menyimpan informasi yang nantinya mungkin akan disimpan dalam
NewClass3
NewClass4
Package
NewPackag e
NewCo mponent
Component
Database component
MySQL database
Processor
Processor
Connection
DAFTAR LAMPIRAN
1 2 3
Beberapa Deskripsi dan Hasil Uji Listing Program Tanda Terima dan Bukti Pembayaran
BAB I PENDAHULUAN
Bab ini berisikan latar belakang penelitian, perumusan masalah, tujuan penelitian, pembatasan masalah, dan sistematika penulisan. 1.1 Latar Belakang Masalah Balai Metrologi (UU Nomor 2 Tahun 1981 tentang Metrologi legal) wilayah Surakarta merupakan salah satu Unit Pelaksana Teknis Dinas Perdagangan propinsi Jawa Tengah (Peraturan daerah Propinsi Jawa Tengah Nomor 1 Tahun 2002 tentang Pembentukan, Kedudukan Tugas Pokok, fungsi dan Susunan Organisasi Unit Pelaksana teknis 19 Dinas Propinsi Jawa Tengah), memiliki empat tugas pokok : 1. Melakukan pengelolaan standar ukuran dan laboratorium. 2. Melakukan tera dan tera ulang alat-alat ukur, takar, timbang dan perlengkapannya (UTTP) serta kalibrasi alat ukur. 3. Melaksanakan pengawasan terhadap alat-alat UTTP dan Barang-barang Dalam Kemasan (BDKT). 4. Melakukan penyuluhan kemetrologian. Dalam pelaksanaannya Balai Metrologi wilayah Surakarta memiliki beberapa tugas bulanan yang salah satunya adalah Laporan Bulanan Balai Metrologi Wilayah Surakarta yang harus diserahkan kepada Dinas Perdagangan Propinsi Jawa Tengah, yang didalamnya mencakup laporan Tera dan Tera Ulang Laporan Bulanan Balai Metrologi Wilayah Surakarta merupakan salah satu sumber informasi yang sangat dibutuhkan baik bagi Dinas Perdagangan propinsi
Jawa Tengah dan Balai Metrologi Wilayah Surakarta secara langsung, maupun konsumen dari Balai Metrologi secara tidak langsung. Laporan Bulanan ini juga dibutuhkan untuk melihat perkembangan Balai Metrologi Wilayah Surakarta dan juga Dinas Perdagangan propinsi Jawa Tengah, yang nantinya akan menjadi pertimbangan dalam perumusan sebuah kebijakan. Dalam pengelolaannya laporan bulanan ini memerlukan waktu pengerjaan 1 2 minggu, tidak jarang deadline penyerahan laporan bulanan tidak terpenuhi. Dalam pencarian data juga memerlukan waktu dan tenaga yang banyak karena data harus terlebih dulu dicari lalu disusun ulang secara manual tergantung kebutuhan, sedangkan kebutuhan akan data seringkali mendesak dan beragam. Oleh karena itu penulis mengajukan sebuah alternatif solusi menggunakan Teknologi Informasi, sehingga nantinya akan ditemukan jawaban dari permasalahan tersebut.
1.2 Identifikasi Masalah Berdasarkan pengamatan penulis perangkat lunak nantinya harus memiliki kemampuan dalam menangani permasalahan sebagai berikut : 1. Penyaluran data yang masih konvensional (dokumen diantarkan secara fisik) berdasarkan susunan organisasi yang terbagi menjadi 4 divisi (dengan ruangan yang terpisah), laporan harus menunggu semua data yang dibutuhkan terkumpul lalu di susun kembali sehingga menjadi satu laporan yang utuh, disini terjadi repetisi pekerjaan sehingga menambah waktu pengerjaan laporan.
2. Dengan sistem pengarsipan konvensional, proses pencarian data dengan filter tertentu membutuhkan waktu yang relatif lama (1 2 hari tergantung banyaknya data dan jenis filternya), sehingga banyak ditemukan kebutuhan yang tidak terpenuhi tepat pada waktunya, hal ini berubungan erat dengan kinerja Metrologi dalam melayani client-nya.
1.3 Batasan Masalah Dalam melakukan penelitian dan penganalisaan ini penulis akan membatasi ruang lingkup permasalahan yang akan ditangani. Ruang lingkup dibatasi pada : 1. Perangkat lunak hanya bertujuan membantu tugas pokok Balai Metrologi dalam melakukan tera dan tera ulang alat-alat UTTP serta kalibrasi alat ukur. 2. Perangkat lunak yang akan dikembangkan masih berupa prototype. 3. Pengembangan perangkat lunak mengacu pada Peraturan Daerah Propinsi Jawa Tengah yang masih berlaku saat diadakan penelitian (Tahun 2006).
1.4 Tujuan Penelitian Tujuan yang ingin dicapai dalam penelitian antara lain : 1. Merancang sebuah perangkat lunak yang mampu membantu melaksanakan salah satu dari empat tugas pokok Metrologi yaitu, melakukan tera dan tera ulang alat-alat UTTP serta kalibrasi alat ukur. 2. Membuat sebuah Perangkat Lunak yang sesuai dengan rancangan sistem, Perangakat Lunak tersebut akan dinamai SIstem Pengolahan laporan bulanan (SIP) Metrologi Surakara.
1.5 Tempat dan Waktu Penelitian Penelitian dilakukan di Balai Metrologi Wilayah Surakarta Jl. Brig. Jend Slamet Riyadi No. 368 Surakarta Telp. (0271) 717609 Fax (0271) 733502 Kodepos 57141. Waktu yang dibutuhkan dalam penelitian terhitung dari awal penelitian, hari Senin 17 April 2006 hingga Jumat 5 Mei 2006, 3 (tiga) minggu hari kerja.
1.6 Metodologi Metodologi yang digunakan dibagi menjadi dua, tahap pengumpulan data dan pengembangan perangkat lunak. 1.6.1 Pengumpulan Data Pengumpulan data disini bertujuan untuk mendapatkan informasi tentang tera dan tera ulang alat-alat UTTP serta kalibrasi alat ukur. Tahapnya antara lain: 1. Survei Pengumpulan data dilakukan dengan wawancara dan bimbingan dari orangorang yang bertanggung jawab pada divisi masing-masing, dan juga para pegawai yang memiliki pengalaman di bidang kemetrologian. 2. Studi Literatur Pengumpulan data dilakukan dengan mempelajari teori-teori dari buku-buku dan juga Undang-Undang beserta Peraturan Daerah yang bersangkutan.
1.6.2 Pengembangan Perangkat Lunak Tahap pengembangan perangkat lunak ini menggunakan metode permodelan berorientasi objek Rational Unified Process (RUP). Dengan tahapan kerja : 1. Business modeling, tahap ini mencoba memahami dan memodelkan persoalan yang ada. 2. Pendefinisian kebutuhan, menterjemahkan kebutuhan dari persoalan menjadi perilaku sistem yang terotomatisasi. 3. Analisis dan Perancangan, tahap ini menterjemahkan kebutuhan menjadi sebuah arsitektur perangkat lunak. 4. Implementasi, merupakan penciptaan sebuah perangkat lunak yang
berkesesuaian dengan arsitektur yang telah dimodelkan pada tahap analisis dan perancangan, dan juga memiliki perilaku sesuai dengan kebutuhan yang telah dimodelkan pada tahapan pendefinisian kebutuhan. 5. Pengujian, tahap ini memastikan perilaku atau proses yang dari perangkat lunak yang telah diciptakan, ada dan sesuai dengan kebutuhan yang telah dimodelkan.
1.7 Sistematika Penulisan Penulisan skripsi ini akan dibahas dan disusun bab demi bab dengan sistematika penulisan sebagai berikut : BAB I PENDAHULUAN
Pada bab ini menjelaskan mengenai latar belakang masalah, identifikasi masalah, batasan masalah, tujuan penelitian, tempat dan waktu penelitian, metodologi penelitian, serta sistematika penulisan.
BAB II
LANDASAN TEORI
Bab ini meliputi teori - teori yang relevan dengan masalah pokok yang akan dikaji. BAB III DEFINISI KEBUTUHAN
Bab ini memodelkan permasalahan dan kebutuhan sistem yang ada sehingga nantinya akan lebih memudahkan tahap analisis dan perancangan. BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK
Bab ini berisi mengenai tahap untuk mengidentifikasi kebutuhan perangkat lunak, pembuatan model fungsional. Tahap ini akan dijadikan sebagai acuan dalam melakukan pengkodean. BAB V IMPLEMENTASI DAN PENGUJIAN
Pada bab ini merupakan tahap perancangan perangkat lunak SIP Metrologi yang terdiri dari: perancangan basis data, desain antar muka pengguna beserta keterkaitan antar kelas. Serta pengujian terhadap perangkat lunak yang telah diimplementasikan. BAB VI KESIMPULAN DAN SARAN
Bab ini berisi rumusan dasar hasil analisa bab-bab sebelumnya. Serta saran untuk menjadikan langkah lebih maju dan lebih baik dalam menganalisa suatu masalah.
2.1 Metrologi dan Metrologi Legal Metrologi adalah ilmu yang mempelajari tentang ukur mengukur secara luas, sedangkan Metrologi Legal adalah metrologi yang berhubungan dengan satuansatuan ukuran, metoda-metoda pengukuran dan alat-alat ukur, takar, timbang, dan perlengkapanya, serta syarat-syarat teknik dan peraturan berdasarkan UndangUndang yang bertujuan melindungi kepentingan umum dalam hal kebenaran pengukuran. 2.1.1 Alat-alat UTTP Alat UTTP disini adalah alat-alat yang dipergunakan dibidang Metrologi Legal. Berdasarkan keperluan penggunaannya, alat-alat ukur, takar, timbang dan perlengkapannya terdiri atas : a. Yang digunakan unutuk keperluan yang menyangkut kepentingan umum. b. Yang digunakan untuk keperluan pengawasan (kontrol perusahaan), dan c. Yang khusus hanya digunakan untuk keperluan rumah tangga. 2.1.2 Tera Tera adalah suatu kegiatan menandai dengan tanda Tera sah atau tanda Tera batal yang berlaku, atau memberikan keterangan-keterangan tertulis yang bertanda Tera sah atau tanda Tera batal yang berlaku, dilakukan oleh pegawai yang berhak melakukannya berdasarkan pengujian yang dijalankan atas alat-alat UTTP yang belum dipakai, sesuai persyaratan dan atau ketentuan yang berlaku.
2.1.3 Tera Ulang Tera Ulang adalah suatu kegiatan menandai berkala dengan tanda Tera sah atau Tera batal yang berlaku, dilakukan oleh pegawai yang berhak melakukannya berdasarkan pengujian yang dijalankan atas alat-alat UTTP yang telah di Tera. 2.1.4 Kalibrasi Kalibrasi adalah kegiatan untuk menentukan kebenaran konvensional nilai penunjukan alat ukur dan bahan ukur dengan membandingkan dengan standar ukurnya yang mampu telusur (traceable) ke Standar Nasional atau Internasional untuk Satuan Ukuran.
2.2 Konsep Perangkat Lunak Bab ini akan menjelaskan Rational unified process, konsep object oriented, PHP:Hypertext Preprocessor dan MySQL. 2.2.1 Rational Unified Process (RUP) Dalam bentuk yang paling sederhana RUP terdiri dari beberapa tahapan kerja dasar, dalam gambar 2.1. ditunjukan pada poros vertikal (organization along content) :
1. Business Modeling atau Business Engineering Tahapan kerja ini, memodelkan permasalahan yang ada sehingga nantinya akan didapat sebuah rumusan kebutuhan bisnis. 2. Requirements Tahapan yang menterjemahkan kebutuhan bisnis menjadi perilaku sistem yang terotomatisasi. 3. Analysis and Design Pada tahapan ini dihasilkan sebuah arsitektur perangkat lunak berdasarkan model-model kebutuhan dari tahap requirements. 4. Implementation Merupakan tahap penciptaan perangkat lunak berdasarkan arsitektur yang telah dibuat pada tahap analisis dan desain, dan memiliki perilaku seperti yang telah dimodelkan pada tahap requirements. 5. Test Tahapan untuk memastikan bahwa perangkat lunak yang dikembangkan memenuhi semua kebutuhan yang telah dimodelkan. 6. Environment Tahapan menyiapkan dan menjaga lingkungan pengembangan. 7. Deployment Tahapan penyiapan semua yang dibutuhkan untuk menjalankan seluruh proyek. 2.2.2 Konsep Object Oriented Konsep object oriented atau berorientasi objek, merupakan suatu cara berpikir dan berlogika yang melihat permasalahan lewat pengamatan dunia nyata dimana
setiap objek adalah entitas tunggal yang memiliki kombinasi struktur data dan fungsi tertentu. Objek dapat dikelompokkan/diklasifikasikan menjadi satu kelas tunggal.
Proses pendaftaran alat-alat UTTP
Kelas Pendaftaran
Tugas bagian pendaftaran : 1. Mencatat data pendaftaran 2. Memberikan bukti pembayaran Client Pendaftaran
Divisi Teknik
Pada gambar 2.2. client, petugas pendaftaran, serta petugas divisi teknik merupakan entitas tunggal atau objek, sedangkan tugas bagian pendaftaran merupakan fungsi yang ada didalam objek pendaftaran. Untuk membungkus proses yang berjalan di bagian pendaftaran, maka bagian pendaftaran dapat dikelompokkan sebagai sebuah kelas dalam proses pendaftaran alat-alat UTTP. Pada metoda ini penekanannya ada pada obyek dan bukan pada proses, pendekatan berorientasi obyek ini memungkinkan seorang analisis dan perancang sistem berkonsentrasi pada apa dan bukan pada bagaimana. Paradigma berorientasi obyek memandang aplikasi dengan cara yang berbeda. Dengan pendekatan ini, kita membagi aplikasi menjadi banyak potonganpotongan kecil, atau obyek, yang cukup bebas antara satu dengan lainnya. Kita kemudian dapat membangun aplikasi dengan menggabungkan/merekatkan semua obyek ini bersama.
Dalam konsep konsep Object Oriented dikenal Polimorfisme, Inheritance (Pewarisan), dan Encapsulation (Pembungkusan). Polimorfisme, yaitu konsep yang menyatakan bahwa suatu fungsi yang sama dapat diterapkan dan dapat dimiliki oleh kelas-kelas yang berlainan. Inheritance, pewarisan ini pada dasarnya adalah berbagi atribut dan operasi antarkelas berdasarkan hierarki kelas. Pewarisan akan sangat mengurangi perulangan penulisan kode dan mungkin merupakan salah satu keunggulan utama rekayasa perangkat lunak, karena memungkinan penulisan kode yang lebih sedikit tanpa mengorbankan esensi perangkat lunak secara keseluruhan. Encapsulation, Pembungkusan berarti meninggalkan aspek eksternal dari objek yang dapat diakses oleh objek lain dan memfokuskan diri pada implementasi internal suatu objek. Keuntungan pembungkusan adalah memungkinkan seseorang menggunakan (memanfaatkan fungsi-fungsi serta layanan) suatu komponen yang diciptakan dengan konsep pembungkusan tanpa mengetahui rincian implementasinya. 2.2.3 Unified Modelling Process (UML) UML adalah sebuah "bahasa" yg telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep
dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan
syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML diturunkan dari 3 notasi yang telah ada sebelumnya : Grady Booch - Object-Oriented Design (OOD), Jim Rumbaugh Object Modeling Technique (OMT), dan Ivar Jacobson - Object-Oriented Software Engineering (OOSE). Didalam UML terdapat Use Case Diagram, Class Diagram, Sequence Diagram, Collaboration Diagram, dan Deployment Diagram. 2.2.4 PHP:Hypertext Preprocessor (PHP) PHP masuk kedalam kategori server-side scripting dimana browser pada client tidak lagi bertanggung jawab dalam menjalankan kode-kode PHP, melainkan web server. Proses ini diilustrasikan kedalam gambar 2.3.
W eb Host
1 W eb S erver (Apache) Request File.php
File.php
2 P hp E ngine
File.php (HTM L)
Pertama-tama web browser pada client me-request sebuah file (1). Dalam kasus ini bagaimanapun juga file yang di-request ber-ekstensi/berakhiran .php (contoh: File.php), tanda bahwa didalam file tersebut terkandung kode-kode PHP
yang perlu diproses oleh server. Web server mengenali file ini dan tidak mengirim file tersebut langsung ke browser, tetapi dikirim ke PHP scripting engine (2) (mesin pengolah kode-kode PHP). PHP engine merupakan komponen perangkat lunak dari server yang mampu mengartikan kode-kode PHP dan memberikan output dalam kode HTML. Setiap kode PHP dapat memberikan output kode HTML yang berbeda, tergantung pada jenis request dari client (browser). Proses tersebut membangkitkan halaman HTML secara dinamis lalu dikirimkan kembali ke client (browser) untuk merespon terhadap request yang sebelumnya telah dikirimkan (3). Pemrograman disisi server biasanya digunakan untuk membuat sebuah website yang interaktif yang dihubungkan kedalam basis data atau data store lain. 2.2.5 MySQL MySQL merupakan sebuah database management system dengan kemampuan multi-threaded, multi-user dan meningkatan fungsi Structured Query Language (SQL) terutama dengan PHP5 yang sudah memiliki fungsi built-in untuk melakukan koneksi dengan MySQL.
MySQL merupakan sebuah relational database management system, yang menyimpan data pada tabel yang terpisah daripada menyatukan semua data dalam satu tabel yang besar, hal ini dapat meningkatkan kecepatan dan fleksibilitas. Tabel-tabel dihubungkan melalui relasi-relasi tertentu sehingga memungkinkan untuk mengkombinasikan data dari berbagai tabel sesuai dengan permintaan, melalui SQL yang telah menjadi bahasa standar yang umum untuk mengakses database. Untuk dapat mengendalikan MySQL server dari dalam program ada tiga hal yang perlu diperhatikan: 1. Buat koneksi dengan MySQL server dengan memasukkan alamat host dari MySQL, biasanya berupa alamat Internet Protocol(IP) lalu, user terdaftar beserta kata sandinya. Jika host ditemukan dan user tersebut terdaftar maka koneksi akan dimulai.
1.
Send ( IP host, user,password )
2.
Pemilihan database yang akan digunakan. Pemilihan database dilakukan dengan menggunakan fungsi khusus dari PHP.
2.
Send ( nama database )
3.
3.1 Balai Metrologi dan Prosedur Peneraan Balai Metrologi wilayah Surakarta merupakan salah satu Unit Pelaksana Teknis Dinas Perdagangan propinsi Jawa Tengah, dengan salah satu tugas pokoknya, melakukan Tera dan Tera ulang alat-alat Ukur, Takar, Timbang dan Perlengkapannya (UTTP) serta Kalibrasi alat ukur. 3.1.1 Prosedur Tera Prosedur Tera berdasarkan Keputusan Kepala Disperindag Propinsi Jateng. Nomor : 821.05/530.1/2005. Tanggal 7 Maret 2005.
PROSEDUR TERA
WAJIB TERA PENGUJIAN - MATERIAL - UNJUK KERJA MEMENUHI SYARAT PEMBAYARAN BIAYA TERA
PENDAFTARAN
SAH
UTTP UNTUK KEPERLUAN - KEPENTINGAN UMUM, USAHA - MENYERAHKAN / MENERIMA BARANG - MENENTUKAN PUNGUTAN / UPAH PRODUK AKHIR - MELAKUKAN PERUNDANG-UNDANGAN
1. Di kantor a. Mengajukan permohonan tertulis. b. Mengisi formulir yang disediakan. c. Pengujian oleh pegawai berhak, meliputi : Pengujian material.
d. Pembayaran biaya Tera di loket pembayaran. e. Pembubuhan cap tanda Tera. f. Penyerahan alat UTTP. 2. Di luar kantor a. Mengajukan permohonan tertulis. b. Penentuan waktu pelaksanaan. c. Pengujian oleh pegawai berhak, meliputi : Pengujian material. Pengujian unjuk kerja.
d. Jika huruf c memenuhi syarat teknis, pembubuhan cap tanda Tera. e. Penyerahan alat UTTP. f. Pembayaran uang Tera diloket pembayaran Kantor Balai Metrologi. 3.1.2 Prosedur Tera Ulang Prosedur Tera Ulang berdasarkan Keputusan Kepala Disperindag Propinsi Jateng. Nomor : 821.05/530.1/2005. Tanggal 7 Maret 2005.
PROSEDUR TERA ULANG
WAJIB TERA ULANG PENGUJIAN - MATERIAL - UNJUK KERJA MEMENUHI SYARAT PEMBAYARAN BIAYA TERA
PENDAFTARAN
SAH
REPARATIR
UTTP UNTUK KEPERLUAN - KEPENTINGAN UMUM, USAHA - MENYERAHKAN / MENERIMA BARANG - MENENTUKAN PUNGUTAN / UPAH PRODUK AKHIR - MELAKUKAN PERUNDANG-UNDANGAN
1. Di kantor g. Mengajukan permohonan tertulis. h. Mengisi formulir yang disediakan. i. Pengujian oleh pegawai berhak, meliputi : Pengujian material. Pengujian unjuk kerja.
j. Pembayaran biaya Tera di loket pembayaran. k. Pembubuhan cap tanda Tera. l. Penyerahan alat UTTP. 2. Di luar kantor a. Mengajukan permohonan tertulis. b. Penentuan waktu pelaksanaan. c. Pengujian oleh pegawai berhak, meliputi : Pengujian material. Pengujian unjuk kerja.
d. Jika huruf c memenuhi syarat teknis, pembubuhan cap tanda Tera. e. Penyerahan alat UTTP. f. Pembayaran uang Tera diloket pembayaran Kantor Balai Metrologi.
3.1.3 Prosedur Kalibrasi Prosedur Tera Ulang berdasarkan Keputusan Kepala Disperindag Propinsi Jateng. Nomor : 821.05/530.1/2005. Tanggal 7 Maret 2005.
PROSEDUR KALIBRASI ALAT UKUR
Permohonan KONSUMEN - Tanda Terima - Identifikasi Alat Alat ukur yang tidak dapat dikalibrasi Alat ukur yang dapat dikalibrasi
Pembayaran
Kalibrasi
Perhitungan Data
1. Di Kantor. a. Mengajukan permohonan tertulis. b. Menyerahkan alat ukur kepada petugas penerima. c. Pengkondisian alat. d. Pengkalibrasian alat. e. Pembuatan sertifikat. f. Pembayaran biaya kalibrasi diloket pembayaran. g. Pembubuhan tanda Tera. h. Penyerahan alat ukur dari petugas ke pemilik. 2. Di Luar Kantor a. Mengajukan permohonan tertulis. b. Menentukan waktu pelaksanaan.
c. Pengkondisian alat. d. Pengkalibrasian alat. e. Pembuatan sertifikat. f. Pembayaran biaya kalibrasi diloket pembayaran. g. Pembubuhan tanda Tera. h. Penyerahan alat ukur dari petugas ke pemilik.
3.2 Proses Bisnis Proses bisnis menggambarkan interaksi antara aktor dengan sistem, seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. 3.2.1 Business Use Case Diagram
Client
Pendaftaran
Kepala Balai
Inventarisir
Seksi SUK
Kalibrasi
Tera Ulang
3.2.2 Business Object Model Business Object Model digunakan untuk merepresentasikan fungsionalitas dari sebuah organisasi secara keseluruhan. A. Business Object Model Pendaftaran.
Form Registrasi
Client
Data Client
Laporan Tera
Data Kalibrasi
Data UTTP
Data Sertifikasi
Data Petugas
Data Petugas
Sie. Teknik
Operator Teknik
Laporan Tera
Data Petugas
Sie. Teknik
Operator Teknik
3.2.3 Business Activity Diagram Business Activity Diagram digunakan untuk mengilustrasikan aliran fungsional dalam sebuah sistem, dalam business modeling, activity diagram berguna untuk menggambarkan aliran bisnis atau business workflow. A. Business Activity Diagram Pendaftaran.
Tabel 3.1. Business Activity Diagram Pendaftaran.
Client Front Officer
Daftar
Tagih tunggakan
Minta laporan
3.3 Gambaran Umum Merupakan gambaran struktur dan hubungan antar komponen dari sistem keseluruhan secara fisik.
Kepala Balai
Sub Bag. TU
3C om
Web + DB Server
3.4 Kebutuhan Perangkat Lunak Kebutuhan perangkat lunak merupakan faktor-faktor yang harus dipenuhi untuk merancang sebuah perangkat lunak sehingga perangkat lunak tersebut sesuai dengan maksud dan tujuan perangkat lunak tersebut di buat. 3.4.1 Deskripsi Kebutuhan Penjelasan mengenai kebutuhan perangkat lunak akan dibagi menjadi dua, yaitu kebutuhan antarmuka eksternal dan kebutuhan fungsional.
A. Kebutuhan Antarmuka Eksternal. Perangkat lunak SIP Metrologi yang dibangun membutuhkan perangkat lunak lain sebagai penunjang agar SIP Metrologi dapat berjalan sesuai dengan fungsinya. Kebutuhan tersebut antara lain: 1. Antarmuka pemakai. Sebagai penunjang antarmuka pemakai dari perangkat lunak, diperlukan web browser yang mendukung Document Object Model (DOM) level 1, seperti: Internet Explorer 6, Mozilla Firefox 1.5, atau yang setara. 2. Antarmuka komunikasi. Untuk komunikasi antara server dan client akan menggunakan protokol TCP/IP. Oleh karena itu dibutuhkan perangkat keras RJ45 LAN Card (Realtek RTL 8139 PCI Fast Ethernet Adapter 10/100Mbps) pada setiap komputer yang masuk ke dalam sistem. Untuk membentuk sebuah topologi jaringan star maka akan dibutuhkan sebuah hub (8 port RJ45) untuk menghubungkan tiap komputer. 3. Aplikasi server Dibutuhkan dua jenis server untuk memusatkan proses dari perangkat lunak, yaitu web server dan database server. Untuk web server-nya dapat menggunakan aplikasi Apache 2.2.0 dan untuk database server-nya menggunakan MySQL 5.0.8. Aplikasi server ini akan mengatur request ke server dan juga respon terhadap request dari server ke client
B. Kebutuhan Fungsional. Merupakan kebutuhan secara fungsional yang harus dipenuhi oleh perangkat lunak yang akan dibangun. Kebutuhan fungsional tersebut akan dideskripsikan dalam bentuk tabel, sebagai berikut: 1. Front Office (Pendaftaran).
Tabel 3.7. Kebutuhan Fungsional Front Office (Pendaftaran).
No 1
Deskripsi Kebutuhan Mencatat pendaftaran Periksa Client include: Mencatat client Kelola client. Mencatat client Merubah (edit) client Menghapus client Kelola pembayaran client. Mencatat pembayaran client. Mencetak tanda terima. Mencetak bukti pembayaran Menghapus pendaftaran
2. Kepala Balai.
Tabel 3.8. Kebutuhan Fungsional Kepala Balai.
No 1 2 3
Deskripsi Kebutuhan Melihat data Tera. Melihat data Tera Ulang. Melihat data Kalibrasi
No 1
Deskripsi Kebutuhan Kelola alat UTTP. Mencatat jenis UTTP Merubah (edit) jenis UTTP Menghapus jenis UTTP Mencatat UTTP Merubah (edit) UTTP Menghapus UTTP Kelola cap tera. Mencatat cap tera Merubah (edit) cap tera Menghapus cap tera Kelola standar ukuran. Mencatat standar ukuran Merubah (edit) standar ukuran Menghapus standar ukuran Kelola pegawai. Mencatat pegawai. Merubah (edit) pegawai Menghapus Pegawai.
No 1 2
5. Seksi Teknik.
Tabel 3.11. Kebutuhan Fungsional Seksi Teknik.
No 1
Deskripsi Kebutuhan
Merubah (edit) Tera. kelola Tera Ulang. Merubah (edit) Tera ulang.
Req-TK-2 Req-TK-2.1
3.4.2 Use Case Diagram Use case diagram merupakan diagram yang menggambarkan semua kasus (case) yang akan ditangani oleh perangkat lunak beserta aktor atau pelakunya. 1. Front Office (Pendaftaran).
<<include>>
Pendaftaran
<<include>>
periksa client
<<extend>>
Catat client
Hapus client
<<extend>>
<<extend>>
Hapus Pendaftaran
2. Kepala Balai.
Kepala Balai
<<extend>>
<<extend>>
Hapus jenis UTTP Sub Bag. Tata Usaha Kelola Standar Ukuran <<extend>> <<extend>> Catat Standar Ukuran
<<extend>>
Kelola pegawai
<<extend>> <<extend>>
<<extend>>
Hapus pegawai
Gambar 3.15. Use Case Diagram Seksi Standar Ukuran dan Kalibrasi.
5. Seksi Teknik.
<<extend>>
Kelola tera
Edit Tera
3.4.3 Flow of Event (Skenario) Skenario merupakan penjelasan lebih detail dari kasus (case) dari awal hingga akhirnya diperoleh sebuah output. 1. Front Office (Pendaftaran).
Tabel 3.12. Flow of Event Front Office 1.
Identifikasi 1.0 Mencatat data pendaftaran Proses untuk mencatat data pendaftaran client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Pendaftaran 2 Form pendaftaran tampil, beserta tanggal pendaftaran dan kode pendaftaran. 3 Masukkan id client, klik tombol 4 Data pembayaran client tampil. periksa. 5 Masukan jenis pendaftaran, tempat 6 Konfirmasi dari sistem bahwa data pelaksanaan, beserta data UTTP, klik pendaftaran baru berhasil di simpan simpan ke dalam database Kondisi Akhir Data pendaftaran baru tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.1 Periksa Client Proses untuk melihat data client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman form pendaftaran baru tampil dilayar No Aksi Aktor No Respon Sistem 1 Masukkan kode client, klik tombol 2 Data client tampil. periksa. Kondisi Akhir Data client tampil di sebelah kanan form pendaftaran Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.0 Kelola client Proses untuk mengelola data client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Client 2 Form pencarian data client tampil, beserta data client yang telah terdaftar Kondisi Akhir Data client tampil Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Tabel 3.15. Flow of Event Front Office 2.1.
Identifikasi 2.1 Mencatat data client Proses untuk mencatat data client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu client 2 Form pencarian data client tampil, beserta data client yang telah terdaftar 3 Klik tombol baru 4 Form client baru tampil 5 Masukan data client, klik simpan 6 Konfirmasi dari sistem bahwa data client baru berhasil di simpan ke dalam database Kondisi Akhir Data client baru tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.2 Edit client Proses untuk merubah data client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu Pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu client 2 Form pencarian data client tampil, beserta data client yang telah terdaftar 3 Klik tombol ubah 4 Form ubah client tampil 5 Masukan data client, klik simpan 6 Konfirmasi dari sistem bahwa data client baru berhasil di simpan ke dalam database Kondisi Akhir Data client disimpan kembali kedalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.3 Hapus client Proses menghapus data client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu Pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Client 2 Form pencarian client tampil, beserta data client yang telah terdaftar 3 Ceklist pada record yang ingin 4 Konfirmasi penghapusan tampil dihapus lalu klik hapus 5 Klik Ok 6 Konfirmasi dari sistem bahwa data telah berhasil dihapus dari database Kondisi Akhir Data Client terhapus dari database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.0 Kelola Pembayaran Client Proses untuk mengelola data pembayaran client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Pembayaran 2 Form pencarian data pembayaan client tampil, beserta data pembayaran yang telah terdaftar Kondisi Akhir Data pembayaran tampil Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.1 Mencatat pembayaran client Proses mencatat pembayaran client Primer, essensial Front Officer, Client Skenario Utama Kondisi Awal Halaman menu pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu pembayaran 2 Data pembayaran tampil. 3 Pilih data registrasi yang akan dibayar 4 Form rincian pembayaran tampil 5 Masukan data pembayaran, klik 6 Konfirmasi dari sistem bahwa data simpan pembayaran client ybs berhasil dimasukkan Kondisi Akhir Data pembayaran client tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.2 Cetak tanda terima Proses untuk mencetak tanda terima untuk client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu pendaftaran tampil dilayar No Aksi Aktor No Aksi Aktor 1 Klik menu pembayaran 2 Daftar pembayaran tampil 3 klik tanda terima pada kode registrasi 4 Halaman tampilan cetak tampil yang ingin dicetak Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Klik tombol Ok
Kondisi Akhir
Data tanda terima dikirim ke printer. Halaman tampilan cetak tampil di layar dan dikirim ke printer untuk dicetak.
Identifikasi 3.3 Cetak bukti pembayaran client Proses untuk mencetak bukti pembayaran untuk client Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu pembayaran 2 Daftar pembayaran tampil 3 klik faktur pada kode registrasi yang 4 Halaman tampilan cetak tampil ingin dicetak 5 Klik tombol Ok 6 Data faktur dikirim ke printer. Kondisi Akhir Rincian pembayaran tampil di layar dan dikirimkan ke printer untuk di cetak Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.4 Hapus Pendaftaran Proses menghapus data Pendaftaran Primer, essensial Front Officer Skenario Utama Kondisi Awal Halaman menu Pendaftaran tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Pembayaran 2 Form pencarian data Pembayaran tampil, beserta data Pembayaran yang telah terdaftar 3 Ceklist pada record yang ingin 4 Konfirmasi penghapusan tampil dihapus lalu klik hapus 5 Klik hapus 6 Konfirmasi dari sistem bahwa data telah berhasil dihapus dari database Kondisi Akhir Data Pendaftaran terhapus dari database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
2. Kepala Balai.
Tabel 3.23. Flow of Event Kepala Balai 1.
Identifikasi 1.0 Lihat data Tera Proses melihat data Tera Primer, essensial Kepala Balai Skenario Utama Kondisi Awal Halaman menu Kepala Balai tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Tera 2 Data Tera tampil Kondisi Akhir Data Tera tampil di layar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.0 Lihat data Tera Ulang Proses melihat data Tera Ulang Primer, essensial Kepala Balai Skenario Utama Kondisi Awal Halaman menu Kepala Balai tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu TeraUlang 2 Data Tera Ulang tampil Kondisi Akhir Data Tera ulang tampil di layar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.0 Lihat data Kalibrasi Proses melihat data Kalibrasi Primer, essensial Kepala Balai Skenario Utama Kondisi Awal Halaman menu Kepala Balai tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Kalibrasi 2 Data kalibrasi tampil di layar Kondisi Akhir Data kalibrasi tampil di layar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.0 Kelola alat UTTP Proses mengelola data alat UTTP Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu UTTP 2 Form pencarian data alat UTTP tampil, beserta data alat UTTP yang telah terdaftar Kondisi Akhir Data alat UTTP tampil dilayar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.1 Catat jenis UTTP Proses mencatat jenis UTTP Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu atur jenis UTTP 2 Form pencarian data alat UTTP tampil, beserta data alat UTTP yang telah terdaftar 3 Klik tombol baru 4 Form tambah jenis UTTP tampil 5 Masukan data jenis UTTP, klik 6 Konfirmasi dari sistem bahwa data simpan jenis UTTP baru berhasil di simpan ke dalam database Kondisi Akhir Data jenis UTTP tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.2 Edit jenis UTTP Proses untuk merubah data jenis UTTP Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu jenis UTTP 2 Form pencarian data jenis UTTP tampil, beserta data jenis UTTP yang telah terdaftar 3 Klik pada record yang ingin diedit 4 Form ubah data jenis UTTP tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data jenis UTTP disimpan kembali kedalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.3 Hapus jenis UTTP Proses menghapus data jenis UTTP Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu jenisUTTP 2 Form pencarian data jenis UTTP tampil, beserta data jenis UTTP yang telah terdaftar 3 Ceklist pada record yang ingin 4 Konfirmasi penghapusan tampil dihapus lalu klik hapus 5 Klik hapus 6 Konfirmasi dari sistem bahwa data telah berhasil dihapus dari database Kondisi Akhir Data jenis UTTP terhapus dari database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.4 Catat alat UTTP Proses mencatat data alat UTTP Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu UTTP 2 Form pencarian data alat UTTP tampil, beserta data alat UTTP yang telah terdaftar 3 Klik tombol baru 4 Form tambah alat UTTP tampil 5 Masukan data alat UTTP, klik simpan 6 Konfirmasi dari sistem bahwa data alat UTTP baru berhasil di simpan ke dalam database Kondisi Akhir Data alat UTTP tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.5 Edit data alat UTTP Proses untuk merubah data alat UTTP Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu UTTP 2 Form pencarian data alat UTTP tampil, beserta data alat UTTP yang telah terdaftar 3 Klik pada record yang ingin diedit 4 Form Update data alat UTTP tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data alat UTTP disimpan kembali kedalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.6 Hapus data alat UTTP Proses menghapus data alat UTTP Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu UTTP 2 Form pencarian data alat UTTP tampil, beserta data alat UTTP yang telah terdaftar 3 Ceklist pada record yang ingin 4 Konfirmasi penghapusan tampil dihapus lalu klik hapus 5 Klik hapus 6 Konfirmasi dari sistem bahwa data telah berhasil dihapus dari database Kondisi Akhir Data alat UTTP terhapus dari database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.0 Kelola Cap Tera Proses mengelola data Cap Tera Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Cap Tera 2 Form pencarian data Cap Tera tampil, beserta data Cap Tera yang telah terdaftar Kondisi Akhir Data Cap Tera tampil di layar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.1 Catat data Cap Tera Proses mencatat data pengelolaan Cap Tera Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Cap Tera 2 Form pencarian data Cap Tera tampil, beserta data Cap Tera yang telah terdaftar 3 Klik tombol baru 4 Form tambah Cap Tera tampil 5 Masukan data Cap Tera, klik simpan 6 Konfirmasi dari sistem bahwa data Cap Tera baru berhasil di simpan ke dalam database Kondisi Akhir Data Cap Tera tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.2 Edit data Cap Tera Proses untuk merubah data Cap Tera Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Cap Tera 2 Form pencarian data Cap Tera tampil, beserta data Cap Tera yang telah terdaftar 3 Klik pada record yang ingin diedit 4 Form Update data Cap Tera tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data Cap Tera disimpan kembali kedalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.3 Hapus data Cap Tera Proses menghapus data Cap Tera Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu CapTera 2 Form pencarian data Cap Tera tampil, beserta data Cap Tera yang telah terdaftar 3 Ceklist pada record yang ingin 4 Konfirmasi penghapusan tampil dihapus lalu klik hapus 5 Klik hapus 6 Konfirmasi dari sistem bahwa data telah berhasil dihapus dari database Kondisi Akhir Data Cap Tera terhapus dari database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.0 Kelola Standar Ukuran Proses mengelola data Standar Ukuran Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Standar Ukuran 2 Form pencarian data Standar Ukuran tampil, beserta data Standar Ukuran yang telah terdaftar Kondisi Akhir Data Standar Ukuran tampil di layar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.1 Catat data Standar Ukuran Proses mencatat data pengelolaan Standar Ukuran Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Standar Ukuran 2 Form pencarian data Standar Ukuran tampil, beserta data Standar Ukuran yang telah terdaftar 3 Klik tombol baru 4 Form tambah Standar Ukuran tampil 5 Masukan data Standar Ukuran, klik 6 Konfirmasi dari sistem bahwa data simpan Standar Ukuran baru berhasil di simpan ke dalam database Kondisi Akhir Data Standar Ukuran tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.2 Edit data Standar Ukuran Proses untuk merubah data Standar Ukuran Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Standar Ukuran 2 Form pencarian data Standar Ukuran tampil, beserta data Standar Ukuran yang telah terdaftar 3 Klik pada record yang ingin diedit 4 Form Update data alat UTTP tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data Standar Ukuran disimpan kembali kedalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 3.3 Hapus data Standar Ukuran Proses menghapus data Standar Ukuran Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Standar Ukuran 2 Form pencarian data Standar Ukuran tampil, beserta data Standar Ukuran yang telah terdaftar 3 Ceklist pada record yang ingin 4 Konfirmasi penghapusan tampil dihapus lalu klik hapus 5 Klik hapus 6 Konfirmasi dari sistem bahwa data telah berhasil dihapus dari database Kondisi Akhir Data Standar Ukuran terhapus dari database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 4.0 Kelola Pegawai Proses mengelola data Pegawai Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Pegawai 2 Form pencarian data Pegawai tampil, beserta data Pegawai yang telah terdaftar Kondisi Akhir Data Pegawai tampil di layar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 4.1 Catat data Pegawai Proses mencatat data pegawai Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Pegawai 2 Form pencarian data Pegawai tampil, beserta data Pegawai yang telah tersimpan dalam database 3 Klik tombol baru 4 Form tambah Pegawai tampil 5 Masukan data Pegawai, klik simpan 6 Konfirmasi dari sistem bahwa data Pegawai baru berhasil di simpan ke dalam database Kondisi Akhir Data pegawai tersimpan ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 4.2 Edit data Pegawai Proses untuk merubah data Pegawai Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Pegawai 2 Form pencarian data Pegawai tampil, beserta data Pegawai yang telah tersimpan dalam database 3 Klik pada record yang ingin diedit 4 Form Update data Pegawai tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data Pegawai disimpan kembali kedalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 4.3 Hapus data pegawai Proses menghapus data Pegawai Primer, essensial Sub Bagian Tata Usaha Skenario Utama Kondisi Awal Halaman menu Sub Bagian TU tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Pegawai 2 Form pencarian data Pegawai tampil, beserta data Pegawai yang telah terdaftar 3 Ceklist pada record yang ingin 4 Konfirmasi penghapusan tampil dihapus lalu klik hapus 5 Klik hapus 6 Konfirmasi dari sistem bahwa data telah berhasil dihapus dari database Kondisi Akhir Data Pegawai terhapus dari database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.0 Kelola Kalibrasi Proses mengelola data Kalibrasi Primer, essensial Seksi Standar Ukuran dan Kalibrasi Skenario Utama Kondisi Awal Halaman menu Seksi Standar Ukuran dan Kalibrasi tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Kalibrasi 2 Form pencarian data Kalibrasi tampil, beserta data Kalibrasi yang telah tersimpan dalam database Kondisi Akhir Data kegiatan Kalibrasi tampil di layar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Tabel 3.46. Flow of Event Seksi Standar Ukuran dan Kalibrasi 1.1.
Identifikasi 1.1 Edit data Kalibrasi Proses merubah data Kalibrasi Primer, essensial Seksi Standar Ukuran dan Kalibrasi Skenario Utama Kondisi Awal Halaman menu Seksi Standar Ukuran dan Kalibrasi tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Kalibrasi 2 Form pencarian data Kalibrasi tampil, beserta data Kalibrasi yang telah tersimpan dalam database 3 Klik pada record yang ingin diedit 4 Form Update data Kalibrasi tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data Kalibrasi disimpan kembali ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
5. Seksi Teknik.
Tabel 3.47. Flow of Event Seksi Teknik 1.
Identifikasi 1.0 Kelola data Tera Proses mengelola data Tera Primer, essensial Seksi Teknik Skenario Utama Kondisi Awal Halaman menu Seksi Teknik tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Tera 2 Form pencarian data Tera tampil, beserta data Tera yang telah tersimpan dalam database Kondisi Akhir Data Tera tampil dilayar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 1.1 Edit data Tera Proses merubah data Tera Primer, essensial Seksi Teknik Skenario Utama Kondisi Awal Halaman menu Seksi Teknik tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu Tera 2 Form pencarian data Tera tampil, beserta data Tera yang telah tersimpan dalam database 3 Klik pada record yang ingin diedit 4 Form Update data Tera tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data Tera disimpan kembali ke dalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.0 Kelola Tera Ulang Proses melihat data Tera Ulang Primer, essensial Seksi Teknik Skenario Utama Kondisi Awal Halaman menu Seksi Teknik tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu TeraUlang 2 Form pencarian data Tera Ulang tampil, beserta data Tera Ulang yang telah tersimpan dalam database Kondisi Akhir Data Tera Ulang tampil dilayar Nomor Use Case Nama Use Case Deskripsi Jenis Actor
Identifikasi 2.1 Edit data Tera Ulang Proses merubah data Tera Ulang Primer, essensial Seksi Teknik Skenario Utama Kondisi Awal Halaman menu Seksi Teknik tampil dilayar No Aksi Aktor No Respon Sistem 1 Klik menu TeraUlang 2 Form pencarian data Tera Ulang tampil, beserta data Tera Ulang yang telah tersimpan dalam database 3 Klik pada record yang ingin diedit 4 Form Update data Tera tampil 5 Rubah nilai data, klik simpan 6 Konfirmasi dari sistem bahwa data telah berhasil dirubah dan disimpan kembali ke dalam database Kondisi Akhir Data Tera Ulang disimpan kembali kedalam database Nomor Use Case Nama Use Case Deskripsi Jenis Actor
4.1. Analisis Tahap analisis terdiri dari tahap identifikasi kelas beserta keterkaitannya, yang digambarkan dalam diagram kelas, dan diagram kolaborasi. 4.1.1 Identifikasi Kelas Secara garis besar, dalam permodelan rational unified process kelas dibagi menjadi 3, yaitu : 1. Boundary Class 2. Control Class 3. Entity Class. Dan dibawah ini merupakan identifikasi kelas berdasarkan proses yang dimiliki oleh perangkat lunak. 6. Front Office (Pendaftaran).
Tabel 4.1. Identifikasi Kelas Front Office(Pendaftaran).
No 1
2.1 Mencatat client. 2.2 Edit client 2.3 Hapus Client 3 Kelola pembayaran client. 3.1 Mencatat pembayaran client.
registrasi
registrasiCtrl
mosRegistrasi
3.2 Mencetak tanda terima 3.3 Mencetak bukti pembayaran 3.4 Mengapus data pendaftaran
registrasi
registrasiCtrl
mosRegistrasi
registrasi
registrasiCtrl
mosRegistrasi
registrasi
registrasiCtrl
mosRegistrasi
7. Kepala Balai.
Tabel 4.2. Identifikasi Kelas Kepala Balai.
No 1 2
rekap
rekapCtrl
database
No 1
Boundary
1.1 Mencatat jenis UTTP. 1.2 Merubah (edit) jenis UTTP. 1.3 Menghapus jenis UTTP. 1.4 Mencatat alat UTTP. 1.5 Merubah (edit) alat UTTP. 1.6 Menghapus alat UTTP. 2 Kelola cap tera.
uttp
uttpCtrl
mosUttp
uttp uttp
uttpCtrl uttpCtrl
mosUttp mosUttp
uttp
uttpCtrl
mosUttp
tera. 2.3 Menghapus Cap Tera. 3 Kelola standar ukuran. 3.1 Mencatat standar ukuran. 3.2 Merubah (edit) standar ukuran. 3.3 Menghapus Standar Ukuran. 4 Kelola pegawai. pegawai pegawai pegawai pegawaiCtrl pegawaiCtrl pegawaiCtrl mosPegawai mosPegawai mosPegawai standar standarCtrl mosStandar standar standarCtrl mosStandar standar standarCtrl mosStandar captera standar capteraCtrl standarCtrl mosCaptera mosStandar
4.1 Mencatat pegawai. 4.2 Merubah (edit) pegawai. 4.3 Menghapus pegawai.
pegawai
pegawaiCtrl
mosPegawai
No 1
No 1
Boundary
4.1.2 Diagram Kolaborasi Diagram kolaborasi digunakan untuk permodelan hubungan antar satu kelas dengan kelas lainnya dilihat dari segi kolaborasi kelasnya. Dan permodelannya digambarkan berdasarkan fungsi atau proses yang dimiliki masing masing bagian. 1. Front Office (Pendaftaran).
Catat Pendaftaran
new post variable simpan
front officer
registrasi
registrasiCtrl
mosRegistrasi
Periksa Client
clientdetail post variable simpan
front officer
registrasi
registrasiCtrl
mosRegistrasi
Kelola Client
show
front officer
client
clientCtrl
mosClient
Catat Client
new post variable simpan
front officer
client
clientCtrl
mosClient
Edit Client
edit post variable simpan
front officer
client
clientCtrl
mosClient
Hapus Client
remove post variable hapus
front officer
client
clientCtrl
mosClient
front officer
registrasi
registrasiCtrl
mosRegistrasi
front officer
registrasi
registrasiCtrl
mosRegistrasi
front officer
registrasi
registrasiCtrl
mosRegistrasi
front officer
registrasi
registrasiCtrl
mosRegistrasi
front officer
registrasi
registrasiCtrl
mosRegistrasi
kepala balai
rekap
rekapCtrl
database
kepala balai
rekap
rekapCtrl
database
kepala balai
rekap
rekapCtrl
database
sub bag. TU
uttp
uttpCtrl
mosUttp
sub bag. TU
uttp
uttpCtrl
mosUttp
sub bag. TU
uttp
uttpCtrl
mosUttp
sub bag. TU
uttp
uttpCtrl
mosUttp
sub bag. TU
uttp
uttpCtrl
mosUttp
sub bag. TU
uttp
uttpCtrl
mosUttp
sub bag. TU
uttp
uttpCtrl
mosUttp
sub bag. TU
captera
capteraCtrl
mosCaptera
sub bag. TU
captera
capteraCtrl
mosCaptera
sub bag. TU
captera
capteraCtrl
mosCaptera
sub bag. TU
captera
capteraCtrl
mosCaptera
sub bag. TU
standar
standarCtrl
mosStandar
sub bag. TU
standar
standarCtrl
mosStandar
sub bag. TU
standar
standarCtrl
mosStandar
sub bag. TU
standar
standarCtrl
mosStandar
Kelola Pegawai
show
sub bag. TU
pegawai
pegawaiCtrl
mosPegawai
Catat Pegawai
new post variable simpan
sub bag. TU
pegawai
pegawaiCtrl
mosPegawai
Edit Pegawai
edit post variable simpan
sub bag. TU
pegawai
pegawaiCtrl
mosPegawai
Hapus Pegawai
remove post variable hapus
sub bag. TU
pegawai
pegawaiCtrl
mosPegawai
sie. SUK
kalibrasi
kalibrasiCtrl
mosKalibrasi
Edit Kalibrasi
edit post variable simpan
sie. SUK
kalibrasi
kalibrasiCtrl
mosKalibrasi
sie. teknik
tera
teraCtrl
mosTera
Edit Tera
edit post variable simpan
sie. teknik
tera
teraCtrl
mosTera
sie. teknik
tera
teraCtrl
mosTera
sie. teknik
tera
teraCtrl
mosTera
4.1.3 Diagram Kelas Diagram kelas menggambarkan keterkaitan antar kelas dan merepresentasikan struktur dari sistem. 1. Front Office (Pendaftaran).
registrasi
registrasiCtrl
mosRegistrasi
client
clientCtrl
mosClient
2. Kepala Balai.
rekap
rekapCtrl
database
pegawai
pegawaiCtrl
mosPegawai
uttp
uttpCtrl
mosUttp
captera
capteraCtrl
mosCaptera
standar
standarCtrl
mosStandar
kalibrasi
kalibrasiCtrl
mosKalibrasi
5. Seksi Teknik.
tera
teraCtrl
mosTera
4.2. Perancangan Tahap ini terdiri dari pemodelan kasus menggunakan diagram sequence, diagram deployment, diagram package, diagram komponen, rancangan database, beserta rancangan user interface. 4.2.1 Diagram Sequence Diagram sequence merupakan diagram untuk menggambarkan perilaku sistem terhadap suatu interaksi yang dilakukan pada sistem tersebut. 1. Front Office (Pendaftaran).
Catat Pendaftaran
registrasi registrasiCtrl mosRegistrasi
Periksa Client
registrasi registrasiCtrl mosRegistrasi
Kelola Client
client 1: new clientCtrl() 2: show($option) 3: new mosClient($db) 4: setQuery($query) 5: loadObjectList() clientCtrl mosClient
Catat Client
client 1: new clientCtrl() 2: editClient(0) 3: saveClient() 4: new mosClient($db) 5: bind($_POST) 6: check() 7: store() clientCtrl mosClient
Edit Client
client 1: new clientCtrl() 2: editClient($uid) 3: saveClient($task) 4: mosClient 5: bind($_POST) 6: check() 7: store() clientCtrl mosClient
Hapus Client
client 1: new clientCtrl() 2: removeClient($id,$option) 3: new mosClient($db) 4: delete($id) clientCtrl mosclient
captera
mosCaptera
standar
mosStandar
Kelola Pegawai
pegawai pegawaiCtrl 1: new pegawaiCtrl() 2: show($option) 3: mosPegawai($db) 4: setQuery($query) 5: loadObjectList() mosPegawai
Catat Pegawai
pegawai pegawaiCtrl 1: new pegawaiCtrl() 2: editPegawai(0) 3: savePegawai($task) 4: new mosPegawai($db) 5: bind($_POST) 6: check() 7: store() mosPegawai
Edit Pegawai
pegawai pegawaiCtrl 1: new pegawaiCtrl() 2: editPegawai($uid) 3: savePegawai($task) 4: new mosPegawai($db) 5: bind($_POST) 6: check() 7: store() mosPegawai
Hapus Pegawai
pegawai pegawaiCtrl 1: new pegawaiCtrl() 2: removePegawai($id,$option) 3: mosPegawai($db) 4: delete($id) mosPegawai
Edit Kalibrasi
kalibrasi kalibrasiCtrl 1: new kalibrasiCtrl() 2: editKalibrasi($uid) 3: saveKalibrasi($task) 4: new mosKalibrasi($db) 5: bind($_POST) 6: check() 7: store() mosKalibrasi
Edit Tera
tera teraCtrl mosTera
4.2.2 Diagram Deployment Diagram deployment menggambarkan arsitektur fisik dari sistem, seperti hardware, operating system, antarmuka dan semua perangkat lunak tambahan pendukung.
client HTTP web server database server
web browser
Apache 2.20
MySQL 5.0.18
4.2.3 Diagram Package Dalam perkembangannya perangkat lunak SIP Metrologi memiliki banyak kelas, sehingga pengelompokan kelas-kelas tersebut menjadi sangat membantu pencarian sebuah kelas baik dari level yang lebih tinggi maupun menuju level yang lebih detail. Diagram package merupakan permodelan untuk
menggambarkan pengelompokan kelas. 1. Diagram Package untuk masing-masing bagian Front Office (Pendaftaran)
com_pendaftaran
com_registrasi
com_client
includes
registrasiCtrl
mosRegistrasi
registrasi
clientCtrl
client
mosClient
Kepala Balai
com_kepala_balai
com_rekap
includes
rekap
rekapCtrl
database
com_uttp
includes
com_captera
com_standar
com_pegawai
uttpCtrl
captera
standar
pegawai
mos_uttp
uttp
capteraCtrl
standarCtrl
pegawaiCtrl
mosStandar
mosCaptera
Seksi Kalibrasi
com_kalibrasi
mosKalibrasi
Seksi Teknik
com_tera
mosTera
com_t
com_registrasi
componen com_standar
com_kepala_balai
com_uttp
com_tera
com_kalibrasi
com_tu com_pegawai
com_client com_captera
4.2.4 Diagram Component Diagram component digunakan untuk menggambarkan keterkaitan antara komponen komponen perangkat lunak.
web server SIP Metrologi
MySQL database
4.2.5 Rancangan Database Pada tahap ini akan digambarkan strukutur database dari SIP Metrologi, baik dari model konseptual maupun fisikal. 1. Conceptual Data Model
standar_ukuran id_standar <pi> VA255 <M> nama_standar VA255 <M> tingkat_ketelusuran VA255 <M> tahun_produksi VA255 bahan_standar VA255 gambar_standar BIN5000 Identifier_1 <pi> Relationship_12 pegawai nip <pi> VA255 <M> nik VA255 <M> nama_pegawai VA255 <M> alamat_pegawai VA255 <M> tempat_lahir VA255 <M> <M> tgl_lahir D jenis_pegawai VA255 <M> golongan VA255 keterangan_golongan VA255 jabatan VA255 VA255 keterangan_jabatan VA255 <M> status_bekerja VA255 keterangan_pegawai Identifier_1 <pi> pendaftaran <pi> VA255 <M> id_pendaftaran VA255 <M> jenis_pendaftaran VA255 tempat_pelaksanaan VA255 alamat_jalan kecamatan VA255 kelurahan VA255 kota VA255 tgl_pendaftaran D <M> Identifier_1 <pi> mendaftar Relationship_2 client <pi> VA255 <M> id_client VA255 nama_perusahaan VA255 nama_pemilik VA255 alamat_jalan VA255 kelurahan VA255 kecamatan VA255 kota VA255 kodepos VA255 telp VA255 fax TS tgl_pencatatan VA255 keterangan_client Identifier_1 <pi> Relationship_3 Relationship_7 memiliki pengguna_sip password user_type last_login ip_address VA255 <M> VA255 <M> TS VA255 <M> Relationship_16 session username <UNDEF> session_id <pi> <UNDEF> <UNDEF> time user_type VA255 Identifier_1 <pi> cap_tera <pi> VA255 <M> id_cap D tgl_pembuatan VA255 <M> jenis_cap VA255 inisial VA255 legalitas gambar_cap BIN5000 Identifier_1 <pi> menera dicap
dibandingkan mengkalibrasi
kalibrasi id_kalibrasi <pi> VA255 <M> tgl_kalibrasi D <M> Identifier_1 <pi> Relationship_11 rincian_pembayaran_kalibrasi ukuran_uttp jumlah_uttp jumlah_uttp_sah biaya_kalibrasi biaya_sertifikat biaya_tut dibayar I I <M> I <M> I <M> I I I
tera <pi> VA255 <M> id_tera <M> D tgl_tera VA255 <M> status_tera_ulang Identifier_1 <pi>
Relationship_13
Relationship_10 <pi> VA255 id_tarif I tarif_sertifikat I tarif_tut500kl Relationship_17 I tarif_tutlebih500kl Identifier_1 <pi> uttp id_uttp <pi> VA255 <M> satuan VA255 tarif_tera_awal I tarif_tera I <M> tarif_justir_tera I tarif_tera_ulang_awal I tarif_tera_ulang I <M> tarif_justir_tera_ulang I tarif_kalibrasi <M> I faktor_pembagi I keterangan_uttp I Identifier_1 <pi> jenis_uttp Relationship_15
tarif_kalibrasi
wilayah_kerja kota kecamatan kelurahan alamat_balai_kelurahan VA255 <M> VA255 VA255 VA255
modules id <pi> VA255 VA255 user_type VA255 ordering VA255 title VA255 module VA255 param Identifier_1 <pi>
bentuk_uttp id_bentukuttp <pi> VA255 <M> bentukuttp VA255 Identifier_1 <pi> Relationship_15
cap_tera varchar(255) <pk> varchar(255) <fk> date varchar(255) varchar(255) varchar(255) blob
FK_%REFERENCE%
FK_%REFERENCE% mengkalibrasi
FK_%REFERENCE% id_cap nip Pegawai tgl_pembuatan jenis_cap varchar(255) <pk> nip inisial varchar(255) nik legalitas varchar(255) nama_pegawai gambar_cap varchar(255) alamat_pegawai tempat_lahir tgl_lahir jenis_pegawai golongan keterangan_golongan jabatan keterangan_jabatan status_bekerja keterangan_pegawai varchar(255) date varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) FK_%REFERENCE%
id_kalibrasi varchar(255) <pk,fk1> nip varchar(255) <pk,fk2> FK_%REFERENCE% kalibrasi id_kalibrasi varchar(255) <pk> id_standar varchar(255) <fk> tgl_kalibrasi date FK_%REFERENCE% rincian_pembayaran_kalibrasi id_uttp id_kalibrasi id_pendaftaran ukuran_uttp jumlah_uttp jumlah_uttp_sah biaya_kalibrasi biaya_sertifikat biaya_tut dibayar
menera nip varchar(255) <pk,fk1> id_tera varchar(255) <pk,fk2> FK_%REFERENCE% tera id_tera id_cap tgl_tera status_tera_ulang
FK_%REFERENCE%
varchar(255) <fk1> varchar(255) <fk2> pendaftaran varchar(255) <fk3> FK_%REFERENCE% varchar(255) <pk> id_pendaftaran int varchar(255) <fk> id_client int varchar(255) jenis_pendaftaran int tempat_pelaksanaan varchar(255) int varchar(255) alamat_jalan int varchar(255) kecamatan int varchar(255) kelurahan int varchar(255) kota date tgl_pendaftaran tarif_kalibrasi varchar(255) <pk> FK_%REFERENCE% int int int FK_%REFERENCE% FK_%REFERENCE% client id_client nama_perusahaan nama_pemilik alamat_jalan kelurahan kecamatan kota kodepos telp fax tgl_pencatatan keterangan_client varchar(255) <pk> varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) varchar(255) timestamp varchar(255)
FK_%REFERENCE%
FK_%REFERENCE%
rincian_pembayaran_tera id_uttp id_tera id_pendaftaran ukuran_uttp jumlah_uttp jumlah_uttp_sah biaya_uttp biaya_justir dibayar varchar(255) <fk2> varchar(255) <fk3> varchar(255) <fk1> int int int int int int
uttp id_uttp id_tarif id_bentukuttp satuan tarif_tera_awal tarif_tera tarif_justir_tera tarif_tera_ulang_awal tarif_tera_ulang tarif_justir_tera_ulang tarif_kalibrasi faktor_pembagi keterangan_uttp varchar(255) <pk> varchar(255) <fk2> varchar(255) <fk1> varchar(255) int int int int int int int int int
FK_%REFERENCE% modules wilayah_kerja kota kecamatan kelurahan alamat_balai_kelurahan jenis_uttp varchar(255) varchar(255) varchar(255) varchar(255) id user_type ordering title module param varchar(255) <pk> varchar(255) varchar(255) varchar(255) varchar(255) varchar(255)
FK_%REFERENCE% bentuk_uttp id_bentukuttp varchar(255) <pk> varchar(255) <fk> id_jenisuttp varchar(255) bentukuttp FK_%REFERENCE%
Keterangan gambar :
4.2.6 Rancangan User Interface Rancangan user interface merupakan draft dari antarmuka yang akan diterapkan pada perangkat lunak SIP Metrologi. 1. Login
Header
2. Control Panel
Control Panel
tab2
tab3
Notification area
3. Reporting
Header Home Ubah Perintah Logout user baru ubah reporting hapus
Table Caption2
Table Caption3
Header Home Ubah Perintah simpan baru Logout user terapkan batal
4.2.7 Diagram Spesifikasi Kelas Dalam diagram ini, digambarkan keterkaitan antar kelas secara lebih rinci dari diagram kelas tahap analisis. 1. Front Office (Pendaftaran)
mosRegistrasi ID_PENDAFTARAN : String ID_CLIENT : String JENIS_PENDAFTARAN : String TEMPAT_PELAKSANAAN : String ALAMAT_JALAN : String KELURAHAN : String KECAMATAN : String KOTA : String TGL_PENDAFTARAN : Date BATAL : Integer mosRegistrasi() check() storeNext() bind() store() delete() clientCtrl saveClient() show() editClient() cancel() removeClient() client
mosClient ID_CLIENT : String NAMA_PERUSAHAAN : String NAMA_PEMILIK : String ALAMAT_JALAN : String KELURAHAN : String KECAMATAN : String KOTA : String KODEPOS : String TELP : String FAX : String KETERANGAN_CLIENT : String TGL_PENCATATAN : Date TGL_RUBAH : Date HAPUS : Integer mosClient() check() bind() store() delete()
show() edit()
2. Kepala Balai
kepala_balaiCtrl print() mosTera ID_TERA : String ID_PENDAFTARAN : String ID_CAP : String TGL_TERA : Date STATUS_TERA_ULANG : String teraCtrl saveTera() show() showUttp() editTera() cancel() removeTera() mosTera() check() bind() store() delete() mosKalibrasi ID_KALIBRASI : String ID_PENDAFTARAN : String ID_STANDAR : String TGL_KALIBRASI : Date mosKalibrasi() check() bind() store() delete()
database _sql _errornum _errormsg _resource _cursor database() getErrorNum() getErrorMsg() getEscaped() setQuery() query() getQuery() getNumRows() loadResult() loadResultArray() loadObject() loadObjectList() loadRow() loadRowList() insertObject() updateObject() stderr() getEnumArray()
mosCaptera ID_CAP : String NIP : String TGL_PEMBUATAN : Date JENIS_CAP : String INISIAL : String LEGALITAS : String GAMBAR_CAP : Byte TGL_PENCATATAN : Date TGL_RUBAH : Date HAPUS : Integer mosCaptera() check() bind() store() delete()
mosUttp ID_UTTP : String ID_BENTUKUTTP : String ID_TARIF : String UKURAN : String TARIF_TERA_AWAL : Integer TARIF_TERA : Integer TARIF_JUSTIR_TERA : Integer TARIF_TERA_ULANG_AWAL : Integer TARIF_TERA_ULANG : Integer TARIF_JUSTIR_TERA_ULANG : Integer TARIF_KALIBRASI : Integer FAKTOR_PEMBAGI : Integer KETERANGAN_UTTP : String TGL_PENCATATAN : Date TGL_RUBAH : Date mosUttp() check() bind() store() delete() mosStandar ID_STANDAR : String NAMA_STANDAR : String TINGKAT_KETELUSURAN : String TAHUN_PRODUKSI : String BAHAN_STANDAR : String GAMBAR_STANDAR : Byte TGL_PENCATATAN : Date TGL_RUBAH : Date HAPUS : Integer mosStandar() check() bind() store() delete()
mosPegawai NIP : String NIK : String NAMA_PEGAWAI TEMPAT_LAHIR : String TGL_LAHIR : Date JENIS_PEGAWAI : String GOLONGAN : String KETERANGAN_GOLONGAN : String JABATAN : String KETERANGAN_JABATAN : String STATUS_BEKERJA : String KETERANGAN_PEGAWAI : String TGL_PENCATATAN : Date TGL_RUBAH : Date mosPegawai() check() bind() store() delete()
Gambar 4.101. Diagram Spesifikasi Kelas Seksi standar ukuran dan kalibrasi.
5. Seksi Teknik
mosTera ID_TERA : String ID_PENDAFTARAN : String ID_CAP : String TGL_TERA : Date STATUS_TERA_ULANG : String mosTera() check() bind() store() delete()
teraCtrl tera show() showUttp() edit() saveTera() show() showUttp() editTera() cancel() removeTera()
4.2.8 Tabel Spesifikasi Kelas Tabel spesifikasi kelas merupakan rincian dari diagram spesifikasi kelas. Tabel ini menjelaskan nama kelas, peran, atribut dan method yang dimiliki oleh kelas yang bersangkutan. 1. Front Office (Pendaftaran)
Tabel 4.6. Spesifikasi Kelas front office (pendaftaran).
Atribut
Method
show (option, rows, pageNav, search, lists) edit (row, lists, redirect, jid, bid) editPay (row, lists, redirect) print (row, lists) saveReg (task) show (option) editRegistrasi (uid) cancelRegistrasi (option) submit (task, qty, clid, jns_p, tmp_p, uttp) removeReg (uid, option) payment (uid) print (uid) mosRegistrasi (db) check () storeNext (id, id_uttp, jumlah_uttp, ukuran_uttp) bind (_POST) store() delete ()
registrasiCtrl
control class
mosRegistrasi
client
clientCtrl
mosClient
show (option, rows, pageNav, search, lists) edit (row, lists, redirect) saveClient (task) show (option) editClient (uid) cancel (option) removeClient (uid, option) mosClient (db) check () bind (_POST)
ALAMAT_JALAN KELURAHAN KECAMATAN KOTA KODEPOS TELP FAX KETERANGAN_ CLIENT TGL_ PENCATATAN TGL_RUBAH HAPUS
store() delete ()
2. Kepala Balai
Tabel 4.7. Spesifikasi Kelas kepala balai.
Atribut
Method
showTere(option, row, section, redirect) showKalibrasi( option, row, section, redirect) showTera (row, lists) showKalibrasi(row, lists) queryRekap( section, init_m, offset_y, pelaksana ) database (host, user, pass, db) getErrorNum () getErrorMsg () getEscaped (text) setQuery (sql) query () getQuery () getNumRows (cur) loadResult() loadResultArray (numinarray) loadObject (object) loadObjectList (key) loadRow () loadRowList (key) insertObject (table, object, keyName, verbose) updateObject (table, object, keyName, updateNulls) stderr (showSQL) getEnumArray (table, field)
rekapCtrl
control class
database
entity class
Atribut
Method
show(option, rows, pageNav, search, lists) edit(section, row, lists, bentuk_uttp) saveUttp (task) show (option) editUttp (uid) cancelUttp (option) jenisUttp (section, id, id_jenisuttp, mode) removeUttp (uid, option) mosUttp (db) check () bind (_POST) store() delete ()
uttpCtrl
mosUttp
entity class
ID_UTTP ID_BENTUKUTTP ID_TARIF UKURAN TARIF_ TERA_AWAL TARIF_TERA TARIF_ JUSTIR_TERA TARIF_ TERA_ULANG_ AWAL TARIF_ TERA_ULANG TARIF_ JUSTIR_TERA _ULANG TARIF_ KALIBRSI FAKTOR_ PEMBAGI KETERANGAN_ UTTP TGL_ PENCATATAN TGL_RUBAH
captera
capteraCtrl
mosCaptera
entity class
ID_CAP NIP TGL_ PEMBUATAN JENIS_CAP INISIAL LEGALITAS GAMBAR_CAP TGL_ PENCATATAN TGL_RUBAH HAPUS
show(option, rows, pageNav, search, lists) edit(row, lists, redirect) saveCaptera (task) show (option) editCaptera (uid) cancel (option) removeCaptera (uid, option) mosCaptera (db) check () bind (_POST) store() delete ()
standar
boundary class
standarCtrl
control class
ID_STANDAR NAMA_ STANDAR TINGKAT_ KETELUSURAN TAHUN_ PRODUKSI BAHAN_ STANDAR GAMBAR_ STANDAR TGL_ PENCATATAN TGL_RUBAH HAPUS
mosStandar
entity class
redirect) saveStandar (task) show (option) editStandar (uid) cancel (option) removeStandar (uid, option) mosStandar (db) check () bind (_POST) store() delete ()
10
pegawai
11
pegawaiCtrl
12
mosPegawai
entity class
NIP NIK NAMA_ PEGAWAI TEMPAT_LAHIR TGL_LAHIR JENIS_PEGAWAI GOLONGAN KETERANGAN_ GOLONGAN JABATAN KETERANGAN_ JABATAN STATUS_ BEKERJA KETERANGAN_ PEGAWAI TGL_ PENCATATAN TGL_RUBAH
show(option, rows, pageNav, search, lists) edit(row, lists, redirect) savePegawai (task) show (option) editPegawai (uid) cancel (option) removePegawai (uid, option) mosPegawai (db) check () bind (_POST) store() delete ()
Atribut
Method
show(option, rows, pageNav, search, lists) edit(row, lists, redirect)
kalibrasiCtrl
control class
mosKalibrasi
entity class
saveKalibrasi (task) show (option) editKalibrasi (uid) cancel (option) removeKalibrasi (uid, option) mosKalibrasi (db) check () bind (_POST) store() delete ()
5. Seksi Teknik
Tabel 4.10. Spesifikasi Kelas front Seksi teknik.
Atribut
Method
show(option, rows, pageNav, section, search, lists) showUttp(option, task, rows, pageNav, section) edit(row, lists, redirect) saveTera (task) show (option) showUttp (option) editTera (uid) cancel (option) removeTera (uid, option) mosTera (db) check () bind (_POST) store() delete ()
teraCtrl
control class
mosTera
entity class
5.1. Implementasi Tahap implementasi merupakan tahap penciptaan perangkat lunak yang terdiri dari penjelasan mengenai lingkungan implementasi, batasan implementasi, implementasi program dan implementasi jaringan. 5.1.1. Lingkungan Implementasi Untuk mendukung aplikasi yang akan diterapkan pada lingkungan implementasi, maka penulis menggunakan perangkat keras dan perangkat software yang menunjang dalam pengembangan program aplikasi SIP Metrologi. 5.1.1.1. Perangkat Keras Yang Digunakan Spesifikasi perangkat keras yang digunakan dalam pengembangan aplikasi SIP Metrologi adalah sebagai berikut :
Tabel 5.1. Perangkat keras yang digunakan.
Server AMD Barton 2500+ DDR 512Mb 80 Gb ATA 133 Ati Radeon 9550 256 Mb
Client P IV Celeron M 1.6Ghz DDR 256 Mb (single channel) 40 Gb ATA 100 SiS 330 Mirage Integrated 32 Mb (shared)
LCD 15 (1024x768 @ 16bit) SiS 900 10/100M Ethernet Canon Pixma 1600
5.1.1.2. Perangkat Lunak Yang Digunakan Spesifikasi perangkat lunak yang digunakan dalam pengembangan aplikasi SIP Metrologi, adalah sebagai berikut :
Tabel 5.2. Perangkat lunak yang digunakan.
No 1 2 3 4 5 6 7 8 9 10
Perangkat Lunak Sistem Operasi Bahasa Pemrograman Web Server Database Server Web Browser & Java Script Debuger Code Editor Image Editor Image Capturer Database Modeler UML Modeler
Keterangan Windows XP Professional SP 2 PHP 5.1.2 Apache 2.2.0 MySQL 5.0.18 Mozilla Firefox 2.0.0.1 Macromedia Dreamweaver 8 Macromedia Fireworks MX 2004 ACDSee 7 Power Designer 9 Rational Rose. Rose Enterprise
5.1.2. Batasan Implementasi Pembatasan implementasi dimaksudkan agar ruang lingkup implementasi menjadi lebih jelas. Batasan implementasi dari perangkat lunak SIP Metrologi adalah sebagai berikut : 1. Perangkat lunak yang dikembangkan berbasis web tetapi tidak online di Internet, hanya online di jaringan lokal. 2. Proses yang ditangani lebih terfokus pada manajemen tera dan kalibrasi. 3. Perangkat lunak masih merupakan prototipe.
5.1.3. Implementasi Program Pada tahapan ini akan dijelaskan mengenai implementasi kelas, implementasi database, implementasi user interface, implementasi konfigurasi Apache 2.2.0 & MySQL 5.0.18, implementasi konfigurasi SIP Metrologi 1.0alpha dan implementasi jaringan.. 5.1.3.1. Implementasi Kelas Berikut ini adalah daftar kelas pada saat perancangan dan implementasi dari masing-masing bagian perangkat lunak. 5.1.3.1.1. Front Office (Pendaftaran)
Tabel 5.3. Implementasi Kelas Front Office (Pendaftaran).
No 1 2 3 4 5 6 registrasi
Kelas Implementasi
Kelas Implementasi
Kelas Implementasi
No 1 2 3 kalibrasi
Kelas Implementasi
kalibrasiCtrl mosKalibrasi
kalibrasiCtrl mosKalibrasi
Kelas Implementasi
5.1.3.2. Implementasi Database Implementasi database menjelaskan mengenai struktur tabel beserta atribut penyusunya.
Tabel 5.8. Implementasi Database.
No 1
Atribut
ID_BENTUKUTTP : Integer ID_JENISUTTP : Integer BENTUK_UTTP : String
cap_tera
ID_CAP : String NIP : String TGL_PEMBUATAN : Date JENIS_CAP : String INISIAL : Integer LEGALITAS : String GAMBAR_CAP : Byte TGL_PENCATATAN : Date TGL_RUBAH : Date HAPUS : Integer
client
ID_CLIENT : String NAMA_PERUSAHAAN : String NAMA_PEMILIK : String ALAMAT_JALAN : String KELURAHAN : String KECAMATAN : String KOTA : String KODEPOS : String TELP : String FAX : String KETERANGAN_CLIENT : String TGL_PENCATATAN : Date TGL_RUBAH : Date HAPUS : Integer
jenis_uttp
kalibrasi
6 7 8
NIP : String ID_TERA : String NIP : String ID_KALIBRASI : String ID : Integer USER_TYPE : String ORDERING : Integer TITLE : String MODULE : String PARAM : String
pegawai
NIP : String NIK : String NAMA_PEGAWAI : String TEMPAT_LAHIR : String TGL_LAHIR : Date JENIS_PEGAWAI : String GOLONGAN : String KETERANGAN_GOLONGAN : String JABATAN : String KETERANGAN_JABATAN : String STATUS_BEKERJA : String KETERANGAN_PEGAWAI : String TGL_PENCATATAN : Date TGL_RUBAH : Date
10
pendaftaran
ID_PENDAFTARAN : String ID_CLIENT : String JENIS_PENDAFTARAN : String TEMPAT_PELAKSANAAN : String ALAMAT_JALAN : String KECAMATAN : String KELURAHAN : String KOTA : String TGL_PENDAFTARAN : Date
11
pengguna_sip
NIP : String PASSWORD : String USER_TYPE : String LAST_LOGIN : Date IP_ADDRESS : String BLOCK : Integer
12
rincian_pembayaran_kalibrasi
ID_UTTP : String ID_KALIBRASI : String UKURAN_UTTP : Integer JUMLAH_UTTP : Integer JUMLAH_UTTP_SAH : Integer BIAYA_KALIBRASI : Integer BIAYA_SERTIFIKAT : Integer BIAYA_TUT : Integer DIBAYAR : Integer
13
rincian_pembayaran_tera
ID_UTTP : String ID_TERA : String UKURAN_UTTP : Integer JUMLAH_UTTP : Integer JUMLAH_UTTP_SAH : Integer BIAYA_UTTP : Integer BIAYA_JUSTIR : Integer DIBAYAR : Integer
14
session
USERNAME : String SESSION_ID : String NIP : String TIME : String USER_TYPE : String
15
standar_ukuran
ID_STANDAR : String NAMA_STANDAR : String TINGKAT_KETELUSURAN : String TAHUN_PRODUKSI : String BAHAN_STANDAR : String GAMBAR_STANDAR : Byte TGL_PENCATATAN : Date
16
tarif_kalibrasi
ID_TARIF : Integer TARIF_SERTIFIKAT : Integer TARIF_TUT500KL : Integer TARIF_TUTLEBIH500KL : Integer TGL_PENCATATAN : Date TGL_RUBAH : Date
17
tera
ID_TERA : String ID_PENDAFTARAN: String ID_CAP : String TGL_TERA : Date STATUS_TERA_ULANG : String
18
uttp
ID_UTTP : String ID_BENTUKUTTP : String ID_TARIF : Integer UKURAN : String TARIF_TERA_AWAL : Integer TARIF_TERA : Integer TARIF_JUSTIR_TERA : Integer TARIF_TERA_ULANG_AWAL : Integer TARIF_TERA_ULANG : Integer TARIF_JUSTIR_TERA_ULANG : Integer TARIF_KALIBRASI : Integer FAKTOR_PEMBAGI : Integer KETERANGAN_UTTP : String TGL_PENCATATAN : Date TGL_RUBAH : Date
19
wilayah_kerja
ID_WILAYAH : Integer KOTA : String KECAMATAN : String KELURAHAN : String ALAMAT_BALAI_KELURAHAN : String
5.1.3.3. Implementasi User Interface Implementasi user interface merupakan hasil dari perancangan user interface yang sebelumnya sudah dilakukan pada tahap perancangan. 1. Login
2. Control Panel
3. Reporting
5.1.3.4. Implementasi Konfigurasi Apache2Triad 1.5.4 Dalam implementasi ini dijelaskan mengenai konfigurasi Apache2Triad 1.5.4 sebagai paket aplikasi yang mendukung dalam pembuatan dan berjalannya
aplikasi SIP Metrologi. Konfigurasi Apache2Triad akan dipersempit menjadi 2 yaitu setting user root sebagai super user dan konfigurasi Apache2TriadManager sebagai salah satu aplikasi yang mengontrol semua paket. 1. Setting Super User (root) Penyetingan akun super user diperlukan untuk mengakses semua aplikasi pada http://localhost terutama phpmyadmin dan apache2triadcp. MySQL 5.0.18 juga menggunakan akun super user untuk pengoprasioan pertama kalinya.
Ketika proses instalasi Apache2Triad 1.5.4 dimulai, proses akan meminta kata sandi untuk pengguna root, Masukkan kata sandi lalu ulangi sekali lagi pada kolom kedua. Panjang kata sandi minimal 8 karakter, maksimal 32 karakter. 2. Apache2TriadManager Apache2TriadManager merupakan aplikasi Graphic User Interface (GUI) dari apache2Triad 1.5.4 yang berfungsi mengontrol server service seperti Apache2, Apache2SSL, MySQL, PgSQL, Xmail, SlimFTPd. Tetapi yang akan kita butuhkan cukup hanya Apache2 dan MySQL saja. Jalankan Start > Apache2Triad > Apache2TriadManager.
Apache2TriadManager akan muncul diatas tray bar kanan bawah beserta dengan icon Apache2Triad.
Aktifkan Apache2 server dan Mysql server dengan cara mengklik icon hijau sehingga menjadi merah seperti gambar 5.6.
5.1.3.5. Implementasi Konfigurasi SIP Metrologi Dalam implementasi ini akan dijelaskan mengenai konfigurasi aplikasi SIP Metrologi pada file config.php beserta proses import file table_structure.sql. 1. Konfigurasi file config.php Konfigurasi file config dimaksudkan untuk memberikan nilai terhadap beberapa variabel global. Variabel yang perlu diperhatikan antara lain : $config_host Variabel ini menampung nama host server, nilai default-nya localhost; $config_user Nilai pada variabel ini menampung nama pemakai database MySQL, nilai default-nya root;
$config_password Variabel yang menyimpan nilai kata sandi dari pengguna database MySQL, diisi dengan kata sandi dari root (baca: bab 5.1.3.4. Implementasi Konfigurasi Apache2Triad, bagian 1. Setting Super User (root)).
$config_db Merupakan variabel yang menampung nama database yang dipakai oleh SIP Metrologi, nilai default-nya met_surakarta;.
http://192.168.0.1/sip_metrologi; dimana 192.168.0.1 merupakan IP Address server. 2. Import file table_structure.sql File table_structure.sql berisi perintah-perintah dalam standar SQL yang berfungsi membangun struktur tabel dari database. File ini dapat ditemukan pada folder install/sql/table_structure.sql. Proses import dapat dilakukan menggunakn http://localhost/phpmyadmin setelah sebelumnya menciptakan sebuah database kosong dengan nama met_surakarta.
5.1.3.6. Implementasi Jaringan Pada tahap implementasi jaringan, penulis menggunakan jaringan antara dua buah komputer (peer to peer). 1. Persiapan Jaringan Hubungkan kedua komputer (server-client) dengan menggunakan kabel RJ-45 yang telah dipersiapkan untuk jaringan peer to peer, pada kartu jaringan masing masing komputer. 2. Setting IP Address dan Workgroup Buka jendela Network Connections, Connections Double klik Local Area Connection Double klik Internet Protocol (TCP/IP) Masukan IP Addressnya 192.168.0.1 untuk komputer server. Lakukan hal yang sama pada komputer client lalu isikan IP Addess-nya 192.168.0.2. Samakan workgroup-nya menjadi BATURAN pada kedua komputer yang dihubungkan tersebut. 3. Setting Windows Firewall Pada Komputer Server Buka Windows Firewall pada control panel Pilih tab Advanced. Pilih koneksi Local Area Network yang sedang dipakai lalu klik setting. Pilih Web Server (HTTP) dengan men-ceklist-nya, lalu klik Ok dan Ok sekali lagi pada jendela Windows Firewall. Control Panel > Network
5.2. Pengujian Perangkat Lunak SIP Metrologi Bab ini akan menjelaskan mengenai pengujian aplikasi SIP Metrologi, kasus yang diujikan, dan identifikasi dan rencana pengujian. 5.2.1. Pengujian Aplikasi SIP Metrologi
Dalam pengembangan perangkat lunak aplikasi SIP Metrologi menggunakan bahasa pemograman PHP 5.1.2 dengan database-nya MySQL 5.0.18, yang dalam pengujian perangkat lunaknya terdiri dari pengujian pengolahan data manajemen peneraan sebagai faktor pendukung guna menghasilkan informasi dan laporanlaporan. 5.2.2. Kasus Yang Diujikan
Pengujian perangkat lunak SIP Metrologi menggunakan metode black box, yang hanya berfokus pada kebutuhan fungsional perangkat lunak. Pada kasus uji dengan proses yang sama akan diwakilkan oleh satu proses kasus uji. Pengujiannya terdiri dari validation testing dan unit testing. 5.2.3. Identifikasi dan Rencana Pengujian
Sebelum melakukan pengujian dilakukan identifikasi hal yang akan diuji dan rencana pengujiannya. Hal ini dilakukan supaya perangkat lunak yang dibuat dapat terukur berdasarkan input yang dimasukan dan output yang diharapkan.
Nama Bagian Masukan data pendaftaran. Klik tombol periksa Klik tombol client Masukan data client. Klik tombol ubah Klik tombol hapus Klik tombol pembayaran. PDHUPL 3.1 Sistem Sistem Sistem Sistem Sistem Sistem Sistem PDHUPL 7.1 PDHUPL 7.2 PDHUPL 7.3 PDHUPL 7.4 PDHUPL 7.5 Sistem Sistem Sistem Sistem Sistem PDHUPL 1.1 PDHUPL 2.0 PDHUPL 2.1 PDHUPL 2.2 PDHUPL 2.3 PDHUPL 3.0 Sistem Sistem Sistem Sistem Sistem Sistem PDHUPL 1.0
Kelas Uji
Butir Uji
Identifikasi
Hasil Ok
Mencatat pendaftaran.
Teknik Pengujian Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box
Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok
Periksa Client Mengelola Client Mencatat data client. Merubah data client Menghapus data client Mengelola data pembayaran client Mencatat pembayaran.
Kepala Balai
Mencetak tanda terima Mencetak bukti pembayaran. Menghapus data Pendaftaran Melihat data tera Melihat data tera ulang Melihat data kalibrasi Mengelola alat UTTP. Masukan data jenis UTTP. Ubah data jenis UTTP.
Update data pendaftaran client dengan data pembayaran. Klik tombol cetak Tanda terima Klik tombol cetak. Faktur Klik tombol hapus Klik tombol tera Klik tombol tera ulang Klik tombol kalibrasi Klik tombol UTTP.
PDHUPL 3.2 PDHUPL 3.3 PDHUPL 3.4 PDHUPL 4.0 PDHUPL 5.0 PDHUPL 6.0 PDHUPL 7.0
Mencatat jenis UTTP. Merubah (edit) data jenis UTTP. Menghapus data jenis UTTP.
Klik tombol hapus, setelah memilih record yang akan dihapus. Masukan data alat UTTP. Ubah data alat UTTP.
UTTP. Menghapus data UTTP. PDHUPL 7.6 PDHUPL 8.0 PDHUPL 8.1 PDHUPL 8.2 PDHUPL 8.3 PDHUPL 9.0 PDHUPL 9.1 PDHUPL 9.2 PDHUPL 9.3 PDHUPL 10.0 PDHUPL 10.1 PDHUPL 10.2 PDHUPL 10.3 PDHUPL 11.0 Sistem Sistem Sistem Sistem Sistem Sistem Sistem Sistem Sistem Sistem Sistem Sistem Sistem Sistem
Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box
Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok Ok
Mengelola data captera. Mencatat data captera. Merubah (edit) data captera. Menghapus data captera.
Klik tombol hapus, setelah memilih record yang akan dihapus. Klik tombol captera. Masukkan data captera. Ubah data captera. Klik tombol hapus, setelah memilih record yang akan dihapus. Klik tombol standar ukuran. Masukkan data standar ukuran Ubah data standar ukuran.
Mengelola data standar ukuran. Mencatat data standar ukuran. Merubah (edit) data standar ukuran. Menghapus data standar ukuran. Melihat data pegawai. Mencatat data pegawai. Merubah (edit) data pegawai. Menghapus data pegawai. Klik tombol hapus, setelah memilih record yang akan dihapus. Klik tombol pegawai. Masukkan data pegawai Ubah data pegawai. Klik tombol hapus, setelah memilih record yang akan dihapus. Klik tombol Kalibrasi
Seksi Standar Ukuran dan Kalibrasi Ubah data kalibrasi. Klik tombol tera. Ubah data tera. Klik tombol tera ulang. Ubah data tera ulang.
Seksi Teknik
Merubah (edit) data kalibrasi. Mengelola data tera. Merubah (edit) data tera. Mengelola data tera ulang. Merubah (edit) data tera ulang.
PDHUPL 11.1 PDHUPL 12.0 PDHUPL 12.1 PDHUPL 13.0 PDHUPL 13.1
Black Box Black Box Black Box Black Box Black Box
Ok Ok Ok Ok Ok
7.1 Kesimpulan Kesimpulan yang diperoleh setelah melalui tahap-tahap pengembangan perangkat lunak SIP Metrologi, adalah sebagai berikut : 1. Dengan menggunakan pendekatan permasalahan Rational Unified Process, pada tahap pendefinisian kebutuhan serta analisis masalah maka diperoleh model permasalahan yang dirumuskan berdasarkan salah satu tugas pokok metrologi yaitu, melakukan tera dan tera ulang alat-alat ukur, takar, timbang, dan perlengkapannya, serta kalibrasi alat ukur. Sehingga nantinya perangkat lunak yang dikembangkan akan mampu membantu kebutuhan tersebut. 2. Pada tahap perancangan perangkat lunak dirumuskan perilaku dari perangkat lunak, untuk nantinya diimplementasikan hingga menjadi sebuah program yang utuh. 3. Pengujian unit dan integrasi menunjukan bahwa perangkat lunak SIP Metrologi secara fungsional bekerja dengan baik sesuai kebutuhan yang telah didefinisikan pada tahap analisis sampai perancangan. Metode pengujian yang digunakan adalah metode black box. 4. SIP Metrologi telah mampu menangani proses pendaftaran Tera, Tera Ulang, dan Kalibrasi, hingga ke bagian dimana data-data tersebut dikelola oleh masing-masing seksi. Perangkat lunak juga telah mampu mengelola data-data cap tera, standar ukuran, UTTP dan pengolahan daftar pegawai. Jika di lihat kembali pada tahap pendefinisian kebutuhan maka secara garis besar
perangkat lunak SIP Metrologi telah mampu membantu tugas pokok Metrologi dalam melakukan tera dan tera ulang alat-alat ukur, takar, timbang dan perlengkapannya, serta kalibrasi alat ukur.
7.2 Saran Penulis memiliki bebrapa masukan untuk pengembangan perangkat lunak SIP Metrologi selanjutnya, dengan harapan semakin tepatnya antara kebutuhan sistem dengan fungsional perangkat lunak. 1. Perlu adanya fungsional pengolahan pengguna beserta hak aksesnya, sehingga pengaturan pengguna Perangkat lunak menjadi lebih mudah. 2. Pada bagian UTTP diperlukan pembatasan pengubahan tarif, sehingga tarif hanya dapat diubah beberapa kali saja. 3. Perlunya penambahan fungsional manajemen tarif UTTP untuk mengatasi perubahan tarif secara keseluruhan jika Peraturan daerah yang diacu berubah. 4. Pada bagian Kalibrasi masih memerlukan pengolahan sertifikasi kalibrasi. 5. Perbaikan pola penulisan kode-kode yang di-generate secara otomatis dengan jumlah digital yang konsisten. 6. Perlunya pengingat IP address untuk tiap tipe pemakai sehingga pemakai hanya bisa log-in dari komputer pada seksinya masing-masing.
DAFTAR PUSTAKA
1. Boggs, W and M. Boggs (2002), Mastering UML with Rational Rose 2002, California: Sybex. 2. Quatrani, T. (1999), Visual Modeling with Rational Rose 2000 and UML, Addison Wesley. 3. Dharwiyanti, S. (2003), Pengantar Unified Modeling Language (UML), IlmuKomputer.Com. 4. MySQL AB. (2005), Inside MySQL 5 a DBAs Perspective. A MySQL business white paper. 5. Pemerintah Propinsi DT I Jawa Timur (1991), Mengenal Metrologi dan peraturan tentang kemetrologian, Surabaya: Pemerintah Propinsi DT I Jawa Timur. 6. Keputusan Kepala Dinas Perindustrian dan Perdagangan Propinsi Jawa Tengah Nomor: 821.05/530.1/2005. Tentang prosedur tera, tera ulang UTTP, kalibrasi dan pengujian barang dalam keadaan terbungkus di Balai Metrologi Dinas Perindustrian dan Perdagangan Propinsi Jawa Tengah. 7. Peraturan Daerah Propinsi Jawa Tengah No. 3 Tahun 2003. 8. Dinas Perindustrian dan Perdagangan Propinsi Jawa Tengah (2002), Struktur Organisasi dan Tata Kerja Balai Metrologi Dinas Perindustrian dan Perdagangan Propinsi Jawa Tengah 9. Dinas Perindustrian dan Perdagangan Propinsi Jawa Tengah (2002), Pelayanan Kemetrologian di Jawa Tengah.
10. DISPERINDAG Propinsi Jawa Tengah (2000), Laboratorium Kalibrasi, Semarang: DISPERINDAG Propinsi Jawa Tengah. 11. Wikipedia (2006). Client-Server. [online]. Tersedia : http://en.wikipedia.org/w/index.php?title=Client-server&oldid=66337485. [2 Agustus 2006]. 12. Yank, K. (2001). Getting started with ASP. [online]. Tersedia : http://www.sitepoint.com/article/getting-started-asp. [31 Agustus 2006]. 13. Open Project. Computer Software Definition. [online]. Tersedia : http://www.openprojects.org/index.htm. [31 Agustus 2006]. 14. Chafee, A. (2000). One, two, three, or n tiers? Should you hold back the tiers of your application?. [online]. Tersedia : http://www.javaworld.com/javaworld/jw-01-2000/jw-01-ssj-tiers-p2.html. [31 Agustus 2006]. 15. The PHP Documentation Group. (2006). PHP Manual. [offline-chm] Tersedia : http://www.php.net/documentation/. 16. Axmarx, D and M. Widenius (2002), MySQL Reference Manual for Version 4.0.5. [offline-chm]. Tersedia : http://www.mysql.com/documentation/.
PDHUPL 1.0 Mencatat Pendaftaran Memeriksa pemasukkan data pendaftaran ke dalam database. Tabel pendaftaran, client, dan uttp sudah ada. Pemakai sudah membuka halaman web Pendaftaran bagian Pendaftaran. Skenario 1. Pilih jenis pendaftaran, tempat pendaftaran, jumlah UTTP, jenis UTTP, beserta jumlah UTTP. 2. Klik tombol simpan. Hasil Data yang Diberikan Yang Diharapkan Pengamatan Kesimpulan Jenis Pendaftaran : tera Halaman tabel Proses Ok Tempat : kantor pendaftaran muncul penyimpanan dapat Jumlah Jenis UTTP : 1 beserta pesan bahwa dilakukan jika Jenis UTTP : ukuran penyimpanan telah semua data yang panjang berhasil bukan optional diisi Golongan ukuran : salib dengan benar. ukur Jumlah : 10 Catatan Identifikasi Nama Butir Uji Tujuan Kondisi Awal
PDHUPL 2.2 Merubah data Client Memeriksa pemasukkan data client ke dalam database. Tabel client sudah ada. Pemakai sudah membuka halaman web pendaftaran bagian Client. Skenario 1. Pilih data client yang akan diubah dengan mengklik kodenya. 2. Ubah Nama Pemilik 3. Klik tombol simpan. Hasil Data yang Diberikan Yang Diharapkan Pengamatan Kesimpulan Kode client : CL-1 Halaman tabel client Proses Ok Nama Pemilik : Arif muncul, dan pesan penyimpanan dapat Budiman penyimpanan dilakukan jika berhasil muncul semua data yang bukan optional diisi dengan benar. Catatan Identifikasi Nama Butir Uji Tujuan Kondisi Awal
PDHUPL 3.2 Mencetak tanda terima Mencetak tanda terima untuk client ke printer. Tabel pendaftaran, client, tera, pengguna_sip, rincian_pembayaran_tera sudah ada. Pemakai sudah membuka halaman web pendaftaran bagian Pendaftaran. Skenario 1. Pilih data Pendaftaran yang akan dicetak tanda terimanya dengan mengklik link tanda terima. Hasil Data yang Diberikan Yang Diharapkan Pengamatan Kesimpulan Tampil halaman Ok Ketika halaman print preview tanda print preview terima tampil akan ada konfirmasi apakah akan langsung dicetak. Proses cetak akan berjalan jika pada saat konfirmasi diklik tombol Ok, atau setelahnya dengan memencet tombol pintas [CTRL] + [P]. Catatan Identifikasi Nama Butir Uji Tujuan Kondisi Awal
PDHUPL 9.3 Menghapus data Standar Ukuran Memeriksa pemasukkan data pendaftaran ke dalam database. Tabel standar ukuran sudah ada. Pemakai sudah membuka halaman web Sub bagian Tata Usaha bagian Standar Ukuran. Skenario 1. Pilih standar ukuran yang akan dihapus dengan menabuhkan ceklis. 2. Klik tombol hapus. Hasil Data yang Diberikan Yang Diharapkan Pengamatan Kesimpulan Kode standar : ST-3 Halaman tabel Proses Ok standar ukuran penghapusan dapat muncul beserta pesan dilakukan data bahwa penghapusan telah diceklis. telah berhasil Catatan Identifikasi Nama Butir Uji Tujuan Kondisi Awal
1. File index.php
/** * $id: index.php * Copyright (C) 2006 Muslim Pribadi Muhammad * author Muslim Pribadi Muhammad <muslim.pribadi@gmail.com> */ /** Set flag that this is a parent file */ define( "_VALID_SIP", 1 ); require_once('config.php'); // displays offline page if ( $config_offline == 1 ){ include( 'offline.php' ); exit(); } require_once('includes/sip_metrologi.php'); $database = new database( $config_host, $config_user, $config_password, $config_db ); $option = mosGetParam( $_REQUEST, 'option', NULL ); if(isset( $_POST['submit'] )) { /** escape and trim to minimise injection of malicious sql */ $usrname = $database->getEscaped( trim( mosGetParam( $_POST, 'usrname', '' ) ) ); $pass = $database->getEscaped( trim( mosGetParam( $_POST, 'pass', '' ) ) ); if (!$pass) { echo "<script>alert('Tolong masukan Kata Sandi.'); document.location.href='index.php';</script>\n"; } else { $pass = md5( $pass ); } $query = "SELECT *" . "\n FROM pengguna_sip" . "\n WHERE LOWER(NIP)=LOWER('$usrname')" . "\n AND BLOCK='0'" ; $database->setQuery( $query ); $count = intval( $database->loadResult() ); if ($count < 1) { echo "<script>alert('N.I.P atau Kata Sandi Salah. Tolong coba lagi'); window.history.go(-1); </script>\n"; exit(); } else {
$user = $database->loadRow(); if ($user[1] <> $pass) { echo "<script>alert('N.I.P. atau Kata Sandi Salah. Tolong coba lagi'); window.history.go(-1); </script>\n"; exit(); } else if ($user[2] == '') { echo "<script>alert('N.I.P. atau Kata Sandi atau Grup Pengguna Salah. Tolong coba lagi'); window.history.go(-1); </script>\n"; exit(); } else { session_name( 'sip_konsol' ); session_start(); $usertype = $user[2]; $query = "SELECT t1.NAMA_PEGAWAI" . "\n FROM pegawai as t1, pengguna_sip as t2" . "\n WHERE t1.NIP = t2.NIP AND t1.NIP='$usrname'" ; $database->setQuery( $query ); $username = $database->loadResult(); $username = explode(' ',$username); $username = $username[0]; $logintime = time(); $session_id = md5( "$usrname$usertype$logintime" ); $query = "INSERT INTO session" . "\nSET SESSION_ID='$session_id', NIP='$usrname', " . "time='$logintime', USER_TYPE='$usertype', USERNAME='$username'" ; $database->setQuery( $query ); if (!$database->query()) { echo $database->stderr(); } $_SESSION['session_id'] $_SESSION['session_user_id'] $_SESSION['session_username'] $_SESSION['session_usertype'] $_SESSION['session_logintime'] $_SESSION['session_userstate'] = = = = = = $session_id; $usrname; $username; $usertype; $logintime; array();
$query = "INSERT INTO pengguna_sip" . "\nSET LAST_LOGIN='$logintime'" ; $database->setQuery( $query ); session_write_close(); /** cannot using mosredirect as this stuffs up the cookie in IIS */ echo "<script>document.location.href='index2.php';</script>\n"; exit(); }//end else }//end else }//end if else{ require_once('templates/default/login.php');
}//end else
2. File index2.php
/** * $id: index2.php * Copyright (C) 2006 Muslim Pribadi Muhammad * author Muslim Pribadi Muhammad <muslim.pribadi@gmail.com> */ /** Set flag that this is a parent file */ define( "_VALID_SIP", 1 ); require_once( "config.php" ); require_once( $config_absolute_path . "/includes/sip_metrologi.php" ); $database = new database( $config_host, $config_user, $config_password, $config_db ); // must start the session before we create the mainframe object session_name( 'sip_konsol' ); session_start(); $option = strtolower( mosGetParam( $_REQUEST, 'option', '' ) ); if ($option == '') { $option = 'com_' . strtolower( mosGetParam( $_SESSION, 'session_usertype', '' ) ); } // mainframe is an API workhorse, lots of 'core' interaction routines $mainframe = new mosMainFrame( $database, $option, '.', true ); // initialise some common request directives $task = mosGetParam( $_REQUEST, 'task', '' ); $act = strtolower( mosGetParam( $_REQUEST, 'act', '' ) ); $section = mosGetParam( $_REQUEST, 'section', '' ); $no_html = strtolower( mosGetParam( $_REQUEST, 'no_html', '' ) ); if ($option == 'logout') { require 'logout.php'; exit(); } // restore some session variables $my = new mosPenggunaSip( $database ); $my->NIP = mosGetParam( $_SESSION, 'session_user_id', '' ); $my->username = mosGetParam( $_SESSION, 'session_username', '' ); $my->USERTYPE = mosGetParam( $_SESSION, 'session_usertype', '' ); $session_id = mosGetParam( $_SESSION, 'session_id', '' ); $logintime = mosGetParam( $_SESSION, 'session_logintime', '' ); // check against db record of session if ($session_id == md5( $my->NIP.$my->USERTYPE.$logintime )) { $database->setQuery( "SELECT * FROM session" . "\nWHERE SESSION_ID='$session_id'" . " AND USERNAME = '" . $database->getEscaped( $my->username ) . "'" . " AND NIP = " . intval( $my->NIP) ); if (!$result = $database->query()) { echo $database->stderr();
} if ($database->getNumRows( $result ) <> 1) { echo "<script>document.location.href='index.php'</script>\n"; exit(); } } else { echo "<script>document.location.href='$config_live_site/index.php'</script>\n" ; exit(); } //set default timezone date_default_timezone_set ( $config_time_zone ); // update session timestamp $current_time = time(); $database->setQuery( "UPDATE session SET TIME='$current_time'" . "\nWHERE SESSION_ID='$session_id'" ); $database->query(); // update last login timestamp $login_time = date('d-m-Y H:i:s'); $database->setQuery( "UPDATE pengguna_sip SET LAST_LOGIN='$login_time'" . "\nWHERE NIP='$session_user_id'" ); $database->query(); // timeout old sessions $past = time()-1800; $database->setQuery( "DELETE FROM session WHERE TIME < '$past'" ); $database->query(); // start the html output if ($no_html) { if ($path = $mainframe->getPath( 'pages' )) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title><?php echo $config_sitename; ?></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" href="templates/default/css/template.css" type="text/css" /> </head> <body> <?php if ($print) { ?> <div align="center"> <div class="main"> <table width="100%" border="0"> <tr> <td valign="middle" align="center"> <?php } require $path; if ($print) { ?> </td> </tr>
</table> </div> </div> <?php } ?> </body> </html> <?php } exit; } $path = $config_absolute_path . "/templates/default/index.php"; require_once( $path );
3. File database.php
/** * $id: database.php * Copyright (C) 2006 Muslim Pribadi Muhammad * author Muslim Pribadi Muhammad <muslim.pribadi@gmail.com> */ /** ensure this file is being included by a parent file */ defined( '_VALID_SIP' ) or die( 'Akses langsung ke lokasi ini tidak diperbolehkan.' ); /** * Database connector class * @subpackage Database * @package SIP Metrologi */ class database { /** @var string Internal variable untuk menyimpan sql */ var $_sql=''; /** @var int Internal variable untuk menyimpan error number dari database */ var $_errorNum=0; /** @var string Internal variable untuk menyimpan pesan error dari database */ var $_errorMsg=''; /** @var Internal variable untuk menyimpan resource to hold the connector resource */ var $_resource=''; /** @var Internal variable to hold the last query cursor */ var $_cursor=null; /** * Database object constructor * @param string Database host * @param string Database user name * @param string Database user password * @param string Database name */ function database( $host='localhost', $user, $pass, $db ) { // perform a number of fatality checks, then die gracefully if (!function_exists( 'mysql_connect' )) { //or die( 'FATAL ERROR: MySQL support not available. Please check your configuration.' ); $mosSystemError = 1; $basePath = dirname( __FILE__ ); include $basePath . '/../config.php'; include $basePath . '/../offline.php'; exit();
} if (!($this->_resource = @mysql_connect( $host, $user, $pass ))) { //or die( 'FATAL ERROR: Connection to database server failed.' ); $mosSystemError = 2; $basePath = dirname( __FILE__ ); include $basePath . '/../config.php'; include $basePath . '/../offline.php'; exit(); } if (!mysql_select_db($db)) { //or die( "FATAL ERROR: Database not found. Operation failed with error: ".mysql_error()); $mosSystemError = 3; $basePath = dirname( __FILE__ ); include $basePath . '/../config.php'; include $basePath . '/../offline.php'; exit(); } } /** * @return int The error number for the most recent query */ function getErrorNum() { return $this->_errorNum; } /** * @return string The error message for the most recent query */ function getErrorMsg() { return str_replace( array( "\n", "'" ), array( '\n', "\'" ), $this->_errorMsg ); } /** * Get a database escaped string * @return string */ function getEscaped( $text ) { return mysql_escape_string( $text ); } /** * Sets the SQL query string for later execution. * * @param string The SQL query * @param string The common table prefix */ function setQuery( $sql ) { $this->_sql = $sql; } /** * Execute the query * @return mixed A database resource if successful, FALSE if not. */ function query() { $this->_errorNum = 0; $this->_errorMsg = ''; $this->_cursor = mysql_query( $this->_sql, $this->_resource ); if (!$this->_cursor) { $this->_errorNum = mysql_errno( $this->_resource ); $this->_errorMsg = mysql_error( $this->_resource )." SQL=$this->_sql"; return false; }
return $this->_cursor; } /** * @return string The current value of the internal SQL vairable */ function getQuery() { return "<pre>" . htmlspecialchars( $this->_sql ) . "</pre>"; } /** * @return int The number of rows returned from the most recent query. */ function getNumRows( $cur=null ) { return mysql_num_rows( $cur ? $cur : $this->_cursor ); } /** * This method loads the first field of the first row returned by the query. * * @return The value returned in the query or null if the query failed. */ function loadResult() { if (!($cur = $this->query())) { return null; } $ret = null; if ($row = mysql_fetch_row( $cur )) { $ret = $row[0]; } mysql_free_result( $cur ); return $ret; } /** * Load an array of single field results into an array */ function loadResultArray($numinarray = 0) { if (!($cur = $this->query())) { return null; } $array = array(); while ($row = mysql_fetch_row( $cur )) { $array[] = $row[$numinarray]; } mysql_free_result( $cur ); return $array; } /** * This global function loads the first row of a query into an object * * If an object is passed to this function, the returned row is bound to the existing elements of <var>object</var>. * If <var>object</var> has a value of null, then all of the returned query fields returned in the object. * @param string The SQL query * @param object The address of variable */ function loadObject( &$object ) { if ($object != null) { if (!($cur = $this->query())) { return false; } if ($array = mysql_fetch_assoc( $cur )) { mysql_free_result( $cur );
mosBindArrayToObject( $array, $object, null, null, false ); return true; } else { return false; } } else { if ($cur = $this->query()) { if ($object = mysql_fetch_object( $cur )) { mysql_free_result( $cur ); return true; } else { $object = null; return false; } } else { return false; } } } /** * Load a list of database objects * @param string The field name of a primary key * @return array If <var>key</var> is empty as sequential list of returned records. * If <var>key</var> is not empty then the returned array is indexed by the value * the database key. Returns <var>null</var> if the query fails. */ function loadObjectList( $key='' ) { if (!($cur = $this->query())) { return null; } $array = array(); while ($row = mysql_fetch_object( $cur )) { if ($key) { $array[$row->$key] = $row; } else { $array[] = $row; } } mysql_free_result( $cur ); return $array; } /** * @return The first row of the query. */ function loadRow() { if (!($cur = $this->query())) { return null; } $ret = null; if ($row = mysql_fetch_row( $cur )) { $ret = $row; } mysql_free_result( $cur ); return $ret; } /** * Load a list of database rows (numeric column indexing) * @param string The field name of a primary key * @return array If <var>key</var> is empty as sequential list of returned records.
* If <var>key</var> is not empty then the returned array is indexed by the value * the database key. Returns <var>null</var> if the query fails. */ function loadRowList( $key='' ) { if (!($cur = $this->query())) { return null; } $array = array(); while ($row = mysql_fetch_array( $cur )) { if ($key) { $array[$row[$key]] = $row; } else { $array[] = $row; } } mysql_free_result( $cur ); return $array; } /** * Document::db_insertObject() * * { Description } * * @param [type] $keyName * @param [type] $verbose */ function insertObject( $table, &$object, $keyName = NULL, $verbose=false ) { $fmtsql = "INSERT INTO $table ( %s ) VALUES ( %s ) "; $fields = array(); foreach (get_object_vars( $object ) as $k => $v) { if (is_array($v) or is_object($v) or $v === NULL) { continue; } if ($k[0] == '_') { // internal field continue; } $fields[] = "`$k`"; $values[] = "'" . $this->getEscaped( $v ) . "'"; } $this->setQuery( sprintf( $fmtsql, implode( ",", $fields ) , implode( ",", $values ) ) ); ($verbose) && print "$sql<br />\n"; if (!$this->query()) { return false; } $id = mysql_insert_id(); ($verbose) && print "id=[$id]<br />\n"; if ($keyName && $id) { $object->$keyName = $id; } return true; } /** * Document::db_updateObject() * * { Description } * * @param [type] $updateNulls */
function updateObject( $table, &$object, $keyName, $updateNulls=true ) { $fmtsql = "UPDATE $table SET %s WHERE %s"; $tmp = array(); foreach (get_object_vars( $object ) as $k => $v) { if( is_array($v) or is_object($v) or $k[0] == '_' ) { // internal or NA field continue; } if( $k == $keyName ) { // PK not to be updated $where = "$keyName='" . $this->getEscaped( $v ) . "'"; continue; } if ($v === NULL && !$updateNulls) { continue; } if( $v == '' ) { $val = "''"; } else { $val = "'" . $this->getEscaped( $v ) . "'"; } $tmp[] = "`$k`=$val"; } $this->setQuery( sprintf( $fmtsql, implode( ",", $tmp ) , $where ) ); return $this->query(); } /** * @param boolean If TRUE, displays the last SQL statement sent to the database * @return string A standised error message */ function stderr( $showSQL = false ) { return "DB function failed with error number $this>_errorNum" ."<br /><font color=\"red\">$this->_errorMsg</font>" .($showSQL ? "<br />SQL = <pre>$this->_sql</pre>" : ''); } /** * Load enum table type Values into an array */ function getEnumArray( $table, $enumField ) { if (!($cur = $this->query())) { return null; } $enum = array(); $sql = "SHOW COLUMNS FROM $table" . "\nLIKE '$enumField'"; $this->setQuery( $sql ); $result = $this->query(); $enumStruct = null; if ( mysql_num_rows($result) > 0 ) { $row = mysql_fetch_assoc($result); $enumStruct = $row['Type']; $enumStruct = str_replace( "enum('", '', $enumStruct ); $enumStruct = str_replace( "')", '', $enumStruct ); $enum = explode( "','", $enumStruct );
} return $enum; } }//end class database /** * mosDBTable Abstract Class. * @abstract * @SIP Metrologi * @subpackage Database * * Parent classes to all database derived objects. Customisation will generally * not involve tampering with this object. * @package SIP Metrologi * @author Andrew Eddie <eddieajau@users.sourceforge.net */ class mosDBTable { /** @var string Name of the table in the db schema relating to child class */ var $_tbl = ''; /** @var string Name of the primary key field in the table */ var $_tbl_key = ''; /** @var string Error message */ var $_error = ''; /** @var mosDatabase Database connector */ var $_db = null; /** * Object constructor to set table and key field * * Can be overloaded/supplemented by the child class * @param string $table name of the table in the db schema relating to child class * @param string $key name of the primary key field in the table */ function mosDBTable( $table, $key, &$db ) { $this->_tbl = $table; $this->_tbl_key = $key; $this->_db =& $db; } /** * @return string Returns the error message */ function getError() { return $this->_error; } /** * binds a named array/hash to this object * * can be overloaded/supplemented by the child class * @param array $hash named array * @return null|string null is operation was satisfactory, otherwise returns an error */ function bind( $array, $ignore="" ) { if (!is_array( $array )) { $this->_error = strtolower(get_class( $this ))."::bind gagal."; return false; } else {
return mosBindArrayToObject( $array, $this, $ignore ); } } /** * binds an array/hash to this object * @param int $oid optional argument, if not specifed then the value of current key is used * @return any result from the database operation */ function load( $oid=null ) { $k = $this->_tbl_key; if ($oid !== null) { $this->$k = $oid; } $oid = $this->$k; if ($oid === null) { return false; } $this->_db->setQuery( "SELECT * FROM $this->_tbl WHERE $this->_tbl_key='$oid'" ); return $this->_db->loadObject( $this ); } /** * generic check method * * can be overloaded/supplemented by the child class * @return boolean True if the object is ok */ function check() { return true; } /** * Inserts a new row if id is zero or updates an existing row in the database table * * Can be overloaded/supplemented by the child class * @param boolean If false, null object variables are not updated * @return null|string null if successful otherwise returns and error message */ function store( $updateNulls=false ) { $k = $this->_tbl_key; if( $this->checkId( $this->$k ) ) { $ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls ); } else { $ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key ); } if( !$ret ) { $this->_error = strtolower(get_class( $this ))."::Penyimpanan gagal <br />" . $this->_db->getErrorMsg(); return false; } else { return true; } } /**
* Default delete method * * can be overloaded/supplemented by the child class * @return true if successful otherwise returns and error message */ function delete( $oid=null ) { //if (!$this->canDelete( $msg )) { // return $msg; //} $k = $this->_tbl_key; if ($oid) { $this->$k = intval( $oid ); } $this->_db->setQuery( "DELETE FROM $this->_tbl WHERE $this>_tbl_key = '".$this->$k."'" ); if ($this->_db->query()) { return true; } else { $this->_error = $this->_db->getErrorMsg(); return false; } } /** * Generate unique id * for idRegistrasi, idTera, idTeraulang, idKalibrasi, idClient */ function generateId() { require( 'config.php' ); $this->_db->setQuery( "SELECT * FROM $this->_tbl" ); $rows = $this->_db->loadRowList(); $max = array( 'TERA' 'TERA ULANG' 'KALIBRASI' 'CLIENT' 'CAPTERA' 'STANDARUKURAN' 'prefix_pendaftaran' "$config_prefix_idPendaftaran", 'prefix_tera' 'prefix_tera_ulang' 'prefix_kalibrasi' 'prefix_client' "$config_prefix_idClient", 'prefix_captera' 'prefix_standarukuran' "$config_prefix_idStandarukuran", ); for ($i=0, $n=count( $rows $row $idPendaftaran $idTTUKC => 0, => 0, => => => => => => "$config_prefix_idTera", => "$config_prefix_idTeraUlang", => "$config_prefix_idKalibrasi", => => "$config_prefix_idCaptera", => 0, 0, 0, 0,
); $i < $n; $i++) { =& $rows[$i]; = intval( substr( $row[0], 5 ) ); = intval( substr( $row[0], 3 ) );
$kd = explode( '-', $row[0] ); if( $kd[1] == $max['prefix_tera'] ) { $max['TERA'] = $this>compareIntVal( $max['TERA'], $idPendaftaran ); } else if ( $kd[1] == $max['prefix_tera_ulang'] ) { $max['TERA ULANG'] = $this>compareIntVal( $max['TERA ULANG'], $idPendaftaran ); } else { $max['KALIBRASI'] = $this>compareIntVal( $max['KALIBRASI'], $idPendaftaran ); } break; case 'tera': if( $kd[1] == $max['prefix_tera'] ) { $max['TERA'] = $this>compareIntVal( $max['TERA'], $idTTUKC ); } else { $max['TERA ULANG'] = $this>compareIntVal( $max['TERA ULANG'], $idTTUKC ); } break; case 'kalibrasi': $max['KALIBRASI'] = $this>compareIntVal( $max['KALIBRASI'], $idTTUKC ); break; case 'client': $max['CLIENT'] = $this->compareIntVal( $max['CLIENT'], $idTTUKC ); break; case 'cap_tera': $max['CAPTERA'] = $this->compareIntVal( $max['CAPTERA'], $idTTUKC ); break; case 'standar_ukuran': $max['STANDARUKURAN'] = $this>compareIntVal( $max['STANDARUKURAN'], $idTTUKC ); break; } }//end for $nextId = array( 'pendaftaran' => array( 'TERA' => $max['prefix_pendaftaran'] . '-' . $max['prefix_tera'] . '-' . ( $max['TERA'] + 1 ), 'TERA ULANG' => $max['prefix_pendaftaran'] . '-' . $max['prefix_tera_ulang'] . '-' . ( $max['TERA ULANG'] + 1 ), 'KALIBRASI' => $max['prefix_pendaftaran'] . '-' . $max['prefix_kalibrasi'] . '-' . ( $max['KALIBRASI'] + 1 ), ), 'TERA' => $max['prefix_tera'] . '-' . ( $max['TERA'] + 1 ), 'TERA ULANG' => $max['prefix_tera_ulang'] . '-' . ( $max['TERA ULANG'] + 1 ), 'KALIBRASI' => $max['prefix_kalibrasi'] . '-' . ( $max['KALIBRASI'] + 1 ), 'CLIENT' => $max['prefix_client'] . '-' . ( $max['CLIENT'] + 1 ),
'CAPTERA' => $max['prefix_captera'] . '-' . ( $max['CAPTERA'] + 1 ), 'STANDARUKURAN' => $max['prefix_standarukuran'] . '-' . ( $max['STANDARUKURAN'] + 1 ), ); return $nextId; } function compareIntVal( $val1, $val2) { $max = 0; if( $val1 <= $val2 ) { $max = $val2; } else { $max = $val1; } return $max; } /** * Check the primary key */ function checkId( $id ) { if ( empty($id) ) { return false; } $this->_db->setQuery( "SELECT COUNT(*) FROM $this->_tbl WHERE $this->_tbl_key='$id'" ); $res = $this->_db->loadResult(); if ( intval( $res ) >= 1 ){ return true; } else { return false; } } }//end class mosDBTable