Skripsi S1 Muslimpribadi

You might also like

Download as pdf or txt
Download as pdf or txt
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 disela-

sela 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 do’a 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. Model proses di RUP ……………………………………. II-2

Gambar 2.2. Ilustrasi objek dan kelas …………………………………. II-4

Gambar 2.3. PHP Server side scripting ………….................................. II-6

Gambar 2.4. MySQL Multiple Storage Engine Architecture …………. II-7

Gambar 2.5. Buat koneksi ……………………………………………...II-8

Gambar 2.6. Pilih database ……………………………………………. II-8

Gambar 2.7. Pengiriman Perintah MySQL …………………………….II-9

Gambar 3.1. Prosedur Tera ……………………………………………. III-1

Gambar 3.2. Prosedur Tera Ulang …………………………………….. III-2

Gambar 3.3. Prosedur Kalibrasi ………………………………………..III-4

Gambar 3.4. Business Use Case Diagram …………………………….. III-5

Gambar 3.5. Business Object Model Pendaftaran …………………….. III-6

Gambar 3.6. Business Object Model Laporan Bulanan ………………..III-6

Gambar 3.7. Business Object Model Inventarisir ……………………... III-7

Gambar 3.8. Business Object Model Kalibrasi ………………………...III-7

Gambar 3.9. Business Object Model Tera ……………………………. III-7

Gambar 3.10. Business Object Model Tera Ulang ……………………... III-8

Gambar 3.11. Gambaran Umum ………………………………………... III-11

Gambar 3.12. Use Case Diagram Front Office ………………………….III-15

Gambar 3.13. Use Case Diagram Kepala Balai ………………………… III-16

Gambar 3.14. Use Case Diagram Sub Bagian Tata Usaha ……………... III-17

Gambar 3.14 Use Case Diagram Seksi Standar Ukuran dan Kalibrasi ... III-18
Gambar 3.16. Use Case Diagram Teknik ………………………………. III-18

Gambar 4.1. Diagram Kolaborasi Pendaftaran ………………………... IV-4

Gambar 4.2. Diagram Kolaborasi Periksa Client ……………………... IV-4

Gambar 4.3. Diagram Kolaborasi Kelola Client ……………………….IV-4

Gambar 4.4. Diagram Kolaborasi Catat Client ………………………... IV-5

Gambar 4.5. Diagram Kolaborasi Edit Client ………………………….IV-5

Gambar 4.6. Diagram Kolaborasi Hapus Client ………………………. IV-5

Gambar 4.7. Diagram Kolaborasi Kelola Pembayaran Client ………… IV-5

Gambar 4.8. Diagram Kolaborasi Catat Pembayaran Client ………….. IV-5

Gambar 4.9. Diagram Kolaborasi Cetak Tanda Terima ………………. IV-6

Gambar 4.10. Diagram Kolaborasi Cetak Bukti Pembayaran…………... IV-6

Gambar 4.11. Diagram Kolaborasi Hapus Data Pendaftaran…………… IV-6

Gambar 4.12. Diagram Kolaborasi Melihat Data Tera ………………….IV-6

Gambar 4.13. Diagram Kolaborasi Melihat Data Tera Ulang…………... IV-7

Gambar 4.14. Diagram Kolaborasi Melihat Data Kalibrasi…………….. IV-7

Gambar 4.15. Diagram Kolaborasi Kelola Alat UTTP…………………. IV-7

Gambar 4.16. Diagram Kolaborasi Catat Jenis UTTP …………………..IV-7

Gambar 4.17. Diagram Kolaborasi Edit Jenis UTTP …………………... IV-8

Gambar 4.18. Diagram Kolaborasi Hapus Jenis UTTP ………………… IV-8

Gambar 4.19. Diagram Kolaborasi Catat Alat UTTP …………………...IV-8

Gambar 4.20. Diagram Kolaborasi Edit Alat UTTP …………………… IV-8

Gambar 4.21. Diagram Kolaborasi Hapus Alat UTTP …………………. IV-8

Gambar 4.22. Diagram Kolaborasi Kelola Cap Tera ……………………IV-9

Gambar 4.23. Diagram Kolaborasi Catat Cap Tera …………………….. IV-9


Gambar 4.24. Diagram Kolaborasi Edit Cap Tera ………………………IV-9

Gambar 4.25. Diagram Kolaborasi Hapus Cap Tera …………………… IV-9

Gambar 4.26. Diagram Kolaborasi Kelola Standar Ukuran ……………. IV-10

Gambar 4.27. Diagram Kolaborasi Catat Standar Ukuran ……………... IV-10

Gambar 4.28. Diagram Kolaborasi Edit Standar Ukuran ………………. IV-10

Gambar 4.29. Diagram Kolaborasi Hapus Standar Ukuran ……………..IV-10

Gambar 4.30. Diagram Kolaborasi Kelola Pegawai ……………………. IV-10

Gambar 4.31. Diagram Kolaborasi Catat Pegawai ……………………... IV-11

Gambar 4.32. Diagram Kolaborasi Edit Pegawai ………………………. IV-11

Gambar 4.33. Diagram Kolaborasi Hapus Pegawai ……………………. IV-11

Gambar 4.34. Diagram Kolaborasi Kelola Kalibrasi …………………… IV-11

Gambar 4.35. Diagram Kolaborasi Edit Kalibrasi ……………………… IV-12

Gambar 4.36. Diagram Kolaborasi Kelola Tera ………………………... IV-12

Gambar 4.37. Diagram Kolaborasi Edit Tera …………………………... IV-12

Gambar 4.38. Diagram Kolaborasi Kelola Tera Ulang ………………… IV-12

Gambar 4.39. Diagram Kolaborasi Edit Tera Ulang …………………… IV-13

Gambar 4.40. Diagram Kelas Front Office (Pendaftaran) ……………… IV-13

Gambar 4.41. Diagram Kelas Kepala Balai …………………………….. IV-13

Gambar 4.42. Diagram Kelas Sub Bagian Tata Usaha …………………. IV-14

Gambar 4.43. Diagram Kelas Seksi Standar Ukuran dan Kalibrasi ……. IV-14

Gambar 4.44. Diagram Kelas Seksi Teknik ……………………………. IV-14

Gambar 4.45. Diagram Sequence Catat Pendaftaran …………………… IV-15

Gambar 4.46. Diagram Sequence Periksa Client ………………………..IV-16

Gambar 4.47. Diagram Sequence Kelola Client ………………………... IV-16


Gambar 4.48. Diagram Sequence Catat Client …………………………. IV-17

Gambar 4.49. Diagram Sequence Edit Client …………………………... IV-17

Gambar 4.50. Diagram Sequence Hapus Client ………………………... IV-18

Gambar 4.51. Diagram Sequence Kelola Pembayaran Client ………….. IV-18

Gambar 4.52. Diagram Sequence Catat Pembayaran Client …………… IV-19

Gambar 4.53. Diagram Sequence Cetak Tanda Terima ………………... IV-19

Gambar 4.54. Diagram Sequence Cetak Bukti Pembayaran …………… IV-20

Gambar 4.55. Diagram Sequence Hapus Data Pendaftaran ……………. IV-20

Gambar 4.56. Diagram Sequence Melihat Data Tera…………………… IV-21

Gambar 4.57. Diagram Sequence Melihat Data Tera Ulang …………… IV-21

Gambar 4.58. Diagram Sequence Melihat Data Kalibrasi ………………IV-22

Gambar 4.59. Diagram Sequence Kelola Alat UTTP …………………...IV-22

Gambar 4.60. Diagram Sequence Catat Jenis UTTP …………………… IV-23

Gambar 4.61. Diagram Sequence Edit Jenis UTTP ……………………..IV-23

Gambar 4.62. Diagram Sequence Hapus Jenis UTTP ………………….. IV-24

Gambar 4.63. Diagram Sequence Catat Alat UTTP ……………………. IV-24

Gambar 4.64. Diagram Sequence Edit Alat UTTP ……………………...IV-25

Gambar 4.65. Diagram Sequence Hapus Alat UTTP …………………... IV-25

Gambar 4.66. Diagram Sequence Kelola Cap Tera …………………….. IV-26

Gambar 4.67. Diagram Sequence Catat Cap Tera ……………………… IV-26

Gambar 4.68. Diagram Sequence Edit Cap Tera ……………………….. IV-27

Gambar 4.69. Diagram Sequence Hapus Cap Tera …………………….. IV-27

Gambar 4.70. Diagram Sequence Kelola Standar Ukuran ……………... IV-28

Gambar 4.71. Diagram Sequence Catat Standar Ukuran ………………..IV-28


Gambar 4.72. Diagram Sequence Edit Standar Ukuran ………………... IV-29

Gambar 4.73. Diagram Sequence Hapus Standar Ukuran ……………… IV-29

