BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

dokumen-dokumen yang mirip
BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB V IMPLEMENTASI DAN PENGUJIAN

Pengamanan Situs dengan Enkripsi Head dan Body HTML Menggunakan Algoritma RC4

Pengamanan Situs dengan Enkripsi Head dan Body HTML Menggunakan Algoritma RC4

BAB III ANALISIS MASALAH

Bab 3. Metode dan Perancangan Sistem

BAB V IMPLEMENTASI DAN PENGUJIAN

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS MASALAH

BAB III ANALISIS DAN PERANCANGAN

3 BAB III METODOLOGI PENELITIAN

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB IV. ANALISIS DAN PERANCANGAN

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN PERANCANGAN

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB III ANALISIS DAN PEMODELAN PERANGKAT LUNAK

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

BAB II TINJAUAN PUSTAKA

BAB IV PERANCANGAN SISTEM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM. telah dijelaskan pada bab sebelumnya. Analisis yang dilakukan bertujuan untuk

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA

BAB IV PENGUJIAN DAN ANALISIS

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB III PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB III ANALISIS DAN PERANCANGAN SISTEM

Pengamanan Transmisi Hasil dan Data Query Basis Data dengan Algoritma Kriptografi RC4

4. BAB IV IMPLEMENTASI DAN PENGUJIAN

ANALISIS DAN PERANCANGAN

BAB 3 PERANCANGAN SISTEM DAN APLIKASI

BAB III ANALISA DAN PERANCANGAN. 3.1 Analisa Berikut tahap-tahap awal dalam pembuatan:

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

BAB IV HASIL DAN UJI COBA

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB IV TESTING DAN IMPLEMENTASI PROGRAM

BAB V. IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

21

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

BAB IV ANALISIS DAN PERANCANGAN SISTEM. proses kerja yang sedang berjalan. Pokok-pokok yang di analisis meliputi analisis

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan Ilmu

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN PEMBAHASAN

BAB IV ANALISIS DAN PERANCANGAN SISTEM. permasalahan dari suatu sistem informasi. Hasil akhir dari analisis sistem

BAB III ANALISIS DAN PERANCANGAN

BAB III PERANCANGAN SISTEM

BAB IV IMPLEMENTASI DAN PENGUJIAN

DESKRIPSI PERANCANGAN PERANGKAT LUNAK. <Nama Perangkat Lunak>

BAB III. Analisa Dan Perancangan

BAB III ANALISA MASALAH DAN PERANCANGAN

BAB IV HASIL DAN PEMBAHASAN

BAB IV PERANCANGAN SISTEM. gambaran secara umum kepada user tentang sistem yang baru. Data

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN

BAB IV HASIL DAN UJI COBA

KEAMANAN LOGIN WEB MENGGUNAKAN METODE 3DES BERBASIS TEKNOLOGI QUICK RESPONSE CODE

PEMANFAATAN ARDUINO DALAM PENGEMBANGAN SISTEM KEAMANAN RUMAH BERBASIS WEB

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

Bab 4 Pembahasan dan Hasil

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB II LANDASAN TEORI Konsep Dasar Membangun Aplikasi Berbasis Web

Pengenalan JavaScript

BAB III ANALISA DAN DESAIN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN

Dasar Pemrograman Web. Pemrograman Web. Adam Hendra Brata

BAB 4 IMPLEMENTASI DAN EVALUASI. perangkat keras yang dibutuhkan pengguna maupun pengembang web serta penjelasan

BAB I PENDAHULUAN 1.2. Latar Belakang Masalah

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN PERANCANGAN SISTEM. dengan menggunakan metode System Development Life Cycle (SDLC). Tahap yang

BAB III ANALISIS DAN DESAIN SISTEM

BAB III METODOLOGI PENELITIAN. berjalannya perancangan dan implementasi website, antara lain: perangkat keras yang digunakan.

BAB IV HASIL DAN UJI COBA. Berikut ini akan dijelaskan tentang tampilan hasil rancangan dari

