Anda di halaman 1dari 38

Pemodelan Objek dengan Menggunakan UML

Menurut Dharwiyanti dan Wahono (2003), Unified Modelling Language (UML)


adalah sebuah "bahasa" yang 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, model dapat dibuat 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-bahasa berorientasi objek seperti Delphi,
C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk
modeling aplikasi prosedural dalam VB atau C.
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 syntax UML
mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML
terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD
(Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar
Jacobson OOSE (Object-Oriented Software Engineering).
Sejarah UML sendiri cukup panjang. Sampai era tahun 1990, puluhan metodologi
pemodelan berorientasi objek telah bermunculan di dunia. Di antaranya adalah:
metodologi booch, metodologi coad, metodologi OOSE, metodologi OMT, metodologi
shlaer-mellor, metodologi wirfs-brock, dsb. Masa itu terkenal dengan masa perang
metodologi (method war) dalam pendesainan berorientasi objek. Masing-masing
metodologi membawa notasi sendiri-sendiri, yang mengakibatkan timbul masalah baru
apabila bekerjasama dengan group/perusahaan lain yang menggunakan metodologi
yang berlainan.

Rumbaugh
Booch

Odell

Jacobson

UML

OMG
(Object Management Group)

Meyer

Shlaer and
Mellor
Gamma

Gambar 2.1 Penyatuan Metodologi Pendesainan Berorientasi Objek.

Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang
merupakan tiga tokoh yang boleh dikata metodologinya banyak digunakan mempelopori
usaha untuk penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995
direlease konsep pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan
tersebut dikoordinasikan oleh Object Management Group (OMG). Sejak saat itulah UML
telah menjelma menjadi standar bahasa pemodelan untuk aplikasi berorientasi objek.
1. Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah
sistem. Yang ditekankan adalah apa yang diperbuat sistem, dan bukan bagaimana.
Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use
case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create
sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas
manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaanpekerjaan tertentu.
Use case diagram dapat sangat membantu dalam menyusun requirement sebuah
sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk
semua feature yang ada pada sistem.
Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian
dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include
akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal.
Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi
fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common.

Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya
sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use
case yang satu merupakan spesialisasi dari yang lain.
Clinic
Cancel Appointment

Make Appointment
<<include>>

Scheduler

Check Patient
Record

Patient

<<include>>
Request Medication
Defer Payment

Doctor

<<extend>>
Pay Bill
Extension Point
More Treatment
Bill Insurance
Clerk

Gambar 2.2 Contoh Use Case Diagram.


2. 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.
Class memiliki tiga area pokok :
1. Nama (dan stereotype).
2. Atribut.
3. Metoda.
Atribut dan metoda dapat memiliki salah satu sifat berikut :
1. Private, tidak dapat dipanggil dari luar class yang bersangkutan. Private diberi tanda
minus (-) pada awal nama attribut atau nama operasi.

2. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang
mewarisinya. Private diberi tanda pagar (#) pada awal nama attribut atau nama
operasi.
3. Public, dapat dipanggil oleh siapa saja. Private diberi tanda plus (+) pada awal nama
attribut atau nama operasi.

Nama Class
+publicAtribut : <tipe data>
-privateAtribut : <tipe data>
#protectedAtribut : <tipe data>
+publicOperasi
-privateOperasi
#protectedOperasi

Gambar 2.3 Notasi Public, Private dan Protected pada Class Diagram.

Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak
yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi
harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface
mendukung resolusi metoda pada saat run-time.

3. Statechart Diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (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 segiempat, dengan sudut membulat
dan memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki
kondisi guard, yang merupakan syarat terjadinya transisi yang bersangkutan (dituliskan
dalam kurung siku). Action yang dilakukan sebagai akibat dari event tertentu dituliskan
dengan diawali garis miring.
Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan
berwarna setengah.

Processing Request
Select [Filter]

+ Filter string
Start

Viewing

Adding to Chart
Adding

End

Gambar 2.4 Contoh Statechart Diagram.

4. Activity Diagram
Activity diagram 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.
Sama seperti state, standar UML menggunakan segiempat dengan sudut
membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan
behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan
join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal.

Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan
objek mana yang bertanggung jawab untuk aktivitas tertentu.
decision

Start

Find Beverage

Put Coffee
in Filter

Add Water to
Reservoir

[no coffee]

Get Cups

Put Filter in
Machine

[no cola]

Turn on
Machine
Brew Coffee

Pour Coffee

Drink Beverage
End

Gambar 2.5 Contoh Activity Diagram.

5. Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar
sistem (termasuk pengguna, display, dan sebagainya) berupa message yang
digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu)
dan dimensi horizontal (objek-objek yang terkait).
Sequence diagram biasa digunakan untuk menggambarkan skenario atau
rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk
menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut,
proses dan perubahan apa saja yang terjadi secara internal dan output apa yang
dihasilkan.

Login Screen

Login Screen

Security
Manager

Customer
Login
Validate User
Check User Details
User Detail
Validate
[Result]

Gambar 2.6 Contoh Sequence Diagram.

6. Component Diagram
Component diagram menggambarkan struktur dan hubungan antar komponen
piranti lunak, termasuk ketergantungan (dependency) di antaranya. 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 dari komponen-komponen yang lebih kecil.
Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan
sebuah komponen untuk komponen lain.

Kernel32.dll

Gambar 2.7 Contoh Component Diagram.

7. Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana komponen dideploy dalam infrastruktur sistem, di mana 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.

Internet
Gambar 2.8
Client Web
Server

Web Server

Contoh Deployment Diagram.

CONTOH KASUS MENGGUNAKAN BAHASA PEMROGRAMAN VISUAL


Use Case Diagram
Client Proses

Server Proses

Melakukan
Koneksi dan
Login

Menerima
Request Client

Me-request
Informasi/Data
Menerima
Informasi/Data

Melaksanakan
Request Client

Mengumpulkan
Informasi/Data

Disconnect

Pengawas
Save Data
Server

User yang
diawasi

Mengirim
Informasi/Data

Open Data
Server
Manajemen
Daftar Server
Mengkonfigurasi

Gambar Use Case Diagram.


Tabel 1 Use case spesification Melakukan Koneksi dan Login.
Use Case Spesification
1. Nama Use Case :
Melakukan Koneksi dan Login.
2. Deskripsi singkat :
Use case ini melakukan koneksi ke Server sekaligus melakukan login. Jika
sudah ada client yang terkoneksi atau password salah, maka login tidak
diterima sehingga client tidak bisa mengakses Server.
3. Basic Flow :
a. Pengawas menginput password lalu melakukan koneksi dan login ke
Server melalui Client.
b. Jika belum ada Client lain yang login ke Server, maka dilanjutkan dengan
proses login.

c. Jika password benar, maka Pengawas bisa mengakses Server.


4. Alternate Flow :
a. Jika Server belum diaktifkan atau Server tidak ditemukan, maka proses
koneksi dan login tidak dilanjutkan.
b. Jika ada Client lain yang sudah login ke Server, maka proses login tidak
dilanjutkan.
c. Jika password salah, maka Pengawas melakukan proses koneksi dan
Login lagi.
5. Special requirement :
a. Nomor Port.
b. Alamat IP atau Hostname.
c. Password.
6. Pre-condition : Disconnected.
7. Post-condition : Connected.

Tabel 2 Use case spesification Me-request Informasi/Data.


Use Case Spesification
1. Nama Use Case :
Me-request Informasi/Data.
2. Deskripsi singkat :
Use case ini melakukan request (meminta) informasi atau data ke Server
melalui Client. Request dapat berupa permintaan informasi dan data, serta
perintah.
3. Basic Flow :
Pengawas melakukan Request informasi atau data ke Server melalui Client.
Request yang bisa dilakukan oleh user yaitu :
1. Title aplikasi yang dijalankan pada komputer remote (Server).
2. Menutup salah satu aplikasi yang dijalankan pada komputer remote.
3. Data Tuts Keyboard yang ditekan oleh User yang sedang diawasi.
4. Screenshoot layar monitor komputer remote.
5. Pengendalian mouse dan keyboard komputer remote.
6. File manajemen, yaitu browsing file, upload file, download file, rename file,
delete file dan buat folder baru.

7. Mengirim pesan kepada User yang diawasi.


4. Alternate Flow :
a. Jika belum terkoneksi maka Pengawas tidak bisa melakukan request.
b. Jika satu request belum selesai diproses dan diterima, maka Pengawas
belum bisa melakukan request.

Tabel 3 Use case spesification Menerima Informasi/Data.


Use Case Spesification
1. Nama Use Case :
Menerima Informasi/Data.
2. Deskripsi singkat :
Use case ini menerima informasi atau data dari Server sesuai dengan yang di
request oleh Pengawas, kemudian menyajikan informasi atau data tersebut
kepada Pengawas.
3. Basic Flow :
a. Menerima informasi atau data dari Server.
b. Menyeleksi jenis informasi atau data yang diterima.
c. Memproses data hasil seleksi.
d. Menampilkan informasi atau data kepada Pengawas.
4. Alternate Flow :
Jika informasi atau data yang diterima tidak valid, maka informasi tidak
ditampilkan.
5. Special requirement : Informasi/Data.

Tabel 4 Use case spesification Disconnect.


Use Case Spesification
1. Nama Use Case :
Disconnect.
2. Deskripsi singkat :
Use case memutuskan hubungan dengan Server.
3. Basic Flow :
Pengawas memutuskan hubungan dengan Server.
4. Pre-condition : Connected.

5. Post-condition : Disconnected.

Tabel 5 Use case spesification Save Data Server.


Use Case Spesification
1. Nama Use Case :
Save Data Server.
2. Deskripsi singkat :
Use case ini menyimpan daftar server ke dalam file yang berekstensi *.sdt
(server data).
3. Basic Flow :
Pengawas meyimpan daftar server ke dalam file dengan eksetensi *.sdt.
4. Special requirement : Daftar server.

Tabel 6 Use case spesification Open Data Server.


Use Case Spesification
1. Nama Use Case :
Open Data Server.
2. Deskripsi singkat :
Use

case

ini

membuka

file

berekstensi

*.sdt

(server

data)

dan

memasukkannya ke dalam daftar server.


3. Basic Flow :
Pengawas membuka file dengan eksetensi *.sdt.
4. Special requirement : File berekstensi *.sdt.

Tabel 7 Use case spesification Manajemen Daftar Server.


Use Case Spesification
1. Nama Use Case :
Manajemen Daftar Server.
2. Deskripsi singkat :
Use case ini melakukan manajemen terhadap daftar server, dimana
manajemen dapat berupa add server, edit server, dan delete server.
3. Basic Flow :
Pengawas memilih salah satu fungsi manajemen yang ada untuk mengelolah

daftar server.

Tabel 8 Use case spesification Mengkonfigurasi.


Use Case Spesification
1. Nama Use Case :
Mengkonfigurasi.
2. Deskripsi singkat :
Use case ini melakukan konfigurasi Client.
3. Basic Flow :
Pengawas melakukan perubahan terhadap nilai konfigurasi default sesuai
kebutuhan.
4. Alternate Flow :
Jika tidak dilakukan konfigurasi, sistem akan menggunakan konfigurasi
default.

Tabel 9 Use case spesification Menerima Request Client.


Use Case Spesification
1. Nama Use Case :
Menerima Request Client.
2. Deskripsi singkat :
Use case ini menerima request dari Client lalu menyeleksi jenis request yang
diterima.
3. Basic Flow :
a. Menerima request dari Client.
b. Menyeleksi request yang diterima.

Tabel10 Use case spesification Melaksanakan Request Client.


Use Case Spesification
1. Nama Use Case :
Melaksanakan Request Client.
2. Deskripsi singkat :
Use case ini melaksanakan request Client, seperti mengeksekusi file,
mendelete file, menampilkan pesan ke layar monitor dll.

3. Basic Flow :
Melaksanakan request dari Client.

Tabel 11 Use case spesification Mengumpulkan Informasi/Data.


Use Case Spesification
1. Nama Use Case :
Pengumpulan Informasi/Data.
2. Deskripsi singkat :
Use case ini mengumpulkan informasi atau data yang direquest oleh Client,
seperti daftar tittle aplikasi, penekanan tuts keyboard, screenshoot layar
monitor.
3. Basic Flow :
Mengumpulkan informasi atau data yang direquest oleh Client.

Tabel 12 Use case spesification Mengirim Informasi/Data.


Use Case Spesification
1. Nama Use Case :
Mengirim Informasi/Data.
2. Deskripsi singkat :
Use case ini mengirim informasi atau data yang sudah dikumpulkan sesuai
request dari Client.
3. Basic Flow :
Informasi atau data yang berhasil dikumpulkan di kirim ke Client.
4. Alternate Flow :
Jika informasi atau data tidak tersedia atau tidak berhasil dikumpulkan, maka
informasi yang di kirim ke Client adalah informasi bahwa Server gagal
mengumpulkan data
5. Special requirement : Informasi/Data.

Deployment Diagram

Ethernet

Komputer
Client

Berfungsi sebagai
sarana pengakses
server, yang langsung
berinteraksi dengan
Pengawas

Komputer
Server

Sebagai penyedia
layanan untuk Client,
yang menerima dan
melaksanakan
Request Client

Gambar 2 Deployment Diagram.

Class Diagram
Client
TFormUtama

Server

TClientUtama

TFormOption

TFormInputFileName

TFormScrshoot

TFormUtama

<<include>>
TFormUtama
TFormEditServer

Gambar 3 Class Diagram pada Aplikasi Client dan Server.

Notasi Class.
1. Class pada Aplikasi Client
TFormUtama
+MainMenu: TMainMenu
+File1: TMenuItem
+ClientUtama: TClientSocket
+StatusBar: TStatusBar
+PanelAtas: TPanel
+LabelIP: TLabel
+EditPort: TEdit
+LabelPort: TLabel

+Indicator: TShape
+ButtonConnect: TButton
+PageControl: TPageControl
+TabServerList: TTabSheet
+EditPassword: TEdit
+LabelPassword: TLabel
+ListServer: TListView
+PopupServerList: TPopupMenu
+AddServer1: TMenuItem
+EditServer1: TMenuItem
+DeleteServer1: TMenuItem
+Connect1: TMenuItem
+EditIP: TEdit
+TabRunningApp: TTabSheet
+ListRunApp: TListView
+ButtonRefresh: TButton
+ButtonCloseApp: TButton
+CBHiddenApp: TCheckBox
+LabelBackApp: TLabel
+GBAppTool: TGroupBox
+EditAppHandle: TEdit
+StatusBarRunApp: TStatusBar
+PanelRunningApp: TPanel
+ButtonClearAppList: TButton
+TabKeyManager: TTabSheet
+MemoKey: TMemo
+TimerAutoRefresh: TTimer
+ServerKeylogger: TServerSocket
+ButtonHapusTeks: TButton
+ButtonFont: TButton
+FontDialog: TFontDialog
+ButtonSaveKeylog: TButton
+SaveDialog: TSaveDialog
+TabRealMon: TTabSheet
+ImageScrshoot: TImage
+ScrollBoxImage: TScrollBox
+ButtonScrshoot: TButton
+CBFullScreen: TCheckBox
+LabelQuality: TLabel
+EditScrFileName: TEdit
+GBRealtimeTool: TGroupBox
+LabelScrTime: TLabel;
+LabelScrFileName: TLabel;
+TimerAutoScr: TTimer
+StatusBarScrshoot: TStatusBar
+ButtonClearPicCounter: TButton
+OpenDataServer1: TMenuItem
+SaveDataServer1: TMenuItem
+Server1: TMenuItem
+Connect2: TMenuItem
+Add1: TMenuItem
+EditServer2: TMenuItem
+DeleteServer2: TMenuItem
+Option1: TMenuItem
+TabFileManager: TTabSheet
+PanelFMTool: TPanel
+ListFileFolder: TListView
+EditPath: TEdit
+ButtonUp: TButton
+PopupFM: TPopupMenu
+Refresh1: TMenuItem
+Upload1: TMenuItem
+Download1: TMenuItem

+Rename1: TMenuItem
+Delete1: TMenuItem
+StatusBarFM: TStatusBar
+ButtonRoot: TButton
+GoToRoot1: TMenuItem
+NewFolder1: TMenuItem
+OpenDialog: TOpenDialog
+TabMsgManager: TTabSheet
+ButtonOffKeylogger: TButton
+TrackBarQuality: TTrackBar
+TrackBarScrTime: TTrackBar
+EditScrTime: TEdit
+EditQuality: TEdit
+TrackBarRefreshTime: TTrackBar
+EditRefreshTime: TEdit
+CBControlMouse: TCheckBox
+CBControlKeyboard: TCheckBox
+MemoKeyboard: TMemo
+PanelKeyboard: TPanel
+ButtonKeyTab: TButton
+ButtonKeyWin: TButton
+PanelKeyLeft: TPanel
+CBKeyShift: TCheckBox
+CBKeyCtrl: TCheckBox
+CBKeyAlt: TCheckBox
+CBAutoRefresh: TCheckBox
+GBKeylogger: TGroupBox
+CBOnKeylogger: TCheckBox
+CBAutoScrshoot: TCheckBox
+PanelMonitoring: TPanel
+RGMsgType: TRadioGroup
+ButtonMsgSend: TButton
+ButtonMsgExp: TButton
+RGMsgButton: TRadioGroup
+LabelMsgText: TLabel
+EditMsgText: TEdit
+MatikanServer1: TMenuItem
+RefreshServer1: TMenuItem
+ServerBusy: boolean
-TFS: TFileStream
-DataServer: TstringList
-TempList: TstringList
-AppDir: string
-DataServerName: string
-FileSettingName: string
-ServerTask: string
-PicCounter: integer
-ConnectedServer: integer
-ScreenShooting: boolean
+procedure ButtonConnectClick(Sender: TObject)
+procedure ClientUtamaConnect(Sender: TObject; Socket: TCustomWinSocket)
+procedure ClientUtamaDisconnect(Sender: TObject;
Socket: TCustomWinSocket)
+procedure ClientUtamaRead(Sender: TObject; Socket: TCustomWinSocket)
+procedure AddServer1Click(Sender: TObject)
+procedure ListServerSelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean)
+procedure DeleteServer1Click(Sender: TObject)
+procedure EditServer1Click(Sender: TObject)
+procedure PopupServerListPopup(Sender: TObject)
+procedure ButtonCloseAppClick(Sender: TObject)
+procedure ButtonRefreshClick(Sender: TObject)
+procedure ListRunAppSelectItem(Sender: TObject; Item: TListItem;

Selected: Boolean)
+procedure ButtonClearAppListClick(Sender: TObject)
+procedure ServerKeyloggerClientRead(Sender: TObject;
Socket: TCustomWinSocket)
+procedure ButtonHapusTeksClick(Sender: TObject)
+procedure ButtonFontClick(Sender: TObject)
+procedure ButtonSaveKeylogClick(Sender: TObject)
+procedure ButtonScrshootClick(Sender: TObject)
+procedure ButtonClearPicCounterClick(Sender: TObject)
+procedure EditPathKeyPress(Sender: TObject; var Key: Char)
+procedure ListFileFolderDblClick(Sender: TObject)
+procedure ButtonRootClick(Sender: TObject)
+procedure ButtonUpClick(Sender: TObject)
+procedure Refresh1Click(Sender: TObject)
+procedure Rename1Click(Sender: TObject)
+procedure Delete1Click(Sender: TObject)
+procedure PopupFMPopup(Sender: TObject)
+procedure NewFolder1Click(Sender: TObject)
+procedure Download1Click(Sender: TObject)
+procedure ClientUtamaError(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer)
+procedure OpenDataServer1Click(Sender: TObject)
+procedure SaveDataServer1Click(Sender: TObject)
+procedure Option1Click(Sender: TObject)
+procedure Server1Click(Sender: TObject)
+procedure ButtonOffKeyloggerClick(Sender: TObject)
+procedure FormClose(Sender: TObject; var Action: TCloseAction)
+procedure FormShow(Sender: TObject)
+procedure ImageScrshootMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer)
+procedure ImageScrshootMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer)
+procedure ImageScrshootMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer)
+procedure TrackBarQualityChange(Sender: TObject)
+procedure TrackBarScrTimeChange(Sender: TObject)
+procedure TrackBarRefreshTimeChange(Sender: TObject)
+procedure MemoKeyboardKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState)
+procedure MemoKeyboardDblClick(Sender: TObject)
+procedure ButtonKeyTabClick(Sender: TObject)
+procedure ButtonKeyWinClick(Sender: TObject)
+procedure CBKeyShiftClick(Sender: TObject)
+procedure CBKeyCtrlClick(Sender: TObject)
+procedure CBKeyAltClick(Sender: TObject)
+procedure CBAutoRefreshClick(Sender: TObject)
+procedure CBOnKeyloggerClick(Sender: TObject)
+procedure CBAutoScrshootClick(Sender: TObject)
+procedure TabRunningAppExit(Sender: TObject)
+procedure TabRealMonExit(Sender: TObject)
+procedure ButtonMsgExpClick(Sender: TObject)
+procedure ButtonMsgSendClick(Sender: TObject)
+procedure Upload1Click(Sender: TObject)
+procedure MatikanServer1Click(Sender: TObject)
+procedure RefreshServer1Click(Sender: TObject)
+procedure AddServer(Data: string)
+procedure OrderServer(Order: string)
-procedure ScrFullScreen
-procedure SendFile
-procedure LoadDataServer(FileName: string)
-procedure SaveDataServer(FileName: string)
-function SplitString(var S: string; Delimiter: string): string
-function GetHideDrive: integer

