You are on page 1of 166

PENGEMBANGAN PERANGKAT LUNAK PENGOLAHAN TERA, TERA ULANG DAN KALIBRASI BERBASIS CLIENT- SERVER (Studi Kasus di Balai

Metrologi Wilayah Surakarta)

Tugas Akhir ini diajukan sebagai salah satu syarat untuk kelulusan Progam Studi (Strata 1) STTIS BANDUNG

Disusun Oleh : Nama : MUSLIM PRIBADI MUHAMMAD NIM : 11020005

JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI TEKNOLOGI INFORMATIKA SONY SUGEMA BANDUNG 2007

LEMBAR PENGESAHAN

Tugas Akhir yang berjudul :

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

Bandung, Maret 2007 Disahkan Oleh :

Pembimbing

Ketua Program Studi Teknik Informatika

________________ Toto Suharto, MT

___________________ Nia Ambarsari, Ssi

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.

Bandung, Februari 2007

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

Gambar 4.96. Gambar 4.97. Gambar 4.98. Gambar 4.99.

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.

Business worker, sebuah peran atau jabatan dalam sebuah orgaisasi.


NewClass

Use case, level tertinggi dari bagian-bagian


NewUseCase

fungsional yang akan disediakan oleh sistem.

Business use case, proses kerja dalam organisasi.


NewUseCase

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

media penyimpanan. Class Object

NewClass4

Package
NewPackag e

NewCo mponent

Component

Database component

MySQL database

Processor

Processor

Connection

DAFTAR LAMPIRAN

Lampiran Lampiran 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.

BAB II LANDASAN TEORI

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) :

Gambar 2.1. model proses di RUP.

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

Gambar 2.2. Ilustrasi Objek dan kelas.

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

Client (W eb Brow ser)


3

2 P hp E ngine

File.php (HTM L)

Gambar 2.3. PHP Server side scripting.

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.

Gambar 2.4. MySQL Multiple Storage Engine Architecture

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 )

Response( koneksi:true ) Aplikasi MySQL Server

Gambar 2.5. Buat koneksi.

2.

Pemilihan database yang akan digunakan. Pemilihan database dilakukan dengan menggunakan fungsi khusus dari PHP.
2.
Send ( nama database )

Response( database:true ) Aplikasi MySQL Server

Gambar 2.6. Pilih database.

3.

Pengiriman perintah kepada MySQL dengan menggunakan SQL.


3.
Send ( SQL )

Response( data result ) Aplikasi MySQL Server

Gambar 2.7. Pengiriman perintah MySQL.

BAB III DEFINISI KEBUTUHAN

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

TIDAK MEMENUHI SYARAT

BATAL (TIDAK DAPAT) DIPERBAIKI PEMBUBUHAN TANDA TERA PADA UTTP

BATAL (DAPAT) DIPERBAIKI

UTTP UNTUK KEPERLUAN - KEPENTINGAN UMUM, USAHA - MENYERAHKAN / MENERIMA BARANG - MENENTUKAN PUNGUTAN / UPAH PRODUK AKHIR - MELAKUKAN PERUNDANG-UNDANGAN

Gambar 3.1. Prosedur Tera

1. Di kantor a. Mengajukan permohonan tertulis. b. Mengisi formulir yang disediakan. c. Pengujian oleh pegawai berhak, meliputi : Pengujian material.

Pengujian unjuk kerja.

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

TIDAK MEMENUHI SYARAT

REPARATIR

PEMBUBUHAN TANDA TERA PADA UTTP

UTTP UNTUK KEPERLUAN - KEPENTINGAN UMUM, USAHA - MENYERAHKAN / MENERIMA BARANG - MENENTUKAN PUNGUTAN / UPAH PRODUK AKHIR - MELAKUKAN PERUNDANG-UNDANGAN

Gambar 3.2. Prosedur Tera Ulang

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

Penyerahan - Alat yang sudah dikalibrasi - Sertifikasi Kalibrasi

Pengkondisian Alat Akur

Pembayaran

Kalibrasi

- Pembuatan sertifikat - Pemberian Label

Perhitungan Data

Gambar 3.3. Prosedur Kalibrasi

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

Laporan Bul anan

Sub Bag. Tata Usaha

Inventarisir

Seksi SUK

Kalibrasi

Tera Seksi Teknik

Tera Ulang

Gambar 3.4. Business Use Case Diagram.

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 Pembayaran Front Officer

Data Client

Gambar 3.5. Business Object Model Pendaftaran

B. Business Object Model Laporan Bulanan.

Laporan Tera

Kepala Balai Sistem

Laporan Tera Ulang

Data Kalibrasi

Gambar 3.6. Business Object Model Laporan Bulanan.

C. Business Object Model Inventarisir.

Data UTTP

Sub Bag. Tata Usaha

Data Cap Tera Operator Tata Usaha

Data Standar Ukuran

Gambar 3.7. Business Object Model Inventarisir

D. Business Object Model Kalibrasi.

Data Sertifikasi

Sie. Standar Ukuran dan Kalibrasi

Operator Standar Ukuran dan Kalibrasi

Data Petugas

Gambar 3.8. Business Object Model Kalibrasi

E. Business Object Model Tera.

Data Petugas

Sie. Teknik

Operator Teknik

Laporan Tera

Gambar 3.9. Business Object Model Tera

F. Business Object Model Tera Ulang.

Data Petugas

Sie. Teknik

Operator Teknik

Laporan Tera Ulang

Gambar 3.10. Business Object Model Tera Ulang

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

Lihat data pembayaran

Tagih tunggakan

Ada tunggakan Tidak ada tunggakan Catat pendaftaran

B. Business Activity Diagram Laporan Bulanan.