BAB III ANALISIS DAN DESAIN SISTEM

BAB IV ANALISIS DAN PERANCANGAN SISTEM. utuh ke dalam bagian - bagian komponennya dengan maksud untuk

HASIL DAN PEMBAHASAN Investigasi Awal

BAB III ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM. KriptoSMS akan mengenkripsi pesan yang akan dikirim menjadi ciphertext dan

AJAX. Pemrograman Web 1. Asynchronous JavaScript and XML. Genap

DESKRIPSI PERANCANGAN PERANGKAT LUNAK. <Nama Perangkat Lunak>

ENKRIPSI DENGAN MENGGUNAKAN METODE ELGAMAL PADA PERANGKAT MOBILE

BAB III METODE PENELITIAN. digunakan sebagai pendekatan dalam memecahkan masalah. Biasanya kerangka

BAB III ANALISIS DAN RANCANGAN SISTEM

BAB III ANALISIS DAN RANCANGAN

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISA DAN PERANCANGAN SISTEM

Transkripsi:

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Bab keempat ini berisi penjelasan analisis dan perancangan perangkat lunak yang dibangun dalam tugas akhir ini. Analisis perangkat lunak meliputi deskripsi umum perangkat lunak yang akan dibangun, analisis kebutuhan, analisis penggunaan perangkat lunak, analisis aliran data dan model analisis. Namun sebelumnya, pada bagian analisis akan dijabarkan studi kasus situs web yang mungkin diterapkan sistem baru ini. Nantinya akan dipilih penerapan sistem ini akan seperti apa. Perancangan perangkat lunak meliputi perancangan arsitektur, perancangan modul perangkat lunak dan perancangan antarmuka. 4.1 Analisis 4.1.1 Deskripsi Perangkat Lunak Perangkat lunak yang dibangun merupakan perangkat lunak yang digunakan untuk melakukan pengamanan data yang ditransmisikan dari server ke klien dengan cara mengenkripsi data tersebut dengan algoritma kriptografi RC4. Klien yang dimaksud adalah user situs web yang disediakan oleh server. Perangkat lunak ini terdiri dari dua bagian yang terpisah namun memiliki keterkaitan satu sama lain. Bagian yang pertama merupakan modul enkripsi yang terletak di sisi server sedangkan modul lainnya terdapat di sisi web browser klien yang bertugas melakukan dekripsi ciphertext yang diperoleh dari server. Modul yang berada di sisi server adalah pelengkap dari halaman web server side scripting yang sudah ada sehingga halaman web yang dikirimkan ke klien adalah halaman web dalam bentuk terenkripsi. Di sisi lain, modul dekripsi di sisi klien berada di web browser, yaitu sebuah JavaScript yang disertakan dalam plug-in Greasemonkey dari Mozilla Firefox. Skema dasar perangkat lunak digambarkan di Gambar IV-1. Pada dasarnya perangkat lunak ini memiliki fungsi utama untuk melakukan enkripsi dan dekripsi halaman web yang ditransmisikan dari web server ke klien. Enkripsi dilakukan terhadap bagian head dan body dari halaman HTML. Sebelum ditransmisikan, seluruh string halaman mulai dari <html> hingga </html> disimpan terlebih dahulu dalam sebuah buffer string. Setelah seluruh halaman disimpan dalam buffer oleh server side scripting, sistem IV-1