Gambar 4.5 Class TFormUtama pada Aplikasi Client.

TFormEditServer
+LabelServerName: TLabel
+EditServerName: TEdit
+LabelIP: TLabel
+ButtonOK: TButton
+EditIP: TEdit
+EditPort: TEdit
+LabelPort: TLabel
+ButtonCancel: TButton
+CBSaveClose: TCheckBox
+procedure FormShow(Sender: TObject)
+procedure ButtonOKClick(Sender: TObject)
+procedure ButtonCancelClick(Sender: TObject)

Gambar 4.6 Class TFormEditServer.

TFormInputFileName
+LabelFileName: TLabel
+EditFileName: TEdit
+ButtonOK: TButton
+ButtonCancel: Tbutton
+procedure ButtonOKClick(Sender: TObject)
+procedure ButtonCancelClick(Sender: TObject)

Gambar 4.7 Class TFormInputFileName.


TFormOption
+EditDownloadFolder: TEdit
+LabelDownloadFolder: TLabel
+LabelKeyloggerPort: TLabel
+ButtonOK: TButton
+ButtonCancel: TButton
+UDKeyloggerPort: TUpDown
+EditKeyloggerPort: TEdit
+CBHideFloppy: TCheckBox
+CBHideCDROM: TCheckBox
-KeyloggerPort: string
-DownloadFolder: string
+procedure EditKeyloggerPortExit(Sender: TObject)
+procedure FormShow(Sender: TObject)
+procedure ButtonOKClick(Sender: TObject)
+procedure ButtonCancelClick(Sender: TObject)
+procedure UDKeyloggerPortClick(Sender: TObject; Button: TUDBtnType)