Tabel 3.2. Business Activity Diagram Laporan Bulanan.
Kepala Balai Sistem

Minta laporan

Tampilkan laporan bulanan

C. Business Activity Diagram Inventarisir.


Tabel 3.3. Business Activity Diagram Inventarisir.
Sub Bag. Tata Usaha Operator Tata Usaha

Serahkan daftar alat UTTP, cap tera dan standar ukuran

Catat kedalam inventaris

D. Business Activity Diagram Kalibrasi.


Tabel 3.4. Business Activity Diagram Kalibrasi.
Sie. Standar Ukuran dan Kalibrasi Operator Standar ukuran dan kalibrasi

Serahkan daftar pemohon kalibrasi

Catat kegiatan sertifikasi kalibrasi

E. Business Activity Diagram Tera.


Tabel 3.5. Business Activity Diagram Tera.
Sie. Teknik Operator Teknik

Serahkan data kegiatan tera

Catat data kegiatan tera

F. Business Activity Diagram Tera Ulang.


Tabel 3.6. Business Activity Diagram Tera Ulang.
Sie. Teknik Operator Teknik

Serahkan data kegiatan Tera Ulang

Catat data kegiatan tera ulang

3.3 Gambaran Umum Merupakan gambaran struktur dan hubungan antar komponen dari sistem keseluruhan secara fisik.

Front Office (Sub. Bag. TU)

Kepala Balai

Sub Bag. TU
3C om

Hub Sie. Teknik

Web + DB Server

Sie. Standar Ukuran dan Kalibrasi

Gambar 3.11. Gambaran Umum.

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

Kode Kebutuhan Req-FO-1 Req-FO-1.1 Req-FO-2.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

Req-FO-2 Req-FO-2.1 Req-FO-2.2 Req-FO-2.3

Req-FO-3 Req-FO-3.1 Req-FO-3.2 Req-FO-3.3 Req-FO-3.4

2. Kepala Balai.
Tabel 3.8. Kebutuhan Fungsional Kepala Balai.

No 1 2 3

Kode Kebutuhan Req-KB-1 Req-KB-2 Req-KB-3

Deskripsi Kebutuhan Melihat data Tera. Melihat data Tera Ulang. Melihat data Kalibrasi

3. Sub Bagian Tata Usaha.


Tabel 3.9. Kebutuhan Fungsional Sub Bagian Tata Usaha.

No 1

Kode Kebutuhan Req-TU-1 Req-TU-1.1 Req-TU-1.2 Req-TU-1.3 Req-TU-1.4 Req-TU-1.5 Req-TU-1.6

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.

Req-TU-2 Req-TU-2.1 Req-TU-2.2 Req-TU-2.3

Req-TU-3 Req-TU-3.1 Req-TU-3.2 Req-TU-3.3

Req-TU-4 Req-TU-4.1 Req-TU-4.2 Req-TU-4.3

4. Seksi Standar Ukuran dan Kalibrasi.


Tabel 3.10. Kebutuhan Fungsional Seksi. Standar Ukuran dan Kalibrasi.

No 1 2

Kode Kebutuhan Req-SUK-1 Req-SUK-1.1

Deskripsi Kebutuhan Kelola kalibrasi. Merubah (edit) kalibrasi.

5. Seksi Teknik.
Tabel 3.11. Kebutuhan Fungsional Seksi Teknik.

No 1

Kode Kebutuhan Req-TK-1 Req-TK-1.1 Kelola Tera.

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

Front Officer Kelola client

<<extend>> <<extend>> Edit client

Hapus client

<<extend>> <<extend>> Kelola pembayaran client

Catat pembayaran client

<<extend>>

<<extend>>

Cetak bukti pembayaran

Cetak tanda terima

Hapus Pendaftaran

Gambar 3.12. Use Case Diagram Front Office.

2. Kepala Balai.

Lihat data Tera

Kepala Balai

Lihat data Tera Ulang

Lihat data Kalibrasi

Gambar 3.13. Use Case Diagram Kepala Balai.

3. Sub Bagian Tata Usaha.

Edit alat UTTP

Hapus alat UTTP

<<extend>> Catat alat UTTP <<extend>>

<<extend>>

<<extend>>

Catat jenis UTTP

<<extend>> Edit jenis UTTP Kelola alat UTTP <<extend>>

Hapus jenis UTTP Sub Bag. Tata Usaha Kelola Standar Ukuran <<extend>> <<extend>> Catat Standar Ukuran

<<extend>> Edit Standar Ukuran

Kelola Cap Tera

<<extend>>

Hapus Standar Ukuran

Kelola pegawai

<<extend>> <<extend>>

Catat Cap Tera

<<extend>>

<<extend>> <<extend>> Edit data Cap Tera

Catat data pegawai

Edit data Pegawai

Hapus pegawai

Hapus Cap Tera

Gambar 3.14. Use Case Diagram Sub Bagian Tata Usaha.

4. Seksi Standar Ukuran dan Kalibrasi.

<<extend>> Sie. SUK Kelola kalibrasi Edit kalibrasi

Gambar 3.15. Use Case Diagram Seksi Standar Ukuran dan Kalibrasi.

5. Seksi Teknik.
<<extend>>

Kelola tera

Edit Tera

Seksi Teknik <<extend>> Kelola tera ulang Edit Tera Ulang

Gambar 3.16. Use Case Diagram Seksi Teknik.

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

Tabel 3.13. Flow of Event Front Office 1.1.

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

Tabel 3.14. Flow of Event Front Office 2.

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

Tabel 3.16. Flow of Event Front Office 2.2.

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

Tabel 3.17. Flow of Event Front Office 2.3.

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

Tabel 3.18. Flow of Event Front Office 3.

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