menjalankan modul enkripsi dengan menggunakan kunci yang bersesuaian dengan klien yang dituju. Setelah seluruh buffer dienkripsi, sistem mengirimkan string tersebut ke sisi klien. Web Browser di sisi klien yang menerima halaman terenkripsi tersebut lalu menjalankan modul dekripsi menggunakan plug-in Greasemonkey. Gambar IV-1 Deskripsi Sistem Sistem ini hanya mengenkripsi teks halaman web sedangkan content seperti gambar tidak dienkripsi. Bagian yang dienkripsi adalah seluruh teks di dalam head dan body halaman. Oleh karena itu, klien akan menerima string dalam bentuk sebagai berikut: <html> <head> encrypted head </head> <body> encrypted body </body> </html> Tiga tag utama tersebut tidak dienkripsi agar web browser mengenali bahwa string yang diterima adalah halaman HTML sehingga tidak keliru menjalankan eksekusi. Selain itu, ketiga tag tersebut sangat umum digunakan dalam halaman web sehingga memudahkan pihak ketiga melakukan kriptanalisis jika ketiganya dienkripsi. Sebagai contoh halaman <html> <head><title>this is test page</title></head> <body><b>this page used only for testing purpose</b> </body> </html> akan dikirim ke klien sebagai <html> <head>029201050233038060162121187198177206090006193095244 168025035116060027014233187076127089072101117 </head> IV-2

<body>029223101201034048239013163206165139019000146078245 251002109104036092013186230024098072087116034048215155239 112207068032156254224250035003 </body> </html> Ciphertext yang dikirim merupakan rangkaian bentuk integer dari masing-masing karakter (A = 065, B=066, C = 067,.). Sesuai hasil survey yang telah dilakukan di subbab 3.3, hasil akhir perangkat lunak ini adalah sebuah situs berbagi file yang menyediakan bermacam file yang bisa diunduh oleh user yang memiliki kunci untuk membuka enkripsi halamannya. Aplikasi ini hanya menyediakan front-end yang merupakan antarmuka user untuk mengunduh file-file. Aplikasi back-end yang bertugas melalukan upload file terpisah dari aplikasi ini. 4.1.2 Analisis Kebutuhan Perangkat lunak pada tugas akhir ini memiliki beberapa kebutuhan yang harus dipenuhi. Kebutuhan terseut dapat dibedakan menjadi kebutuhan fungsional dan kebutuhan non fungsional. Kebutuhan fungsional dapat dilihat pada Tabel IV-1 sedangkan kebutuhan non-fungsional pada Tabel IV-2. Tabel IV-1 Kebutuhan fungsional sistem No. Deskripsi 1. Sistem mampu mengenkripsi halaman web yang diminta oleh klien lalu mentransmisikannya ke klien tersebut. 2. Sistem mampu melakukan dekripsi halaman web di sisi klien yang telah dienkripsi oleh server. 3. Sistem mampu menampilkan halaman web di browser sesuai kondisinya sebelum dienkripsi. 4. Sistem mampu menyediakan fasilitas unduh file-file aplikasi setelah halaman didekripsi IV-3

Tabel IV-2 Kebutuhan non-fungsional sistem No. Deskripsi 1. Sistem memiliki tampilan yang sederhana dan mudah digunakan. 2. Sistem memiliki waktu respons yang baik. 4.1.3 Analisis Kebutuhan Antarmuka Eksternal Perangkat lunak pada tugas akhir ini merupakan perangkat lunak dengan arsitektur client-server, sehingga pada pengoperasiaan perangkat lunak ini membutuhkan antarmuka eksternal sebagai berikut : 1. Antarmuka User Antarmuka ini merupakan antarmuka yang menghubungkan user dengan perangkat lunak ini. Antarmuka yang dibutuhkan antara lain perangkat input/output komputer. 2. Antarmuka Perangkat Keras Antarmuka ini merupakan antarmuka yang menghubungkan antar perangkat keras. Karena perangkat lunak ini berarsitektur client-server, maka dibutuhkan suatu perangkat keras untuk membentuk suatu jaringan komputer, seperti ethernet card, router, kabel LAN atau wireless card. 3. Antarmuka Perangkat Lunak Perangkat lunak yang menghubungkan aplikasi ini adalah sistem operasi, sistem manajemen basis data, server web serta web browser. 4. Antarmuka Komunikasi Antarmuka ini merupakan antarmuka yang menghubungkan satu komputer dengan komputer lain dalam suatu aturan tertentu. Antarmuka komunikasi ini adalah protokol TCP/IP dan HTTP. IV-4