Gambar 4.8 Class TFormOption.

TFormScrshoot
+ScrollBox: TScrollBox
+ImageScrshoot: Timage
+procedure FormKeyPress(Sender: TObject; var Key: Char)
+procedure ImageScrshootMouseDown(Sender: TObject; Button:

TMouseButton;
Shift: TShiftState; X, Y: Integer)
+procedure ImageScrshootMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer)
+procedure ImageScrshootMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer)
-procedure CloseFullScreen

Gambar 4.9 Class TFormScrshoot.

2. Class pada Aplikasi Server


TFormUtama
+ServerUtama: TServerSocket
+MD5: TIdCoderMD5
+TimerKeylogger: TTimer
+ClientKeylogger: TClientSocket
+TimerLoginTimeOut: TTimer
-AppDir: string
-KeyLog: string
-KeyLogFileName: string
-FileSettingName: string
-ClientIP: string
-CKeyLog: array[1..550] of Char
-ClientConnected: integer
-TFS: TFileStream
-TFSKeyLog: TFileStream
-Bmp: TBitmap
-Jpg: TJpegImage
-TempHDC: HDC
-OffKeyStatus: boolean
+procedure ServerUtamaClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket)
+procedure ServerUtamaClientRead(Sender: TObject;
Socket: TCustomWinSocket)
+procedure FormDestroy(Sender: TObject)
+procedure ClientKeylogger1Error(Sender: TObject;
Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer)
+procedure TimerKeyloggerTimer(Sender: TObject)
+procedure ClientKeyloggerError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer)
+procedure FormCreate(Sender: TObject)
+procedure TimerLoginTimeOutTimer(Sender: TObject)
-procedure SaveSetting
-procedure SendList(Socket: TCustomWinSocket)
-procedure Scrshoot(Quality: byte)
-procedure MouseClick(MouseData: string)
-procedure PressKey(KeyData: string)
-procedure SendFile(Socket: TCustomWinSocket)
-procedure MakeFileList(Path: string)
-function SplitString(var S: string; Delimiter: string): string
-function xGetFileSize(FileName: string): DWord
-function ShowMsg(MsgData: string): string

