Professional Documents
Culture Documents
Skripsi S1 Muslimpribadi
Skripsi S1 Muslimpribadi
Skripsi S1 Muslimpribadi
Tugas Akhir ini diajukan sebagai salah satu syarat untuk kelulusan
Disusun Oleh :
NIM : 11020005
BANDUNG
2007
LEMBAR PENGESAHAN
________________ ___________________
Toto Suharto, MT Nia Ambarsari, Ssi
ABSTRACT
Bismillahirrahmanirrahim,
Dengan nama Allah Yang Maha Pengasih dan Maha Penyayang, Segala
puji bagi Allah. SWT, Rabb seluruh alam. Semoga Shalawat dan salam tercurah
pengikutnya.
Surakarta)” yang merupakan salah satu syarat kelulusan yang harus dipenuhi
Sony Sugema.
Bapak Toto Suharto, M.T., selaku dosen pembimbing skripsi yang dengan penuh
Pada kesempatan ini pula, penulis ingin mengucapkan terima kasih yang
3. Bapak Ali Ahmadi, S.T., selaku dosen jurusan Teknik Informatika STTIS
Bandung.
Surakarta.
5. Bapak Wahyu Veteranto, S.H., selaku Kepala Seksi Standar Ukuran dan
8. Ibu Anik Sofiah, Bc. Hk., selaku Kepala Sub Bagian Tata Usaha Balai
9. Bapak A. Martoto, mas Devi, dan mas Dedi di Balai Metrologi Surakarta.
10. Sahabat dan teman dekat yang telah memberikan masukan dan bantuannya
12. Bapak dan ibu dosen pengajar pada Sekolah Tinggi Teknologi Informatika
sela kesibukanku.
15. Semua pihak yang turut memberikan dukungan dalam penulisan skripsi ini
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
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
Akhir kata penulis secara pribadi berharap karya tulis ini bisa memberikan
manfaat khususnya bagi penulis, dan bagi para pembaca pada umumnya.
Penulis
DAFTAR ISI
DAFTAR PUSTAKA
LAMPIRAN-LAMPIRAN
DAFTAR TABEL
Tabel 3.10. Kebutuhan Fungsional Seksi Standar Ukuran dan Kalibrasi ... III-14
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 4.4. Identifikasi Kelas Seksi Sandar Ukuran dan Kalibrasi ……… IV-3
Tabel 4.8. Spesifikasi Kelas Sub Bagian Tata Usaha …………………... IV-49
Tabel 4.9. Spesifikasi Kelas Seksi Standar Ukuran dan Kalibrasi ………IV-51
Tabel 5.5. Implementasi Kelas Sub Bagian Tata Usaha ………………... V-4
Tabel 5.6. Implementasi Kelas Seksi Standar Ukuran dan Kalibrasi …... V-4
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.42. Diagram Kelas Sub Bagian Tata Usaha …………………. IV-14
Gambar 4.43. Diagram Kelas Seksi Standar Ukuran dan Kalibrasi ……. IV-14
Gambar 4.57. Diagram Sequence Melihat Data Tera Ulang …………… IV-21
Gambar 4.97. Rancangan User Interface form baru dan ubah …………..IV-42
Gambar 4.100. Diagram Spesifikasi Kelas Sub Bagian Tata Usaha …….. IV-45
Gambar 5.4. Implementasi User Interface Form Baru da Ubah ………. V-11
NewClass
proses bisnis.
NewClass
Undirectional association
Dependencies or instantiates
NewClass4 Class
Object
Package
NewPackag
e
NewCo Component
mponent
Database component
MySQL database
Processor
Processor
Connection
DAFTAR LAMPIRAN
PENDAHULUAN
Balai Metrologi (UU Nomor 2 Tahun 1981 tentang Metrologi legal) wilayah
propinsi Jawa Tengah (Peraturan daerah Propinsi Jawa Tengah Nomor 1 Tahun
2. Melakukan tera dan tera ulang alat-alat ukur, takar, timbang dan
tugas bulanan yang salah satunya adalah Laporan Bulanan Balai Metrologi
Jawa Tengah, yang didalamnya mencakup laporan Tera dan Tera Ulang
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
juga Dinas Perdagangan propinsi Jawa Tengah, yang nantinya akan menjadi
Dalam pencarian data juga memerlukan waktu dan tenaga yang banyak karena
data harus terlebih dulu dicari lalu disusun ulang secara manual tergantung
permasalahan tersebut.
terkumpul lalu di susun kembali sehingga menjadi satu laporan yang utuh,
laporan.
2. Dengan sistem pengarsipan konvensional, proses pencarian data dengan filter
yang tidak terpenuhi tepat pada waktunya, hal ini berubungan erat dengan
ruang lingkup permasalahan yang akan ditangani. Ruang lingkup dibatasi pada :
dalam melakukan tera dan tera ulang alat-alat UTTP serta kalibrasi alat ukur.
Jawa Tengah yang masih berlaku saat diadakan penelitian (Tahun 2006).
salah satu dari empat tugas pokok Metrologi yaitu, melakukan tera dan tera
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
dan tera ulang alat-alat UTTP serta kalibrasi alat ukur. Tahapnya antara lain:
1. Survei
orang yang bertanggung jawab pada divisi masing-masing, dan juga para
2. Studi Literatur
yang ada.
dan perancangan, dan juga memiliki perilaku sesuai dengan kebutuhan yang
5. Pengujian, tahap ini memastikan perilaku atau proses yang dari perangkat
lunak yang telah diciptakan, ada dan sesuai dengan kebutuhan yang telah
dimodelkan.
Penulisan skripsi ini akan dibahas dan disusun bab demi bab dengan
BAB I PENDAHULUAN
Bab ini meliputi teori - teori yang relevan dengan masalah pokok yang akan
dikaji.
Bab ini memodelkan permasalahan dan kebutuhan sistem yang ada sehingga
lunak, pembuatan model fungsional. Tahap ini akan dijadikan sebagai acuan
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 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
Metrologi adalah ilmu yang mempelajari tentang ukur mengukur secara luas,
satuan ukuran, metoda-metoda pengukuran dan alat-alat ukur, takar, timbang, dan
pengukuran.
2.1.2 Tera
Tera adalah suatu kegiatan menandai dengan tanda Tera sah atau tanda Tera
Tera sah atau tanda Tera batal yang berlaku, dilakukan oleh pegawai yang berhak
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
penunjukan alat ukur dan bahan ukur dengan membandingkan dengan standar
Bab ini akan menjelaskan Rational unified process, konsep object oriented,
Dalam bentuk yang paling sederhana RUP terdiri dari beberapa tahapan kerja
dasar, dalam gambar 2.1. ditunjukan pada poros vertikal (organization along
content) :
2. Requirements
yang terotomatisasi.
4. Implementation
telah dibuat pada tahap analisis dan desain, dan memiliki perilaku seperti yang
5. Test
6. Environment
7. Deployment
proyek.
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
tunggal.
Kelas Pendaftaran
Pada gambar 2.2. client, petugas pendaftaran, serta petugas divisi teknik
Pada metoda ini penekanannya ada pada obyek dan bukan pada proses,
potongan kecil, atau obyek, yang cukup bebas antara satu dengan lainnya. Kita
Polimorfisme, yaitu konsep yang menyatakan bahwa suatu fungsi yang sama
Inheritance, pewarisan ini pada dasarnya adalah berbagi atribut dan operasi
perulangan penulisan kode dan mungkin merupakan salah satu keunggulan utama
rekayasa perangkat lunak, karena memungkinan penulisan kode yang lebih sedikit
yang dapat diakses oleh objek lain dan memfokuskan diri pada implementasi
rincian implementasinya.
UML adalah sebuah "bahasa" yg telah menjadi standar dalam industri untuk
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.
dapat dikombinasikan. Notasi UML diturunkan dari 3 notasi yang telah ada
Software Engineering (OOSE). Didalam UML terdapat Use Case Diagram, Class
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
Pertama-tama web browser pada client me-request sebuah file (1). Dalam
(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)
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
dikirimkan (3).
website yang interaktif yang dihubungkan kedalam basis data atau data store lain.
2.2.5 MySQL
(SQL) terutama dengan PHP5 yang sudah memiliki fungsi built-in untuk
menyimpan data pada tabel yang terpisah daripada menyatukan semua data dalam
satu tabel yang besar, hal ini dapat meningkatkan kecepatan dan fleksibilitas.
melalui SQL yang telah menjadi bahasa standar yang umum untuk mengakses
database.
Untuk dapat mengendalikan MySQL server dari dalam program ada tiga hal
1. Buat koneksi dengan MySQL server dengan memasukkan alamat host dari
beserta kata sandinya. Jika host ditemukan dan user tersebut terdaftar maka
Response( koneksi:true )
Aplikasi
MySQL Server
Response( database:true )
Aplikasi
MySQL Server
DEFINISI KEBUTUHAN
Teknis Dinas Perdagangan propinsi Jawa Tengah, dengan salah satu tugas
pokoknya, melakukan Tera dan Tera ulang alat-alat Ukur, Takar, Timbang dan
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
1. Di kantor
- Pengujian material.
- Pengujian unjuk kerja.
2. Di luar kantor
- Pengujian material.
WAJIB PENGUJIAN
MEMENUHI PEMBAYARAN
TERA PENDAFTARAN - MATERIAL SAH
SYARAT BIAYA TERA
ULANG - UNJUK KERJA
TIDAK
MEMENUHI REPARATIR PEMBUBUHAN
SYARAT TANDA TERA
PADA UTTP
- Pengujian material.
2. Di luar kantor
- Pengujian material.
Permohonan
KONSUMEN
- Tanda Terima
- Identifikasi Alat
Pembayaran Kalibrasi
- Pembuatan sertifikat
Perhitungan Data
- Pemberian Label
1. Di Kantor.
c. Pengkondisian alat.
d. Pengkalibrasian alat.
e. Pembuatan sertifikat.
2. Di Luar Kantor
d. Pengkalibrasian alat.
e. Pembuatan sertifikat.
seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi
Client Pendaftaran
Tera
Seksi Teknik
Tera Ulang
Form Registrasi
Data Pembayaran
Client Front Officer
Data Client
Laporan Tera
Data Kalibrasi
Data UTTP
Data Sertifikasi
Data Petugas
Data Petugas
Laporan Tera
Data Petugas
Catat
pendaftaran
B. Business Activity Diagram Laporan Bulanan.
Minta Tampilkan
laporan laporan bulanan
Sie. Standar Ukuran dan Kalibrasi Operator Standar ukuran dan kalibrasi
Kepala Balai
Front Office
(Sub. Bag. TU)
Sub Bag. TU
3C om
Hub
Sie. Teknik
lain sebagai penunjang agar SIP Metrologi dapat berjalan sesuai dengan
1. Antarmuka pemakai.
2. Antarmuka komunikasi.
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
2. Kepala Balai.
(case) yang akan ditangani oleh perangkat lunak beserta aktor atau pelakunya.
<<extend>>
Catat client
Hapus client
<<extend>>
<<extend>>
Catat pembayaran client
Hapus Pendaftaran
<<extend>>
Edit Standar Ukuran
Kelola pegawai
<<extend>>
Catat Cap Tera
<<extend>>
<<extend>> <<extend>> <<extend>>
Catat data pegawai Edit data Pegawai Hapus pegawai Hapus Cap Tera
<<extend>>
Gambar 3.15. Use Case Diagram Seksi Standar Ukuran dan Kalibrasi.
5. Seksi Teknik.
<<extend>>
Seksi Teknik
<<extend>>
Skenario merupakan penjelasan lebih detail dari kasus (case) dari awal hingga
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
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
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
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
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
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.
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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
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.
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
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
4.1. Analisis
Tahap analisis terdiri dari tahap identifikasi kelas beserta keterkaitannya, yang
Secara garis besar, dalam permodelan rational unified process kelas dibagi
menjadi 3, yaitu :
1. Boundary Class
2. Control Class
3. Entity Class.
7. Kepala Balai.
dengan kelas lainnya dilihat dari segi kolaborasi kelasnya. Dan permodelannya
bagian.
• Catat Pendaftaran
• Periksa Client
clientdetail
post variable simpan
• Kelola Client
show
• Edit Client
edit
post variable simpan
• Hapus Client
remove
post variable hapus
show
2. Kepala Balai.
tera
kalibrasi
show
edit
post variable simpan
edit
post variable simpan
show
• Kelola Pegawai
show
new
post variable simpan
• Edit Pegawai
edit
post variable simpan
• Hapus Pegawai
remove
post variable hapus
• Kelola Kalibrasi
show
edit
post variable simpan
5. Seksi Teknik.
• Kelola Tera
show
• Edit Tera
2. Kepala Balai.
5. Seksi Teknik.
• Catat Pendaftaran
1: new registrasiCtrl()
2: editRegistrasi(0)
3: saveReg($task)
4: new mosRegistrasi($db)
5: bind($_POST)
6: check()
7: store()
1: new registrasiCtrl()
2: editRegistrasi(0)
3: saveReg($task)
4: new mosRegistrasi($db)
5: setQuery($query)
6: load()
• Kelola Client
1: new clientCtrl()
2: show($option)
3: new mosClient($db)
4: setQuery($query)
5: loadObjectList()
1: new clientCtrl()
2: editClient(0)
3: saveClient()
4: new mosClient($db)
5: bind($_POST)
6: check()
7: store()
• Edit Client
1: new clientCtrl()
2: editClient($uid)
3: saveClient($task)
4: mosClient
5: bind($_POST)
6: check()
7: store()
1: new clientCtrl()
2: removeClient($id,$option)
3: new mosClient($db)
4: delete($id)
1: new registrasiCtrl()
2: show($option)
3: new mosRegistrasi($db)
4: setQuery($query)
5: loadObjectList()
1: new registrasiCtrl()
4: load($uid)
5: payment($uid,$pay)
6: pay($uid,$pay)
1: new registrasiCtrl()
2: show($option)
3: new mosRegistrasi($db)
4: setQuery($query)
5: loadObjectList()
1: new registrasiCtrl()
2: show($option)
3: new mosRegistrasi($db)
4: setQuery($query)
5: loadObjectList()
1: new registrasiCtrl()
2: removeRegistrasi($id,$option)
3: mosRegistrasi($db)
4: delete($id)
1: new teraCtrl()
2: show($option,$section)
3: new mosTera($db)
4: setQuery($query)
5: loadObjectList()
1: new teraCtrl()
2: show($option,$section)
3: new mosTera($db)
4: setQuery($query)
5: loadObjectList()
1: new kalibrasiCtrl()
2: show($option)
3: new mosKalibrasi($db)
4: setQuery($query)
5: loadObjectList()
1: new uttpCtrl()
2: show($option)
3: new mosUttp($db)
4: setQuery($query)
5: loadObjectList()
1: new uttpCtrl()
2: editUttp(0)
3: saveUttp($task)
4: new mosUttp($db)
5: bind($_POST)
6: check()
7: store()
1: new uttpCtrl()
2: editUttp($uid)
3: saveUttp($task)
4: new mosUttp($db)
5: bind($_POST)
6: check()
7: store()
1: new uttpCtrl()
2: removeuttp($id,$option)
3: new mosUttp($db)
4: delete($id)
1: new uttpCtrl()
2: editUttp(0)
3: saveUttp($task)
4: new mosUttp($db)
5: bind($_POST)
6: check()
7: store()
1: new uttpCtrl()
2: editUttp($uid)
3: saveUttp($task)
4: new mosUttp($db)
5: bind($_POST)
6: check()
7: store()
1: new uttpCtrl()
2: removeuttp($id,$option)
3: new mosUttp($db)
4: delete($id)
1: new capteraCtrl()
2: show($option)
3: new mosCaptera($db)
4: setQuery($query)
5: loadObjectList()
1: new capteraCtrl()
2: editCaptera(0)
3: saveCaptera($task)
4: new mosCaptera($db)
5: bind($_POST)
6: check()
7: store()
1: new capteraCtrl()
2: editCaptera($uid)
3: saveCaptera($task)
4: new mosCaptera($db)
5: bind($_POST)
6: check()
7: store()
1: new capteraCtrl()
2: removecaptera($id,$option)
3: new mosCaptera($db)
4: delete($id)
1: new standarCtrl()
2: show($option)
3: new mosStandar($db)
4: setQuery($query)
5: loadObjectList()
1: new standarCtrl()
2: editStandar(0)
3: saveStandar($task)
4: new mosStandar($db)
5: bind($_POST)
6: check()
7: store()
1: new standarCtrl()
2: editStandar($uid)
3: saveStandar($task)
4: new mosStandar($db)
5: bind($_POST)
6: check()
7: store()
1: new standarCtrl()
2: removestandar($id,$option)
3: new mosStandar($db)
4: delete($id)
1: new pegawaiCtrl()
2: show($option)
3: mosPegawai($db)
4: setQuery($query)
5: loadObjectList()
• Catat Pegawai
1: new pegawaiCtrl()
2: editPegawai(0)
3: savePegawai($task)
4: new mosPegawai($db)
5: bind($_POST)
6: check()
7: store()
1: new pegawaiCtrl()
2: editPegawai($uid)
3: savePegawai($task)
4: new mosPegawai($db)
5: bind($_POST)
6: check()
7: store()
• Hapus Pegawai
1: new pegawaiCtrl()
2: removePegawai($id,$option)
3: mosPegawai($db)
4: delete($id)
• Kelola Kalibrasi
1: new kalibrasiCtrl()
2: show($option)
3: new mosKalibrasi($db)
4: setQuery($query)
5: loadObjectList()
• Edit Kalibrasi
1: new kalibrasiCtrl()
2: editKalibrasi($uid)
3: saveKalibrasi($task)
4: new mosKalibrasi($db)
5: bind($_POST)
6: check()
7: store()
• Kelola Tera
tera teraCtrl mosTera
1: new teraCtrl()
2: show($option,$section)
3: new mosTera($db)
4: setQuery($query)
5: loadObjectList()
• 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()
1: new teraCtrl()
2: show($option,$section)
3: new mosTera($db)
4: setQuery($query)
5: loadObjectList()
1: new teraCtrl()
2: editTera($uid)
3: saveTera($task)
4: new mosTera($db)
5: bind($_POST)
6: check()
7: store()
pendukung.
pencarian sebuah kelas baik dari level yang lebih tinggi maupun menuju level
com_pendaftaran
registrasiCtrl mosRegistrasi
com_kepala_balai
com_rekap includes
com_tu
com_uttp includes
mosCaptera
com_kalibrasi
includes
kalibrasi kalibrasiCtrl
mosKalibrasi
• Seksi Teknik
com_tera
includes
tera teraCtrl
mosTera
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
MySQL database
Pada tahap ini akan digambarkan strukutur database dari SIP Metrologi, baik
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>
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)
1. Login
Header
Login
2. Control Panel
Header
Control Panel
Notification area
Header
reporting
Record3
Record4
Header
baru
Dalam diagram ini, digambarkan keterkaitan antar kelas secara lebih rinci dari
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()
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()
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()
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()
Tabel ini menjelaskan nama kelas, peran, atribut dan method yang dimiliki oleh
2. Kepala Balai
5. Seksi Teknik
5.1. Implementasi
menjadi lebih jelas. Batasan implementasi dari perangkat lunak SIP Metrologi
2. Proses yang ditangani lebih terfokus pada manajemen tera dan kalibrasi.
implementasi jaringan..
Berikut ini adalah daftar kelas pada saat perancangan dan implementasi dari
penyusunya.
1. Login
3. Reporting
yaitu setting user root sebagai super user dan konfigurasi Apache2TriadManager
Penyetingan akun super user diperlukan untuk mengakses semua aplikasi pada
kata sandi untuk pengguna root, Masukkan kata sandi lalu ulangi sekali lagi pada
2. Apache2TriadManager
• Aktifkan Apache2 server dan Mysql server dengan cara mengklik icon
• $config_host
• $config_user
Nilai pada variabel ini menampung nama pemakai database MySQL, nilai
default-nya ‘root’;
• $config_password
MySQL, diisi dengan kata sandi dari root (baca: bab 5.1.3.4.
(root)).
• $config_db
• $config_live_site
Address server.
berfungsi membangun struktur tabel dari database. File ini dapat ditemukan pada
yang telah dipersiapkan untuk jaringan peer to peer, pada kartu jaringan masing –
masing komputer.
• Pilih koneksi Local Area Network yang sedang dipakai lalu klik setting.
Bab ini akan menjelaskan mengenai pengujian aplikasi SIP Metrologi, kasus
bahasa pemograman PHP 5.1.2 dengan database-nya MySQL 5.0.18, yang dalam
laporan.
yang hanya berfokus pada kebutuhan fungsional perangkat lunak. Pada kasus uji
dengan proses yang sama akan diwakilkan oleh satu proses kasus uji.
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
7.1 Kesimpulan
metrologi yaitu, melakukan tera dan tera ulang alat-alat ukur, takar, timbang,
yang utuh.
Metrologi secara fungsional bekerja dengan baik sesuai kebutuhan yang telah
4. SIP Metrologi telah mampu menangani proses pendaftaran Tera, Tera Ulang,
cap tera, standar ukuran, UTTP dan pengolahan daftar pegawai. Jika di lihat
Metrologi dalam melakukan tera dan tera ulang alat-alat ukur, takar, timbang
7.2 Saran
perubahan tarif secara keseluruhan jika Peraturan daerah yang diacu berubah.
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.
IlmuKomputer.Com.
Timur.
http://en.wikipedia.org/w/index.php?title=Client-server&oldid=66337485.
[2 Agustus 2006].
14. Chafee, A. (2000). One, two, three, or n tiers? Should you hold back the tiers
http://www.javaworld.com/javaworld/jw-01-2000/jw-01-ssj-tiers-p2.html.
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
LISTING PROGRAM
1. File index.php
/**
* $id: index.php
* Copyright (C) 2006 Muslim Pribadi Muhammad
* author Muslim Pribadi Muhammad <muslim.pribadi@gmail.com>
*/
require_once('config.php');
require_once('includes/sip_metrologi.php');
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 );
}
$usertype = $user[2];
$database->setQuery( $query );
$username = $database->loadResult();
$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();
$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>
*/
require_once( "config.php" );
require_once( $config_absolute_path . "/includes/sip_metrologi.php" );
if ($option == 'logout') {
require 'logout.php';
exit();
}
<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;
}
3. File database.php
/**
* $id: database.php
* Copyright (C) 2006 Muslim Pribadi Muhammad
* author Muslim Pribadi Muhammad <muslim.pribadi@gmail.com>
*/
/**
* 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;
/**
* 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;
/**
* 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 );
}
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' );
$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",
);
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;
}
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