4.1.4 Model Use Case System Mengunduh perangkat lunak <<include>> User Melihat halaman perangkat lunak Gambar IV-2 Diagram Use Case 4.1.5 Deskripsi Use Case Tabel IV-3 Deskripsi Use Case No. Use Case Deskripsi 1. Mengunduh User melakukan proses unduh (download) perangkat perangkat lunak lunak-perangkat lunak yang disediakan sistem. 2. Melihat halaman User membuka halaman situs berisi daftar perangkat perangkat lunak lunak yang disediakan aplikasi 4.1.6 Definisi Aktor Dalam perangkat lunak ini, hanya terdapat satu aktor saja, yaitu User. Aktor User adalah user perangkat lunak yang bisa mengakses halaman perangkat lunak untuk melakukan download file-file yang disediakan aplikasi software repository ini 4.1.7 Skenario Use Case 4.1.7.1 Skenario Use Case Melihat Halaman Perangkat Lunak Nama Use Case Prekondisi Postkondisi Aktor : Melihat halaman perangkat lunak : Sistem menampilkan form menuju halaman daftar perangkat lunak yang bisa diklik aktor : Sistem menampilkan halaman yang berisi daftar perangkat lunak : User IV-5

Skenario : Aksi Aktor Skenario normal Tabel IV-4 Skenario Use Case Melihat halaman perangkat lunak Aksi Sistem 1. Memasukkan username dan mengklik tombol OK 2. Melakukan retrieval ke database untuk memperoleh password/kunci dari username yang diterima 3. Mengenkripsi halaman daftar perangkat lunak menggunakan kunci hasil retrieval lalu mengirimkannya ke klien beserta kunci sesi 4. Menampilkan form input kunci 5. Memasukkan kunci dan mengklik tombol OK 6. Mendekripsi halaman dan menampilkannya Skenario alternatif (username tidak ditemukan) 3. Mengembalikan user ke halaman utama dan menampilkan pesan kesalahan 4.1.7.2 Skenario Use Case Mengunduh Perangkat Lunak Nama Use Case : Mengunduh perangkat lunak Prekondisi : Sistem menampilkan halaman daftar perangkat lunak Postkondisi : Sistem mengirimkan perangkat lunak yang diminta lalu menampilkan kembali halaman daftar perangkat lunak Aktor : User Skenario : Aksi Aktor Skenario normal 1. Mengklik link download Tabel IV-5 Skenario Use Case Mengunduh perangkat lunak Aksi Sistem IV-6

Aksi Aktor Aksi Sistem perangkat lunak 2. Mengecek kunci sesi dari request yang diterima 3. Mengirimkan file perangkat lunak yang diminta 4. Menampilkan halaman daftar perangkat lunak beserta kunci sesi baru Skenario alternatif (kunci sesi tidak valid) 3. Menampilkan pesan kesalahan 4.1.8 Model Analisis 4.1.8.1 Kelas Analisis Berdasarkan analisis use case di atas, dapat diidentifikasi bahwa perangkat lunak membutuhkan kelas-kelas yang bertanggung jawab melakukan enkripsi dan dekripsi, memberikan antarmuka kepada user dan melakukan pengaksesan ke database. Kelas-kelas ini dikelompokkan menjadi kelas server dan kelas klien dilihat dari posisi kelas tersebut berada. Oleh karena itu, kelas-kelas yang terlibat dapat ditentukan sebagai berikut: 1. Kelas di server 1.1 Kelas Antarmuka Kelas ini bertugas sebagai jembatan antara klien dengan perangkat lunak. Seluruh aksi yang dilakukan oleh klien ditangani oleh kelas ini. Selain itu, kelas ini memiliki tanggung jawab menampilkan halaman ke web browser. 1.2 Kelas Enkripsi Kelas ini melakukan enkripsi halaman web yang akan dikirimkan ke klien. Sesuai tugasnya, kelas ini memiliki method yang berhubungan dengan enkripsi. Kelas ini berada di sisi server sebagai server side scripting class. 1.3 Kelas Akses Database Kelas ini bertanggung jawab terhadap seluruh akses yang dilakukan ke basis data. Akses-akses tersebut termasuk pengambilan password/kunci, serta daftar file perangkat lunak yang bisa diunduh. IV-7