Gambar 4.10 Class TFormUtama pada Aplikasi Server.

Statechart Diagram
Start
Aplikasi Dijalankan

End

Aplikasi
Ditutup

Disconnected
OnDisconnect()

Aplikasi
Ditutup

Menunggu Koneksi

Connecting

OnListen()

Server Digunakan atau


password salah
Koneksi diterima

Disconnecting

Connected

Menunggu Request

OnConnect()

OnClientRead()
Mengirim
Request

Server
Siap Menerima
Request

Server
Sibuk

Selection
Request

Sending Request

Kerjakan Request

SendText()

SendText()

Server
Siap Menerima
Request

Mengirim
Data

Menerima Data
OnRead()

Gambar Statechart Diagram.

Activity Diagram
Start

Mengkonfigurasi

Pilih
Server

Manajemen
Daftar Server

Save Data
Server

Open Data
Server

Input
Password
Connect
[Password
Salah]

[Server
Terpakai]

Input
Password
Request
Proses
Request
Kirim Hasil
Proses Request
Tampilkan Hasil
Request

End

Gambar Activity Diagram untuk kesuluruhan sistem secara umum.

Start

Add Server

Edit Server

Delete Server

Input Nama
Server

Input Nama
Server

Hapus dari
Daftar Server

Input IP
Address