Gambar 4.74. Diagram Sequence Kelola Pegawai ……………………... IV-30

Gambar 4.75. Diagram Sequence Catat Pegawai ………………………. IV-30

Gambar 4.76. Diagram Sequence Edit Pegawai ………………………... IV-31

Gambar 4.77. Diagram Sequence Hapus Pegawai ……………………... IV-31

Gambar 4.78. Diagram Sequence Kelola Kalibrasi …………………….. IV-32

Gambar 4.79. Diagram Sequence Edit Kalibrasi ……………………….. IV-32

Gambar 4.80. Diagram Sequence Kelola Tera …………………………. IV-33

Gambar 4.81. Diagram Sequence Edit Tera ……………………………. IV-33

Gambar 4.82. Diagram Sequence Kelola Tera Ulang ………………….. IV-34

Gambar 4.83. Diagram Sequence Edit Tera Ulang …………………….. IV-34

Gambar 4.84. Diagram Deployment ……………………………………. IV-35

Gambar 4.85. Diagram Package Front Office (Pendaftaran) ……………IV-35

Gambar 4.86. Diagram Package Kepala Balai …………………………. IV-36

Gambar 4.87. Diagram Package Sub Bagian Tata Usaha ……………….IV-36

Gambar 4.88. Diagram Package Seksi Kalibrasi ……………………….. IV-37

Gambar 4.89. Diagram Package Seksi Teknik …………………………. IV-37

Gambar 4.90. Diagram Package Keseluruhan ………………………….. IV-38

Gambar 4.91. Diagram Component SIP Metrologi …………………….. IV-38

Gambar 4.92. Rancangan Database CDM ……………………………… IV-39

Gambar 4.93. Rancangan Database PDM ……………………………… IV-40

Gambar 4.94. Rancangan User Interface login …………………………. IV-41

Gambar 4.95. Rancangan User Interface control panel ………………… IV-41


Gambar 4.96. Rancangan User Interface reporting …………………….. IV-42

Gambar 4.97. Rancangan User Interface form baru dan ubah …………..IV-42

Gambar 4.98. Diagram Spesifikasi Kelas Front Office (Pendaftaran) …. IV-43

Gambar 4.99. 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. Implementasi User Interface Login ……………………... V-9

Gambar 5.2. Implementasi User Interface Control Panel ……………... V-10

Gambar 5.3. Implementasi User Interface Reporting …………………. V-10

Gambar 5.4. Implementasi User Interface Form Baru da Ubah ………. V-11

Gambar 5.5. Setting password root …………………………………… V-12

Gambar 5.6. 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


fungsional yang akan disediakan oleh sistem.
NewUseCase

Business use case, proses kerja dalam


organisasi.
NewUseCase

Undirectional association

Dependencies or instantiates

<< include >> Include use case


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

NewClass4 Class

Object

Package
NewPackag
e

NewCo Component
mponent

Database component

MySQL database

Processor
Processor

Connection
DAFTAR LAMPIRAN

Lampiran 1 Beberapa Deskripsi dan Hasil Uji

Lampiran 2 Listing Program

Lampiran 3 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 orang-

orang 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 satuan-

satuan ukuran, metoda-metoda pengukuran dan alat-alat ukur, takar, timbang, dan

perlengkapanya, serta syarat-syarat teknik dan peraturan berdasarkan Undang-

Undang 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 Divisi Teknik
Client Pendaftaran

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 potongan-

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

File.php
2
(HTM L) 3

P hp E ngine

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

PENGUJIAN
WAJIB MEMENUHI PEMBAYARAN
PENDAFTARAN - MATERIAL SAH
TERA SYARAT BIAYA TERA
- UNJUK KERJA