Tabel 3.19. Flow of Event Front Office 3.1.

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

Tabel 3.20. Flow of Event Front Office 3.2.

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.

Tabel 3.21. Flow of Event Front Office 3.3

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

Tabel 3.22. Flow of Event Sub Bagian Tata Usaha 3.4.

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

Tabel 3.24. Flow of Event Kepala Balai 2.

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

Tabel 3.25. Flow of Event Kepala Balai 3.

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

3. Sub Bagian Tata Usaha.


Tabel 3.26. Flow of Event Sub Bagian Tata Usaha 1.

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

Tabel 3.27. Flow of Event Sub Bagian Tata Usaha 1.1.

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

Tabel 3.28. Flow of Event Sub Bagian Tata Usaha 1.2

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

Tabel 3.29. Flow of Event Sub Bagian Tata Usaha 1.3.

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

Tabel 3.30. Flow of Event Sub Bagian Tata Usaha 1.4.

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

Tabel 3.31. Flow of Event Sub Bagian Tata Usaha 1.5

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

Tabel 3.32. Flow of Event Sub Bagian Tata Usaha 1.6.

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

Tabel 3.33. Flow of Event Sub Bagian Tata Usaha 2.

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

Tabel 3.34. Flow of Event Sub Bagian Tata Usaha 2.1.

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

Tabel 3.35. Flow of Event Sub Bagian Tata Usaha 2.2.

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

Tabel 3.36. Flow of Event Sub Bagian Tata Usaha 2.3.

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

Tabel 3.37. Flow of Event Sub Bagian Tata Usaha 3.

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

Tabel 3.38. Flow of Event Sub Bagian Tata Usaha 3.1

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

Tabel 3.39. Flow of Event Sub Bagian Tata Usaha 3.2

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

Tabel 3.40. Flow of Event Sub Bagian Tata Usaha 3.3

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

Tabel 3.41. Flow of Event Sub Bagian Tata Usaha 4.

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

Tabel 3.42. Flow of Event Sub Bagian Tata Usaha 4.1.

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

Tabel 3.43. Flow of Event Sub Bagian Tata Usaha 4.2.

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

Tabel 3.44. Flow of Event Sub Bagian Tata Usaha 4.3

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

4. Seksi Standar Ukuran dan Kalibrasi.


Tabel 3.45. Flow of Event Seksi Standar Ukuran dan Kalibrasi 1.

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

Tabel 3.48. Flow of Event Seksi Teknik 1.1

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

Tabel 3.49. Flow of Event Seksi Teknik 2.

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

Tabel 3.50. Flow of Event Seksi Teknik 2.1

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

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

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

Nama Proses Mencatat pendaftaran

Boundary registrasi registrasi client client client client registrasi

Control registrasiCtrl rgistrasiCtrl clientCtrl clientCtrl clientCtrl clientCtrl registrasiCtrl

Entity mosRegistrasi database mosClient mosClient mosClient mosClient mosRegistrasi

1.1 Periksa Client 2 Kelola Client

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

Nama Proses Melihat data Tera. Melihat data Tera Ulang.

Boundary rekap rekap

Control rekapCtrl rekapCtrl

Entity database database

Melihat data Kalibrasi

rekap

rekapCtrl

database

8. Sub Bagian Tata Usaha.


Tabel 4.3. Identifikasi Kelas Sub Bagian Tata Usaha.

No 1

Nama Proses Kelola alat UTTP uttp uttp uttp

Boundary

Control uttpCtrl uttpCtrl uttpCtrl

Entity mosUttp mosUttp mosUttp

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

captera captera captera

capteraCtrl capteraCtrl capteraCtrl

mosCaptera mosCaptera mosCaptera

2.1 Mencatat cap tera. 2.2 Merubah (edit) cap

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

9. Seksi Standar Ukuran dan Kalibrasi.


Tabel 4.4. Identifikasi Kelas Seksi Standar Ukuran dan Kalibrasi.

No 1

Nama Proses Kelola kalibrasi.

Boundary kalibrasi kalibrasi

Control kalibrasiCtrl kalibrasiCtrl

Entity mosKalibrasi mosKalibrasi

1.1 Merubah (edit) kalibrasi.

10. Seksi Teknik.


Tabel 4.5. Identifikasi Kelas Seksi Teknik.

No 1

Nama Proses Kelola Tera. tera tera tera tera

Boundary

Control teraCtrl teraCtrl teraCtrl teraCtrl

Entity mosTera mosTera mosTera mosTera

1.1 Merubah (edit) Tera. 2 Kelola Tera Ulang.

2.1 Merubah (edit) Tera ulang.

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

Gambar 4.1. Diagram Kolaborasi Pendaftaran.

Periksa Client
clientdetail post variable simpan

front officer

registrasi

registrasiCtrl

mosRegistrasi

Gambar 4.2. Diagram Kolaborasi periksa client.

Kelola Client
show

front officer

client

clientCtrl

mosClient

Gambar 4.3. Diagram Kolaborasi kelola client.

Catat Client
new post variable simpan

front officer

client

clientCtrl

mosClient

Gambar 4.4. Diagram Kolaborasi Catat client.

Edit Client
edit post variable simpan

front officer

client

clientCtrl

mosClient

Gambar 4.5. Diagram Kolaborasi Edit client.

Hapus Client
remove post variable hapus

front officer

client

clientCtrl

mosClient

Gambar 4.6. Diagram Kolaborasi Hapus Client.

Kelola Pembayaran Client


show

front officer

registrasi

registrasiCtrl

mosRegistrasi

Gambar 4.7. Diagram Kolaborasi kelola pembayaran client.

Catat pembayaran Client


pay post variable simpan