1.4 Kelas Perangkat Lunak Kelas ini merupakan modeller yang bertugas menyimpan data sebuah perangkat lunak hasil pembacaan dari basis data. Sebuah perangkat lunak memiliki beberapa atribut seperti nama, deskripsi dan file. 2. Kelas di klien 2.1 Kelas Konstruktor Kelas ini bertugas melakukan pembangunan kembali halaman web setelah dienkripsi sehingga bisa ditampilkan di web browser. Kelas ini melakukan identifikasi tag-tag HTML sehingga setiap tag bisa ditampilkan sebagaimana mestinya. 2.2 Kelas Dekripsi Kelas yang berada di sisi klien ini bertugas melakukan dekripsi halaman web terenkripsi sesuai response yang diterima dari server. Seperti halnya kelas enkripsi, kelas ini memiliki method yang berhubungan dengan dekripsi. 4.1.8.2 Diagram Kelas Analisis Antarmuka -listperangkatlunak: PerangkatLunak[] -ShowList() -GetUsername() -GetList() Enkripsi +Encrypt() AksesDatabase -connection: Connection +Connect() +Query() PerangkatLunak -id: Integer -nama: String -deskripsi: String -link: String +GetId() +GetNama() +GetDeskripsi() +GetLink() Gambar IV-3 Diagram kelas analisis server Diagram kelas analisis perangkat lunak yang berada di sisi server dapat dilihat pada Gambar IV-3 sedangkan kelas yang berada di sisi klien dapat dilihat pada Gambar IV-4. IV-8

Konstruktor -key: String -GetInputKey() -Construct() Dekripsi +Decrypt() Gambar IV-4 Diagram kelas analisis klien 4.2 Perancangan Perancangan perangkat lunak merupakan suatu proses untuk mengolah hasil analisis perangkat lunak menjadi sebuah rencana pengembangan perangkat lunak dengan batasanbatasan spesifikasi perangkat lunak yang sudah jelas. Perancangan ini terdiri dari perancangan arsitektur, perancangan modul perangkat lunak dan perancangan antarmuka. 4.2.1 Perancangan Arsitektur Perangkat lunak yang dibuat dalam tugas akhir ini merupakan perangkat lunak berarsitektur client-server. Dimana aplikasi yang berada pada web server merupakan aplikasi berbasis web yang sekaligus bertindak sebagai encryptor. Di sisi lain, aplikasi yang berada pada sisi client merupakan aplikasi yang terintegrasi dengan web browser dan juga bertindak sebagai decryptor. Arsitektur perangkat lunak dapat dilihat pada Gambar IV-5. Berdasarkan Gambar IV-5, terlihat bahwa perangkat lunak terdiri dari dua bagian utama yaitu: 1. Proses view Proses ini bertujuan menampilkan daftar perangkat lunak yang bisa diunduh oleh klien dengan mengirimkan username miliknya. Proses ini mengirimkan halaman HTML yang berisi daftar perangkat lunak dalam bentuk terenkripsi. Setelah sampai di klien, halaman terenkripsi tersebut akan didekripsi menggunakan nilai hash dari kunci yang dimasukkan user lalu ditampilkan di browser. IV-9

