BAB IV. ANALISIS DAN PERANCANGAN Pada bab ini, akan dibahas mengenai proses analisis dan perancangan dari add-on yang akan dibangun. Pada bagian awal, akan dijelaskan deskripsi umum, kebutuhan perangkat lunak, dan use case dari add-on. 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 akan dibangun mampu melakukan enkripsi dan dekripsi surat elektronik dengan menggunakan XXTEA. Perangkat lunak ini merupakan add-on yang akan dipasang pada Mail User Agent (MUA) Mozilla Thunderbird. Ketika pengguna ingin mengenkripsi surat elektronik yang akan dikirimnya, pengguna memasukan kata kunci dan menekan tombol enkripsi sehingga body pesan akan berubah menjadi bentuk terenkripsi. Spesifikasi add-on yang ingin dibangun: 1. Mampu mengenkripsi dan mendekripsi surat elektronik dengan menggunakan XXTEA. 2. Berjalan di atas Mozilla Thunderbird 2.0 ke atas. 3. Menyediakan fasilitas pengecekan kekuatan kata kunci. 4. Menyediakan fasilitas pembangkitan kata kunci. Spesifikasi nomor 1 dan 2 merupakan spesifikasi utama dari tugas akhir sebab sesuai dengan judul tugas akhir ini, sedang spesifikasi nomor 3 dan 4 merupakan spesifikasi tambahan untuk meningkatkan kekuatan dari kata kunci yang berdampak pada sulitnya memecahkan ciphertext. Dengan adanya pembuatan add-on enkripsi surat IV-1
IV-2
elektronik pada Mozilla Thunderbird ini, diharapkan user dapat lebih menjaga keamanan data rahasia yang dikirimkan melalui MUA. Gambar IV-1 Skema Umum Perangkat Lunak menjelaskan alur kerja dari perangkat lunak yang akan dibangun.
Skema Umum Perangkat Lunak MUA Pengirim
Internet
MUA Penerima
Surat ditransfer hingga mailbox tujuan
Surat diunduh dari mailbox untuk dibaca
Surat selesai ditulis dan siap dikirim
Body surat dienkripsi
Surat dikirim
Body didekripsi
Surat siap dibaca penerima
Gambar IV-1 Skema Umum Perangkat Lunak
IV.2 Fitur Utama Perangkat Lunak Pada subbab ini, akan dibahas fitur utama perangkat lunak yang meliputi kebutuhan fungsional dan non-fungsional.
IV-3
IV.2.1 Kebutuhan Fungsional
Kebutuhan fungsional dari perangkat lunak ini adalah: 1. Mampu mengenkripsi dan mendekripsi surat elektronik dengan menggunakan XXTEA. 2. Mampu berjalan di atas Mozilla Thunderbird 2.0 ke atas. 3. Menyediakan fasilitas pengecekan kekuatan kata kunci. 4. Menyediakan fasilitas pembangkitan kata kunci.
IV.2.2 Kebutuhan Non-fungsional
Kebutuhan non-fungsional dari perangkat lunak ini adalah: 1. Proses enkripsi dan dekripsi berjalan dengan cepat. 2. Perangkat lunak nyaman digunakan, yaitu jumlah langkah tambahan sekitar 2 (dua) hingga 3 (tiga) langkah dan menggunakan icon yang representatif dalam menggambarkan sebuah proses yang disediakan add-on.
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”.
IV-4
Gambar IV-2 Diagram Use Case
Dalam penggunaan add-on ini, aktor “user” dapat melakukan 2 (dua) aksi yang tersedia, yaitu mengenkripsi surat elektronik yang akan dikirim dan mendekripsi surat elektronik yang diterima. Terdapat fitur lain yang disediakan add-on, yaitu pengecekan kekuatan kata kunci, di mana fitur ini akan berjalan otomatis ketika aktor “user” memasukkan kata kunci.
IV.3.2 Definisi Aktor Terdapat 1 (satu) aktor dalam penggunaan perangkat lunak ini, yaitu pemakai add-on (user), dimana user menggunakan add-on ini untuk mengenkripsi dan mendekripsi surat elektronik yang user kirim atau terima.
IV.3.3 Definisi Use Case Tabel IV-1 Definisi Use Case berisi deskripsi use case yang telah dijelaskan pada subbab IV.3.1 Diagram Use Case.
IV-5
Tabel IV-1 Definisi Use Case
ID
Use Case
Deskripsi
UC‐01
Mengenkripsi surat elektronik
Aktor “user” dapat mengenkripsi surat elektronik yang dikirim dengan menggunakan algoritma XXTEA yang disediakan add‐on.
UC‐02
Mendekripsi surat elektronik
Aktor “user” dapat mendekripsi surat elektronik yang diterima dalam keadaan terenkripsi sehingga dapat dimengerti dengan mudah.
IV.3.4 Skenario Use Case ID
: SC-01
Nama Use Case
: Mengenkripsi surat elektronik
Deskripsi
: Aktor “user” dapat mengenkripsi surat elektronik yang dikirim dengan menggunakan algoritma XXTEA yang disediakan add-on.
Pre-kondisi
: Aktor ”user” telah menulis surat elektronik yang akan dikirim.
Skenario
:
Tabel IV-2 Skenario Use Case Mengenkripsi Surat Elektronik
Aksi Aktor
Reaksi Sistem
Skenario Normal 1. Memasukkan kata kunci enkripsi surat elektronik 2. Menekan tombol enkripsi
3. Mengenkripsi surat elektronik dengan kata kunci masukan aktor “user”
4. Menampilkan surat elektronik yang terenkripsi.
Skenario Alternatif
1. Menekan tombol enkripsi
2.
Kata
kunci
belum
menampilkan pesan kesalahan.
dimasukkan,
IV-6
ID
: SC-02
Nama Use Case
: Mendekripsi surat elektronik
Deskripsi
: Aktor “user” dapat mendekripsi surat elektronik yang diterima
dalam
keadaan
terenkripsi
sehingga
dapat
dimengerti dengan mudah. Pre-kondisi
: Aktor ”user” sedang melihat surat elektronik terenkripsi.
Skenario
:
Tabel IV-3 Skenario Use Case Mendekripsi Surat Elektronik
Aksi Aktor
Reaksi Sistem
Skenario Normal
1. Memasukkan kata kunci dekripsi surat elektronik 2. Menekan tombol dekripsi
3. Mendekripsi surat elektronik dengan kata kunci masukan aktor “user”
4. Menampilkan surat elektronik yang terdekripsi (plaintext).
Skenario Alternatif
1. Menekan tombol dekripsi
2.
Kata
kunci
belum
dimasukkan,
menampilkan pesan kesalahan.
IV.4 Analisis Perangkat Lunak Pada subbab ini, akan dibahas proses analisis perangkat lunak yang merupakan pemodelan masalah dalam pembangunan perangkat lunak. Proses analisis akan dilakukan dengan berbasiskan use case yang telah dijelaskan pada subbab sebelumnya. Subbab ini akan berisi realisasi use case analisis yang terdiri dari diagram kelas dan sequence diagram analisis.
IV-7
IV.4.1 Realisasi Use Case Tahap Analisis
Realisasi use case tahap analisis berisi kelas-kelas dan sequence diagram pada tahap analisis. Pembangunan kelas analisis dimulai dari pemahaman akan skenario use case pada subbab IV.3.4 sehingga dapat ditentukan kelas apa saja yang dibutuhkan untuk masing-masing use case, sedangkan pembangunan sequence diagram juga akan berbasiskan skenario use case.
IV.4.1.1 Use Case Mengenkripsi Surat Elektronik Aktor “user” dapat mengenkripsi surat elektronik yang dikirim dengan menggunakan algoritma XXTEA yang disediakan add-on. Bagian ini diisi dengan sequence diagram dan diagram kelas analisis untuk use case Mengenkripsi Surat Elektronik. ID: CL-A-01
Gambar IV-3 Class Diagram Analisis Mengenkripsi Surat Elektronik
Terdapat 2 kelas analisis pada use case Mengenkripsi Surat Elektronik, yaitu: 1. enkripsi form : merupakan form pengiriman surat elektronik yang sudah ditambahkan dengan sejumlah komponen dari add-on. 2. proses control : merupakan kelas pengatur kegiatan add-on yang bertugas menerima pesan yang akan dikirim, melakukan enkripsi dan menampilkannya kembali pada enkripsi form.
IV-8
ID: SQ-A-01
Gambar IV-4 Sequence Diagram Analisis Mengenkripsi Surat Elektronik
Gambar IV-4 menampilkan skema pengiriman pesan yang diinisialisasi oleh user, kemudian user memasukkan kata kunci, proses control mengenkripsi pesan hingga kemudian ditampilkan kembali pada enkripsi form. Sequence diagram tahap analisis di atas dibangun berdasarkan Tabel IV-2 Skenario Use Case Mengenkripsi Surat Elektronik.
IV.4.1.2 Use Case Mendekripsi Surat Elektronik Aktor “user” dapat mendekripsi surat elektronik yang diterima dalam keadaan terenkripsi sehingga dapat dimengerti dengan mudah. Bagian ini diisi dengan sequence diagram dan diagram kelas analisis untuk use case Mendekripsi Surat Elektronik. ID: CL-A-02
Gambar IV-5 Class Diagram Analisis Mendekripsi Surat Elektronik
IV-9
Terdapat 2 kelas analisis pada use case Mendekripsi Surat Elektronik, yaitu: 1. dekripsi form : merupakan komponen dekripsi add-on yang ditambahkan pada window utama dari Mozilla Thunderbird. 2. proses control : merupakan kelas yang mengatur jalannya proses dekripsi yang terdiri dari pengambilan pesan terenkripsi pada surat elektronik, proses dekripsi pesan, dan penampilan pesan yang sudah menjadi plaintext. ID: SQ-A-02
:dekripsi form
:proses control
user 1: memasukkan kata kunci
2: menekan tombol dekripsi 3: mengambil kata kunci 4: mengambil surat elektronik
5: mendekripsi surat elektronik 6: menampilkan surat elektronik terdekripsi (plaintext)
Gambar IV-6 Sequence Diagram Analisis Mendekripsi Surat Elektronik
Gambar IV-6 menampilkan skema dekripsi pesan yang diinisialisasi oleh user, kemudian user memasukkan kata kunci, proses control mendekripsi pesan hingga kemudian ditampilkan kembali pada enkripsi form. Komponen dekripsi add-on diletakkan pada window utama Mozilla Thunderbird. Sequence diagram tahap analisis di atas dibangun berdasarkan Tabel IV-3 Skenario Use Case Mendekripsi Surat Elektronik.
IV.4.2 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
IV-10
ini, dapat dilihat keterkaitan masing-masing kelas dan hubungan antara masingmasing use case.
Gambar IV-7 Diagram Kelas Analisis Keseluruhan
Gambar IV-7 Diagram Kelas Analisis Keseluruhan dibangun berdasarkan kelas-kelas analisis yang telah didapatkan pada tahap-tahap sebelumnya. Pada add-on, terdapat 3 kelas analisis, yaitu: 1. enkripsi form : kelas antarmuka yang bertugas menampilkan komponen enkripsi dan pengecekan kekuatan kata kunci yang akan dibangun pada window pengiriman surat elektronik Mozilla Thunderbird. 2. dekripsi form : kelas antarmuka yang bertugas menampilkan komponen dekripsi add-on yang akan dibangun pada window utama Mozilla Thunderbird. 3. proses control : kelas yang bertugas mengatur kegiatan add-on yang meliputi enkripsi, dekripsi, dan pengecekan kekuatan kata kunci.
IV-11
IV.5 Perancangan Perangkat Lunak Pada subbab ini, akan dibahas perancangan perangkat lunak yang merupakan pemodelan solusi dari masalah yang dijelaskan pada subbab sebelumnya. Perancangan perangkat lunak akan dibuat dengan menggunakan data yang didapat pada tahap analisis. Perancangan perangkat lunak meliputi realisasi use case tahap perancangan, diagram kelas keseluruhan, perancangan antarmuka, dan perancangan modul.
IV.5.1 Realisasi Use Case Tahap Perancangan Realisasi use case tahap perancangan berisi kelas-kelas dan sequence diagram yang lebih detil.
Kelas-kelas pada tahap
ini
sudah berisi fungsi-fungsi yang
menggambarkan aksi-aksi yang dapat dilakukan masing-masing kelas.
IV.5.1.1 Use Case Mengenkripsi Surat Elektronik Bagian ini akan diisi dengan kelas dan sequence diagram tahap perancangan dari use case mengenkripsi surat elektronik. ID: CL-D-01 :proses_control :compose_window 1..1
1..1
-email : String -keyword : String +encryptEmail() +getEmail() +getKeyword() +viewEncryptedEmail()
Gambar IV-8 Diagram Kelas Perancangan Mengenkripsi Surat Elektronik
Terdapat 2 (dua) kelas perancangan pada use case ini, yaitu: 1. compose_window: tidak memiliki fungsi tambahan dari program. 2. proses_control: fungsi utama pada kelas ini adalah encryptEmail() yang akan memanggilkan fungsi-fungsi lainnya dalam menjalankan tugasnya, yaitu mengenkripsi surat elektronik.
IV-12
ID: SQ-D-01
:compose_window
:proses_control
user 1. User telah selesai menulis surat elektronik dan memasukkan kata kunci 2. User menekan tombol untuk memulai enkripsi
1: inputKeyword()
2: startEncryption()
3. proses_control mengambil kata kunci masukan user 4. proses_control mengambil surat elektronik
3: getKeyword()
4: getEmail()
5. proses_control memulai proses enkripsi surat elektronik 6. proses_control menampilkan surat elektronik terenkripsi di enkripsi_form
5: encryptEmail() 6: viewEncryptedEmail()
Gambar IV-9 Sequence Diagram Perancangan Mengenkripsi Surat Elektronik
Sama seperti penjelasan pada subbab IV.4.1.1 Use Case Mengenkripsi Surat Elektronik, tugas utama use case ini adalah mengenkripsi pesan dan menampilkannya kepada user. Sequence diagram tahap perancangan ini pada Gambar IV-9 memperjelas sequence diagram analisis sebelumnya dengan memasukkan fungsifungsi yang telah dijabarkan pada kelas perancangan di atas.
IV.5.1.2 Use Case Mendekripsi Surat Elektronik Bagian ini akan diisi dengan kelas dan sequence diagram tahap perancangan dari use case mendekripsi surat elektronik. ID: CL-D-02
Gambar IV-10 Diagram Kelas Perancangan Mendekripsi Surat Elektronik
IV-13
Terdapat 2 (dua) kelas perancangan pada tahap ini, yaitu: 1. main_window: tidak memiliki fungsi tambahan dari program. 2. proses_control: mirip dengan use case mengenkripsi surat elektronik, fungsi utama dari kelas ini adalah decryptEmail() yang bertugas mendekripsi surat dengan menggunakan fungsi-fungsi lainnya. ID: SQ-D-02
Gambar IV-11 Sequence Diagram Perancangan Mendekripsi Surat Elektronik
Proses dekripsi dapat dilakukan pada main window dari Mozilla Thunderbird. Program akan mendekripsi surat yang sedang dibaca oleh user setelah kata kunci dimasukkan. Sequence diagram perancangan pada Gambar IV-11 menjelaskan lebih detil dibandingkan dengan sequence diagram analisis use case ini dengan memasukkan fungsi-fungsi dari kelas perancangan di atas.
IV.5.2 Diagram Kelas Keseluruhan
Mirip dengan diagram kelas keseluruhan pada tahap analisis, terdapat beberapa perbedaan nama kelas pada diagram kelas keseluruhan pada tahap perancangan. Diagram
kelas
keseluruhan
dibangun
perancangan pada subbab sebelumnya.
dengan
menggabungkan
kelas-kelas
IV-14
Gambar IV-12 Diagram Kelas Perancangan Keseluruhan
Penjelasan diagram kelas pada Gambar IV-12 sebagai berikut: 1. compose_window: merupakan kelas perancangan dari kelas analisis “enkripsi form” dan merupakan antarmuka dari proses enkripsi. 2. main_window: merupakan kelas perancangan dari kelas analisis “dekripsi form” dan antarmuka dari proses dekripsi. 3. proses_control: merupakan kelas controller yang menjalankan fungsi enkripsi dan dekripsi program.
IV.5.3 Perancangan Antarmuka
Antarmuka yang akan dirancang akan disesuaikan dengan kebutuhan non-fungsional yang didefinisikan pada IV.2.2 Kebutuhan Non-fungsional, dimana perangkat lunak yang dibangun nyaman digunakan oleh user, maka tampilan dari add-on yang akan dibangun diusahakan tidak banyak mengubah tampilan dari Mozilla Thunderbird. Terdapat 2 (dua) antarmuka Mozilla Thunderbird yang akan berhubungan dengan pembangunan add-on ini adalah compose window dan main window pada Mozilla Thunderbird. Gambar IV-13 Screenshot Main Window Mozilla Thunderbird menampilkan tampilan jendela utama dari Mozilla Thunderbird.
IV-15
Gambar IV-13 Screenshot Main Window Mozilla Thunderbird
Gambar IV-14 Screenshot Compose Window Mozilla Thunderbird menampilkan jendela ketika user ingin mengirimkan surat elektronik.
Gambar IV-14 Screenshot Compose Window Mozilla Thunderbird
Akan terdapat tambahan sejumlah komponen add-on yang ditampilkan pada main window dan compose window dari Mozilla Thunderbird, sehingga sketsa dari tampilan main window dan compose window akan menjadi seperti yang ditunjukkan
IV-16
pada Gambar IV-15 Sketsa Main Window Mozilla Thunderbird dan Gambar IV-16 Sketsa Compose Window Mozilla Thunderbird.
Gambar IV-15 Sketsa Main Window Mozilla Thunderbird
Pada bagian toolbar, komponen antarmuka dari add-on akan diletakkan, seperti tombol “Dekripsi”.
Gambar IV-16 Sketsa Compose Window Mozilla Thunderbird
Pada bagian toolbar, komponen add-on, yaitu tombol “Enkripsi” akan diletakkan. Pada bagian interface add-on akan diletakkan antarmuka untuk memasukkan kata kunci dan skor kata kunci.
IV-17
IV.5.4 Perancangan Modul Dalam pembangunan perangkat lunak untuk tugas akhir ini, terdapat sejumlah modul yang merepresentasikan fungsi-fungsi dalam menjalankan perangkat lunak. Modulmodul tersebut terdiri dari modul utama dan modul tampilan dengan penjelasan sebagai berikut: 1. Modul utama: Modul utama berfungsi menjalankan proses enkripsi, dekripsi, pengaturan tampilan, dan pengecekan keabsahan surat elektronik. 2. Modul tampilan: Modul tampilan berisi fungsi-fungsi dalam pembangunan antarmuka add-on, dimana proses penampilannya diatur oleh modul utama.