front officer

registrasi

registrasiCtrl

mosRegistrasi

Gambar 4.8. Diagram Kolaborasi catat pembayaran client.

Cetak Tanda Terima


print post variable simpan

front officer

registrasi

registrasiCtrl

mosRegistrasi

Gambar 4.9. Diagram Kolaborasi cetak tanda terima.

Cetak Bukti Pembayaran


print post variable simpan

front officer

registrasi

registrasiCtrl

mosRegistrasi

Gambar 4.10. Diagram Kolaborasi cetak bukti pembayaran.

Hapus Data Pendaftaran


remove post variable hapus

front officer

registrasi

registrasiCtrl

mosRegistrasi

Gambar 4.11. Diagram Kolaborasi hapus data pendaftaran.

2. Kepala Balai. Melihat data Tera


tera

kepala balai

rekap

rekapCtrl

database

Gambar 4.12. Diagram Kolaborasi melihat data tera.

Melihat data Tera Ulang


tera

kepala balai

rekap

rekapCtrl

database

Gambar 4.13. Diagram Kolaborasi melihat data tera ulang.

Melihat data Kalibrasi


kalibrasi

kepala balai

rekap

rekapCtrl

database

Gambar 4.14. Diagram Kolaborasi melihat data kalibrasi

3. Sub Bagian Tata Usaha. Kelola alat UTTP


show

sub bag. TU

uttp

uttpCtrl

mosUttp

Gambar 4.15. Diagram Kolaborasi kelola alat UTTP.

Catat jenis UTTP


new post variable simpan

sub bag. TU

uttp

uttpCtrl

mosUttp

Gambar 4.16. Diagram Kolaborasi catat janis UTTP.

Edit jenis UTTP


edit post variable simpan

sub bag. TU

uttp

uttpCtrl

mosUttp

Gambar 4.17. Diagram Kolaborasi edit jenis UTTP.

Hapus jenis UTTP


remove post variable hapus

sub bag. TU

uttp

uttpCtrl

mosUttp

Gambar 4.18. Diagram Kolaborasi hapus jenis UTTP.

Catat alat UTTP


new post variable simpan

sub bag. TU

uttp

uttpCtrl

mosUttp

Gambar 4.19. Diagram Kolaborasi catat alat UTTP.

Edit alat UTTP


edit post variable simpan

sub bag. TU

uttp

uttpCtrl

mosUttp

Gambar 4.20. Diagram Kolaborasi edit alat UTTP.

Hapus alat UTTP


remove post variable hapus

sub bag. TU

uttp

uttpCtrl

mosUttp

Gambar 4.21. Diagram Kolaborasi hapus alat UTTP.

Kelola Cap Tera


show

sub bag. TU

captera

capteraCtrl

mosCaptera

Gambar 4.22. Diagram Kolaborasi keloala cap tera.

Catat Cap Tera


new post variable simpan

sub bag. TU

captera

capteraCtrl

mosCaptera

Gambar 4.23. Diagram Kolaborasi catat cap tera.

Edit Cap Tera


edit post variable simpan

sub bag. TU

captera

capteraCtrl

mosCaptera

Gambar 4.24. Diagram Kolaborasi edit cap tera.

Hapus Cap Tera


remove post variable hapus

sub bag. TU

captera

capteraCtrl

mosCaptera

Gambar 4.25. Diagram Kolaborasi hapus cap tera.

Kelola Standar Ukuran


show

sub bag. TU

standar

standarCtrl

mosStandar

Gambar 4.26. Diagram Kolaborasi kelola standar ukuran.

Catat Standar Ukuran


new post variable simpan

sub bag. TU

standar

standarCtrl

mosStandar

Gambar 4.27. Diagram Kolaborasi catat standar ukuran.

Edit Standar Ukuran


edit post variable simpan

sub bag. TU

standar

standarCtrl

mosStandar

Gambar 4.28. Diagram Kolaborasi edit standar ukuran.

Hapus Standar Ukuran


remove post variable hapus

sub bag. TU

standar

standarCtrl

mosStandar

Gambar 4.29. Diagram Kolaborasi hapus standar ukuran.

Kelola Pegawai
show

sub bag. TU

pegawai

pegawaiCtrl

mosPegawai

Gambar 4.30. Diagram Kolaborasi kelola pegawai.

Catat Pegawai
new post variable simpan

sub bag. TU

pegawai

pegawaiCtrl

mosPegawai

Gambar 4.31. Diagram Kolaborasi mencatat pegawai.

Edit Pegawai
edit post variable simpan

sub bag. TU

pegawai

pegawaiCtrl

mosPegawai

Gambar 4.32. Diagram Kolaborasi edit pegawai.

Hapus Pegawai
remove post variable hapus

sub bag. TU

pegawai

pegawaiCtrl

mosPegawai

Gambar 4.33. Diagram Kolaborasi hapus pegawai.

4. Seksi Standar Ukuran dan Kalibrasi. Kelola Kalibrasi


show

sie. SUK

kalibrasi

kalibrasiCtrl

mosKalibrasi

Gambar 4.34. Diagram Kolaborasi kelola kalibrasi.

Edit Kalibrasi
edit post variable simpan

sie. SUK

kalibrasi

kalibrasiCtrl

mosKalibrasi

Gambar 4.35. Diagram Kolaborasi edit kalibrasi.

5. Seksi Teknik. Kelola Tera


show

sie. teknik

tera

teraCtrl

mosTera

Gambar 4.36. Diagram Kolaborasi kelola tera.

Edit Tera
edit post variable simpan

sie. teknik

tera

teraCtrl

mosTera

Gambar 4.37. Diagram Kolaborasi edit tera.

Kelola Tera Ulang


