Pertemuan-7-Analisis dan Design Berbasis Objek Lanjt
Download
Report
Transcript Pertemuan-7-Analisis dan Design Berbasis Objek Lanjt
UML Lanjt
Rekayasa Perangkat Lunak
ARTIFACT UML (BAGAN YANG TERDAPAT PADA UML)
Use-Case
Diagram
Class
Diagram
State Diagram
add file
Writing
add file [ numberOffile==MAX ] /
flag OFF
Openning
Use Case 1
close file
Actor A
Actor B
close file
Reading
Use Case 2
Domain
Expert
Closing
<<entity>>
Customer
name
addr
receive()
withdraw()
fetch()
send()
Use Case 3
Deployment
Diagram
Class
UI
MFC
DocumentApp
ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨
- À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ®
- À©µµ¿ì NT: ÀÀ¿ë¼-¹ö
- À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼-¹ö ¹× µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
- IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼-¹ö, Åë½Å ¼-¹ö
RogueWave
Repository
Persistence
9: sortByName ( )
DocumentList
Windows95
Window95
Windows95
global
FileManager
¹®¼-°ü¸®
Ŭ¶óÀ̾ðÆ®.EXE
¹®¼-°ü¸® ¾ÖÇø´
mainWnd : MainWnd
1: Doc view request ( )
L
2: fetchDoc( )
gFile : GrpFile
4: create ( )
8: fillFile ( )
User Interface
Definition
Package
Diagram
Windows
NT
Document
Solaris
¹®¼-°ü¸® ¿£Áø.EXE
Alpha
UNIX
ÀÀ¿ë¼-¹ö.EXE
Windows
NT
GraphicFile
user : »ç¿ëÀÚ
fileMgr : FileMgr
3: create ( )
6: fillDocument ( )
File
FileList
IBM
Mainframe
µ¥ÀÌŸº£À̽º¼-¹ö
7: readFile ( )
5: readDoc ( )
document : Document
repository : Repository
Forward Engineering(Code Generation)
and
Reverse Engineering
Collaboration Diagram
Component
Diagram
mainWnd
fileMgr :
FileMgr
user
ƯÁ¤¹®¼-¿¡ ´ëÇÑ º¸±â¸¦
»ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.
document :
Document
gFile
repository
Source Code edit, compile, debug, link
1: Doc view request ( )
2: fetchDoc( )
3: create ( )
4: create ( )
5: readDoc ( )
È-Àϰü¸®ÀÚ´Â Àоî¿Â
¹®¼-ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.
6: fillDocument ( )
7: readFile ( )
8: fillFile ( )
È-¸é °´Ã¼´Â ÀоîµéÀÎ
°´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î
Á¤·ÄÀ» ½ÃÄÑ È-¸é¿¡
º¸¿©ÁØ´Ù.
9: sortByName ( )
Sequence Diagram
Executable System
PENGERTIAN ACTIVITY DIAGRAM
Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang
sedang dirancang, bagaimana masing-masing alir berawal, decision yang
mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat
menggambarkan proses paralel yang mungkin terjadi pada beberapa
eksekusi.
Activity diagram merupakan state diagram khusus, di mana sebagian besar
state adalah action dan sebagian besar transisi di-trigger oleh selesainya
state sebelumnya (internal processing). Oleh karena itu activity diagram tidak
menggambarkan behaviour internal sebuah sistem (dan interaksi antar
subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan
jalur-jalur aktivitas dari level atas secara umum.
Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas
menggambarkan proses yang berjalan, sementara use case menggambarkan
bagaimana aktor menggunakan sistem untuk melakukan aktivitas
Simbol Activity Diagram
Simbol
Keterangan
Start Point
End Point
Activities
Fork (Percabangan)
Join (Penggabungan)
Decision
Swimlane
Sebuah cara untuk mengelompokkan
activity berdasarkan Actor
(mengelompokkan activity dalam
sebuah urutan yang sama)
PENGERTIAN USE CASE
‘use case’ adalah rangkaian/uraian sekelompok yang saling terkait
dan membentuk sistem secara teratur yang dilakukan atau
diawasi oleh sebuah aktor. ‘use case’ digunakan untuk
membentuk tingkah-laku benda/ things dalam sebuah model
serta di Realisasikan oleh sebuah collaboration.
Umumnya ‘use case’ digambarkan dengan sebuah ‘elips’ dengan
garis yang solid, biasanya mengandung nama
Use case menggambarkan proses system (kebutuhan system
dari sudut pandang user)
Secara umum use case adalah:
◦ Pola perilaku system
◦ Urutan transaksi yang berhubungan yang dilakukan
oleh satu actor
Use case diagram terdiri dari
◦
◦
◦
◦
◦
Use case
Actors
Relationship
System boundary boxes (optional)
Packages (optional)
Association
Associations bukan menggambarkan aliran data/informasi
Associations digunakan untuk menggambarkan bagaimana actor
terlibat dalam use case
Ada 4 jenis relasi yang bisa timbul pada use case diagram
1. Association antara actor dan use case
2. Association antara use case
3. Generalization/Inheritance antara use case
4. Generalization/Inheritance antara actors
CLASS DIAGRAM
Class adalah sebuah spesifikasi yang jika diinstansiasi akan
menghasilkan sebuah objek dan merupakan inti dari pengembangan
dan desain berorientasi objek.
Class menggambarkan keadaan (atribut/properti) suatu sistem,
sekaligus menawarkan layanan untuk memanipulasi keadaan
tersebut (metoda/fungsi).
Class diagram menggambarkan struktur dan deskripsi class, package
dan objek beserta hubungan satu sama lain seperti containment,
pewarisan, asosiasi, dan lain-lain.
Class memiliki tiga area pokok :
1.Nama, merupakan nama dari sebuah kelas
2. Atribut, merupakan peroperti dari sebuah kelas.
Atribut melambangkan batas nilai yang mungkin ada
pada obyek dari class
3. Operasi, adalah sesuatu yang bisa dilakukan oleh
sebuah class atau yang dapat dilakukan oleh class lain
terhadap sebuah class
CLASS DIAGRAM (LANJUTAN)
Atribut dan metoda dapat memiliki salah satu sifat berikut :
◦ Private, tidak dapat dipanggil dari luar class yang
bersangkutan
◦ Protected, hanya dapat dipanggil oleh class yang
bersangkutan dan anak-anak yang mewarisinya
◦ Public, dapat dipanggil oleh siapa saja
◦ Package, hanya dapat dipanggil oleh instance sebuah
class pada paket yang sama
Nama Class
Atribut
Metode/operasi
HUBUNGAN ANTAR CLASS
1. Asosiasi, yaitu hubungan statis antar class. Umumnya
menggambarkan class yang memiliki atribut berupa class lain, atau
class yang harus mengetahui eksistensi class lain. Panah navigability
menunjukkan arah query antar class.
2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat
diturunkan dari class lain dan mewarisi semua atribut dan metoda
class asalnya dan menambahkan fungsionalitas baru, sehingga ia
disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan
adalah generalisasi.
4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing
dari satu class kepada class lain. Hubungan dinamis dapat
digambarkan dengan menggunakan sequence diagram yang akan
dijelaskan kemudian.
CONTOH CLASS DIAGRAM
MULTIPLICITY
Unspecified
Exactly one
Zero or more (many, unlimited)
1
0..*
One or more
Zero or one (optional scalar role)
Specified range
Multiple, disjoint ranges
*
1..*
0..1
2..4
2, 4..6
Sequence Diagram
Sequence diagram (diagram urutan) adalah suatu diagram yang
memperlihatkan atau menampilkan interaksi-interaksi antar
objek di dalam sistem yang disusun pada sebuah urutan atau
rangkaian waktu. Interaksi antar objek tersebut termasuk
pengguna, display, dan sebagainya berupa pesan/message.
Sequence Diagram digunakan untuk menggambarkan skenario
atau rangkaian langkah-langkah yang dilakukan sebagai sebuah
respon dari suatu kejadian/even untuk menghasilkan output
tertentu. Sequence Diagram diawali dari apa yang me-trigger
aktivitas tersebut, proses dan perubahan apa saja yang terjadi
secara internal dan output apa yang dihasilkan.
Simbol Sequence Diagram
Collaboration Diagram
Adalah perluasan dari objek dan diagram (objek diagram
menunjukkan objek-objek dan hubungannya satu dengan
yang lain). Collaboration Diagram menunjukkan messagemessage objek yang dikirim satu sama lain
Component Diagram
Component diagram menggambarkan struktur dan hubungan
antar komponen piranti lunak, termasuk ketergantungan
(dependency) diantaranya. Komponen piranti lunak adalah
modul berisi code, baik berisi source code maupun binary code,
baik library maupun executable, baik yang muncul pada compile
time, link time maupun run time. Umumnya komponen
terbentuk dari beberapa class dan atau package, tapi dapat
juga berupa interface, yaitu kumpulan layanan yang disediakan
sebuah komponen untuk komponen lainnya.
Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana
komponen di-deploy dalam infrastruktur sistem, dimana
komponen akan terletak (pada mesin, server atau piranti keras
apa), bagaimana kemampuan jaringan pada lokasi tersebut,
spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah
node adalah server, workstation atau piranti keras lain yang
digunakan untuk men-deploy komponen dalam lingkungan
sebenarnya.
Package Diagram
Adalah sebuah bentuk pengelompokkan yang
memungkinkan untuk mengambil sebuah bentuk di UML
dan mengelompokkan elemen-elemennya dalam
tingkatan unit yang lebih tinggi. Kegunaan package yang
paling umum adalah untuk mengelompokkan class
Langkah-langkah pembuatan UML:
1. Buat Dekomposisi Fungsi yang menggambarkan
sistem secara keseluruhan, baik sistem yang berjalan
maupun Usulan.
2. Membuat activity Diagram berdasarkan sistem
berjalan.
3. Buat ERD berdasarkan File yang digunakan pada
sistem Usulan untuk menunjang pembuatan Use case,
Package, Class, Sequence diagram.
4. Tentukan Package diagram
5. Tentukan class diagram berdasarkan file data yang
dibutuhkan
6. Usecase dibuat berdasarkan program atau sistem
usulan dari suatu sistem
◦ Collaboration diagram dibuat berdasarkan
tampilan utama dari program
◦ Sequence Diagram dibuat berdasarkan form yang
ada disistem usulan
◦ Langkah terakhir buatlah Deployment diagram,
Componen Diagram
Statechart Diagram
Statechart Diagram menggambarkan transisi dan perubahan
keadaaan (dari satu state ke state lainnya) suatu objek pada
sistem sebagai akibat dari stimuli yang diterima. Pada umumnya
statechart diagram menggambarkan class tertentu(satu class
dapat memiliki lebih dari satu statechart diagram). Dalam UML,
state digambarkan berbentuk segi empat dengan sudut membulat
dan memiliki nama sesuai kondisinya saat itu. Transisi antar state
umumnya memiliki kondisi guard yang merupakan syarat
terjadinya transisi yan bersangkutan, dituliskan dalam kurung siku.
Action yang dilakukan sebagai akibat dari event tertentu
dituliskan dengan diawali garis miring. Titik awal dan akhir
digambarkan berbentuk lingkarang berwarna penuh dan
berwarna setengah.
Contoh kasus
Penggajian menggunakan visual basic
Prosedur Sistem berjalan:
Proses pembuatan Daftar Data Pegawai dan Gaji pada SMP adalah sebagai berkut :
1. Proses Absensi
Pegawai melakukan absensi harian melalui form daftar hadir pegawai. Berdasarkan
form daftar hadir pegawai tersebut bagian Tata Usaha (TU) akan membuat Rekap
Absen (RA) harian untuk diserahkan kepada Administrasi.
2. Proses Pemberian Rekap Biodata Pegawai (RBP)
Pegawai memberikan data pribadi pegawai, data pendidikan, data keluarga yang
dijadikan satu menjadi data pegawai kepada bagian Tata Usaha yang kemudian
diarsipkan menjadi Rekap Biodata Pegawai (RBP). Lalu Rekap Biodata Pegawai (RBP)
diserahkan kepada bagian administrasi untuk proses pengolahan Daftar Data
Pegawai Dan Gaji (DDPG).
3. Proses Pengolahan Daftar Data Pegawai dan Gaji (DDPG)
Setelah bagian administrasi menerima Rekap Biodata Pegawai (RBP)
dan Rekap Absen (RA) akan mengolah kedua data tersebut untuk
dibuatkan menjadi Daftar Data Pegawai dan Gaji (DDPG) yang
kemudian diserahkan kepada Kepala Sekolah untuk ditanda tangani
atau di Acc.
4. Proses Pembuatan Laporan
Daftar Data Pegawai dan Gaji (DDPG) yang sudah diterima dan
ditanda tangani oleh Kepala Sekolah akan diserahkan kembali kepada
bagian Administrasi untuk dibuatkan Laporan Data Pegawai (LDP) dan
Laporan Gaji Pegawai (LGP).
Setelah bagian administrasi menerima Daftar Data Pegawai dan Gaji
yang sudah di Acc akan membuatkan Laporan Data Pegawai (LDP)
dan Laporan Gaji Pegawai (LGP) yang nantinya akan diserakan
kepada Kepala Sekolah.selain itu bagian Administrasi akan
membuatkan slip gaji untuk diserahkan kepada pegawai.
Dekomposisi Fungsi sistem berjalan
Sistem Pengolahan
Data Pegawai
Rekap Biodata
Pegawai (RBP)
Data
Pegawai
Daftar Data
Pegawai dan Gaji
(DDPG)
Absen
Rekap
Absen
Slip Gaji
Laporan
Laporan
Data
Pegawai
Data
Pendidikan
Laporan
Data
Pendidikan
Data
Keluarga
Laporan
Data
Keluarga
Laporan
Absensi
Laporan
Gaji
ACTIVITY DIAGRAM
1. Proses Absensi
Pegawai melakukan absensi harian melalui form daftar hadir pegawai. Berdasarkan form daftar hadir pegawai tersebut
bagian Tata Usaha (TU) akan membuat Rekap Absen (RA) harian untuk diserahkan kepada Administrasi.
Pegawai
TU
Melakukan absen
harian
Absen
Tidak Absen
Pegawai melapor ke
TU
Menerima laporan
pegawai yang tidak
absen
Ya Absen
Melakukan absen di
form daftar hadir
Mencatat absen
pegawai
Merekap absensi
berdasarkan form
daftar hadir
Activity Diagram (Lanjutan…)
2. Proses Pemberian Rekap Biodata Pegawai (RBP)
Pegawai memberikan data pribadi pegawai, data pendidikan, data keluarga yang dijadikan satu menjadi data pegawai
kepada bagian Tata Usaha yang kemudian diarsipkan menjadi Rekap Biodata Pegawai (RBP). Lalu Rekap Biodata Pegawai
(RBP) diserahkan kepada bagian administrasi untuk proses pengolahan Daftar Data Pegawai Dan Gaji (DDPG).
Pegawai
TU
Memberikan data
pegawai
Menerima data
pegawai
Menerima
berkas data pegawai
tidak lengkap
Mengecek berkas
data pegawai
Data tidak Lengkap
Data Lengkap
Mengembalikan
Data
berkas data pegawai
Pegawai
tidak lengkap
Data pegawai
diproses
Activity Diagram (Lanjutan…)
3. Proses Pengolahan Daftar Data Pegawai dan Gaji (DDPG)
Setelah bagian administrasi menerima Rekap Biodata Pegawai (RBP) dan Rekap Absen (RA) akan mengolah kedua data
tersebut untuk dibuatkan menjadi Daftar Data Pegawai dan Gaji (DDPG) yang kemudian diserahkan kepada Kepala
Sekolah untuk ditanda tangani atau di Acc.
TU
Administrasi
Kepala Sekolah
Memberikan data
Rekap Absen
Menerima
rekap absen & data
pegawai
Memberikan data
Pegawai
Membuat
daftar data pegawai
dan gaji
Menyerahkan
daftar data pegawai
dan gaji
Menerima
daftar data pegawai
dan gaji
Menyetujui
daftar data pegawai
dan gaji
4. Proses Pembuatan Laporan
Daftar Data Pegawai dan Gaji (DDPG) yang sudah diterima dan ditanda tangani oleh Kepala Sekolah akan
diserahkan kembali kepada bagian Administrasi untuk dibuatkan Laporan Data Pegawai (LDP) dan Laporan Gaji
Pegawai (LGP).
Setelah bagian administrasi menerima Daftar Data Pegawai dan Gaji yang sudah di Acc akan membuatkan
Laporan Data Pegawai (LDP) dan Laporan Gaji Pegawai (LGP) yang nantinya akan diserakan kepada Kepala
Sekolah.selain itu bagian Administrasi akan membuatkan slip gaji untuk diserahkan kepada pegawai.
Kepala Sekolah
Menyerahkan
daftar data pegawai
dan gaji acc
Administrasi
Menerima
daftar data pegawai
dan gaji acc
Membuat
lap data pegawai dan
lap gaji pegawai
Menerima
Lap data pegawai dan
lap gaji pegawai
Pegawai
Membuat
Slip gaji
Menerima
Slip gaji
Use Case Absen
Cetak Rekap Absen
Administrasi
<<
Inc
lud
e>
>
TU
Input Data Absen Harian
Deskripsi use case Absen
Nama : Use Case Diagram Absen
Actor : TU dan Administrasi
Deskripsi:TU mencetak Rekap Absen kemudian diserahkan kepada Administrasi
Nama Use Case :<<Include>> input data absen harian
Use Case Rekap Biodata Pegawai
Cetak Rekap Biodata
Pegawai
Administrasi
<<
Inc
lud
e>
>
TU
Input Data Pegawai,
Pendidikan, Keluarga
Deskripsi Use Case Rekap Biodata Pegawai
Nama
: Use Case Rekap Biodata Pegawai
Actor
: TU dan Administrasi
Deskripsi:TU mencetak Rekap Biodata Pegawai kemudian diserahkan kepada
Administrasi
Nama Use Case :<<Include>> input data pegawai, Pendidikan dan
Keluarga.
Use Case Pengolahan Daftar Data Pegawai dan Gaji (DDPG)
Input Data Pegawai,data
pendidikan, data keluarga
PKS, Insentif, Fungsional,
Transport, Potongan
d
cl u
n
I
<<
>
e>
Cetak Slip Gaji
Pegawai
<<
Inc
lud
e>
>
Administrasi
Input Total Absensi Pegawai
Deskripsi Use Case Pengolahan Data Pegawai dan gaji (DDPG)
Nama
: Use Case Pengolahan Data Pegawai dan Gaji
Actor
: Administrasi dan Pegawai
Deskripsi:Administrasi Mencetak Slip Gaji kemudian diserahkan kepada Pegawai
Nama Use Case:<<Include>> Input total absensi pegawai dan input data pegawai, data
pendidikan, data keluarga, PKS, insentif, fungsional, transport dan potongan.
Use Case Laporan
Cetak Laporan Gaji
Administrasi
Cetak Laporan Data
Pegawai, pendidikan dan
keluarga, Absen
Kepala Sekolah
Deskripsi Use Case Laporan
Nama
: Use Case Laporan
Actor
: Administrasi dan Kepala Sekolah
Deskripsi : Administrasi Mencetak laporan slip gaji dan mencetak laporan
data pegawai, pendidikan, keluarga dan absen
Absensi Masuk
Pegawai
nip : text
nama : text
jns_klm : text
tempat : text
tgl_lahir : text
agama : text
status : text
alamat : text
-
1..1
1..~
nip : text
nama : text
masuk : date/time
pulangt : date/time
tanggal : date/time
hari : int
-
Tambah
Edit
Hapus
Cancel
Simpan
Keluar
Gaji
Absensi Keluar
1..1
Cari
Absen
Masuk
Keluar
Pulang
1..1
nip : text
nama : text
masuk : date/time
pulangt : date/time
tanggal : date/time
hari : int
-
Cari
Absen
Masuk
Keluar
Pulang
1..~
1..1
nip : text
pks : currency
insentif : currency
tanspot : currency
fungsional : currency
gapok : currency
to_gaji : currency
nama_p : text
pot_sim_kop : currency
pot_sim_sk : currency
angs_pjm_kop : currency
asuransi : currency
gj_terima : currency
- Cetak
- Cari
- Keluar
1..1
1..~
1..~
Pendidikan
nip : text
nama : text
pendk : text
univ : text
jurusan : text
thn_lulus : text
-
Tambah
Edit
Hapus
Cancel
Simpan
Cari
Keluar
Keluarga
nip : text
nama_peg : text
nama_istri_suami : text
status : text
kelamin : text
tempat : text
tgl_lahir : text
agama : text
nama_anak1 : text
jns_klmn : text
tmpt : text
tgl_lhr : text
nam_anak2 : text
jns_klm : text
tmpat : text
tgl_lhir : text
-
Tambah
Edit
Hapus
Cancel
Simpan
Cari
Keluar
Sequence Diagram Data pegawai
Administrasi
Form Data Pegawai
Open Olah Data
Control Data Pegawai
Kepala Sekolah
Display Data
Pegawai
Input NIP
Input Data
Pegawai
Simpan ()
Display Data
Pegawai
Tambah ()
Edit ()
Batal ()
Keluar ()
Simpan ()
Simpan ()
Rec Data Pegawai
Sequence Diagram Data pendidikan
Form Data
Pendidikan
Administrasi
Control Data
Pendidikan
Pegawai
Kepala Sekolah
Open
Get NIP ()
Get NIP ()
Display NIP,
Nama
Input Data
Pendidikan
Simpan ()
Display Data
Pendidikan
Tambah ()
Edit ()
Batal ()
Keluar ()
Simpan ()
Simpan ()
Rec Data Pendidikan
Sequence Diagram Absensi
Pegawai
Form Absen
Control Absen
Pegawai
Absen
Open
Get NIP ()
Get NIP ()
Display NIP,
Nama
Input Absen
Masuk
Simpan ()
Display
Absen Masuk
Absen ()
Keluar ()
Simpan ()
Simpan ()
Rec Data Absen
Masuk
Sequence Diagram Gaji
Administrasi
Form Gaji
Pegawai
Control Gaji
Isi
Gaji
Open
Get NIP ()
Get NIP ()
Display NIP,
Nama, Jenis
Kelamin,
Status
Get Bulan ()
Display
Bulan
Input PKS,
intensif,
fungsional
Display PKS,
insentif, fungsional,
Jmlh Tunjangan
Input Jmlh
Hari Kerja
Display Jmlh hari
kerja, Transport,
Gaji pokok, Total
gaji
LOOPING
Tambah
Input Pot_sim_kop, Pot_Sim_sukarela,
Asuransi,
Pot_angsuran_Pinjmn_koperasi
Tambah
Tambah
Jumlah yang
diterima
Simpan ()
Simpan ()
Display
Jumlah Yang
Diterima
Tambah ()
Tambah ()
Edit ()
Edit ()
Edit ()
Batal ()
Batal ()
Batal ()
Keluar ()
Keluar ()
Keluar ()
Tambah ()
Simpan ()
Simpan ()
Simpan ()
Sequence Diagram Laporan Gaji pegawai
Ke Studi Kasus VB
Form Laporan
Gaji
Administrasi
Control Laporan
Gaji
Laporan Gaji
Kepala Sekolah
Open
Display Form
Laporan Gaji
Simpan ()
Simpan ()
Hapus ()
Hapus ()
Keluar ()
Keluar ()
Cetak Laporan ()
Cetak Laporan ()
Cetak Laporan ()
Simpan ()