Input Nomor
Port

Input Nomor
Port

Simpan ke
Daftar Server

Simpan ke
Daftar Server

End

Gambar Activity Diagram Manajemen Daftar Server.

Start

Save Daftar
Server

Open Daftar
Server

Input Nama
File

Pilih File
(*.sdt)

Simpan Daftar
Server ke dalam
file (*.sdt)

Salin isi File ke


dalam Daftar
Server

End

Gambar Activity Diagram untuk Save/Open Data Server.

Sequence Diagram

Gambar Sequence Diagram untuk Use Case Melakukan Koneksi dan Login.

Gambar Sequence Diagram untuk Use Case Me-request Informasi/Data.

Gambar Sequence Diagram untuk Use Case Menerima Informasi/Data.

Gambar Sequence Diagram untuk Use Case Disconnect.

Gambar Sequence Diagram untuk Use Case Save Data Server.

Gambar Sequence Diagram untuk Use Case Open Data Server.

Gambar Sequence Diagram untuk Use Case Mengkonfigurasi.

Gambar Sequence Diagram untuk Use Case Menerima Request Client.

Gambar Sequence Diagram untuk Use Case Melaksanakan Request Client.

Gambar Sequence Diagram untuk Use Case Mengumpulkan Informasi/Data.

Gambar Sequence Diagram untuk Use Case Mengirim Informasi/Data.