show

sie. teknik

tera

teraCtrl

mosTera

Gambar 4.38. Diagram Kolaborasi kelola tera ulang.

Edit Tera Ulang


edit post variable simpan

sie. teknik

tera

teraCtrl

mosTera

Gambar 4.39. Diagram Kolaborasi edit tera ulang.

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

Gambar 4.40. Diagram Kelas front office (pendaftaran).

2. Kepala Balai.

rekap

rekapCtrl

database

Gambar 4.41. Diagram Kelas kepala balai.

3. Sub Bagian Tata Usaha.

pegawai

pegawaiCtrl

mosPegawai

uttp

uttpCtrl

mosUttp

captera

capteraCtrl

mosCaptera

standar

standarCtrl

mosStandar

Gambar 4.42. Diagram Kelas sub Bagian tata usaha.

4. Seksi Standar Ukuran dan Kalibrasi.

kalibrasi

kalibrasiCtrl

mosKalibrasi

Gambar 4.43. Diagram Kelas Seksi standar ukuran dan kalibrasi.

5. Seksi Teknik.

tera

teraCtrl

mosTera

Gambar 4.44. Diagram Kelas Seksi teknik.

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

1: new registrasiCtrl() 2: editRegistrasi(0) 3: saveReg($task) 4: new mosRegistrasi($db) 5: bind($_POST) 6: check() 7: store()

Gambar 4.45. Diagram Sequence Catat Pendaftaran.

Periksa Client
registrasi registrasiCtrl mosRegistrasi

1: new registrasiCtrl() 2: editRegistrasi(0) 3: saveReg($task) 4: new mosRegistrasi($db) 5: setQuery($query) 6: load()

Gambar 4.46. Diagram Sequence Periksa Client.

Kelola Client
client 1: new clientCtrl() 2: show($option) 3: new mosClient($db) 4: setQuery($query) 5: loadObjectList() clientCtrl mosClient

Gambar 4.47. Diagram Sequence kelola Client.

Catat Client
client 1: new clientCtrl() 2: editClient(0) 3: saveClient() 4: new mosClient($db) 5: bind($_POST) 6: check() 7: store() clientCtrl mosClient

Gambar 4.48. Diagram Sequence Catat Client.

Edit Client
client 1: new clientCtrl() 2: editClient($uid) 3: saveClient($task) 4: mosClient 5: bind($_POST) 6: check() 7: store() clientCtrl mosClient

Gambar 4.49. Diagram Sequence Edit Client.

Hapus Client
client 1: new clientCtrl() 2: removeClient($id,$option) 3: new mosClient($db) 4: delete($id) clientCtrl mosclient

Gambar 4.50. Diagram Sequence Hapus Client.

Kelola Pembayaran Client


registrasi registrasiCtrl mosRegistrasi

1: new registrasiCtrl() 2: show($option) 3: new mosRegistrasi($db) 4: setQuery($query) 5: loadObjectList()

Gambar 4.51. Diagram Sequence Kelola Pembayaran Client.

Catat Pembayaran Client


registrasi regisatrasiCtrl mosRegistrasi

1: new registrasiCtrl() 2: payment($uid) 3: new mosRegistrasi($db) 4: load($uid) 5: payment($uid,$pay) 6: pay($uid,$pay)

Gambar 4.52. Diagram Sequence catat pembayaran Client.

Cetak Tanda Terima


registrasi registrasiCtrl mosRegistrasi

1: new registrasiCtrl() 2: show($option) 3: new mosRegistrasi($db) 4: setQuery($query) 5: loadObjectList()

Gambar 4.53. Diagram Sequence Cetak Tanda Terim.

Cetak bukti Pembayaran


registrasi registrasiCtrl mosRegistrasi

1: new registrasiCtrl() 2: show($option) 3: new mosRegistrasi($db) 4: setQuery($query) 5: loadObjectList()

Gambar 4.54. Diagram Sequence cetak bukti pembayaran.

Hapus Data Pendaftaran


registrasi registrasiCtrl mosRegistrasi

1: new registrasiCtrl() 2: removeRegistrasi($id,$option) 3: mosRegistrasi($db) 4: delete($id)

Gambar 4.55. Diagram Sequence Hapus data Pendaftaran.

2. Kepala Balai. Melihat data Tera


tera 1: new teraCtrl() 2: show($option,$section) 3: new mosTera($db) 4: setQuery($query) 5: loadObjectList() teraCtrl mosTera

Gambar 4.56. Diagram Sequence melihat data tera.

Melihat data Tera Ulang


tera 1: new teraCtrl() 2: show($option,$section) 3: new mosTera($db) 4: setQuery($query) 5: loadObjectList() teraCtrl mosTera

Gambar 4.57. Diagram Sequence melihat data tera ulang.

Melihat data Kalibrasi


kalibrasi kalibrasiCtrl mosKalibrasi

1: new kalibrasiCtrl() 2: show($option) 3: new mosKalibrasi($db) 4: setQuery($query) 5: loadObjectList()

Gambar 4.58. Diagram Sequence melihat data kalibrasi.

3. Sub Bagian Tata Usaha. Kelola Alat UTTP


uttp 1: new uttpCtrl() 2: show($option) 3: new mosUttp($db) 4: setQuery($query) 5: loadObjectList() uttpCtrl mosUttp

Gambar 4.59. Diagram Sequence Kelola Alat UTTP.

Catat Jenis UTTP


uttp 1: new uttpCtrl() 2: editUttp(0) 3: saveUttp($task) 4: new mosUttp($db) 5: bind($_POST) 6: check() 7: store() uttpCtrl mosUttp

Gambar 4.60. Diagram Sequence catat Jenis UTTP.

