BAB 3 ANALISA dan PERANCANGAN 3.1. Analisa 3.1.1 Analisa...
Transcript of BAB 3 ANALISA dan PERANCANGAN 3.1. Analisa 3.1.1 Analisa...
BAB 3
ANALISA dan PERANCANGAN
3.1. Analisa
3.1.1 Analisa Kebutuhan
Riwayat Perusahaan PT. Andal Software Sejahtera
PT.Andal Software Sejahtera, berdiri pada tahun 1988, dimulai dengan nama
PT. Graha Cendekia Inforindo yang kemudian pada tahun 1999 berubah menjadi nama
di atas. Dimulai sebagai perusahaan software house. Software yang dibuat berdasarkan
pesanan sesuai dengan kebutuhan pelanggan. Pada tahun 1990 PT. GrahaCendekia
Inforindo mulai memperluas bidang yang digeluti dengan menambah divisi hardware,
yang bergerak di bidang penjualan hardware dan pemasangan jaringan komputer.
Dengan meningkatnya permintaan software terutama manufaktur dan distribusi
untuk skala besar, maka pada tahun 1996 ANDAL SOFTWARE mengageni MACOLA
paket software dari Amerika yang khusus untuk distribusi dan manufaktur. Sehingga
sekarang ini PT. Graha Cendekia Inforindo mempunyai 3 divisi, yakni Hardware,
Macola, dan Software yang sekarang sering disebut dengan ANDAL Software.
Pada tahun 1996, PT. GrahaCendekia Inforindo ditunjuk oleh Microsoft,
sebagai Microsoft Solution Provider, dan pada tahun 1997 ditunjuk sebagai Microsoft
Solution Developer. Sebagai Microsoft Solution Developer, Andal Software banyak
mendapatkan teknologi pengembangan software yang mutakhir yang dapat
diterjemahkan untuk memberikan solusi bisnis pada dunia usaha. Pada saat launching
MS-SQL Server 7.0 yang baru, Andal Software diberikan kesempatan untuk
42
43
mendemonstrasikan produk terbaru yang menggunakan MS-SQL Server, yaitu
KHARISMA-WIN ( Payroll & HRD System ) serta Tenancy Billing System ( paket
accounting lengkap untuk billing penyewaan gedung/property ). Pada launching MS-
Office 2000 bulan Juli yang lalu di JHCC, Andal Software ditunjuk untuk mengisi
acara Knowledge Management dan mengadakan presentasi software untuk retail
menggunakan fasilitas dari MS-Outlook 2000 ( Digital Dashboard ). Bulan Agustus
yang lalu kembali Andal Software ditunjuk Microsoft Indonesia sebagai Knowledge
Management Partner dan diberikan kesempatan beberapa kali untuk melakukan
presentasi mengenai konsep DNS ( Digital Nervous System ).
Selama kurang lebih delapan tahun masa usianya, atas dasar semakin
meningkatnya kebutuhan perusahaan – perusahaan akan suatu teknologi yang dapat
mendukung dan meningkatkan kinerja perusahaan. Andal Software telah berhasil
menciptakan berbagai macam produk software yang dibagi menjadi dua kategori, yaitu:
• Andal Mash
Adapun berbagai produk Andal Mash telah dipasarkan melalui beberapa
jaringan distribusi, seperti toko buku. Salah satu andalannya adalah
Andal Merchant yang terdiri dari Andal Post, Andal Trait, dan Andal
GL, yang secara keseluruhan memiliki kemampuan sejenis seperti
keluaran Microsoft, dikenal dengan Microsoft Office (Ms. Office).
Produk lain yang juga dibuat oleh Andal Software, antara lain : Presisi
ver2.5 (digunakan untuk membuat laporan keuangan perusahaan jasa,
dagang, dan manufaktur), Andal FAT ver1.0 (membantu mempermudah
pemantauan harta tetap), Andal POS ver1.5 (membantu mengontrol
44
keluar masuknya stok barang), SIAP ver3.0 (membantu sistem kasir,
penerimaan resep dan bagian gudang untuk apotik), SAISS ver1.5
(menyediakan modul POS untuk penjualan aksesoris, penerimaan
service, dan gudang spare-part, Resto ver1.0 (pengolaan sistem untuk
rumah makan dengan pelayanan yang cepat) dan sebagainya.
• Andal Enterprise
Sedangkan produk Andal Kharisma yang termasuk kategori Andal
Enterprise dipasarkan melalui rekan bisnis(Business Partner) yang
dimiliki oleh Andal Software. Dan sebagian besar dari rekan bisnis itu
adalah perusahaan-perusahaan yang memesan produk software kepada
Andal Software, atau Software House – Software House lainnya.
Pengelompokan pemesanan software berdasarkan jumlah pengguna
terbagi menjadi tiga versi: Trial (10 pengguna), Lite (25 pengguna), dan
Professional (100 pengguna). Salah satu produk Andal Kharisma adalah
Andal Kharisma Win ver1.5 yang merupakan pengembangan dari
produk Konsultan PPh ditambah dengan modul SDM, sangat berguna
untuk membuat rencana sumber daya manusia dengan susunan
organisasi dan jabatan yang dimilikinya.
Beberapa permasalahan yang terkadang dihadapi oleh Andal Software adalah
keharusan untuk melakukan data migration dari software lama yang digunakan suatu
perusahaan ke dalam software buatan Andal Software, apabila kedua software itu
masih memiliki beberapa kemampuan yang berbeda, belum mengeluarkan produk yang
berbasiskan web-application, dan belum memiliki license management untuk produk
yang berbasiskan web-application.
45
Namun untuk melindungi produk-produknya dari pembajakan atau penggunaan
software yang tidak memiliki lisensi, Andal Software sudah memiliki license
management yang masih digunakan sampai saat ini. Andal Software melakukan
pengaturan atas lisensi untuk softwarenya berdasarkan pada komponen desktop-
application, antara lain: nomor seri prosesor yang digunakan, nomor seri harddisk yang
digunakan, dan lain-lain. Selama komponen-komponen tersebut tidak ada yang diubah
atau diganti, maka aplikasi dari produk software akan tetap bisa berjalan.
Didalam paket produk software yang dikeluarkan, Andal Software selalu
mencantumkan nomor registrasi dan sebuah urutan nomor sebagai kunci. Keduanya
harus dikonfirmasikan kepada Andal Software,yang kemudian kedua nomor itu akan
disimpan dan dienkripsi dengan algoritma tertentu dan menghasilkan sebuah urutan
nomor baru, dan nomor baru itulah yang dimasukkan pada waktu menginstall aplikasi
sebagai password atau nomor seri (serial number), seperti yang biasa dilakukan dalam
menginstall sebuah software.
3.1.2 Usulan Pemenuhan Kebutuhan
Berdasarkan pada beberapa permasalahan yang dimiliki oleh PT.Andal
Software, akan dirancang sebuah license management yang menggunakan algoritma
Rijndael dalam proses enkripsi dan dekripsi untuk produk software berdasarkan web-
application yang sedang direncanakan untuk diproduksi dalam masa mendatang,
khususnya berjalan dalam jaringan (network) yang memiliki server dan client.
Berikut ini merupakan penjelasan lebih lanjut dari license management yang
akan dirancang :
46
1. Program yang dihasilkan berbasiskan bahasa pemrograman Java dapat
dijalankan di mesin dan sistem operasi apapun asalkan sistem operasi tersebut
memiliki Java2 Runtime Environment.
2. Program dalam Bahasa Java mendukung pemrograman jaringan, sehingga dapat
dirancang program yang dapat berjalan di jaringan (networking), dan dapat
membentuk class sendiri, sehingga untuk seterusnya juga dapat digunakan di
program lain.
3. Program dirancang untuk dapat mengatur lisensi, hak akses dan otoritas dari
aplikasi yang berjalan pada jaringan.
4. Program dirancang dengan menggunakan konsep teknologi client/server,
dimana server berfungsi untuk mengatur lisensi, hak akses, dan otoritas dari
client.
5. Program dirancang dengan menggunakan protokol TCP karena dianggap
reliable dan mendukung pengiriman data yang lebih aman dan akurat.
6. License key yang didistribusikan oleh server kepada client akan dienkripsi
dengan menggunakan algoritma Rijndael, sehingga keamanan distribusi akan
semakin terjamin.
3.2 Perancangan
Dalam subbab ini akan ditampilkan beberapa rancangan yang akan kami buat di
dalam program kami.
47
3.2.1 Rancangan Layar
3.2.1.1 Rancangan Layar Utama program pada server
Gambar 3.1 Rancangan Layar Utama program pada server
Layar Menu utama merupakan layar utama dari aplikasi Network License
Server. Pada layar ini terdapat menu-menu yang dapat dipilih dengan penekanan
tombol oleh user. Untuk tampilan, dapat dilihat secara rinci sebagai berikut :
Tabel 3.1 Rincian Menu
Menu List
Show Log File
Exit
Distribute License Key
Delete From List
Actions
Clear Mapping List
Documentation Help
About
48
• Untuk melihat tampilan Layar Log yang berisi tanggal dan waktu dari
perlakuan yang dipilih terakhir, pilih menu ’File’ dan submenu ’Show
Log’ ataupun meng-klik pada ikon yang berada di sebelah kiri.
Misalnya: tanggal dan waktu pendistribusian license key atau
penghapusan license key.
• Untuk keluar dari aplikasi, dapat dilakukan pemilihan menu ‘File’ dan
submenu ’Exit’ atau dengan meng-klik pada tanda silang disebelah
kanan atas.
• Untuk mendistribusikan license key dari server kepada client yang telah
dipetakan ke dalam mapping list, pilih menu ’Actions’ dan submenu
‘Distribute License Key’.
• Sedangkan submenu ‘Delete From List’ dari menu ‘Actions’ digunakan
untuk menghapus client tertentu yang telah dipetakan dengan license key
pada tabel license key mapping list.
• User dapat memilih menu ‘Actions’ dan submenu ‘Clear Mapping List’
untuk menghapus client yang sudah dipetakan.
• Dari menu ‘Help’ submenu ‘Documentation’ ataupun meng-klik pada
ikon yang berada disebelah kanan, user dapat melihat Layar
Dokumentasi yang berisi petunjuk penggunaan Network License Server.
• Informasi tentang aplikasi ini dapat dilihat pada submenu ‘About’ dalam
menu ‘Help’.
49
3.2.1.2 Rancangan Layar Dokumentasi
Gambar 3.2 Rancangan Layar Dokumentasi
Pada layar Dokumentasi, terdapat petunjuk penggunaan dari Network License
Server yang dapat dibaca dan digunakan sebagai acuan untuk user atau admin. Jika
ingin menutup layar Dokumentasi ini, dapat meng-klik tanda silang yang berada
disebelah kanan atas, atau meng-klik pada button ‘Close’.
3.2.1.3 Rancangan Layar Confirmation Distribution License Key
Gambar 3.3 Rancangan Layar Confirmation Distribution License Key
50
Layar ini berisi konfirmasi mengenai distribusi license key kepada client yang
telah dilakukan, selain itu dapat dilihat juga jumlah license key yang masih tersisa yang
dapat didistribusikan.
3.2.1.4 Rancangan Layar Log
Layar ini merupakan layar yang menampilkan catatan waktu, client dan aksi
yang dilakukan oleh user terhadap license key.
Gambar 3.4 Rancangan Layar Log
Pada Layar ini terdapat dua button, yaitu button ‘Clear Log’ untuk menghapus
keseluruhan data log, dan button ‘Close’ untuk keluar dari Layar Log.
Adapun log (catatan) tersebut akan ditulis dan dibaca dari sebuah file (operasi file).
51
3.2.1.5 Rancangan Layar Confirmation Delete
Confirm Delete Mapping From List(s) X
Yes
Are You Sure to delete this record(s) from the list?
No
Gambar 3.5 Rancangan Layar Message Box Confirmation Delete
Layar ini menampilkan konfirmasi dari penghapusan catatan atas hasil
pemetaan antara client dan license key. Operasi ini juga akan menambah jumlah license
key tersedia, karena license key yang telah terpakai ditarik kembali.
Button ‘Yes’ digunakan untuk menghapus dan button ‘No’ digunakan untuk
membatalkan penghapusan.
3.2.1.6 Rancangan Layar menu About
Gambar 3.6 Rancangan Layar About
52
Layar ini akan menampilkan informasi pembuat dari program Network License
Server yang berisi tentang tahun pembuatan program, versi pembuatan program, dan
alamat atau data lain yang dapat dihubungi untuk mendapatkan informasi lebih lanjut
mengenai program langsung dari pembuatnya.
53
3.2.2 Rancangan Diagram
Dalam subbab ini, akan dijelaskan beberapa diagram yang dibutuhkan di dalam
skripsi kami.
3.2.2.1 Class diagram
+membeli_program()+menjalankan_program()
-nama-ID_karyawan-email-jabatan-jenis_kelamin
user
+menginstal_program_dikomputer_server()+memberikan_ID_produk()+memasukan_key_dari perusahan()+menjalankan_program_server()+menginstal_program_dikomputer_klien()+Memasukkan_Alamat_IP_komputer_server()
administrator
+bekerja()+mengoperasikan_aplikasi()
karyawan
+membuat_program()+menjual_program()+memberikan_regristration_key()+meminta_registration_key()
-Nama_perusahaan-alamat-email
perusahan
+melihat_kunci_yang_tersedia()+memberikan_registration_key_ke user()+mengecek_alamat _IP_dan_kunci_database()+mencatat_alamat_IP_dan_kunci()+mengecek_alamat _IP_klien_yang_sedang_aktif()
-alamat_IP-produk_ID
komputer server
+mengirimkan_alamat_IP()+menyimpan_lisence_key()+mengirimkan_IP_dan_kunci()+menginformasikan_hak_akses()+Mengirimkan_alamat_IP_komputer_server()
-alamat_IPkomputer klien
+mengecek_persediaan_kunci()+memberikan_kunci()
-kunci-kunci_yang _terenkripsidatabase server
+mengecek_persedian_kunci()+memberikan_kunci()
-kunci-kunci_yang_terenkripsidatabase perusahaan
* *
*
*
*
*
*
*
*
*
*
*
Gambar 3.7 Rancangan Class Diagram
54
1. Perusahaan : - Atribut : 1. Nama Perusahaan
2. Alamat
3. Email
- Method : 1. Membuat program
2. Menjual program
3. Memberikan registration key
4. Meminta registration key
2. Database Perusahaan : - Atribut : 1. Kunci-kunci yang terenkripsi
- Method : 1. Mengecek persediaan kunci
2. Memberikan kunci
3. User : - Atribut : 1. Nama
2. ID karyawan
3. Email
4. Jabatan
5. Jenis Kelamin
- Method : 1. Membeli program
2. Menjalankan program
4. Administrator : - Method : 1. Menginstal program dikomputer server
2. Memberikan ID produk
3. Memasukkan registration key
4. Menjalankan program server
5. Menginstal program dikomputer client
6. Memasukkan alamat IP komputer
server
55
5. Karyawan : - Method : 1. Bekerja
2. Mengoperasikan aplikasi
6. Komputer server : - Atribute : 1. Alamat IP
2. Produk ID
- Method : 1. Melihat kunci yang tersedia
2. Memberikan registration key ke user
3. Mengecek alamat IP dan kunci di
database
4. Mencatat alamat IP dan kunci
5. Mengecek alamat IP client yang aktif
7. Komputer client : - Atribute : 1. Alamat IP
- Method : 1. Mengirimkan alamat IP
2. Menyimpan lisence key
3. Mengirimkan alamat IP dan kunci
4. Menginformasikan hak akses
5. Mengirimkan alamat IP komputer
server
8. Database Server : - Atribute : 1. Kunci-kunci yang terenkripsi
- Method : 1. Mengecek persediaan kunci
2. Memberikan kunci
56
3.2.2.2 State diagram
komputer klien
/ dirancang
/ rusak
/ digunakan
Gambar 3.8 Rancangan State Diagram Komputer Client
Komputer pertama-tama dirancang atau dirangkai, setelah itu dapat digunakan.
Pada gambar statechart diatas komputer digunakan sebagai komputer client, komputer
akan berakhir masa operasinya pada saat komputer tersebut rusak.
komputer server
/ dirancang
/ rusak
/ digunakan
Gambar 3.9 Rancangan State Diagram Komputer Server
Pada gambar statechart ini sama halnya dengan statechart komputer client, yang
membedakannya adalah komputer tersebut digunakan sebagai komputer server.
57
Gambar 3.10 Rancangan State Diagram Perusahaan
Gambar diatas menjelaskan pertama kali sebuah perusahaan didirikan terlebih
dahulu, setelah itu didalam prosesnya perusahaan akan merekrut dan memecat
karyawan, membeli, membuat, dan menjualkan produk programnya. Sebuah
perusahaan akan mencapai titik akhirnya ketika perusahaan tersebut bangkrut atau tidak
ada yang penerus yang dapat memimpin perusahaan tersebut.
aktif
/ melamar pekerjaan
/ bekerja/ terima gaji
/ mengundurkan diri,dipecat,pensiun,meninggal
Gambar 3.11 Rancangan State Diagram User
58
Pertama-tama user melamar pekerjaan terlebih dahulu, setelah diterima user
menjadi bekerja secara aktif. User akan bekerja dan menerima gaji, hingga pada
akhirnya user berhenti bekerja dikarenakan beberapa hal yaitu: mengundurkan diri,
dipecat, pensiun atau meninggal dunia.
karyawan
/ melamar pekerjaan
/ mengundurkan diri,pensiun,dipecat,meniggal
/ terima gaji/ bekerja
Gambar 3.12 Rancangan State Diagram Karyawan
Gambar diatas ini sama dengan gambar statechart user diatas. Yang
membedakannya adalah pada statechart ini user hanya berstatus sebagai karyawan
biasa.
admin
/ melamar pekerjaan
/ meniggal,mengundurkan diri,dipecat,pensiun
/ terima gaji/ bekerja
Gambar 3.13 Rancangan State Diagram Administrator
59
Gambar diatas ini sama dengan gambar statechart user diatas. Yang
membedakannya adalah pada statechart ini user berstatus sebagai administrator.
3.2.2.3 Use Case diagram
Gambar 3.14 Rancangan UseCase Diagram
Use case adalah perancangan yang menjelaskan secara garis besar aktivitas
yang terjadi antara user dengan program.
Gambar diatas menjelaskan, seorang administrator dapat membeli program,
menginstal program dikomputer server, menginstal program dikomputer client dan
menjalankan program, sedangkan karyawan hanya dapat menjalankan program saja.
60
3.2.2.4 Sequence diagram
administrator
komputer server
menginstal program komputer server()
perusahaan
memberikan produk ID()
database perusahaan
meminta registration key()
mengecek_persedian_kunci()
memasukan registration key()
memberikan kunci()memberikan registration key()
proses penginstalan selesai()
Gambar 3.15 Rancangan Sequence Diagram (Penginstalan server)
Fungsi Sequence diagram adalah untuk menjelaskan tentang aktivitas yang
terjadi antara user dan program secara rinci. Sequence ini menjelaskan tentang proses
penginstalan program pada komputer server. Pertama, administrator meminta
registration key dengan memberikan nomor produk ID kepada perusahaan, dari pihak
perusahaan mencari registration key dalam database perusahaan, didalam database
akan dicek persediaan kunci dengan mencocokkan nomor produk ID yang diberikan
dari administrator, setelah itu perusahaan memberikan registration key kepada
administrator dan kemudian memasukan registration key tersebut dan proses
penginstalan selesai.
61
Administrator
komputer klien komputer server database server
menginstal program komputer klien()
memasukkan alamat IP komputer server() mengirimkan alamat IP komputer server()
mengecek alamat IP()valid()proses penginstalan dilanjutkan()
menjalankan proses selanjutnya() meminta kunci() melihat kunci yang tersedia()
mengecek persediaan kunci()memberikan kunci()
menyimpan alamat IP komputer klien dan kunci()memberikan kunci()
menyimpan kunci()proses penginstalan selesai()
menjalankan program()
Gambar 3.16 Rancangan Sequence Diagram (Penginstalan Client)
Pada gambar diatas ini menjelaskan seorang administrator menginstal program
dikomputer client, pada saat penginstalan berlangsung, program meminta memasukkan
alamat IP server, agar antara komputer client dan komputer server bisa terhubung
dalam satu jaringan yang sama. Jika sudah cocok, maka proses penginstalan masuk
pada tahap yang ke-2, disini komputer client akan meminta kunci ke komputer server,
dari komputer server akan melihat database server untuk persediaan kunci, di dalam
database server akan dicek apakah persediaan kunci masih ada atau tidak. Jika masih
ada, maka database akan memberikan kunci itu ke komputer server, setelah itu alamat
IP dan kunci client yang menerima kunci itu akan dicatat dikomputer server dan baru
diberikan kepada komputer client, setelah sampai pada tahap ini proses penginstalan
selesai dilakukan, administrator dapat menjalankan programnya.
62
Karyawan komputer klien database serverkomputer server
menjalankan program() mengirimkan alamat IP dan kunci() mengecek alamat IP dan kunci()
cek ip dan kunci()valid()izin akses diterima()program dapat dijalankan()
program dijalankan()
Gambar 3.17 Rancangan Sequence Diagram (Aplikasi Client)
Pada saat karyawan menjalankan program dikomputer client, akan dicek
terlebih dahulu oleh komputer server dengan cara mendeteksi alamat IP beserta kunci
pada komputer client yang akan menjalankan program dan mencocokkannya didalam
database server yang mencatat alamat IP dan kunci-kunci, jika tidak cocok maka
aplikasi pada komputer client tersebut tidak dapat dijalankan, jika cocok maka program
dapat dijalankan, dan proses ini akan terjadi setiap program akan dijalankan.
63
3.2.2.5 Collaboration diagram
Administrator
komputer server
perusahaandatabase perusahaan
1. menginstal program komputer server()7. memasukkan registration key()8. proses penginstalan selesai()
2. memberikan nomor produk ID()
6. memberikan registration key()
3. meminta registration key()5. memberikan kunci()
4. mengecek persediaan kunci()
}
Gambar 3.18 Rancangan Collaboration Diagram (pada server)
64
Gambar 3.19 Rancangan Collaboration Diagram (pada Client)
65
Karyawan
komputer klien
komputer serverDatabase server
1. menjalankan program()7. program dapat dijalankan()
8. program dijalankan()
2. m
engi
rimka
n al
amat
IP d
an k
unci
()6.
izin
aks
es d
iterim
a()
3. mengecek alamat IP dan kunci()5. valid()
4. cek IP dan kunci()
Gambar 3.20 Rancangan Collaboration Diagram (aplikasi pada Client)
3.3 Pseudocode (kode semu)
CLASS MainFrame attribute : private : Create objects that used in frame : button, tree, menu, table, panel and label Set client array Max Client *) from class ConnectedClient Set have_license_key, not_have_license_key Set count penghitung penggunaan key Set table_client, table_mapping Set license_key_mapping_list matrix Max Client x Max Client Connected method : readFile pecahstring addClientList addMappingList
66
encrypt distributeLicenseKey deleteLicenseKey
writeLog END CLASS Method-method pada class MainFrame dijelaskan sebagai berikut: MODULE readFile Set FileReader buka file maplist Set BufferedReader pembaca isi file round 0 DO WHILE true
Set string_baca = read IF string_baca = NULL THEN break keluar dari perulangan END IF SET string_data array 4 SET object_list array 5 string_data = pecahstring (string_baca) memecah string dataBaca CALL pecahString(bd); roundK 0 DO WHILE roundK < 4 object_list [roundK] string_data [roundK] INC roundK END DO object_list [4] (boolean) false license_key_mapping_list [rount] object_list INC round INC id END DO END MODULE MODULE pecahstring (input) SET string_data array 4 i 0 j 0 DO WHILE i < panjang input IF input.charAt(i) = ‘|’ THEN INC j continue ELSE IF input.charAt(i) = ‘#’ THEN break keluar dari perulangan ELSE
67
string_data string_data + input.charAt (i) END IF INC i END DO RETURN string_data END MODULE MODULE addClientList Set license_key_c get license key from client Set client_ip_address get client’s ip address IF have_license_key THEN round 0 DO WHILE round < panjang license_key_mapping_list IF license_key_c = license_key_mapping_list[round] THEN IF client_ip_address = license_key_mapping_list[round][1] client.write (true) kirim nilai true ke client
table_mapping.addRow tambahkan row pada table mapping
break keluar perulangan ELSE client.write (false) kirim nilai false ke client break keluar perulangan END IF END IF IF license_key_mapping_list = null THEN break keluar perulangan END IF INC round END DO ELSE IF not_have_license_key THEN CALL table_client.addRow tambahkan row pada table_client END IF END MODULE MODULE addMappingList i 0 SET row_count get table_client row count DO WHILE i < row_count flag get selected status of table_client row num get client number IF flag THEN IF count < Max Client THEN SET string_plain get license key from repositori SET cipher_text encrypt (string_plain) SET data_client array 5 data_client [0] i+1 data_client [1] client[num] ip address
68
data_client [2] cipher_text data_client [3] client[num] id data_client [4] (boolean) false CALL table_mapping.addRow (data_client) CALL table_client.removeRow(i) INC count penambahan penggunaan key ELSE MsgBox “License Key Not Available” END IF END IF INC i END DO END MODULE MODULE encrypt (plaintext) SET byte_ct array 24 SET byte_key “abcdefghijklmnop” SET object_key Rijndael.makeKey(byte_key, 24) *192 bit key byte_ct = Rijndael.blockEncrypt(plaintext,0,object_key,24) return ct; END MODULE MODULE distributeLicenseKey i 0 row_count table_mapping.getRowCount DO WHILE i < row_count SET flag get selected status value on table_mapping SET num get client number SET license_key get license key from mapping list IF flag THEN client[num].write(license_key) send encrpyted license key to client CALL writeLog(1,client[num] ip address) END IF INC i END DO END MODULE MODULE deleteLicenseKey i 0 row_count table_mapping.getRowCount DO WHILE i < row_count SET flag get selected value on table_mapping SET row table_mapping.getRow IF flag THEN DEC count decreement penggunaan key CALL table_mapping.removeRow(row)
69
remove mapping list write_log (2 , client[num] ip address) END IF INC i END DO END MODULE MODULE writeLog (action, ip address) SET fw FileWriter untuk buka file SET bw untuk tulis ke file SET tgl tanggal sekarang SET jam jam sekarang SET string_msg SELECT CASE action CASE 1 string_msg tgl + bln + “Distribute” + ip address CALL bw.append(string_msg) CASE 2 string_msg tgl + bln + “Delete” + ip address CALL bw.append(string_msg)
END SELECT CALL fw.close
END MODULE CLASS ConnectedClient attribute : private : Set client_number, hostname, ip_address, key Set data array 5 public : Set input DataInputStream Set output DataOutputStream method : public: getData getIPaddress getKey getClientNumber END CLASS
70
Method-method pada class MainFrame dijelaskan sebagai berikut: MODULE getData return data END MODULE MODULE getIPaddress return ip_address END MODULE MODULE getKey return key END MODULE MODULE getClientNumber return client_number END MODULE
71
CLASS Log attribute: private: Create Object use in Frame : Button, Panel, ScrollPane, TextArea Set fr FileReader Set fw FileWriter Set br BufferedReader (fr) Set bw BufferedWriter (fw) method private: showLog clearLog END CLASS Method-method pada class MainFrame dijelaskan sebagai berikut: MODULE showLog SET string_reader DO WHILE true SET string_tmp CALL br.readLine() membaca tiap baris IF string_tmp = NULL THEN break keluar dari perulangan END IF string_reader string_reader + string_tmp string_reader ‘\n’ : new line END DO SET TextArea string_reader CALL fr.close tutup file END MODULE MODULE clearLog CALL bw.write(“ “) CALL bw.flush(); CALL fw.close() tutup file TextArea “ “ END MODULE
CLASS Documentation attribute: private: Create Objects use in Frame : Button, panel, ScrollPane, TextArea SET string_text method: private: readDocumentation END CLASS Method-method pada class MainFrame dijelaskan sebagai berikut: MODULE readDocumentation SET fr FileReader SET br BufferedReader(fr) DO WHILE true SET string_tmp CALL br.readLine IF string_tmp = null THEN break keluar dari perulangan END IF string_text string_text + string_tmp string_text ‘\n’ : new line END DO TextArea string_text END MODULE
72