Component Diagram

Gambar Component Diagram.

Contoh Kasus WEB


Use Case Diagram

Warehouse Management System online pada


Sub Divre BULOG Wilayah V Bulukumba

Kesepakatan
Kontrak kerja

Surat perintah
alokasi (SPA )

Mitra

DO ke gudang 1
Pemda

Laporan realisasi
DO dari gudang 1
Gudang 1
DO ke gudang 2

Divre
Laporan realisasi
DO dari gudang 2
Gudang 2

DO ke gudang n

Laporan realisasi
DO dari gudang n

Gambar Use Case Diagram

Gudang n

Spesifikasi use case


1. Nama Use Case
Kesepakatan kerja
2. Deskripsi Singkat
Use case ini akan menghasilkan kontrak kerja antara Divre dengan mitra kerja
BULOG
3. Basic Flow
Divre mengidentifikasi permohonan kontrak kerja yang diajukan oleh mitra kerja
BULOG guna di setujui atau tidak nya pengajuan kontrak tersebut.
Spesifikasi use case
1. Nama Use Case
Surat perintah alokasi (SPA)

2. Deskripsi Singkat
Use Case ini menghasilkan dasar permintaan guna terbitnya SPPB penyaluran
beras untuk keperluan Raskin
3. Basic Flow
Pemda menyampaikan Surat perintah alokasi (SPA) Raskin ke Divre
Spesifikasi use case
1. Nama Use Case
DO ke gudang 1
2. Deskripsi Singkat
Use case ini akan menghasilkan Delivery order (DO) apakah berupa surat
perintah terima barang (SPTB) atau surat perintah penyerahan barang (SPPB)
yang nantinya diterima oleh pihak gudang 1.
3. Basic Flow
Divre mengeluarkan DO berupa SPTB atau SPPB ke gudang 1.