Edit Jenis UTTP


uttp 1: new uttpCtrl() 2: editUttp($uid) 3: saveUttp($task) 4: new mosUttp($db) 5: bind($_POST) 6: check() 7: store() uttpCtrl mosUttp

Gambar 4.61. Diagram Sequence Edit Jenis UTTP.

Hapus Jenis UTTP


uttp 1: new uttpCtrl() 2: removeuttp($id,$option) 3: new mosUttp($db) 4: delete($id) uttpCtrl mosUttp

Gambar 4.62. Diagram Sequence hapus Jenis UTTP.

Catat Alat UTTP


uttp 1: new uttpCtrl() 2: editUttp(0) 3: saveUttp($task) 4: new mosUttp($db) 5: bind($_POST) 6: check() 7: store() uttpCtrl mosUttp

Gambar 4.63. Diagram Sequence catat Alat UTTP.

Edit Alat UTTP


uttp 1: new uttpCtrl() 2: editUttp($uid) 3: saveUttp($task) 4: new mosUttp($db) 5: bind($_POST) 6: check() 7: store() uttpCtrl mosUttp

Gambar 4.64. Diagram Sequence Edit Alat UTTP.

Hapus Alat UTTP


uttp 1: new uttpCtrl() 2: removeuttp($id,$option) 3: new mosUttp($db) 4: delete($id) uttpCtrl mosUttp

Gambar 4.65. Diagram Sequence hapus Alat UTTP.

Kelola Cap Tera

captera

capteraCtrl 1: new capteraCtrl() 2: show($option)

mosCaptera

3: new mosCaptera($db) 4: setQuery($query) 5: loadObjectList()

Gambar 4.66. Diagram Sequence Kelola cap tera.

Catat Cap Tera


captera 1: new capteraCtrl() 2: editCaptera(0) 3: saveCaptera($task) 4: new mosCaptera($db) 5: bind($_POST) 6: check() 7: store() capteraCtrl mosCaptera

Gambar 4.67. Diagram Sequence catat cap tera.

Edit Cap Tera


captera 1: new capteraCtrl() 2: editCaptera($uid) 3: saveCaptera($task) 4: new mosCaptera($db) 5: bind($_POST) 6: check() 7: store() capteraCtrl mosCaptera

Gambar 4.68. Diagram Sequence edit cap tera.

Hapus Cap Tera


captera 1: new capteraCtrl() 2: removecaptera($id,$option) 3: new mosCaptera($db) 4: delete($id) capteraCtrl mosCaptera

Gambar 4.69. Diagram Sequence hapus cap tera.

Kelola Standar Ukuran

standar

standarCtrl 1: new standarCtrl() 2: show($option)

mosStandar

3: new mosStandar($db) 4: setQuery($query) 5: loadObjectList()

Gambar 4.70. Diagram Sequence Kelola standar ukuran.

Catat Standar Ukuran


standar 1: new standarCtrl() 2: editStandar(0) 3: saveStandar($task) 4: new mosStandar($db) 5: bind($_POST) 6: check() 7: store() standarCtrl mosStandar

Gambar 4.71. Diagram Sequence catat standar ukuran.

Edit Standar Ukuran


standar 1: new standarCtrl() 2: editStandar($uid) 3: saveStandar($task) 4: new mosStandar($db) 5: bind($_POST) 6: check() 7: store() standarCtrl mosStandar

Gambar 4.72. Diagram Sequence edit standar ukuran.

Hapus Standar Ukuran


standar 1: new standarCtrl() 2: removestandar($id,$option) 3: new mosStandar($db) 4: delete($id) standarCtrl mosStandar

Gambar 4.73. Diagram Sequence hapus standar ukuran.

Kelola Pegawai
pegawai pegawaiCtrl 1: new pegawaiCtrl() 2: show($option) 3: mosPegawai($db) 4: setQuery($query) 5: loadObjectList() mosPegawai

Gambar 4.74. Diagram Sequence Kelola Pegawai.

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

Gambar 4.75. Diagram Sequence mencatat pegawai.

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

Gambar 4.76. Diagram Sequence edit pegawai.

Hapus Pegawai
pegawai pegawaiCtrl 1: new pegawaiCtrl() 2: removePegawai($id,$option) 3: mosPegawai($db) 4: delete($id) mosPegawai

Gambar 4.77. Diagram Sequence Hapus pegawai.

4. Seksi Standar Ukuran dan Kalibrasi. Kelola Kalibrasi


kalibrasi kalibrasiCtrl mosKalibrasi

1: new kalibrasiCtrl() 2: show($option) 3: new mosKalibrasi($db) 4: setQuery($query) 5: loadObjectList()

Gambar 4.78. Diagram Sequence Kelola kalibrasi.

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

Gambar 4.79. Diagram Sequence edit kalibrasi.

5. Seksi Teknik. Kelola Tera


tera 1: new teraCtrl() 2: show($option,$section) 3: new mosTera($db) 4: setQuery($query) 5: loadObjectList() teraCtrl mosTera

Gambar 4.80. Diagram Sequence Kelola tera.

Edit Tera
tera teraCtrl mosTera

1: new teraCtrl() 2: editTera($uid) 3: saveTera($task) 4: new mosTera($db) 5: bind($_POST) 6: check() 7: store()

Gambar 4.81. Diagram Sequence edit tera.

Kelola Tera Ulang


tera 1: new teraCtrl() 2: show($option,$section) 3: new mosTera($db) 4: setQuery($query) 5: loadObjectList() teraCtrl mosTera

Gambar 4.82. Diagram Sequence Kelola tera ulang.

Edit Tera Ulang


tera teraCtrl mosTera

