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 <>
Scheduler
Check Patient Record
Patient
<> 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 : -privateAtribut : #protectedAtribut : +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
<> 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.