2. Proses download Proses ini bertujuan mengirimkan perangkat lunak yang diminta oleh klien. Namun sebelumnya, akan dilakukan validasi kunci sesi terlebih dahulu. Jika kunci sesi valid, barulah perangkat lunak yang diminta dikirimkan ke klien. Client Client Application Server Web Server Application Modul Antarmuka Modul Dekripsi Modul Download Modul View Basis Data Gambar IV-5 Arsitetur Perangkat Lunak 4.2.2 Perancangan Modul Perangkat Lunak Perangkat lunak akan dibuat dengan menggunakan metode berorientasi objek, sehingga modul perangkat lunak ini berupa kelas. Berikut kelas perancangan perangkat lunak: 1. Kelas di server 1.1 Kelas Antarmuka Kelas ini menyediakan template bagi kelas lain untuk meletakkan hasil proses kelas tersebut dan menjadi penghubung antara pengguna dengan sistem. Kelas antarmuka ini juga berfungsi sebagai kelas kontrol dengan menyediakan fasilitas sebagai peng-handle event yaitu dengan mendistribusikan aksi yang dilakukan pengguna untuk menjalankan proses tertentu. IV-10

1.2 Kelas Enkripsi Kelas ini dirancang untuk menangani enkripsi halaman HTML yang dihasilkan sesuai dengan request user. Method kelas ini dapat dilihat di Tabel IV-6 sedangkan atributnya pada Tabel IV-7. Nama Operasi Tabel IV-6 Method kelas Enkripsi Return value Visibility (private, public) Keterangan Enkripsi() Void Public Konstruktor kelas Enkripsi Encrypt() Boolean Public Enkripsi plainteks menjadi cipherteks, mengembalikan true jika berhasil dan false jika gagal. getbytes() Byte[] Public Mengembalikan array yang berisi nilai byte dari string arrinttostring() String Public Mengembalikan string yang berisi nilai ASCII dari karakter-karakternya resulttoascii() String Public Mengembalikan string yang berisi nilai ASCII dari karakter-karakternya dimana masing-masing karakter diwakili tiga digit angka (63 menjadi 063) setencryptionkey() Void Public Mempopulasi S-Box yang digunakan untuk mengenkripsi setincleartext() Void Public Mengeset text yang akan dienkripsi setcryptedtext() Void Public Mengeset text hasil enkripsi getcryptedtext() String Public Mengembalikan text hasil enkrsipsi Tabel IV-7 Atribut kelas Enkripsi Nama Atribut Visibility (private, public) Tipe m_sencryptionkey Private String m_sencryptionkeyascii Private String m_nbox Private Byte[] m_nboxlen Private Int m_sincleartext Private String m_scryptedtext Private String 1.3 Kelas Akses Database Kelas ini bertanggung jawab terhadap seluruh akses yang dilakukan ke basis data. Akses-akses tersebut termasuk pengambilan password/kunci, serta daftar file IV-11

perangkat lunak yang bisa diunduh. Method kelas ini dapat dilihat di Tabel IV-8 sedangkan atributnya pada Tabel IV-9. Nama Operasi Tabel IV-8 Method kelas Akses Database Return value Visibility (private, public) Keterangan AksesDatabase() Void Public Konstruktor kelas AksesDatabase Connect() mysqli Public Menghasilkan koneksi ke basis data Query() Mixed Public Melakukan query ke basis data ResultToArray() Array Public Mengonversi hasil query basis data ke dalam bentuk array Tabel IV-9 Atribut kelas Akses Database Nama Atribut Visibility (private, public) Tipe Connection Private mysqli Result Private mixed 1.4 Kelas Perangkat Lunak Kelas ini merupakan modeller yang bertugas menyimpan data sebuah perangkat lunak hasil pembacaan dari basis data. Sebuah perangkat lunak memiliki beberapa atribut seperti nama, deskripsi dan file. Method kelas ini dapat dilihat pada Tabel IV-10 sedangkan atributnya pada Tabel IV-11. Nama Operasi Tabel IV-10 Method kelas Perangkat Lunak Return value Visibility (private, public) Keterangan PerangkatLunak() Void Public Konstruktor kelas PerangkatLunak GetId() Int Public Mengembalikan nilai atribut id GetNama() String Public Mengembalikan nilai atribut nama GetDeskripsi() String Public Mengembalikan nilai atribut deskripsi GetLink() String Public Mengembalikan nilai atribut link Tabel IV-11 Atribut kelas Perangkat Lunak Nama Atribut Visibility (private, public) Tipe id Private int nama Private String deskripsi Private String link Private String IV-12