1: new teraCtrl() 2: editTera($uid) 3: saveTera($task) 4: new mosTera($db) 5: bind($_POST) 6: check() 7: store()

Gambar 4.83. Diagram Sequence edit tera ulang.

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

Gambar 4.84. Diagram Deployment

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

Gambar 4.85. Diagram Package front office (pendaftaran)

Kepala Balai
com_kepala_balai

com_rekap

includes

rekap

rekapCtrl

database

Gambar 4.86. Diagram Package kepala balai

Sub Bagian Tata Usaha


com_tu

com_uttp

includes

com_captera

com_standar

com_pegawai

uttpCtrl

captera

standar

pegawai

mos_uttp

uttp

capteraCtrl

standarCtrl

pegawaiCtrl

mosStandar

mosCaptera

Gambar 4.87. Diagram Package sub Bagian tata usaha

Seksi Kalibrasi
com_kalibrasi

includes kalibrasi kalibrasiCtrl

mosKalibrasi

Gambar 4.88. Diagram Package Seksi kalibrasi.

Seksi Teknik

com_tera

includes tera teraCtrl

mosTera

Gambar 4.89. Diagram Package Seksi teknik.

2. Diagram Package keseluruhan


sip_metrologi

com_suk includes com_pendaftaran

com_t

com_registrasi

componen com_standar

com_kepala_balai

com_uttp

com_tera

com_kalibrasi

com_tu com_pegawai

com_client com_captera

Gambar 4.90. Diagram Package keseluruhan.

4.2.4 Diagram Component Diagram component digunakan untuk menggambarkan keterkaitan antara komponen komponen perangkat lunak.
web server SIP Metrologi

MySQL database

Gambar 4.91. Diagram Component SIP Metrologi.

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

rincian_pembayaran_tera ukuran_uttp jumlah_uttp jumlah_uttp_sah biaya_uttp biaya_justir dibayar I I I <M> I <M> I I

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>

id_jenisuttp <pi> VA255 <M> keteranganjenis VA255 Identifier_1 <pi>

bentuk_uttp id_bentukuttp <pi> VA255 <M> bentukuttp VA255 Identifier_1 <pi> Relationship_15

Gambar 4.92. Rancangan Database CDM.

2. Physical Data Model


standar_ukuran id_standar nama_standar tingkat_ketelusuran tahun_produksi bahan_standar gambar_standar varchar(255) <pk> varchar(255) varchar(255) varchar(255) varchar(255) blob pengguna_sip session_id nip password user_type last_login ip_address <Undefined> <fk2> varchar(255) <fk1> varchar(255) varchar(255) timestamp varchar(255) FK_%REFERENCE% FK_%REFERENCE% FK_%REFERENCE% username session_id time user_type session <Undefined> <Undefined> <pk> <Undefined> varchar(255)

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)

varchar(255) <pk> varchar(255) <fk> date varchar(255)

FK_%REFERENCE%

FK_%REFERENCE%

id_tarif tarif_sertifikat tarif_tut500kl tarif_tutlebih500kl

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%

id_jenisuttp varchar(255) <pk> keteranganjenis varchar(255)

Gambar 4.93. Rancangan Database PDM.

Keterangan gambar :

many to many, many to one. one to one.

4.2.6 Rancangan User Interface Rancangan user interface merupakan draft dari antarmuka yang akan diterapkan pada perangkat lunak SIP Metrologi. 1. Login
Header

N.I.P. Kata Sandi Login

Input text Input text

Gambar 4.94. Rancangan User Interface login.

2. Control Panel

Header Home Ubah Perintah Logout user

Control Panel

tab1 Tombol Tombol Tombol

tab2

tab3

Notification area

Gambar 4.95. Rancangan User Interface control panel.

3. Reporting
Header Home Ubah Perintah Logout user baru ubah reporting hapus

Table caption1 Record1 Record2 Record3 Record4

Table Caption2

Table Caption3

Gambar 4.96. Rancangan User Interface reporting.

4. Form baru dan ubah

Header Home Ubah Perintah simpan baru Logout user terapkan batal

caption1 caption2 caption3 caption4

Table caption1 Table Caption2 Table Caption3 Table Caption4

Gambar 4.97. Rancangan User Interface form baru dan ubah.

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)

registrasi show() edit() editPay() print()

registrasiCtrl saveReg() show() editRegistrasi() cancelRegistrasi() submit() removeReg() payment() print()

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()

Gambar 4.98. Diagram Spesifikasi Kelas pendaftaran.

2. Kepala Balai

kepala_balai print() tera show() showUttp() edit()

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()

kalibrasi show() edit()

kalibrasiCtrl saveKalibrasi() show() editKalibrasi() cancel() removeKalibrasi()

Gambar 4.99. Diagram Spesifikasi Kelas kepala balai.

3. Sub Bagian Tata Usaha

uttp show() edit() captera show() edit()

uttpCtrl saveUttp() show() editUttp() cancelUttp() jenisUttp() removeUttp()

capteraCtrl saveCaptera() show() editCaptera() cancel() removeCaptera()

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()

standar show() edit()

standarCtrl saveStandar() show() editStandar() cancel() removeStandar()

pegawai show() edit()

pegawaiCtrl savePegawai() show() editPegawai() cancel() remove()

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.100. Diagram Spesifikasi Kelas Sub Bagian Tata usaha.

4. Seksi Standar Ukuran dan Kalibrasi


mosKalibrasi kalibrasiCtrl kalibrasi
show() edit() saveKalibrasi() show() editKalibrasi() cancel() removeKalibrasi() ID_KALIBRASI : String ID_PENDAFTARAN : String ID_STANDAR : String TGL_KALIBRASI : Date mosKalibrasi() 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()

