Bab 3 Metode dan Perancangan Sistem 3.1 Tahapan Penelitian Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang terbagi dalam empat tahapan, yaitu: (1) Analisis kebutuhan dan pengumpulan data, (2) Perancangan sistem, (3) Implementasi sistem yaitu Perancangan aplikasi/program, dan (4) Pengujian sistem serta analisis hasil pengujian. Identifikasi Masalah dan Studi Literatur Perancangan Sistem Implementasi Sistem Pengujian Sistem dan Analisis Hasil Pengujian Gambar 3.1 Tahapan Penelitian Tahapan penelitian pada Gambar 3.1, dapat dijelaskan sebagai berikut. Tahap pertama: identifikasi masalah, yaitu kebutuhan sistem untuk konsultasi yang aman. Kebutuhan yang lain adalah perlunya pengamanan data konsultasi antara dosen dan mahasiswa. Tahap kedua: perancangan sistem yang meliputi perancangan proses, dan perancangan arsitektur. Proses terbagi menjadi dua, yaitu proses enkripsi dan proses dekripsi. Algoritma kriptografi yang digunakan untuk mengamankan data adalah AES. Kedua proses tersebut terjadi di server maupun di client. Arsitektur sistem terbagi menjadi dua, yaitu server dan client. Server berupa aplikasi web yang dikembangkan dengan bahasa pemrograman PHP yang berjalan pada web server Apache dengan database MySQL. Client juga berupa aplikasi web, dikembangkan dengan JavaScript. 9 Tahap ketiga: implementasi sistem, yaitu membuat aplikasi sesuai perancangan proses pada tahap kedua. Sistem terbagi menjadi dua bagian utama, yaitu server dan client. Server berupa web server dengan bahasa pemrograman PHP, client berupa browser yang digunakan oleh pengguna. Pada browser berjalan aplikasi web dengan memanfaatkan teknologi JavaScript. Implementasi proses enkripsi dan dekripsi dilakukan pada bagian server dan client. Pada bagian server, digunakan pustaka AES yang sudah terintegrasi pada PHP. Pada bagian client, digunakan pustaka AES yang dikembangkan oleh Veness (Veness, 2016). Tahap keempat: pengujian sistem dan analisis hasil pengujian, yaitu dilakukan pengujian terhadap proses yang telah dirancang, dan melihat kesesuaian solusi terhadap masalah yang telah teridentifikasi sebelumnya. Pengujian yang dilakukan terdiri dari analisis dengan WireShark untuk membuktikan bahwa data yang dikirimkan pada jaringan komputer, sudah dalam bentuk ciphertext. Pengujian keutuhan data juga dilakukan, untuk memastikan bahwa tidak ada perubahan pesan yang kirimkan. 3.2 Perancangan Sistem UML digunakan sebagai alat pemodelan dalam pengembangan aplikasi di penelitian ini. UML yang digunakan adalah use case diagram, activity diagram, dan class diagram. Gambar 3.2 Use Case Diagram Sistem 10 Use case diagram pada Gambar 3.2 menampilkan 3 aktor yang memiliki fungsi dalam sistem. Pengguna sistem terdiri dari tiga, yaitu Dosen, Mahasiswa, dan Administrator. Administrator mengolah data dosen dan mahasiwa. Dosen kemudian dapat melihat data mahasiswa yang ditugaskan untuk dibimbing atau diwalikan.Mahasiswa hanya dapat melakukan bimbingan atau konsultasi kepada dosen walinya atau dosen pembimbingnya. Gambar 3.3 Activity Diagram Pengiriman dan Penyandian Pesan Proses konsultasi ditunjukkan pada Gambar 4 dalam bentuk activity diagram. Mahasiswa setelah melalui proses login, kemudian mengirimkan pesan ke dosen. Pesan yang dikirimkan, dienkripsi terlebih dahulu sebelum dilewatkan ke internet. Proses enkripsi terjadi di lapisan client, yaitu di browser, dengan menggunakan JavaScript. Kemudian hasil enkripsi diteruskan ke server, sehingga ketika dilewatkan di jaringan internet, pesan sudah dalam bentuk cipher text. Ketika dosen mengakses sistem, pesan dari mahasiswa akan dibuat dari database, kemudian dikirimkan ke browser dosen. Pesan yang terenkripsi tersebut kemudian didekripsi untuk ditampilkan dalam bentuk plaintext kepada dosen. Proses ini berlaku sebaliknya ketika dosen mengirim pesan kepada mahasiswa. 11 Gambar 3.4 Class Diagram Sistem Class diagram pada Gambar 5 merupakan rancangan struktur data yang digunakan pada sistem. Mahasiswa dan Dosen diwakili dengan class Mahasiswa, dan class Dosen. Komunikasi antara Mahasiswa dan Dosen diwakili dengan class Konsultasi. Tiap konsultasi dapat dikelompokkan menjadi kategori-kategori. 12 3.3 Perancangan Proses mulai Input Kunci Input data chat Kelompokkan chat ke dalam blok berukuran 16 warna (16 byte) Baca blok satu demi satu Jika blok terakhir berisi kurang dari 16 byte, false true Lakukan proses Padding sehingga menjadi 16 byte false Lakukan Enkripsi AES untuk tiap blok Semua Blok selesai dienkripsi? true Output ciphertext Selesai Gambar 3.5 Alur Proses Enkripsi Proses enkripsi ditunjukkan pada Gambar 3.5. Proses enkripsi membutuhkan dua masukan, yaitu kunci enkripsi dan data chat dalam bentuk plaintext. Data chat dikelompokkan dalam blok-blok berukuran 16 byte, sesuai ketentuan desain AES. Kunci yang digunakan juga harus dalam ukuran 16 byte, karena pada penelitian ini digunakan AES dengan panjang kunci 128 bit (16 byte). Pada blok terakhir, jika panjangnya kurang dari 16 byte, maka perlu dilakukan proses padding, 13 sehingga terbentuk blok 16 byte. Padding dilakukan dengan menambahkan byte bernilai 0 pada bagian akhir. Pada akhir proses enkripsi, dihasilkan ciphertext. mulai Input Kunci Dekripsi Input Chat Ciphertext Kelompokkan ke dalam blok berukuran 16 byte Baca blok satu demi satu Lakukan dekripsi AES untuk tiap blok false Semua Blok selesai didekripsi? true Hapus padding pada blok paling akhir Output plaintext Selesai Gambar 3.6 Alur Proses Dekripsi Proses dekripsi ditunjukkan pada Gambar 3.6. Proses dekripsi membutuhkan dua masukan, yaitu kunci dekripsi dan data chat dalam bentuk ciphertext. Data chat dikelompokkan dalam blok-blok berukuran 16 byte, sesuai ketentuan desain AES. Kunci yang digunakan juga harus dalam ukuran 16 byte. Pada proses dekripsi tidak terdapat proses padding, karena hasil dari proses enkripsi, merupakan kelipatan 16 byte, sehingga dapat dipastikan tidak ada blok yang berukuran kurang dari 16 byte. Setelah proses dekripsi semua blok selesai, maka pada blok terakhir perlu dilakukan 14 penghapusan padding jika terdapat data padding. Hasil dari proses dekripsi adalah data chat dalam bentuk plaintext. 15