BATAL
(TIDAK DAPAT)
DIPERBAIKI
TIDAK
MEMENUHI PEMBUBUHAN
SYARAT TANDA TERA
BATAL PADA UTTP
(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 PENGUJIAN
MEMENUHI PEMBAYARAN
TERA PENDAFTARAN - MATERIAL SAH
SYARAT BIAYA TERA
ULANG - UNJUK KERJA

TIDAK
MEMENUHI REPARATIR PEMBUBUHAN
SYARAT 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
Perhitungan Data
- Pemberian Label

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 Inventarisir


Usaha

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

Data Pembayaran
Client Front Officer

Data Client

Gambar 3.5. Business Object Model Pendaftaran

B. Business Object Model Laporan Bulanan.

Laporan Tera

Kepala Balai Laporan Tera Ulang


Sistem

Data Kalibrasi

Gambar 3.6. Business Object Model Laporan Bulanan.


C. Business Object Model Inventarisir.

Data UTTP

Data Cap Tera


Sub Bag. Tata Usaha Operator Tata Usaha

Data Standar Ukuran


Gambar 3.7. Business Object Model Inventarisir

D. Business Object Model Kalibrasi.

Data Sertifikasi

Sie. Standar Ukuran dan Operator Standar Ukuran dan Kalibrasi


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 Ada tunggakan


tunggakan
Tidak ada tunggakan

Catat
pendaftaran
B. Business Activity Diagram Laporan Bulanan.

Tabel 3.2. Business Activity Diagram Laporan Bulanan.

Kepala Balai Sistem

Minta Tampilkan
laporan 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, Catat kedalam


cap tera dan standar ukuran 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 Catat kegiatan


pemohon kalibrasi sertifikasi kalibrasi

E. Business Activity Diagram Tera.

Tabel 3.5. Business Activity Diagram Tera.

Sie. Teknik Operator Teknik

Serahkan data Catat data


kegiatan tera kegiatan tera

F. Business Activity Diagram Tera Ulang.

Tabel 3.6. Business Activity Diagram Tera Ulang.

Sie. Teknik Operator Teknik

Serahkan data Catat data kegiatan


kegiatan Tera Ulang tera ulang
3.3 Gambaran Umum

Merupakan gambaran struktur dan hubungan antar komponen dari sistem

keseluruhan secara fisik.

Kepala Balai
Front Office
(Sub. Bag. TU)

Sub Bag. TU
3C om

Hub

Sie. Teknik

Sie. Standar Ukuran dan


Web + DB Server 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 Kode Kebutuhan Deskripsi Kebutuhan


1 Req-FO-1 Mencatat pendaftaran
Req-FO-1.1 Periksa Client
Req-FO-2.1 include: Mencatat client
2 Req-FO-2 Kelola client.
Req-FO-2.1 Mencatat client
Req-FO-2.2 Merubah (edit) client
Req-FO-2.3 Menghapus client
3 Req-FO-3 Kelola pembayaran client.
Req-FO-3.1 Mencatat pembayaran client.
Req-FO-3.2 Mencetak tanda terima.
Req-FO-3.3 Mencetak bukti pembayaran
Req-FO-3.4 Menghapus pendaftaran

2. Kepala Balai.

Tabel 3.8. Kebutuhan Fungsional Kepala Balai.

No Kode Kebutuhan Deskripsi Kebutuhan


1 Req-KB-1 Melihat data Tera.
2 Req-KB-2 Melihat data Tera Ulang.
3 Req-KB-3 Melihat data Kalibrasi
3. Sub Bagian Tata Usaha.

Tabel 3.9. Kebutuhan Fungsional Sub Bagian Tata Usaha.

No Kode Kebutuhan Deskripsi Kebutuhan


1 Req-TU-1 Kelola alat UTTP.
Req-TU-1.1 Mencatat jenis UTTP
Req-TU-1.2 Merubah (edit) jenis UTTP
Req-TU-1.3 Menghapus jenis UTTP
Req-TU-1.4 Mencatat UTTP
Req-TU-1.5 Merubah (edit) UTTP
Req-TU-1.6 Menghapus UTTP
2 Req-TU-2 Kelola cap tera.
Req-TU-2.1 Mencatat cap tera
Req-TU-2.2 Merubah (edit) cap tera
Req-TU-2.3 Menghapus cap tera
3 Req-TU-3 Kelola standar ukuran.
Req-TU-3.1 Mencatat standar ukuran
Req-TU-3.2 Merubah (edit) standar ukuran
Req-TU-3.3 Menghapus standar ukuran
4 Req-TU-4 Kelola pegawai.
Req-TU-4.1 Mencatat pegawai.
Req-TU-4.2 Merubah (edit) pegawai
Req-TU-4.3 Menghapus Pegawai.

4. Seksi Standar Ukuran dan Kalibrasi.

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

No Kode Kebutuhan Deskripsi Kebutuhan


1 Req-SUK-1 Kelola kalibrasi.
2 Req-SUK-1.1 Merubah (edit) kalibrasi.
5. Seksi Teknik.

Tabel 3.11. Kebutuhan Fungsional Seksi Teknik.

No Kode Kebutuhan Deskripsi Kebutuhan


1 Req-TK-1 Kelola Tera.
Req-TK-1.1 Merubah (edit) Tera.
2 Req-TK-2 kelola Tera Ulang.
Req-TK-2.1 Merubah (edit) Tera ulang.

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 <<extend>>

Kelola client <<extend>> Edit client

Hapus client

<<extend>>
<<extend>>
Catat pembayaran client

Kelola pembayaran client

Cetak bukti pembayaran


<<extend>> <<extend>>

Cetak tanda terima

Hapus Pendaftaran

Gambar 3.12. Use Case Diagram Front Office.


2. Kepala Balai.

Lihat data Tera

Lihat data Tera Ulang


Kepala Balai

Lihat data Kalibrasi

Gambar 3.13. Use Case Diagram Kepala Balai.


3. Sub Bagian Tata Usaha.

Edit alat UTTP Hapus alat UTTP

Catat jenis UTTP


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

Edit jenis UTTP


<<extend>>
Kelola alat UTTP

Hapus jenis UTTP

Sub Bag. Tata <<extend>>


Usaha
Catat Standar Ukuran
Kelola Standar Ukuran <<extend>>

<<extend>>
Edit Standar Ukuran

Kelola Cap Tera <<extend>> Hapus Standar Ukuran

Kelola pegawai
<<extend>>
Catat Cap Tera

<<extend>>
<<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>>

Kelola kalibrasi Edit kalibrasi


Sie. SUK

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
Nomor Use Case 1.0
Nama Use Case Mencatat data pendaftaran
Deskripsi Proses untuk mencatat data pendaftaran client
Jenis Primer, essensial
Actor 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

Tabel 3.13. Flow of Event Front Office 1.1.

Identifikasi
Nomor Use Case 1.1
Nama Use Case Periksa Client
Deskripsi Proses untuk melihat data client
Jenis Primer, essensial
Actor 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
Tabel 3.14. Flow of Event Front Office 2.

Identifikasi
Nomor Use Case 2.0
Nama Use Case Kelola client
Deskripsi Proses untuk mengelola data client
Jenis Primer, essensial
Actor 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

Tabel 3.15. Flow of Event Front Office 2.1.

Identifikasi
Nomor Use Case 2.1
Nama Use Case Mencatat data client
Deskripsi Proses untuk mencatat data client
Jenis Primer, essensial
Actor 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
Tabel 3.16. Flow of Event Front Office 2.2.

Identifikasi
Nomor Use Case 2.2
Nama Use Case Edit client
Deskripsi Proses untuk merubah data client
Jenis Primer, essensial
Actor 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

Tabel 3.17. Flow of Event Front Office 2.3.

Identifikasi
Nomor Use Case 2.3
Nama Use Case Hapus client
Deskripsi Proses menghapus data client
Jenis Primer, essensial
Actor 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
Tabel 3.18. Flow of Event Front Office 3.

Identifikasi
Nomor Use Case 3.0
Nama Use Case Kelola Pembayaran Client
Deskripsi Proses untuk mengelola data pembayaran client
Jenis Primer, essensial
Actor 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

Tabel 3.19. Flow of Event Front Office 3.1.

Identifikasi
Nomor Use Case 3.1
Nama Use Case Mencatat pembayaran client
Deskripsi Proses mencatat pembayaran client
Jenis Primer, essensial
Actor 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

Tabel 3.20. Flow of Event Front Office 3.2.

Identifikasi
Nomor Use Case 3.2
Nama Use Case Cetak tanda terima
Deskripsi Proses untuk mencetak tanda terima untuk client
Jenis Primer, essensial
Actor 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
5 Klik tombol Ok 6 Data tanda terima dikirim ke
printer.
Kondisi Akhir Halaman tampilan cetak tampil di layar dan dikirim ke printer untuk
dicetak.

Tabel 3.21. Flow of Event Front Office 3.3

Identifikasi
Nomor Use Case 3.3
Nama Use Case Cetak bukti pembayaran client
Deskripsi Proses untuk mencetak bukti pembayaran untuk client
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 3.4
Nama Use Case Hapus Pendaftaran
Deskripsi Proses menghapus data Pendaftaran
Jenis Primer, essensial
Actor 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
2. Kepala Balai.

Tabel 3.23. Flow of Event Kepala Balai 1.

Identifikasi
Nomor Use Case 1.0
Nama Use Case Lihat data Tera
Deskripsi Proses melihat data Tera
Jenis Primer, essensial
Actor 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

Tabel 3.24. Flow of Event Kepala Balai 2.

Identifikasi
Nomor Use Case 2.0
Nama Use Case Lihat data Tera Ulang
Deskripsi Proses melihat data Tera Ulang
Jenis Primer, essensial
Actor 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

Tabel 3.25. Flow of Event Kepala Balai 3.

Identifikasi
Nomor Use Case 3.0
Nama Use Case Lihat data Kalibrasi
Deskripsi Proses melihat data Kalibrasi
Jenis Primer, essensial
Actor 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
3. Sub Bagian Tata Usaha.

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

Identifikasi
Nomor Use Case 1.0
Nama Use Case Kelola alat UTTP
Deskripsi Proses mengelola data alat UTTP
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 1.1
Nama Use Case Catat jenis UTTP
Deskripsi Proses mencatat jenis UTTP
Jenis Primer, essensial
Actor 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
Tabel 3.28. Flow of Event Sub Bagian Tata Usaha 1.2

Identifikasi
Nomor Use Case 1.2
Nama Use Case Edit jenis UTTP
Deskripsi Proses untuk merubah data jenis UTTP
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 1.3
Nama Use Case Hapus jenis UTTP
Deskripsi Proses menghapus data jenis UTTP
Jenis Primer, essensial
Actor 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
Tabel 3.30. Flow of Event Sub Bagian Tata Usaha 1.4.

Identifikasi
Nomor Use Case 1.4
Nama Use Case Catat alat UTTP
Deskripsi Proses mencatat data alat UTTP
Jenis Primer, essensial
Actor 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

Tabel 3.31. Flow of Event Sub Bagian Tata Usaha 1.5

Identifikasi
Nomor Use Case 1.5
Nama Use Case Edit data alat UTTP
Deskripsi Proses untuk merubah data alat UTTP
Jenis Primer, essensial
Actor 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
Tabel 3.32. Flow of Event Sub Bagian Tata Usaha 1.6.

Identifikasi
Nomor Use Case 1.6
Nama Use Case Hapus data alat UTTP
Deskripsi Proses menghapus data alat UTTP
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 2.0
Nama Use Case Kelola Cap Tera
Deskripsi Proses mengelola data Cap Tera
Jenis Primer, essensial
Actor 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
Tabel 3.34. Flow of Event Sub Bagian Tata Usaha 2.1.

Identifikasi
Nomor Use Case 2.1
Nama Use Case Catat data Cap Tera
Deskripsi Proses mencatat data pengelolaan Cap Tera
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 2.2
Nama Use Case Edit data Cap Tera
Deskripsi Proses untuk merubah data Cap Tera
Jenis Primer, essensial
Actor 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
Tabel 3.36. Flow of Event Sub Bagian Tata Usaha 2.3.

Identifikasi
Nomor Use Case 2.3
Nama Use Case Hapus data Cap Tera
Deskripsi Proses menghapus data Cap Tera
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 3.0
Nama Use Case Kelola Standar Ukuran
Deskripsi Proses mengelola data Standar Ukuran
Jenis Primer, essensial
Actor 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
Tabel 3.38. Flow of Event Sub Bagian Tata Usaha 3.1

Identifikasi
Nomor Use Case 3.1
Nama Use Case Catat data Standar Ukuran
Deskripsi Proses mencatat data pengelolaan Standar Ukuran
Jenis Primer, essensial
Actor 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

Tabel 3.39. Flow of Event Sub Bagian Tata Usaha 3.2

Identifikasi
Nomor Use Case 3.2
Nama Use Case Edit data Standar Ukuran
Deskripsi Proses untuk merubah data Standar Ukuran
Jenis Primer, essensial
Actor 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
Tabel 3.40. Flow of Event Sub Bagian Tata Usaha 3.3

Identifikasi
Nomor Use Case 3.3
Nama Use Case Hapus data Standar Ukuran
Deskripsi Proses menghapus data Standar Ukuran
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 4.0
Nama Use Case Kelola Pegawai
Deskripsi Proses mengelola data Pegawai
Jenis Primer, essensial
Actor 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
Tabel 3.42. Flow of Event Sub Bagian Tata Usaha 4.1.

Identifikasi
Nomor Use Case 4.1
Nama Use Case Catat data Pegawai
Deskripsi Proses mencatat data pegawai
Jenis Primer, essensial
Actor 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

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

Identifikasi
Nomor Use Case 4.2
Nama Use Case Edit data Pegawai
Deskripsi Proses untuk merubah data Pegawai
Jenis Primer, essensial
Actor 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
Tabel 3.44. Flow of Event Sub Bagian Tata Usaha 4.3

Identifikasi
Nomor Use Case 4.3
Nama Use Case Hapus data pegawai
Deskripsi Proses menghapus data Pegawai
Jenis Primer, essensial
Actor 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

4. Seksi Standar Ukuran dan Kalibrasi.

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

Identifikasi
Nomor Use Case 1.0
Nama Use Case Kelola Kalibrasi
Deskripsi Proses mengelola data Kalibrasi
Jenis Primer, essensial
Actor 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
Tabel 3.46. Flow of Event Seksi Standar Ukuran dan Kalibrasi 1.1.

Identifikasi
Nomor Use Case 1.1
Nama Use Case Edit data Kalibrasi
Deskripsi Proses merubah data Kalibrasi
Jenis Primer, essensial
Actor 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

5. Seksi Teknik.

Tabel 3.47. Flow of Event Seksi Teknik 1.

Identifikasi
Nomor Use Case 1.0
Nama Use Case Kelola data Tera
Deskripsi Proses mengelola data Tera
Jenis Primer, essensial
Actor 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
Tabel 3.48. Flow of Event Seksi Teknik 1.1

Identifikasi
Nomor Use Case 1.1
Nama Use Case Edit data Tera
Deskripsi Proses merubah data Tera
Jenis Primer, essensial
Actor 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

Tabel 3.49. Flow of Event Seksi Teknik 2.

Identifikasi
Nomor Use Case 2.0
Nama Use Case Kelola Tera Ulang
Deskripsi Proses melihat data Tera Ulang
Jenis Primer, essensial
Actor 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
Tabel 3.50. Flow of Event Seksi Teknik 2.1

Identifikasi
Nomor Use Case 2.1
Nama Use Case Edit data Tera Ulang
Deskripsi Proses merubah data Tera Ulang
Jenis Primer, essensial
Actor 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
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 Nama Proses Boundary Control Entity


1 Mencatat pendaftaran registrasi registrasiCtrl mosRegistrasi
1.1 Periksa Client registrasi rgistrasiCtrl database
2 Kelola Client client clientCtrl mosClient
2.1 Mencatat client. client clientCtrl mosClient
2.2 Edit client client clientCtrl mosClient
2.3 Hapus Client client clientCtrl mosClient
3 Kelola pembayaran registrasi registrasiCtrl mosRegistrasi
client.
3.1 Mencatat pembayaran registrasi registrasiCtrl mosRegistrasi
client.
3.2 Mencetak tanda registrasi registrasiCtrl mosRegistrasi
terima
3.3 Mencetak bukti registrasi registrasiCtrl mosRegistrasi
pembayaran
3.4 Mengapus data registrasi registrasiCtrl mosRegistrasi
pendaftaran

7. Kepala Balai.

Tabel 4.2. Identifikasi Kelas Kepala Balai.

No Nama Proses Boundary Control Entity


1 Melihat data Tera. rekap rekapCtrl database
2 Melihat data Tera rekap rekapCtrl database
Ulang.
3 Melihat data Kalibrasi rekap rekapCtrl database

8. Sub Bagian Tata Usaha.

Tabel 4.3. Identifikasi Kelas Sub Bagian Tata Usaha.

No Nama Proses Boundary Control Entity


1 Kelola alat UTTP uttp uttpCtrl mosUttp
1.1 Mencatat jenis UTTP. uttp uttpCtrl mosUttp
1.2 Merubah (edit) jenis uttp uttpCtrl mosUttp
UTTP.
1.3 Menghapus jenis uttp uttpCtrl mosUttp
UTTP.
1.4 Mencatat alat UTTP. uttp uttpCtrl mosUttp
1.5 Merubah (edit) alat uttp uttpCtrl mosUttp
UTTP.
1.6 Menghapus alat uttp uttpCtrl mosUttp
UTTP.
2 Kelola cap tera. captera capteraCtrl mosCaptera
2.1 Mencatat cap tera. captera capteraCtrl mosCaptera
2.2 Merubah (edit) cap captera capteraCtrl mosCaptera
tera.
2.3 Menghapus Cap Tera. captera capteraCtrl mosCaptera
3 Kelola standar standar standarCtrl mosStandar
ukuran.
3.1 Mencatat standar standar standarCtrl mosStandar
ukuran.
3.2 Merubah (edit) standar standarCtrl mosStandar
standar ukuran.
3.3 Menghapus Standar standar standarCtrl mosStandar
Ukuran.
4 Kelola pegawai. pegawai pegawaiCtrl mosPegawai
4.1 Mencatat pegawai. pegawai pegawaiCtrl mosPegawai
4.2 Merubah (edit) pegawai pegawaiCtrl mosPegawai
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 Nama Proses Boundary Control Entity


1 Kelola kalibrasi. kalibrasi kalibrasiCtrl mosKalibrasi
1.1 Merubah (edit) kalibrasi kalibrasiCtrl mosKalibrasi
kalibrasi.

10. Seksi Teknik.

Tabel 4.5. Identifikasi Kelas Seksi Teknik.

No Nama Proses Boundary Control Entity


1 Kelola Tera. tera teraCtrl mosTera
1.1 Merubah (edit) Tera. tera teraCtrl mosTera
2 Kelola Tera Ulang. tera teraCtrl mosTera
2.1 Merubah (edit) Tera tera teraCtrl mosTera
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 simpan
post variable

sub bag. TU standar standarCtrl mosStandar

Gambar 4.28. Diagram Kolaborasi edit standar ukuran.

• Hapus Standar Ukuran


remove hapus
post variable

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 clientCtrl mosClient

1: new clientCtrl()
2: show($option)
3: new mosClient($db)
4: setQuery($query)

5: loadObjectList()

Gambar 4.47. Diagram Sequence kelola Client.


• Catat Client
client clientCtrl mosClient

1: new clientCtrl()
2: editClient(0)

3: saveClient()
4: new mosClient($db)

5: bind($_POST)

6: check()

7: store()

Gambar 4.48. Diagram Sequence Catat Client.

• Edit Client

client clientCtrl mosClient

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

Gambar 4.49. Diagram Sequence Edit Client.


• Hapus Client

client clientCtrl mosclient

1: new clientCtrl()

2: removeClient($id,$option)
3: new mosClient($db)

4: delete($id)

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 teraCtrl mosTera

1: new teraCtrl()

2: show($option,$section)
3: new mosTera($db)

4: setQuery($query)

5: loadObjectList()

Gambar 4.56. Diagram Sequence melihat data tera.

• Melihat data Tera Ulang

tera teraCtrl mosTera

1: new teraCtrl()

2: show($option,$section)
3: new mosTera($db)

4: setQuery($query)

5: loadObjectList()

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 uttpCtrl mosUttp

1: new uttpCtrl()

2: show($option)
3: new mosUttp($db)

4: setQuery($query)

5: loadObjectList()

Gambar 4.59. Diagram Sequence Kelola Alat UTTP.


• Catat Jenis UTTP
uttp uttpCtrl mosUttp

1: new uttpCtrl()

2: editUttp(0)

3: saveUttp($task)
4: new mosUttp($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.60. Diagram Sequence catat Jenis UTTP.

• Edit Jenis UTTP


uttp uttpCtrl mosUttp

1: new uttpCtrl()

2: editUttp($uid)

3: saveUttp($task)
4: new mosUttp($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.61. Diagram Sequence Edit Jenis UTTP.


• Hapus Jenis UTTP

uttp uttpCtrl mosUttp

1: new uttpCtrl()

2: removeuttp($id,$option)
3: new mosUttp($db)

4: delete($id)

Gambar 4.62. Diagram Sequence hapus Jenis UTTP.

• Catat Alat UTTP


uttp uttpCtrl mosUttp

1: new uttpCtrl()

2: editUttp(0)

3: saveUttp($task)
4: new mosUttp($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.63. Diagram Sequence catat Alat UTTP.


• Edit Alat UTTP

uttp uttpCtrl mosUttp

1: new uttpCtrl()

2: editUttp($uid)

3: saveUttp($task)
4: new mosUttp($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.64. Diagram Sequence Edit Alat UTTP.

• Hapus Alat UTTP

uttp uttpCtrl mosUttp

1: new uttpCtrl()

2: removeuttp($id,$option)
3: new mosUttp($db)

4: delete($id)

Gambar 4.65. Diagram Sequence hapus Alat UTTP.


• Kelola Cap Tera

captera capteraCtrl mosCaptera

1: new capteraCtrl()

2: show($option)
3: new mosCaptera($db)

4: setQuery($query)

5: loadObjectList()

Gambar 4.66. Diagram Sequence Kelola cap tera.

• Catat Cap Tera

captera capteraCtrl mosCaptera

1: new capteraCtrl()

2: editCaptera(0)

3: saveCaptera($task)
4: new mosCaptera($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.67. Diagram Sequence catat cap tera.


• Edit Cap Tera

captera capteraCtrl mosCaptera

1: new capteraCtrl()

2: editCaptera($uid)

3: saveCaptera($task)
4: new mosCaptera($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.68. Diagram Sequence edit cap tera.

• Hapus Cap Tera

captera capteraCtrl mosCaptera

1: new capteraCtrl()

2: removecaptera($id,$option)
3: new mosCaptera($db)

4: delete($id)

Gambar 4.69. Diagram Sequence hapus cap tera.


• Kelola Standar Ukuran

standar standarCtrl mosStandar

1: new standarCtrl()

2: show($option)
3: new mosStandar($db)

4: setQuery($query)

5: loadObjectList()

Gambar 4.70. Diagram Sequence Kelola standar ukuran.

• Catat Standar Ukuran

standar standarCtrl mosStandar

1: new standarCtrl()

2: editStandar(0)

3: saveStandar($task)
4: new mosStandar($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.71. Diagram Sequence catat standar ukuran.


• Edit Standar Ukuran

standar standarCtrl mosStandar

1: new standarCtrl()

2: editStandar($uid)

3: saveStandar($task)
4: new mosStandar($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.72. Diagram Sequence edit standar ukuran.

• Hapus Standar Ukuran

standar standarCtrl mosStandar

1: new standarCtrl()

2: removestandar($id,$option)
3: new mosStandar($db)

4: delete($id)

Gambar 4.73. Diagram Sequence hapus standar ukuran.


• Kelola Pegawai

pegawai pegawaiCtrl mosPegawai

1: new pegawaiCtrl()

2: show($option)
3: mosPegawai($db)
4: setQuery($query)
5: loadObjectList()

Gambar 4.74. Diagram Sequence Kelola Pegawai.

• Catat Pegawai

pegawai pegawaiCtrl mosPegawai

1: new pegawaiCtrl()

2: editPegawai(0)

3: savePegawai($task)
4: new mosPegawai($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.75. Diagram Sequence mencatat pegawai.


• Edit Pegawai

pegawai pegawaiCtrl mosPegawai

1: new pegawaiCtrl()

2: editPegawai($uid)

3: savePegawai($task)
4: new mosPegawai($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.76. Diagram Sequence edit pegawai.

• Hapus Pegawai

pegawai pegawaiCtrl mosPegawai

1: new pegawaiCtrl()

2: removePegawai($id,$option)
3: mosPegawai($db)
4: delete($id)

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 mosKalibrasi

1: new kalibrasiCtrl()

2: editKalibrasi($uid)

3: saveKalibrasi($task)
4: new mosKalibrasi($db)

5: bind($_POST)
6: check()

7: store()

Gambar 4.79. Diagram Sequence edit kalibrasi.


5. Seksi Teknik.

• Kelola Tera
tera teraCtrl mosTera

1: new teraCtrl()

2: show($option,$section)
3: new mosTera($db)

4: setQuery($query)

5: loadObjectList()

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 teraCtrl mosTera

1: new teraCtrl()

2: show($option,$section)
3: new mosTera($db)

4: setQuery($query)

5: loadObjectList()

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 database


server 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

componen
com_registrasi com_standar

com_kepala_balai com_uttp

com_tera com_kalibrasi

com_tu com_client
com_pegawai 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 pengguna_sip session

id_standar <pi> VA255 <M> password VA255 <M> username <UNDEF>


nama_standar VA255 <M> user_type VA255 <M> Relationship_16 session_id <pi> <UNDEF>
tingkat_ketelusuran VA255 <M> last_login TS time <UNDEF>
tahun_produksi VA255 ip_address VA255 <M> user_type VA255
bahan_standar VA255 Identifier_1 <pi>
gambar_standar BIN5000
cap_tera
Identifier_1 <pi> Relationship_12
id_cap <pi> VA255 <M>
pegawai memiliki tgl_pembuatan D
nip <pi> VA255 <M> jenis_cap VA255 <M>
nik VA255 <M> inisial VA255
nama_pegawai VA255 <M> legalitas VA255
alamat_pegawai VA255 <M> gambar_cap BIN5000
dibandingkan
tempat_lahir VA255 <M> Identifier_1 <pi>
mengkalibrasi tgl_lahir D <M>
jenis_pegawai VA255 <M>
golongan VA255 menera
keterangan_golongan VA255
dicap
kalibrasi jabatan VA255
keterangan_jabatan VA255
id_kalibrasi <pi> VA255 <M> status_bekerja VA255 <M>
tgl_kalibrasi D <M> keterangan_pegawai VA255
tera
Identifier_1 <pi> Identifier_1 <pi>
id_tera <pi> VA255 <M>
pendaftaran tgl_tera D <M>
Relationship_11
id_pendaftaran <pi> VA255 <M> status_tera_ulang VA255 <M>
rincian_pembayaran_kalibrasi jenis_pendaftaran VA255 <M> Identifier_1 <pi>
ukuran_uttp I tempat_pelaksanaan VA255
Relationship_13
jumlah_uttp I <M> alamat_jalan VA255
jumlah_uttp_sah I <M> kecamatan VA255
biaya_kalibrasi I <M> kelurahan VA255
biaya_sertifikat I kota VA255
biaya_tut I tgl_pendaftaran D <M>
dibayar I Identifier_1 <pi>

mendaftar
tarif_kalibrasi Relationship_10 Relationship_7
Relationship_2
id_tarif <pi> VA255 client
tarif_sertifikat I
tarif_tut500kl I id_client <pi> VA255 <M>
tarif_tutlebih500kl I Relationship_17 nama_perusahaan VA255
nama_pemilik VA255
Identifier_1 <pi> alamat_jalan VA255
kelurahan VA255
uttp
kecamatan VA255
id_uttp <pi> VA255 <M> kota VA255
satuan VA255 kodepos VA255
tarif_tera_awal I rincian_pembayaran_tera
telp VA255
tarif_tera I <M> fax VA255 ukuran_uttp I
tarif_justir_tera I tgl_pencatatan TS jumlah_uttp I
tarif_tera_ulang_awal I keterangan_client VA255 jumlah_uttp_sah I <M>
tarif_tera_ulang I <M> biaya_uttp I <M>
Identifier_1 <pi>
tarif_justir_tera_ulang I biaya_justir I
tarif_kalibrasi I <M> Relationship_3 dibayar I
faktor_pembagi I
keterangan_uttp I
Identifier_1 <pi> wilayah_kerja modules
kota VA255 <M> id <pi> VA255
jenis_uttp
kecamatan VA255 user_type VA255
id_jenisuttp <pi> VA255 <M> kelurahan VA255 ordering VA255
Relationship_15
keteranganjenis VA255 alamat_balai_kelurahan VA255 title VA255
Identifier_1 <pi> module VA255
param VA255
bentuk_uttp
Identifier_1 <pi>
id_bentukuttp <pi> VA255 <M> Relationship_15
bentukuttp VA255
Identifier_1 <pi>

Gambar 4.92. Rancangan Database CDM.


2. Physical Data Model

standar_ukuran pengguna_sip session


id_standar varchar(255) <pk> session_id <Undefined> <fk2> FK_%REFERENCE% username <Undefined>
nama_standar varchar(255) nip varchar(255) <fk1> session_id <Undefined> <pk>
tingkat_ketelusuran varchar(255) password varchar(255) time <Undefined>
tahun_produksi varchar(255) user_type varchar(255) user_type varchar(255)
bahan_standar varchar(255) last_login timestamp
gambar_standar blob ip_address varchar(255)
cap_tera
FK_%REFERENCE%
FK_%REFERENCE%
FK_%REFERENCE% id_cap varchar(255) <pk>
nip varchar(255) <fk>
Pegawai tgl_pembuatan date
nip varchar(255) <pk> jenis_cap varchar(255)
FK_%REFERENCE% nik varchar(255) inisial varchar(255)
FK_%REFERENCE% legalitas varchar(255)
nama_pegawai varchar(255)
mengkalibrasi gambar_cap blob
alamat_pegawai varchar(255)
id_kalibrasi varchar(255) <pk,fk1> tempat_lahir varchar(255)
nip varchar(255) <pk,fk2> tgl_lahir date FK_%REFERENCE%
jenis_pegawai varchar(255)
FK_%REFERENCE% golongan varchar(255)
kalibrasi keterangan_golongan varchar(255)
jabatan varchar(255)
id_kalibrasi varchar(255) <pk> menera FK_%REFERENCE%
keterangan_jabatan varchar(255)
id_standar varchar(255) <fk> status_bekerja varchar(255) nip varchar(255) <pk,fk1>
tgl_kalibrasi date keterangan_pegawai varchar(255) id_tera varchar(255) <pk,fk2>
FK_%REFERENCE%
FK_%REFERENCE%
rincian_pembayaran_kalibrasi
tera
id_uttp varchar(255) <fk1>
id_kalibrasi varchar(255) <fk2> id_tera varchar(255) <pk>
pendaftaran
id_pendaftaran varchar(255) <fk3> id_cap varchar(255) <fk>
FK_%REFERENCE%
ukuran_uttp int id_pendaftaran varchar(255) <pk> tgl_tera date
jumlah_uttp int id_client varchar(255) <fk> status_tera_ulang varchar(255)
jumlah_uttp_sah int jenis_pendaftaran varchar(255)
biaya_kalibrasi int tempat_pelaksanaan varchar(255)
biaya_sertifikat int alamat_jalan varchar(255)
biaya_tut int kecamatan varchar(255)
dibayar int kelurahan varchar(255)
kota varchar(255)
tgl_pendaftaran date
tarif_kalibrasi
FK_%REFERENCE% FK_%REFERENCE%
id_tarif varchar(255) <pk>
FK_%REFERENCE% FK_%REFERENCE%
tarif_sertifikat int
tarif_tut500kl int
tarif_tutlebih500kl int client
id_client varchar(255) <pk>
FK_%REFERENCE% nama_perusahaan varchar(255)
nama_pemilik varchar(255)
rincian_pembayaran_tera
alamat_jalan varchar(255)
kelurahan varchar(255) id_uttp varchar(255) <fk2>
uttp kecamatan varchar(255) id_tera varchar(255) <fk3>
kota varchar(255) id_pendaftaran varchar(255) <fk1>
id_uttp varchar(255) <pk>
kodepos varchar(255) ukuran_uttp int
id_tarif varchar(255) <fk2>
telp varchar(255) jumlah_uttp int
id_bentukuttp varchar(255) <fk1>
fax varchar(255) jumlah_uttp_sah int
satuan varchar(255)
tgl_pencatatan timestamp biaya_uttp int
tarif_tera_awal int
keterangan_client varchar(255) biaya_justir int
tarif_tera int
dibayar int
tarif_justir_tera int
tarif_tera_ulang_awal int FK_%REFERENCE%
tarif_tera_ulang int
tarif_justir_tera_ulang int
modules
tarif_kalibrasi int
faktor_pembagi int id varchar(255) <pk>
wilayah_kerja user_type varchar(255)
keterangan_uttp int
kota varchar(255) ordering varchar(255)
kecamatan varchar(255) title varchar(255)
FK_%REFERENCE% kelurahan varchar(255) module varchar(255)
alamat_balai_kelurahan varchar(255) param varchar(255)

bentuk_uttp
jenis_uttp
id_bentukuttp varchar(255) <pk>
id_jenisuttp varchar(255) <fk> FK_%REFERENCE% id_jenisuttp varchar(255) <pk>
bentukuttp varchar(255) 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. Input text


Kata Sandi Input text

Login

Gambar 4.94. Rancangan User Interface login.

2. Control Panel

Header

Home Ubah Perintah Logout user

Control Panel

tab1 tab2 tab3


Tombol Tombol Tombol

Notification area

Gambar 4.95. Rancangan User Interface control panel.


3. Reporting

Header

Home Ubah Perintah Logout user

baru ubah hapus

reporting

Table caption1 Table Caption2 Table Caption3


Record1
Record2

Record3

Record4

Gambar 4.96. Rancangan User Interface reporting.

4. Form baru dan ubah

Header

Home Ubah Perintah Logout user

simpan terapkan batal

baru

caption1 Table caption1


caption2 Table Caption2
caption3 Table Caption3
caption4 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)

registrasiCtrl mosRegistrasi
registrasi
ID_PENDAFTARAN : String
saveReg() ID_CLIENT : String
show() show() JENIS_PENDAFTARAN : String
edit() editRegistrasi() TEMPAT_PELAKSANAAN : String
editPay() cancelRegistrasi() ALAMAT_JALAN : String
print() submit() KELURAHAN : String
removeReg() KECAMATAN : String
payment() KOTA : String
print() TGL_PENDAFTARAN : Date
BATAL : Integer
mosClient
ID_CLIENT : String mosRegistrasi()
NAMA_PERUSAHAAN : String check()
NAMA_PEMILIK : String storeNext()
ALAMAT_JALAN : String bind()
KELURAHAN : String store()
KECAMATAN : String delete()
KOTA : String
KODEPOS : String clientCtrl
TELP : String
FAX : String saveClient()
KETERANGAN_CLIENT : String show()
TGL_PENCATATAN : Date editClient()
TGL_RUBAH : Date cancel()
HAPUS : Integer removeClient()
client
mosClient()
check() show()
bind() edit()
store()
delete()

Gambar 4.98. Diagram Spesifikasi Kelas pendaftaran.


2. Kepala Balai

kepala_balai database
kepala_balaiCtrl
_sql
print() _errornum
print()
_errormsg
tera
_resource
mosTera _cursor
show()
showUttp() ID_TERA : String
database()
edit() ID_PENDAFTARAN : String
getErrorNum()
ID_CAP : String
getErrorMsg()
TGL_TERA : Date
getEscaped()
kalibrasi STATUS_TERA_ULANG : String
setQuery()
teraCtrl
query()
mosTera()
show() getQuery()
saveTera() check()
edit() getNumRows()
show() bind()
loadResult()
showUttp() store()
loadResultArray()
editTera() delete()
loadObject()
cancel() loadObjectList()
removeTera() mosKalibrasi
loadRow()
ID_KALIBRASI : String
loadRowList()
kalibrasiCtrl ID_PENDAFTARAN : String
insertObject()
ID_STANDAR : String
updateObject()
TGL_KALIBRASI : Date
saveKalibrasi() stderr()
show() getEnumArray()
mosKalibrasi()
editKalibrasi()
check()
cancel()
bind()
removeKalibrasi()
store()
delete()

Gambar 4.99. Diagram Spesifikasi Kelas kepala balai.


3. Sub Bagian Tata Usaha

uttp uttpCtrl mosUttp


ID_UTTP : String
show() saveUttp() ID_BENTUKUTTP : String
edit() show() ID_TARIF : String
editUttp() mosCaptera
UKURAN : String
cancelUttp() ID_CAP : String TARIF_TERA_AWAL : Integer
captera
jenisUttp() NIP : String TARIF_TERA : Integer
removeUttp() TGL_PEMBUATAN : Date TARIF_JUSTIR_TERA : Integer
show() JENIS_CAP : String
edit() TARIF_TERA_ULANG_AWAL : Integer
INISIAL : String TARIF_TERA_ULANG : Integer
LEGALITAS : String TARIF_JUSTIR_TERA_ULANG : Integer
GAMBAR_CAP : Byte TARIF_KALIBRASI : Integer
capteraCtrl TGL_PENCATATAN : Date FAKTOR_PEMBAGI : Integer
TGL_RUBAH : Date KETERANGAN_UTTP : String
saveCaptera() HAPUS : Integer TGL_PENCATATAN : Date
show() TGL_RUBAH : Date
editCaptera() mosCaptera()
cancel() check() mosUttp()
standar bind()
removeCaptera() check()
store() bind()
show() delete() store()
edit()
delete()

mosStandar
standarCtrl
ID_STANDAR : String
NAMA_STANDAR : String
saveStandar() TINGKAT_KETELUSURAN : String
show() mosPegawai TAHUN_PRODUKSI : String
editStandar() NIP : String BAHAN_STANDAR : String
cancel() NIK : String GAMBAR_STANDAR : Byte
removeStandar() NAMA_PEGAWAI TGL_PENCATATAN : Date
TEMPAT_LAHIR : String TGL_RUBAH : Date
TGL_LAHIR : Date HAPUS : Integer
pegawai
JENIS_PEGAWAI : String
GOLONGAN : String mosStandar()
show() KETERANGAN_GOLONGAN : String check()
edit() JABATAN : String bind()
KETERANGAN_JABATAN : String store()
STATUS_BEKERJA : String delete()
KETERANGAN_PEGAWAI : String
TGL_PENCATATAN : Date
pegawaiCtrl TGL_RUBAH : Date

savePegawai() mosPegawai()
show() check()
editPegawai() bind()
cancel() store()
remove() delete()

Gambar 4.100. Diagram Spesifikasi Kelas Sub Bagian Tata usaha.


4. Seksi Standar Ukuran dan Kalibrasi

mosKalibrasi
ID_KALIBRASI : String
kalibrasiCtrl ID_PENDAFTARAN : String
kalibrasi ID_STANDAR : String
saveKalibrasi() TGL_KALIBRASI : Date
show()
show()
editKalibrasi() mosKalibrasi()
edit()
cancel() check()
removeKalibrasi() bind()
store()
delete()

Gambar 4.101. Diagram Spesifikasi Kelas Seksi standar ukuran dan kalibrasi.

5. Seksi Teknik

mosTera
ID_TERA : String
teraCtrl ID_PENDAFTARAN : String
tera ID_CAP : String
saveTera() TGL_TERA : Date
show() STATUS_TERA_ULANG : String
show()
showUttp()
showUttp()
editTera() mosTera()
edit()
cancel() check()
removeTera() bind()
store()
delete()

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 Peran Atribut Method


1 registrasi boundary • show (option, rows,
class pageNav, search, lists)
• edit (row, lists,
redirect, jid, bid)
• editPay (row, lists,
redirect)
• print (row, lists)
2 registrasiCtrl control • saveReg (task)
class • show (option)
• editRegistrasi (uid)
• cancelRegistrasi
(option)
• submit (task, qty, clid,
jns_p, tmp_p, uttp)
• removeReg (uid,
option)
• payment (uid)
• print (uid)
3 mosRegistrasi entity class • ID_PENDAFTARAN • mosRegistrasi (db)
• ID_CLIENT • check ()
• JENIS_ PENDAFTARAN • storeNext (id, id_uttp,
• TEMPAT_ jumlah_uttp,
PELAKSANAAN ukuran_uttp)
• ALAMAT_JALAN • bind (_POST)
• KELURAHAN • store()
• KECAMATAN • delete ()
• KOTA
• TGL_ PENDAFTARAN
4 client boundary • show (option, rows,
class pageNav, search, lists)
• edit (row, lists,
redirect)
5 clientCtrl control • saveClient (task)
class • show (option)
• editClient (uid)
• cancel (option)
• removeClient (uid,
option)
6 mosClient entity class • ID_CLIENT • mosClient (db)
• NAMA_ PERUSAHAAN • check ()
• NAMA_PEMILIK • bind (_POST)
• ALAMAT_JALAN • store()
• KELURAHAN • delete ()
• KECAMATAN
• KOTA
• KODEPOS
• TELP
• FAX
• KETERANGAN_ CLIENT
• TGL_ PENCATATAN
• TGL_RUBAH
• HAPUS

2. Kepala Balai

Tabel 4.7. Spesifikasi Kelas kepala balai.

No Nama Kelas Peran Atribut Method


1 rekap boundary class • showTere(option, row,
section, redirect)
• showKalibrasi( option,
row, section, redirect)
2 rekapCtrl control class • showTera (row, lists)
• showKalibrasi(row, lists)
• queryRekap( section,
init_m, offset_y,
pelaksana )
3 database entity class • _sql • database (host, user, pass,
• _errornum db)
• _errormsg • getErrorNum ()
• _resource • getErrorMsg ()
• _cursor • 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)

3. Sub Bagian Tata Usaha


Tabel 4.8. Spesifikasi Kelas sub Bagian tata usaha.

No Nama Kelas Peran Atribut Method


1 uttp boundary • show(option, rows,
class pageNav, search, lists)
edit(section, row, lists,
bentuk_uttp)
2 uttpCtrl control class • saveUttp (task)
• show (option)
• editUttp (uid)
• cancelUttp (option)
• jenisUttp (section, id,
id_jenisuttp, mode)
• removeUttp (uid,
option)
3 mosUttp entity class • ID_UTTP • mosUttp (db)
• ID_BENTUKUTTP • check ()
• ID_TARIF • bind (_POST)
• UKURAN • store()
• TARIF_ TERA_AWAL • delete ()
• 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
4 captera boundary • show(option, rows,
class pageNav, search, lists)
• edit(row, lists,
redirect)
5 capteraCtrl control class • saveCaptera (task)
• show (option)
• editCaptera (uid)
• cancel (option)
• removeCaptera (uid,
option)
6 mosCaptera entity class • ID_CAP • mosCaptera (db)
• NIP • check ()
• TGL_ PEMBUATAN • bind (_POST)
• JENIS_CAP • store()
• INISIAL • delete ()
• LEGALITAS
• GAMBAR_CAP
• TGL_ PENCATATAN
• TGL_RUBAH
• HAPUS
7 standar boundary • show(option, rows,
class pageNav, search, lists)
• edit(row, lists,
redirect)
8 standarCtrl control class • saveStandar (task)
• show (option)
• editStandar (uid)
• cancel (option)
• removeStandar (uid,
option)
9 mosStandar entity class • ID_STANDAR • mosStandar (db)
• NAMA_ STANDAR • check ()
• TINGKAT_ • bind (_POST)
KETELUSURAN • store()
• TAHUN_ PRODUKSI • delete ()
• BAHAN_ STANDAR
• GAMBAR_ STANDAR
• TGL_ PENCATATAN
• TGL_RUBAH
• HAPUS
10 pegawai boundary • show(option, rows,
class pageNav, search, lists)
• edit(row, lists,
redirect)
11 pegawaiCtrl control class • savePegawai (task)
• show (option)
• editPegawai (uid)
• cancel (option)
• removePegawai (uid,
option)
12 mosPegawai entity class • NIP • mosPegawai (db)
• NIK • check ()
• NAMA_ PEGAWAI • bind (_POST)
• TEMPAT_LAHIR • store()
• TGL_LAHIR • delete ()
• JENIS_PEGAWAI
• GOLONGAN
• KETERANGAN_
GOLONGAN
• JABATAN
• KETERANGAN_
JABATAN
• STATUS_ BEKERJA
• KETERANGAN_
PEGAWAI
• TGL_ PENCATATAN
• TGL_RUBAH

4. Seksi Standar Ukuran dan Kalibrasi

Tabel 4.9. Spesifikasi Kelas Seksi Standar ukuran dan kalibrasi.

No Nama Kelas Peran Atribut Method


1 kalibrasi boundary • show(option, rows,
class pageNav, search, lists)
• edit(row, lists, redirect)
2 kalibrasiCtrl control class • saveKalibrasi (task)
• show (option)
• editKalibrasi (uid)
• cancel (option)
• removeKalibrasi (uid,
option)
3 mosKalibrasi entity class • ID_KALIBRASI • mosKalibrasi (db)
• ID_ PENDAFTARAN • check ()
• ID_STANDAR • bind (_POST)
• TGL_ KALIBRASI • store()
delete ()

5. Seksi Teknik

Tabel 4.10. Spesifikasi Kelas front Seksi teknik.

No Nama Kelas Peran Atribut Method


1 tera boundary class • show(option, rows,
pageNav, section,
search, lists)
• showUttp(option, task,
rows, pageNav, section)
• edit(row, lists, redirect)
2 teraCtrl control class • saveTera (task)
• show (option)
• showUttp (option)
• editTera (uid)
• cancel (option)
removeTera (uid, option)
3 mosTera entity class • ID_TERA • mosTera (db)
• ID_ • check ()
PENDAFTARAN • bind (_POST)
• ID_CAP • store()
• TGL_TERA delete ()
• 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 Server Client


Processor AMD Barton 2500+ P IV Celeron M 1.6Ghz
RAM DDR 512Mb DDR 256 Mb (single channel)
Hardisk 80 Gb ATA 133 40 Gb ATA 100
Kartu Grafis Ati Radeon 9550 256 Mb SiS 330 Mirage Integrated 32 Mb
(shared)
Monitor Acer 17 ” (1024x768 @ 32bit) LCD 15” (1024x768 @ 16bit)
Kartu Jaringan RTL8201 10/100 Ethernet SiS 900 10/100M Ethernet
Printer Canon Pixma 1600 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 Perangkat Lunak Keterangan


1 Sistem Operasi Windows XP™ Professional SP 2
2 Bahasa Pemrograman PHP 5.1.2
3 Web Server Apache 2.2.0
4 Database Server MySQL 5.0.18
5 Web Browser & Java Script Debuger Mozilla Firefox 2.0.0.1
6 Code Editor Macromedia Dreamweaver 8
7 Image Editor Macromedia Fireworks MX 2004
8 Image Capturer ACDSee 7
9 Database Modeler Power Designer 9
10 UML Modeler 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 Kelas Perancangan Kelas Implementasi


1 registrasi registrasi
2 registrasiCtrl registrasiCtrl
3 mosRegistrasi mosRegistrasi
4 client client
5 clientCtrl clientCtrl
6 mosClient mosClient

5.1.3.1.2. Kepala Balai

Tabel 5.4. Implementasi Kelas Kepala Balai.

No Kelas Perancangan Kelas Implementasi


1 rekap rekap
2 rekapCtrl rekapCtrl
3 database database
5.1.3.1.3. Sub Bagian Tata Usaha

Tabel 5.5. Implementasi Kelas Sub Bagian Tata Usaha.

No Kelas Perancangan Kelas Implementasi


1 uttp uttp
2 uttpCtrl uttpCtrl
3 mosUttp mosUttp
4 captera captera
5 capteraCtrl capteraCtrl
6 mosCaptera mosCaptera
7 standar standar
8 standarCtrl standarCtrl
9 mosStandar mosStandar
10 pegawai pegawai
11 pegawaiCtrl pegawaiCtrl
12 mosPegawai mosPegawai

5.1.3.1.4. Seksi Standar Ukuran dan Kalibrasi

Tabel 5.6. Implementasi Kelas Seksi Standar Ukuran dan Kalibrasi.

No Kelas Perancangan Kelas Implementasi


1 kalibrasi kalibrasi
2 kalibrasiCtrl kalibrasiCtrl
3 mosKalibrasi mosKalibrasi

5.1.3.1.5. Seksi Teknik

Tabel 5.7. Implementasi Kelas Seksi Teknik.

No Kelas Perancangan Kelas Implementasi


1 tera tera
2 teraCtrl teraCtrl
3 mosTera mosTera
5.1.3.2. Implementasi Database

Implementasi database menjelaskan mengenai struktur tabel beserta atribut

penyusunya.

Tabel 5.8. Implementasi Database.

No Tabel Implementasi Atribut


1 bentuk_uttp • ID_BENTUKUTTP : Integer
• ID_JENISUTTP : Integer
• BENTUK_UTTP : String
2 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
3 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
4 jenis_uttp • ID_JENISUTTP : Integer
• JENISUTTP : String
• KETERANGANJENIS : String
5 kalibrasi • ID_KALIBRASI : String
• ID_PENDAFTARAN : String
• ID_STANDAR : String
• TGL_KALIBRSI : Date
6 menera • NIP : String
• ID_TERA : String
7 mengkalibrasi • NIP : String
• ID_KALIBRASI : String
8 modules • ID : Integer
• USER_TYPE : String
• ORDERING : Integer
• TITLE : String
• MODULE : String
• PARAM : String
9 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, Control Panel > Network


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.


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 laporan-

laporan.

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

Jenis Teknik
Nama Bagian Kelas Uji Butir Uji Identifikasi Hasil
Pengujian Pengujian
Front Office Mencatat pendaftaran. Masukan data pendaftaran. PDHUPL 1.0 Sistem Black Box
Ok
(Pendaftaran)
Periksa Client Klik tombol periksa PDHUPL 1.1 Sistem Black Box Ok
Mengelola Client Klik tombol client PDHUPL 2.0 Sistem Black Box Ok
Mencatat data client. Masukan data client. PDHUPL 2.1 Sistem Black Box Ok
Merubah data client Klik tombol ubah PDHUPL 2.2 Sistem Black Box Ok
Menghapus data client Klik tombol hapus PDHUPL 2.3 Sistem Black Box Ok
Mengelola data pembayaran Klik tombol pembayaran. PDHUPL 3.0 Sistem Black Box
Ok
client
Mencatat pembayaran. Update data pendaftaran client PDHUPL 3.1 Sistem Black Box
Ok
dengan data pembayaran.
Mencetak tanda terima Klik tombol cetak Tanda terima PDHUPL 3.2 Sistem Black Box Ok
Mencetak bukti pembayaran. Klik tombol cetak. Faktur PDHUPL 3.3 Sistem Black Box Ok
Menghapus data Pendaftaran Klik tombol hapus PDHUPL 3.4
Kepala Balai Melihat data tera Klik tombol tera PDHUPL 4.0 Sistem Black Box Ok
Melihat data tera ulang Klik tombol tera ulang PDHUPL 5.0 Sistem Black Box Ok
Melihat data kalibrasi Klik tombol kalibrasi PDHUPL 6.0 Sistem Black Box Ok
Sub Bagian Tata Mengelola alat UTTP. Klik tombol UTTP. PDHUPL 7.0 Sistem Black Box
Ok
Usaha
Mencatat jenis UTTP. Masukan data jenis UTTP. PDHUPL 7.1 Sistem Black Box Ok
Merubah (edit) data jenis Ubah data jenis UTTP. PDHUPL 7.2 Sistem Black Box
Ok
UTTP.
Menghapus data jenis UTTP. Klik tombol hapus, setelah memilih PDHUPL 7.3 Sistem Black Box
Ok
record yang akan dihapus.
Mencatat data alat UTTP. Masukan data alat UTTP. PDHUPL 7.4 Sistem Black Box Ok
Merubah (edit) data alat Ubah data alat UTTP. PDHUPL 7.5 Sistem Black Box Ok
UTTP.
Menghapus data UTTP. Klik tombol hapus, setelah memilih PDHUPL 7.6 Sistem Black Box
Ok
record yang akan dihapus.
Mengelola data captera. Klik tombol captera. PDHUPL 8.0 Sistem Black Box Ok
Mencatat data captera. Masukkan data captera. PDHUPL 8.1 Sistem Black Box Ok
Merubah (edit) data captera. Ubah data captera. PDHUPL 8.2 Sistem Black Box Ok
Menghapus data captera. Klik tombol hapus, setelah memilih PDHUPL 8.3 Sistem Black Box
Ok
record yang akan dihapus.
Mengelola data standar Klik tombol standar ukuran. PDHUPL 9.0 Sistem Black Box
Ok
ukuran.
Mencatat data standar ukuran. Masukkan data standar ukuran PDHUPL 9.1 Sistem Black Box Ok
Merubah (edit) data standar Ubah data standar ukuran. PDHUPL 9.2 Sistem Black Box
Ok
ukuran.
Menghapus data standar Klik tombol hapus, setelah memilih PDHUPL 9.3 Sistem Black Box
Ok
ukuran. record yang akan dihapus.
Melihat data pegawai. Klik tombol pegawai. PDHUPL 10.0 Sistem Black Box Ok
Mencatat data pegawai. Masukkan data pegawai PDHUPL 10.1 Sistem Black Box Ok
Merubah (edit) data pegawai. Ubah data pegawai. PDHUPL 10.2 Sistem Black Box Ok
Menghapus data pegawai. Klik tombol hapus, setelah memilih PDHUPL 10.3 Sistem Black Box
Ok
record yang akan dihapus.
Seksi Standar Mengelola data kalibrasi Klik tombol Kalibrasi PDHUPL 11.0 Sistem Black Box
Ukuran dan Ok
Kalibrasi
Merubah (edit) data kalibrasi. Ubah data kalibrasi. PDHUPL 11.1 Sistem Black Box Ok
Seksi Teknik Mengelola data tera. Klik tombol tera. PDHUPL 12.0 Sistem Black Box Ok
Merubah (edit) data tera. Ubah data tera. PDHUPL 12.1 Sistem Black Box Ok
Mengelola data tera ulang. Klik tombol tera ulang. PDHUPL 13.0 Sistem Black Box Ok
Merubah (edit) data tera Ubah data tera ulang. PDHUPL 13.1 Sistem Black Box
Ok
ulang.
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 DBA’s 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

Identifikasi PDHUPL 1.0


Nama Butir Uji Mencatat Pendaftaran
Tujuan Memeriksa pemasukkan data pendaftaran ke dalam database.
Kondisi Awal • 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 PDHUPL 2.2


Nama Butir Uji Merubah data Client
Tujuan Memeriksa pemasukkan data client ke dalam database.
Kondisi Awal • 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 PDHUPL 3.2
Nama Butir Uji Mencetak tanda terima
Tujuan Mencetak tanda terima untuk client ke printer.
Kondisi Awal • 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 • Ketika halaman Ok
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 PDHUPL 9.3


Nama Butir Uji Menghapus data Standar Ukuran
Tujuan Memeriksa pemasukkan data pendaftaran ke dalam database.
Kondisi Awal • 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
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_id;
$_SESSION['session_user_id'] = $usrname;
$_SESSION['session_username'] = $username;
$_SESSION['session_usertype'] = $usertype;
$_SESSION['session_logintime'] = $logintime;
$_SESSION['session_userstate'] = 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' => 0,
'TERA ULANG' => 0,
'KALIBRASI' => 0,
'CLIENT' => 0,
'CAPTERA' => 0,
'STANDARUKURAN' => 0,
'prefix_pendaftaran' =>
"$config_prefix_idPendaftaran",
'prefix_tera' => "$config_prefix_idTera",
'prefix_tera_ulang' => "$config_prefix_idTeraUlang",
'prefix_kalibrasi' => "$config_prefix_idKalibrasi",
'prefix_client' =>
"$config_prefix_idClient",
'prefix_captera' => "$config_prefix_idCaptera",
'prefix_standarukuran' =>
"$config_prefix_idStandarukuran",
);

for ($i=0, $n=count( $rows ); $i < $n; $i++) {


$row =& $rows[$i];
$idPendaftaran = intval( substr( $row[0], 5 ) );
$idTTUKC = 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