Gambar 4.102. Diagram Spesifikasi Kelas Seksi teknik.

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).

No Nama Kelas 1 registrasi

Peran boundary class

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

entity class ID_PENDAFTARAN


ID_CLIENT JENIS_ PENDAFTARAN TEMPAT_ PELAKSANAAN ALAMAT_JALAN KELURAHAN KECAMATAN KOTA TGL_ PENDAFTARAN

client

boundary class control class

clientCtrl

mosClient

entity class ID_CLIENT


NAMA_ PERUSAHAAN NAMA_PEMILIK

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.

No Nama Kelas 1 rekap

Peran boundary class

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

_sql _errornum _errormsg _resource _cursor

3. Sub Bagian Tata Usaha

Tabel 4.8. Spesifikasi Kelas sub Bagian tata usaha.

No Nama Kelas 1 uttp

Peran boundary class control 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

boundary class control class

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

show(option, rows, pageNav, search, lists) edit(row, lists,

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

boundary class control class

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 ()

4. Seksi Standar Ukuran dan Kalibrasi


Tabel 4.9. Spesifikasi Kelas Seksi Standar ukuran dan kalibrasi.

No Nama Kelas 1 kalibrasi

Peran boundary class

Atribut

Method
show(option, rows, pageNav, search, lists) edit(row, lists, redirect)

kalibrasiCtrl

control class

mosKalibrasi

entity class

ID_KALIBRASI ID_ PENDAFTARAN ID_STANDAR TGL_ KALIBRASI

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.

No Nama Kelas 1 tera

Peran boundary class

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

ID_TERA ID_ PENDAFTARAN ID_CAP TGL_TERA STATUS_ TERA_ULANG

BAB V IMPLEMENTASI DAN PENGUJIAN

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.

Perangkat Processor RAM Hardisk Kartu Grafis

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)

Monitor Kartu Jaringan Printer

Acer 17 (1024x768 @ 32bit) RTL8201 10/100 Ethernet Canon Pixma 1600

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

Edition. Copyright 1991-2003

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 Perancangan registrasi

Kelas Implementasi

registrasiCtrl mosRegistrasi client clientCtrl mosClient

registrasiCtrl mosRegistrasi client clientCtrl mosClient

5.1.3.1.2. Kepala Balai


Tabel 5.4. Implementasi Kelas Kepala Balai.

No 1 2 3 rekap rekapCtrl database

Kelas Perancangan rekap rekapCtrl database

Kelas Implementasi

5.1.3.1.3. Sub Bagian Tata Usaha


Tabel 5.5. Implementasi Kelas Sub Bagian Tata Usaha.

No 1 2 3 4 5 6 7 8 9 10 11 12 uttp uttpCtrl mosUttp captera

Kelas Perancangan uttp uttpCtrl mosUttp captera

Kelas Implementasi

capteraCtrl mosCaptera standar standarCtrl mosStandar pegawai pegawaiCtrl mosPegawai

capteraCtrl mosCaptera standar standarCtrl mosStandar pegawai pegawaiCtrl mosPegawai

5.1.3.1.4. Seksi Standar Ukuran dan Kalibrasi


Tabel 5.6. Implementasi Kelas Seksi Standar Ukuran dan Kalibrasi.

No 1 2 3 kalibrasi

Kelas Perancangan kalibrasi

Kelas Implementasi

kalibrasiCtrl mosKalibrasi

kalibrasiCtrl mosKalibrasi

5.1.3.1.5. Seksi Teknik


Tabel 5.7. Implementasi Kelas Seksi Teknik.

No 1 2 3 tera teraCtrl mosTera

Kelas Perancangan tera teraCtrl mosTera

Kelas Implementasi

5.1.3.2. Implementasi Database Implementasi database menjelaskan mengenai struktur tabel beserta atribut penyusunya.
Tabel 5.8. Implementasi Database.

No 1

Tabel Implementasi bentuk_uttp

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

ID_JENISUTTP : Integer JENISUTTP : String KETERANGANJENIS : String

kalibrasi

ID_KALIBRASI : String ID_PENDAFTARAN : String ID_STANDAR : String TGL_KALIBRSI : Date

6 7 8

menera mengkalibrasi modules

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

BATAL : Integer HAPUS : Integer

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

TGL_RUBAH : Date HAPUS : Integer

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

Gambar 5.1. Implementasi User Interface Login.

2. Control Panel

Gambar 5.2. Implementasi User Interface Control Panel.

3. Reporting

Gambar 5.3. Implementasi User Interface Reporting.

4. Form Baru dan Ubah

Gambar 5.4. Implementasi User Interface Form Baru dan Ubah.

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.

Gambar 5.5. Seting password root.

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.

Gambar 5.6. Apache2TriadManager.

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;.

$config_live_site Merupakan alamat dari aplikasi SIP Metrologi, isi dengan

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.

Tabel 5.9. Identifikasi Pengujian

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

Front Office (Pendaftaran)

Mencatat pendaftaran.

Jenis Pengujian Sistem

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

Sub Bagian Tata Usaha

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.

Mencatat data alat UTTP. Merubah (edit) data alat

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.

Mengelola data kalibrasi

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

Sistem Sistem Sistem Sistem Sistem

Black Box Black Box Black Box Black Box Black Box

Ok Ok Ok Ok Ok

BAB VI KESIMPULAN DAN SARAN

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/.

LAMPIRAN 1 BEBERAPA DESKRIPSI DAN HASIL UJI

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

LAMPIRAN 2 LISTING PROGRAM

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 ) );

switch( $this->_tbl ) { case 'pendaftaran':

$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

LAMPIRAN 3 TANDA TERIMA DAN BUKTI PEMBAYARAN

You might also like