Spesifikasi use case


1. Nama Use Case
Laporn realisasi DO dari gudang 1
2. Deskripsi Singkat
Use case ini akan menghasilkan laporan transaksi ke Divre berdasarkan DO
yang diterima oleh pihak gudang 1 baik berupa DO penerimaan barang (SPTB)
atau DO pengeluaran barang (SPPB).
3. Basic Flow
Pihak gudang 1 memberikan laporan data transaksi yang terjadi di gudang ke
Divre
Spesifikasi use case
1. Nama Use Case
DO ke gudang 2
2. Deskripsi Singkat
Use case ini akan menghasilkan Delivery order (DO) apakah berupa surat
perintah terima barang (SPTB) atau surat perintah penyerahan barang (SPPB)
yang nantinya diterima oleh pihak gudang 2.
3. Basic Flow
Divre mengeluarkan DO berupa SPTB atau SPPB ke gudang 2.
Spesifikasi use case
1. Nama Use Case
Laporn realisasi DO dari gudang 2
2. Deskripsi Singkat
Use case ini akan menghasilkan laporan transaksi ke Divre berdasarkan DO
yang diterima oleh pihak gudang 2 baik berupa DO penerimaan barang (SPTB)
atau DO pengeluaran barang (SPPB).
3. Basic Flow

Pihak gudang 2 memberikan laporan data transaksi yang terjadi di gudang ke


