IV-1
BAB IV
ANALISIS DAN PERANCANGAN PERANGKAT LUNAK
Pada bab ini, akan dibahas mengenai proses analisis dan perancangan dari perangkat lunak simulasi yang akan dibangun. Pada bagian awal, akan dijelaskan deskripsi umum, kebutuhan perangkat lunak, dan use case dari perangkat lunak simulasi. Pada bagian analisis, akan dibahas mengenai pemodelan masalah dengan berbasiskan use case pada bagian sebelumnya, sedangkan tahap perancangan membahas pemodelan solusi dari masalah yang dijelaskan pada bagian analisis.
IV.1 Deskripsi Umum Perangkat Lunak
Perangkat lunak yang dibangun merupakan suatu simulasi SMS-Banking berdasarkan protokol SMS-Banking yang sudah dirancang sebelumnya. Seluruh tahapan pada fase aktivasi dan fase transaksi pada protokol SMS-Banking yang harus dapat dijalankan pada perangkat lunak ini. Nama perangkat lunak tersebut adalah HIPRO SMS.
Secara umum HIPRO SMS terdiri atas dua bagian utama yaitu: 1. Klien
Bagian ini merupakan aplikasi yang berjalan di atas telepon seluler pengguna. Tugas dari bagian ini adalah menjalankan protokol baik untuk fase aktivasi maupun fase transaksi pada bagian klien serta menyediakan antarmuka yang dibutuhkan oleh nasabah untuk melakukan aktivasi layanan perbankan serta melakukan layanan transaksi perbankan.
2. Server
Aplikasi yang dibangun pada bagian ini bertugas menjalankan protokol baik untuk fase aktivasi maupun fase transaksi pada bagian server. Proses otentikasi pesan SMS dan pemrosesan transaksi SMS-Banking dilakukan pada bagian ini.
HIPRO SMS akan berinteraksi dengan SMS gateway. SMS gateway bertugas untuk menerima SMS yang diterima dari klien kemudian meneruskan SMS tersebut kepada server serta mengirim SMS dari server kepada klien. SMS gateway dan server berbagi basis data khusus yang digunakan untuk mengirim serta menerima SMS. Dalam sistem ini, HIPRO SMS diasumsikan dapat mengirim serta menerima pesan SMS melalui suatu koneksi basis data. Mekanisme bagaimana SMS diterima dan dikirim oleh SMS gateway tidak dibahas karena SMS gateway berada di luar sistem HIPRO SMS. Arsitektur HIPRO SMS dapat dilihat pada Gambar IV-1.
Gambar IV-1 Arsitektur perangkat lunak simulasi protokol SMS-Banking
IV.2 Analisis Kebutuhan Perangkat Lunak
Pada subbab ini, akan dibahas fitur utama perangkat lunak yang meliputi kebutuhan fungsional dan non-fungsional.
IV.2.1. Kebutuhan Fungsional
Kebutuhan-kebutuhan fungsional dari perangkat lunak dapat dilihat pada Tabel IV-1.
Tabel IV-1 Kebutuhan fungsional perangkat lunak
No Kebutuhan Deskripsi
1 Menjalankan fase
aktivasi
Server dan klien dapat menjalankan keseluruhan tahapan protokol pada fase aktivasi sesuai dengan protokol SMS-Banking yang dirancang.
2 Menjalankan fase
transaksi
Server dan klien dapat menjalankan keseluruhan tahapan protokol pada fase transaksi sesuai dengan protokol SMS-Banking yang dirancang.
3 Menyediakan
antarmuka bagi klien untuk transaksi perbankan.
Bagian klien menyediakan antarmuka yang digunakan oleh klien untuk transaksi perbankan.
IV.2.2. Kebutuhan Non-fungsional
Kebutuhan-kebutuhan non-fungsional dari perangkat lunak dapat dilihat pada Tabel IV-2.
Tabel IV-2 Kebutuhan non-fungsional perangkat lunak
No Kebutuhan Deskripsi
1 User Tampilan user-friendly
IV.3 Model Use Case
Pada subbab ini, akan dibahas use case yang menjadi dasar pembangunan perangkat lunak. Penjelasan dimulai dengan diagram use case yang menggambarkan kebutuhan fungsional perangkat lunak, kemudian definisi aktor, definisi, dan skenario dari masing-masing use case.
IV.3.1. Diagram Use Case
Gambar IV-2 Diagram Use Case menampilkan kebutuhan fungsional perangkat lunak yang dapat digunakan oleh aktor user. Dalam perangkat lunak ini, aktor user dapat melakukan dua aksi antara lain mengaktivasi layanan SMS-Banking dan melakukan transaksi SMS-Banking sedangkan aktor timer dapat mengolah SMS fase aktivasi dan mengolah SMS fase transaksi.
System
Melakukan transaksi SMS-Banking Mengaktivasi layanan SMS-Banking
User
mengolah SMS fase handshaking Timer
Mengolah SMS fase transaksi
Gambar IV-2 Diagram Use Case
IV.3.2. Definisi Aktor
Pada perangkat lunak ini terdapat 2 aktor yaitu user dan timer. Tabel IV-3 adalah tabel yang berisi definisi aktor pada use case.
Tabel IV-3 Definisi aktor
ID Actor Deskripsi
AC-01 User Aktor ini mewakili user yang akan menggunakan
perangkat lunak simulasi protokol SMS-Banking. User merupakan aktor yang dapat mengaktivasi layanan SMS-Banking, melakukan transaksi SMS-Banking dan mengatur konfigurasi sistem
AC-02 Timer Aktor ini mewakili timer yang akan memroses SMS
IV.3.3. Definisi Use Case
Tabel IV-4 Definisi Use Case berisi deskripsi use case yang telah dijelaskan pada subbab IV.3.1 Diagram Use Case.
Tabel IV-4 Definisi Use Case
ID Use Case Deskripsi
UC-01 Mengaktivasi layanan SMS-Banking
Aktor user dapat mengaktivasi layanan SMS-Banking. Oleh karena itu dalam use case ini, dilakukan keseluruhan tahapan yang dilakukan pada fase aktivasi dalam protokol SMS-Banking yang dirancang untuk bagian klien.
UC-02 Melakukan transaksi SMS-Banking
Aktor user dapat melakukan transaksi SMS-Banking. Oleh karena itu dalam use case ini, dilakukan keseluruhan tahapan yang dilakukan pada fase transaksi dalam protokol SMS-Banking yang dirancang untuk bagian klien.
UC-03 Mengolah SMS fase aktivasi Aktor timer dapat mengolah SMS fase aktivasi.
Maksudnya adalah aktor timer dapat melakukan keseluruhan tahapan yang dilakukan pada fase aktivasi dalam protokol SMS-Banking yang dirancang untuk bagian server.
UC-04 Mengolah SMS fase transaksi Aktor timer dapat mengolah SMS fase transaksi. Maksudnya adalah aktor timer dapat melakukan keseluruhan tahapan yang dilakukan pada fase transaksi dalam protokol SMS-Banking yang dirancang untuk bagian server.
IV.4 Analisis Perangkat Lunak
Pada subab ini akan dijelaskan mengenai keempat use case yang telah didefinisikan pada tahap analisis termasuk identifikasi kelas analisis, diagram kelas analisis, juga diagram sequence dari setiap use case.
IV.4.1. Use Case Mengaktivasi Layanan SMS-Banking
Ada 10 buah kelas yang diidentifikasikan pada use case mengaktivasi layanan SMS-Banking. Identifikasi dari kelas-kelas tersebut dapat dilihat pada Tabel IV-5. Diagram kelas analisis dari use case mengaktivasi layanan SMS-Banking dapat dilihat pada Gambar IV-3.
Tabel IV-5 Identifikasi kelas analisis use case mengaktivasi layanan SMS-Banking
No Nama Kelas Jenis Kelas
1. ClientController Control 2. ClientParser Entity 3. Customer Entity 4. DiffieHellman Entity 5. DigitalSignatureClient Entity 6. RSAClient Entity 7. SMS_Banking_Activation Interface 8. SMS_Banking_Interface Interface 9. ClientDBConnect Interface 10. SHA-1 Entity DiffieHellman ClientController RSAClient SMS_Banking_Interface ClientParser SMS_Banking_Activation DigitalSignatureClient Customer ClientDBConnect SHA-1
Gambar IV-3 Diagram kelas analisis use case mengaktivasi layanan SMS-Banking
Gambar IV-4 adalah sequence diagram dari aktivitas yang terjadi pada use case mengaktivasi layanan SMS-Banking.
: User : SMSGatewayInterface <<boundary>> : SMS_Banking_Activation <<boundary>> : ClientController <<control>> : ClientDBConnect <<boundary>> : DiffieHellman <<entity>> : DigitalSignatureClient <<control>> : RSAClient <<entity>> : ClientParser <<entity>> : SHA-1 <<entity>> 1 : Click_Activation_Menu() 2 : Show_Activation_Interface() 3 : Enter_Customer_Code() 4 : Enter_PIN() 5 : Enter_Activation_Code() 6 : Click_Activate_Button() 7 : Activate_SMS_Banking_Service() 8 : Get_Server_Data() 9 : Server_Data() 10 : Generate_X_Diffie_Hellman_Value() 11 : X_Diffie_Hellman_Value() 12 : Create_Digital_Signature() 13 : Encrypt() 14 : Compute_Hash_Value() 15 : Hash_Value() 16 : Encrypted_Message() 17 : Digital_Signature() 18 : Encrypt_Message() 19 : Encrypted_Message() 20 : Send_Message_To_Server() 21 : Receive_Message_From_Server() 22 : Parse_Handshaking_Message() 23 : Encrypted_Message() 24 : Message_Version() 25 : Get_Client_RSA_Key() 26 : Client_RSA_Key() 27 : Decrypt_Message() 28 : Decrypted_Message() 29 : Parse_Encrypted_Message() 30 : Y_Diffie_Hellman_Value() 31 : Sequence_Number() 32 : Digital_Signature() 33 : Get_Server_Data() 34 : Server_Data() 35 : Verify_Digital_Signature() 36 : Decrypt() 37 : Compute_Hash_Value() 38 : Status() 39 : Decrypted_Message() 40 : Hash_Value() 41 : Compute_Symmetric_Key() 42 : Symmetric_Key() 43 : Update_Client_Status_Symmetric_Key_Sequence_Number() 44 : Show_Succeeded_Activation_Message()
IV.4.2. Use Case Melakukan Transaksi SMS-Banking
Ada 10 kelas kelas yang teridentifikasi pada use case melakukan transaksi SMS-Banking. Kelas-kelas tersebut dapat dilihat pada Tabel IV-6. Diagram kelas analisis use case melakukan transaksi SMS-Banking dapat dilihat pada Gambar IV-5.
Tabel IV-6 Identifikasi kelas analisis use case Melakukan Transaksi SMS-Banking
No Nama Kelas Jenis Kelas
1. ClientController Control 2. ClientParser Entity 3. Customer Entity 4. RijndaelClient Entity 5. DigitalSignatureClient Entity 6. RSAClient Entity 7. SMS_Banking_Transaction Interface 8. SMS_Banking_Interface Interface 9. ClientDBConnect Interface 10. SHA-1 Entity ClientController RSAClient SMS_Banking_Interface ClientParser DigitalSignatureClient Customer ClientDBConnect SHA-1 SMS_Banking_Transaction RijndaelClient
Diagram sequence use case melakukan transaksi SMS-Banking dapat dilihat pada Gambar IV-6. : SMS_Banking_Interface <<boundary>> : User : SMS_Banking_Transaction <<boundary>> : ClientController <<control>> : ClientDBConnect <<boundary>> : DigitalSignatureClient <<control>> : RSAClient <<entity>> : SHA-1 <<entity>> : RijndaelClient <<entity>> : ClientParser <<entity>> 1 : Click_Transaction_Button() 2 : Show_Transaction_Interface() 3 : Enter_Customer_Code() 4 : Enter_PIN() 5 : Enter_Transaction_Code() 6 : Enter_Transaction_Payload1() 7 : Enter_Transaction_Payload2() 8 : Click_Process_Button() 9 : Transact_SMS_Banking_Service() 10 : Get_Rijndael_Key_Sequence_Number() 11 : Rijndael_Key() 12 : Sequence_Number() 13 : Get_Server_Data() 14 : Server_Data() 15 : Create_Digital_Signature() 16 : Compute_Hash() 17 : Hash_Value() 18 : Encrypt() 19 : Encrypted_Message() 20 : Digital_Signature() 21 : Encrypt_Message() 22 : Encrypted_Message() 23 : Create_Client_Transaction_Message() 24 : Send_Message_To_Server() 25 : Receive_Message_From_Server() 26 : Parse_Message() 27 : Version() 28 : Encrypted_Message() 29 : Get_Rijndael_Key_Sequence_Number() 30 : Rijndael_Key() 31 : Sequence_Number() 32 : Decrypt_Message() 33 : Decrypted_Message() 34 : Parse_Transaction_Message() 35 : Sequence_Number() 36 : Digital_Signature() 37 : Version() 38 : Get_Server_Data() 39 : Server_Data() 40 : Verify_Digital_Signature() 41 : Compute_Hash() 42 : Hash_Value() 43 : Decrypt() 44 : Decrypted_Hash_Value() 45 : Status() 46 : Update_Sequence_Number() 47 : Transaction_Status()
IV.4.3. Use Case Mengolah SMS Fase Aktivasi
Ada 8 kelas kelas yang teridentifikasi pada use case mengolah SMS fase aktivasi. Kelas-kelas tersebut dapat dilihat pada Tabel IV-7. Diagram kelas analisis use case mengolah SMS fase aktivasi dapat dilihat pada Gambar IV-7.
Tabel IV-7 Identifikasi kelas analisis use case mengolah SMS fase aktivasi
No Nama Kelas Jenis Kelas
1. ServerController Control 2. SMSServerParser Entity 3. Customer Entity 4. SHA-1 Entity 5. DigitalSignatureServer Entity 6. RSAServer Entity 7. DBConnect Interface
8. Diffie Hellman Entity
SMSParserServer SHA-1 Customer ServerController DigitalSignatureServer Diffie Hellman RSAServer DBConnect
Gambar IV-7 Diagram kelas analisis use case mengolah SMS fase aktivasi
Diagram sequence use case mengolah SMS fase aktivasi dapat dilihat pada Gambar IV-8.
: Timer : DBConnect <<boundary>> : ServerController <<control>> : SMSParserServer <<entity>> : RSAServer <<entity>> : DigitalSignatureServer <<control>> : SHA-1 <<entity>> : DiffieHellman <<entity>> 1 : Read_SMS_Message() 2 : SMS_Message() 3 : Process_Message() 4 : Parse_Message() 5 : Version() 6 : Encrypted_Message() 7 : Customer_Code() 8 : Activate_SMS_Banking_Service() 9 : Get_Customer_Data() 10 : Customer_Data() 11 : Get_Server_Data() 12 : Server_Data() 13 : Decrypt_Message() 14 : Decrypted_Message() 15 : Parse_Handshaking_Client_Message() 16 : PIN() 17 : Activation_Code() 18 : X_Diffie_Hellman_Value() 19 : Digital_Signature() 20 : Is_Valid_Client_Handshaking_Message() 21 : Verify_Digital_Signature() 22 : Compute_Hash_Value() 23 : Hash_Value() 24 : Decrypt() 25 : Decrypted_Hash_Value() 26 : Status() 27 : Compute_Y_Diffie_Hellman_Value() 28 : Y_Diffie_Hellman_Value() 29 : Compute_Symmetric_Key() 30 : Symmetric_Key() 31 : Update_Symmetric_Key() 32 : Update_Sequence_Number() 33 : Create_Digital_Signature() 34 : Compute_Hash_Value() 35 : Hash_Value() 36 : Encrypt() 37 : Encrypted_Hash_Value() 38 : Digital_Signature() 39 : Encrypt() 40 : Encrypted_Message() 41 : Send_Message()
IV.4.4. Use Case Mengolah SMS Fase Transaksi
Ada 8 kelas kelas yang teridentifikasi pada use case mengolah SMS fase transaksi. Kelas-kelas tersebut dapat dilihat pada Tabel IV-8. Diagram kelas analisis use case mengolah SMS fase transaksi dapat dilihat pada Gambar IV-9.
Tabel IV-8 Identifikasi kelas analisis use case mengolah SMS fase transaksi
No Nama Kelas Jenis Kelas
1. ServerController Control 2. SMSServerParser Entity 3. Customer Entity 4. RijndaelServer Entity 5. DigitalSignatureServer Entity 6. RSAServer Entity 7. DBConnect Interface 8. SHA-1 Entity SMSParserServer SHA-1 Customer ServerController DigitalSignatureServer Diffie Hellman RSAServer DBConnect RijndaelServer
Gambar IV-9 Diagram kelas analisis use case mengolah SMS fase transaksi
Diagram sequence use case mengolah SMS fase transaksi dapat dilihat pada Gambar IV-10.
: Timer : DBConnect <<boundary>> : ServerController <<control>> : SMSParserServer <<entity>> : RijndaelServer <<entity>> : DigitalSignatureClient <<control>> : RSAServer <<entity>> : SHA-1 <<entity>> 1 : Read_SMS_Message() 2 : SMS_Message() 3 : Process_Message() 4 : Parse_SMS_Message() 5 : Version() 6 : Encrypted_Message() 7 : Customer_Code() 8 : Transact_SMS_Banking_Service() 9 : Get_Customer() 10 : Customer_Data() 11 : Get_Server_Data() 12 : Server_Data() 13 : Decrypt_Message() 14 : Decrypted_Message() 15 : Parse_Transaction_Message() 16 : Sequence_Number() 17 : PIN() 18 : Transaction_Code() 19 : Transaction_Payload1() 20 : Transaction_Payload2() 21 : Digital_Signature() 22 : Is_Valid_Transaction_Data() 23 : Verify_Digital_Signature() 24 : Decrypt() 25 : Decrypted_Hash_Value() 26 : Compute_Hash_Value() 27 : Hash_Value() 28 : Status() 29 : Perform_Transaction() 30 : Generate_Sequence_Number()
31 : Update_Sequence_Number() 32 : Create_Digital_Signature() 33 : Encrypt()
34 : Encrypted_Hash_Value() 35 : Compute_Hash_Value() 36 : Hash_Value() 37 : Digital_Signature() 38 : Encrypt_Message() 39 : Decrypted_Message() 40 : Send_Message()
IV.4.5. Diagram Kelas Analisis Keseluruhan
Bagian ini diisi dengan diagram kelas analisis keseluruhan yang dibangun dari kelas analisis yang didapat pada subbab sebelumnya. Dengan adanya diagram kelas analisis ini, dapat dilihat keterkaitan masing-masing kelas dan hubungan antar masing-masing use case. Diagram kelas analisis keseluruhan dapat dilihat pada Gambar IV-11.
SMSParserServer SHA-1 Customer ServerController DigitalSignatureServer Diffie Hellman RSAServer DBConnect ClientController RSAClient SMS_Banking_Interface ClientParser DigitalSignatureClient Customer ClientDBConnect SHA-1 SMS_Banking_Transaction RijndaelClient SMS_Banking_Activation RijndaelServer
IV.5 Perancangan Perangkat Lunak
Pada subbab ini, akan dibahas perancangan perangkat lunak yang meliputi realisasi use case tahap perancangan, diagram kelas keseluruhan, dan perancangan antarmuka. Perancangan perangkat lunak didasarkan pada analisis perangkat lunak yang sudah dipaparkan sebelumnya.
IV.5.1. Realisasi Use Case Tahap Perancangan IV.5.1.1. Use Case mengaktivasi layanan SMS-Banking
Berdasarkan diagram kelas analisis pada bab sebelumnya yaitu Gambar IV-3 didapatkan rancangan kelas seperti yang terlihat pada Gambar IV-12.
ClientController +DSC +RSAC +ClientDBCon +rC +SMSProcessor +msgCondition +CP +Count +FirstMessage +ReceivedMsg +Status +ActivateSMSBankingService() +ReceiveMessage() +SendMessage() +IntToString() +ReceiveServerSMSMessage() +TransactSMSBankingService() +ReceiveServerHandshakingMessage() +ProcessServerHandshakingMessage() ClientParser +CreateClientTransactionMessage() +ParseHandshakingServerMessage() +ParseServerTransactionMessage() +ParseSMSMessage() Customer +AccNum +ActCode +CustCode +PINCode +XDF +AccNum +Bal +Name +RijndIV +RijndKey +RSAParam +SeqNum +Stat +TelNum +TransactionCode +Transactionpayload1 +Transactionpayload2 +AccountNumber() +ActivationCode() +CustomerCode() +Balance() +CustomerName() +RijndaelIV() +RijndaelKey() +RSAP() +SequenceNumber() +Status() +TelephoneNumber() +TransactionCode() +TransactionPayload1() +TransactionPayload2() +PIN() +XDiffieHellmanValue() RSAClient +Decrypt() +Encrypt() +EncryptClientHandshakingData() DigitalSignatureClient +CreateDigitalSignature() +CreateDigitalSignatureForClientTransactionData() +CreateDigitalSignatureForClientHandshaking() +VerifyDigitalSignatureHandshakingServer() +VerifyDigitalSignatureTransactionServer() DiffieHellman +CreateKeyExchange()
+DecryptKeyExchange() SMSBankingActivation SMSBankingInterface
ClientDBConnect +con +GetServerData() +GetCustomerRSAKey() +InitializeTable() +GetCustomerStatus() +GetCustomerSequenceNumberAndRijndaelKey() +UpdateCustomerStatusSeqNRijndael() +UpdateCustomerSequenceNumber() +IsDataAvailable() +GetCustomerAndServerData() SHA-1 +ComputeHash()
Gambar IV-12 Diagram kelas perancangan use case mengaktivasi layanan SMS-Banking
Berdasarkan hasil sequence diagram analisis pada Gambar IV-4 didapatkan sequence diagram perancangan seperti yang terlihat pada Gambar IV-13.
: User
: SMSBankingInterface
: SMSBankingActivation
: ClientController : DigitalSignatureClient : DiffieHellman
: RSAClient : ClientParser : SHA-1 : ClientDBConnect 1 : Click_Menu() 2 : Enter_CustomerCode() 3 : Enter_PIN() 4 : Enter_Activation_Code() 5 : Click_Activation_Button() 6 : ActivateSMSBankingService() 7 : GetServerData() 8 : ServerData() 9 : CreateKeyExchange() 10 : XDiffieHellmanValue() 11 : CreateDigitalSignatureForClientHandshaking() 12 : ComputeHash() 13 : Hash_Value() 14 : Encrypt() 15 : Signed_Hash_Value() 16 : DigitalSignature() 17 : EncryptClientHandshakingData() 18 : EncryptedMessage() 19 : SendMessage() 20 : ReceiveServerHandshakingMessage() 21 : ProcessServerHandshakingMessage() 22 : ParseSMSMessage() 23 : ParsedMessage() 24 : Decrypt() 25 : DecryptedMessage() 26 : ParseHandshankingServerMessage() 27 : ParsedMessage() 28 : GetServerData() 29 : ServerData() 30 : VerifyDigitalSignatureHandshakingServer()31 : ComputeHash() 32 : HashValue() 33 : Decrypt() 34 : HashValue() 35 : Status() 36 : DecryptKeyExchange() 37 : SymmetricKey() 38 : UpdateCustomerStatusSeqNRinjdael() 39 : Activation_Status_Message()
IV.5.1.2. Use Case Melakukan Transaksi SMS-Banking
Berdasarkan diagram kelas analisis pada bab sebelumnya yaitu pada Gambar IV-5 didapatkan rancangan kelas seperti yang terlihat pada Gambar IV-14.
SMSBankingTransaction ClientController +DSC +RSAC +ClientDBCon +rC +SMSProcessor +msgCondition +CP +Count +FirstMessage +ReceivedMsg +Status +ActivateSMSBankingService() +ReceiveMessage() +SendMessage() +IntToString() +ReceiveServerSMSMessage() +TransactSMSBankingService() +ReceiveServerHandshakingMessage() +ProcessServerHandshakingMessage() ClientParser +CreateClientTransactionMessage() +ParseHandshakingServerMessage() +ParseServerTransactionMessage() +ParseSMSMessage() Customer +AccNum +ActCode +CustCode +PINCode +XDF +AccNum +Bal +Name +RijndIV +RijndKey +RSAParam +SeqNum +Stat +TelNum +TransactionCode +Transactionpayload1 +Transactionpayload2 +AccountNumber() +ActivationCode() +CustomerCode() +Balance() +CustomerName() +RijndaelIV() +RijndaelKey() +RSAP() +SequenceNumber() +Status() +TelephoneNumber() +TransactionCode() +TransactionPayload1() +TransactionPayload2() +PIN() +XDiffieHellmanValue() RSAClient +Decrypt() +Encrypt() +EncryptClientHandshakingData() DigitalSignatureClient +CreateDigitalSignature() +CreateDigitalSignatureForClientTransactionData() +CreateDigitalSignatureForClientHandshaking() +VerifyDigitalSignatureHandshakingServer() +VerifyDigitalSignatureTransactionServer() SMSBankingInterface ClientDBConnect +con +GetServerData() +GetCustomerRSAKey() +InitializeTable() +GetCustomerStatus() +GetCustomerSequenceNumberAndRijndaelKey() +UpdateCustomerStatusSeqNRijndael() +UpdateCustomerSequenceNumber() +IsDataAvailable() +GetCustomerAndServerData() SHA-1 +ComputeHash() RijndaelClient +CreateEncryptedTransactionData() +DecryptString() +EncryptString()
Gambar IV-14 Diagram kelas perancangan use case melakukan transaksi SMS-Banking
Berdasarkan hasil sequence diagram analisis pada Gambar IV-6 didapatkan sequence diagram perancangan seperti yang terlihat pada Gambar IV-15.
: User : SMSBankingInterface : SMSBankingTransaction : ClientController : ClientDBConnect : DigitalSignatureClient : RSAClient : SHA-1 : RijndaelClient : ClientParser 1 : Click_Transaction_Button() 2 : ShowSMSBankingTransaction() 3 : Enter_Customer_Code() 4 : Enter_PIN() 5 : Enter_Transaction_Code() 6 : Enter_Transaction_Payload1() 7 : Enter_Transaction_Payload2() 8 : Click_Transact_Button() 9 : transactSMSBankingService() 10 : GetCustomerSequenceNumberAndRijndaelKey() 11 : Sequence_Number_And_Rijndael_Key() 12 : GetServerData() 13 : ServerData() 14 : CreateDigitalSignatureForClientTransactionData() 15 : ComputeHash() 16 : HashValue() 17 : Encrypt() 18 : SignedHashValue() 19 : DigitalSignature() 20 : CreateEncryptedTransactionData() 21 : EncryptedMessage() 22 : SendMessage() 23 : receiveMessage() 24 : parseSMSMessage() 25 : Version() 26 : EncryptedMessage() 27 : DigitalSignature() 28 : GetCustomerSequenceNumberAndRijndaelKey() 29 : Sequence_Number_And_Rijndael_Key() 30 : DecryptString() 31 : DecryptedMessage() 32 : parseServerTransactionMessage()
33 : RepliedMessage, Digital Signature, version, sequence number() 34 : UpdateCustomerSequenceNumber()
35 : Show_Replied_Message()
IV.5.1.3. Use Case Mengolah SMS Fase Aktivasi
Berdasarkan diagram kelas analisis pada bab sebelumnya yaitu pada Gambar IV-7 didapatkan rancangan kelas seperti yang terlihat pada Gambar IV-16.
DiffieHellman +CreateKeyExchange() +DecryptKeyExchange() DigitalSignatureServer +CreateDigitalSignature() +CreateDigitalSignatureHandshakingClientData() +CreateDigitalSignatureforHandshakingServerData() +CreateDigitalSignatureForTransactionServerData() +VerifyDigitalSignature() +VerifiyDigitalSignatureClientData() DBConnect +string con +UpdateCustomerSequenceNumberByCustomerCode() +SelectCustomer() +InsertTransactionLog() +UpdateCustomerSymmetricKeyByCustomerCode() +GetFirstMessageOfMultipleSMS() +SendMessage() +GetServerData() +InsertNewCustomer() +GetCustomerByCustomerCode() Server Controller +state +SPS +dBC +DSS +ActivateSMSBankingService() +GenerateSequenceNumber() +IsValidClientTransactionMessage() +IsValidTransactionCode() +PerformTransaction() +ReceiveSMSMessage() +TransactSMSBankingService() +IsValidClientHandshakingMessage() SMSParserServer +ParseClientTransactionMessage() +ParseHandshakingClientMessage() +ParseSMSMessage() RijndaelServer +CreateEncryptedTransactionDataServer() +DecryptString() +EncryptString() RSAServer +Decrypt() +Encrypt() +EncryptClientHandshakingData() +EncryptServerHandshakingData() SHA-1 +ComputeHash()
Gambar IV-16 Diagram kelas perancangan use case mengolah SMS fase aktivasi
Berdasarkan hasil sequence diagram analisis pada Gambar IV-8 didapatkan sequence diagram perancangan seperti yang terlihat pada Gambar IV-17.
: Timer : DBConnect : Server Controller : RSAServer : SMSParserServer : DigitalSignatureServer : SHA-1 : DiffieHellman 1 : Read_SMS() 2 : SMS_Message() 3 : ReceiveSMSMessage() 4 : ParseSMSMessage()
5 : Version, Customer Code, EncryptedMessage() 6 : ActivateSMSBankingService() 7 : GetCustomerByCustomerCode() 8 : Customer_Data() 9 : GetServerData() 10 : ServerData() 11 : Decrypt() 12 : DecryptedMessage() 13 : parseHandshakingClientMessage()
14 : PIN, X Diffie Hellman, DigitalSignature() 15 : IsValidClientHandshakingMessage() 16 : VerifyDigitalSignature() 17 : Decrypt() 18 : HashValue() 19 : ComputeHash() 20 : HashValue() 21 : DigitalSignature() 22 : CreateKeyExchange()
23 : Y Diffie Hellman Value() 24 : DecryptKeyExchange() 25 : SymmetricKey() 26 : UpdateCustomerSymmetricKeyByCustomerCode() 27 : CreateDigitalSignatureForHandshakingServerData() 28 : ComputeHash() 29 : HashValue() 30 : Encrypt() 31 : SignedHashValue() 32 : DigitalSignature() 33 : EncryptServerHandshakingData() 34 : EncryptedMessage() 35 : SendMessage()
IV.5.1.4. Use Case Mengolah SMS Fase Transaksi
Berdasarkan diagram kelas analisis pada bab sebelumnya yaitu pada Gambar IV-9 didapatkan rancangan kelas seperti yang terlihat pada Gambar IV-18.
RijndaelServer +CreateEncryptedTransactionDataServer() +DecryptString() +EncryptString() DigitalSignatureServer +CreateDigitalSignature() +CreateDigitalSignatureHandshakingClientData() +CreateDigitalSignatureforHandshakingServerData() +CreateDigitalSignatureForTransactionServerData() +VerifyDigitalSignature() +VerifiyDigitalSignatureClientData() DBConnect +string con +UpdateCustomerSequenceNumberByCustomerCode() +SelectCustomer() +InsertTransactionLog() +UpdateCustomerSymmetricKeyByCustomerCode() +GetFirstMessageOfMultipleSMS() +SendMessage() +GetServerData() +InsertNewCustomer() +GetCustomerByCustomerCode() Server Controller +state +SPS +dBC +DSS +ActivateSMSBankingService() +GenerateSequenceNumber() +IsValidClientTransactionMessage() +IsValidTransactionCode() +PerformTransaction() +ReceiveSMSMessage() +TransactSMSBankingService() +IsValidClientHandshakingMessage() SMSParserServer +ParseClientTransactionMessage() +ParseHandshakingClientMessage() +ParseSMSMessage() RijndaelServer +CreateEncryptedTransactionDataServer() +DecryptString() +EncryptString() RSAServer +Decrypt() +Encrypt() +EncryptClientHandshakingData() +EncryptServerHandshakingData() SHA-1 +ComputeHash()
Gambar IV-18 Diagram kelas perancangan use case mengolah SMS fase transaksi
Berdasarkan hasil sequence diagram analisis pada Gambar IV-10 didapatkan sequence diagram perancangan seperti yang terlihat pada Gambar IV-19.
: User : DBConnect : Server Controller : SMSParserServer : RijndaelServer : DigitalSignatureServer : RSAServer : SHA-1 1 : Read_SMs() 2 : SMS_Message() 3 : ReceiveSMSMessage() 4 : ParseSMSMessage()
5 : Version, EncryptedMessage, CustomerCode() 6 : TransactSMSBankingService() 7 : GetServeData() 8 : ServerData() 9 : GetCustomerByCustomerCode() 10 : CustomerData() 11 : DecryptString() 12 : DecryptedMessage() 13 : parseClientTransactionMessage()
14 : PIN, Transaction Code, Payload1, Payload2, Digital Signture, Sequence Diagram() 15 : isValidClientTransactionMessage() 16 : VerifyDigitalSignatureClientDataTransaction() 17 : Decrypt() 18 : HashValue() 19 : ComputeHash() 20 : HashValue() 21 : DigitalSignature() 22 : PerformTransaction() 23 : GenerateSequenceNumber() 24 : UpdateCustomerSequenceNumberByCustomerCode() 25 : CreateDigitalSignatureForTransactionServerData() 26 : ComputeHash() 27 : HashValue() 28 : Encrypt() 29 : SignedHashValue() 30 : DigitalSignature() 31 : CreateEncryptedTransactionDataServer() 32 : EncryptedMessage() 33 : SendMessage()
IV.5.2. Perancangan Antarmuka
Untuk memudahkan pengguna dalam menggunakan perangkat lunak, maka dibuatlah antarmuka pada perangkat lunak bagian klien dan server. Terdapat dua macam antarmuka pada bagian klien yaitu antarmuka aktivasi layanan SMS-Banking dan antarmuka transaksi layanan SMS-Banking. Antarmuka yang dibuat pada bagian ini dibuat sedemikian rupa agar tetap terlihat sederhana namun fungsional bagi pengguna. Antarmuka aktivasi layanan Banking dapat dilihat pada Gambar IV-20, sedangkan antarmuka aktivasi layanan SMS-Banking dapat dilihat pada Gambar IV-21. Selain itu, terdapat pula sebuah antarmuka pada bagian server. Antarmuka pada bagian ini dibuat sedemikian rupa agar tetap terlihat sederhana namun informatif. Antarmuka bagian server dapat dilihat pada Gambar IV-22.
Gambar IV-20 Antarmuka aktivasi layanan SMS-Banking
Pada Gambar IV-20, terdapat tiga buah textbox dan satu tombol. Untuk mengaktifkan layanan SMS-Banking, pengguna harus mengisi ketiga buah textbox tersebut, lalu menekan tombol aktifkan. Setelah itu, status yang terdapat pada antarmuka akan berubah. Pada Gambar IV-21, terdapat empat buah textbox, satu buah dropdown dan satu buah tombol. Untuk melakukan transaksi layanan SMS-Banking, pengguna harus memasukkan ketiga buah
textbox tersebut, memilih salah satu jenis transaksi, dan menekan tombol OK. Setelah itu, status yang terdapat pada antarmuka akan berubah.
Gambar IV-21 Antarmuka transaksi layanan SMS-Banking
Pada Gambar IV-15 terdapat tiga buah tombol dan satu buah textbox multiline. Pada antarmuka ini, pengguna dapat memulai atau memberhentikan server bank dengan mengklik tombol yang sesuai. Selain itu, pengguna dapat melihat log atau catatan kejadian dari sistem serta menyegarkan log transaksi dengan menekan tombol refresh.
IV.5.3. Perancangan Basis Data Server
Rancangan skema basis data pada server yang menyimpan informasi pengguna, server dan transaksi pengguna dapat dilihat pada Gambar IV-23.
Gambar IV-23 Rancangan basis data server
IV.5.4. Perancangan Basis Data Klien
Rancangan skema basis data pada klien yang menyimpan informasi pengguna dan informasi server dapat dilihat pada Gambar IV-24.