2. Kelas di klien 2.1 Kelas Konstruktor Kelas ini bertugas melakukan pembangunan kembali halaman web setelah dienkripsi sehingga bisa ditampilkan di web browser. Kelas ini melakukan identifikasi tag-tag HTML sehingga setiap tag bisa ditampilkan sebagaimana mestinya. Method kelas ini dapat dilihat pada Tabel IV-12 dan atributnya pada Tabel IV-13. Nama Operasi Tabel IV-12 Method kelas Konstruktor Return value Visibility (private, public) Keterangan GetInputKey() String Public Meminta input kunci dekripsi dari user dan mengembalikan nilainya Construct() Void Public Membangun halaman HTML hasil dekripsi ke browser Tabel IV-13 Atribut kelas Konstruktor Nama Atribut Visibility (private, public) Tipe key Private String 2.2 Kelas RC4 Kelas yang berada di sisi klien ini bertugas melakukan dekripsi halaman web terenkripsi sesuai response yang diterima dari server. Seperti halnya kelas enkripsi, kelas ini memiliki method yang berhubungan dengan dekripsi. Method kelas ini dapat dilihat pada Tabel IV-14 dan atributnya pada Tabel IV-15. Nama Operasi Tabel IV-14 Method kelas RC4 Return value IV-13 Visibility (private, public) Keterangan RC4() Void Public Konstruktor kelas RC4 Decrypt() Boolean Public Dekripsi plainteks menjadi cipherteks, mengembalikan true jika berhasil dan false jika gagal. getbytes() Byte[] Public Mengembalikan array yang berisi nilai byte dari string arrinttostring() String Public Mengembalikan string yang berisi nilai ASCII dari karakter-karakternya parsetext() String Public Memparsing text yang dihasilkan oleh proses enkripsi server

setencryptionkey() Void Public Mempopulasi S-Box yang digunakan untuk mengenkripsi setincleartext() Void Public Mengeset text yang akan dienkripsi setcryptedtext() Void Public Mengeset text hasil enkripsi getcryptedtext() String Public Mengembalikan text hasil enkrsipsi Tabel IV-15 Atribut kelas RC4 Nama Atribut Visibility (private, public) Tipe m_sencryptionkey Private String m_sencryptionkeyascii Private String m_nbox Private Byte[] m_nboxlen Private Int m_sincleartext Private String m_scryptedtext Private String 2.3 Kelas Utf8 Kelas ini merupakan kelas static yang bertanggung jawab mengonversi string dengan format UTF-8 menjadi single-byte dan sebaliknya. Method kelas ini dapat dilihat pada Tabel IV-16 dan tidak memiliki atribut Nama Operasi Tabel IV-16 Method kelas Utf8 Return value Visibility (private, public) Keterangan encode() String Public Mengubah string single-byte menjadi UTF-8 decode() String Public Mengubah string UTF-8 menjadi single-byte 4.2.3 Perancangan Antarmuka Perangkat lunak yang akan dibuat merupakan perangkat lunak berbasis web sehingga antarmuka yang dibuat berupa beberapa halaman web. Berikut perancangan halaman antarmuka, yaitu: 1. Halaman index Halaman ini merupakan halaman utama yang pertama kali muncul jika user mengakses aplikasi ini. Dalam halaman ini terdapat form yang berisi input user berupa username-nya dan sebuah tombol untuk melanjutkan proses. Rincian objek dan tampilan halaman index dapat dilihat pada lampiran A bagian A.1. IV-14

2. Halaman view Halaman ini adalah halaman yang berisi daftar file. Daftar file tersebut ditampilkan dalam sebuah tabel yang terdiri dari kolom nama, deskripsi dan link untuk mengunduhnya. Selain itu, terdapat tombol navigasi untuk kembali ke halaman utama. Rincian objek dan tampilan halaman view dapat dilihat pada lampiran A bagian A.2. IV-15