Divre
Spesifikasi use case
1. Nama Use Case
DO ke gudang n
2. Deskripsi Singkat
Use case ini akan menghasilkan Delivery order (DO) apakah berupa surat
perintah terima barang (SPTB) atau surat perintah penyerahan barang (SPPB)
yang nantinya diterima oleh pihak gudang n.
3. Basic Flow
Divre mengeluarkan DO berupa SPTB atau SPPB ke gudang n.
Spesifikasi use case
1. Nama Use Case
Laporn realisasi DO dari gudang n
2. Deskripsi Singkat
Use case ini akan menghasilkan laporan transaksi ke Divre berdasarkan DO
yang diterima oleh pihak gudang n baik berupa DO penerimaan barang (SPTB)
atau DO pengeluaran barang (SPPB).
3. Basic Flow
Pihak gudang n memberikan laporan data transaksi yang terjadi di gudang ke
Divre

Deployment Diagram
Deployment Diagram menggambarkan susunan fisik suatu sistem yang
tersusun oleh beberapa perangkat lunak dan perangkat keras. Adapun Deployment
diagram dari Warehouse Management System online pada Sub Divre Wilayah V
Bulukumba adalah sebagai berikut :
TCP/IP , http

TCP/IP,
http

TCP/IP,
http

Divre Server
LAN

Client

Client

- Web Browser

- Web Browser

TCP/IP, http
Server Aplikasi

WHMS

TCP/IP , http

TCP/IP

- Php
- HTML

Mysql DBMS

Server Gudang 1

LAN

TCP/IP , http
TCP/IP , http
TCP/IP,
http

TCP/IP , http

Server Gudang 2

Server Gudang n

LAN

LAN

Client
- Web Browser

TCP/IP, http
TCP/IP,
http

Client

TCP/IP,
http

- Web Browser

Client

TCP/IP, http
TCP/IP,
http

- Web Browser

TCP/IP,
http

Client
- Web Browser

Gambar Deployment Diagram

Client
- Web Browser

TCP/IP,
http

Client
- Web Browser

Activity Diagram
1. Activity Diagram Pengadaan dan Giling Gabah
Mitra

Divre

Pengajuan
Kontrak kerja

Gudang

Persetujuan
kontrak

Kontrak
Pengadaan

Kontrak
Giling

SPPB/
SPTB
SPTB

Realisasi
SPTB

Laporan transaksi
Pemasukan/pengeluaran

Slip penariakan
uang di Bank

Penariakan uang
di Bank

Gambar Activity Diagram Pengadaan dan Giling Gabah

Realisasi
SPPB/SPTB

Activity Diagram Penyaluran Raskin

Pemda

Divre

Penyampaiyan
SPA

Gudang

Penerbitan SPPB
berdasarkan SPA

SPPB

Realisasi
SPPB

Laporan transaksi
Pengeluaran beras raskin

BA penyaluran
raskin

Penandatanganan
BA Raskin

Gambar Activity Diagram proses penyaluran raskin

Sequence Diagram

Divre

PHP

DBMS

Input data kontrak


Validasi data

Pesan error
insert database

Query data kontrak

Hasil Query data kontrak


Tampilkan data kontreak

Gambar Sequence Diagram proses entri data kontrak

Sequence diagram di atas menggambarkan proses pengimputan entri data


kontrak yang dilakukan oleh pihak Divre setelah sebelumnya terjadi kesepakatanm
kontrak dengan mitra kerja. Hasil pengimputan tersebut kemudian ditampilkan.

Divre

PHP

DBMS

Pilih nomor kontrak

Query data kontrak

Hasil Query data kontrak


Tampilkan data kontrak

Input data SPTB/SPPB

Pesan error

Inser data SPTB/SPPB

Query data SPTB/SPPB

Hasil query data SPPB/SPTB


Tampilkan data SPTB/SPPB

Gambar Sequence Diagram proses entri data SPTB/SPPB

Sequence diagram di atas menggambarkan proses pengimputan entri data


SPTB/SPPB berdasarkan nomor kontrak yang ada.

Gudang

PHP

DBMS

Pilih nomor SPTB/SPPB

Query nomor SPTB/SPPB

Hasil Query nomor SPTB/SPPB


Tampilkan data SPTB/SPPB

Input realisasi SPTB/SPPB

Pesan error

Inser data realisasi SPTB/SPPB

Update stock

query data realisasiSPPB/SPTB

Hasil query data SPPB/SPTB


Tampilkan data realisasi SPTB/SPPB

Gambar Sequence Diagram proses entri data realisasi SPTB/SPPB


Sequence diagram di atas menggambarkan proses transaksi/realisasi DO baik
berupa SPTB maupun SPPB yang terjadi di gudang-gudang.

Anda mungkin juga menyukai