SKRIPSI
IMPLEMENTASI KEAMANAN KOMUNIKASI DATA PADA SMART 3 PHASE POWER METER
Diajukan untuk memenuhi persyaratan menyelesaikan pendidikan sarjana (S-1) pada
Departemen Teknik Elektro Sub Konsentrasi Teknik Komputer
Oleh
TAUPAN ERLANGGA UTAMA NIM : 150402063
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA MEDAN
2021
i ABSTRAK
Data penting baik data pribadi, data suatu perusahaan, data kepemerintahan dan data penting lainnya jika menggunakan sistem pemberkasan maka diperlukan suatu tempat yang khusus untuk menyimpan data tersebut agar tetap aman. Seiring perkembangan zaman, penyimpanan data seperti tadi sudah mulai ditinggalkan.
Permasalahannya adalah metode seperti diatas memerlukan banyak biaya, untuk itu penyimpanan data mulai beralih ke internet. Penyimpanan data di internet pada platform berbayar yang tersedia sudah banyak dan keamanannya juga sangat baik. Tetapi perkembangan zaman juga mempengaruhi hal lainnya, misalnya metode pencurian data juga sudah berkembang dan salah satu metode pencurian data yaitu melacak jalur pengiriman data antara si pengirim dan database yang menyediakan tempat penyimpanan data.
Salah satu cara untuk mengatasi permasalahan diatas adalah dengan melakukan enkripsi pada saat data dikirimkan. Untuk itu dibuatlah protokol komunikasi data yang dapat mengamankan data pada saat data sedang dikirimkan.
Diantara protokol komunikasi data yang memiliki fitur enkripsi adalah Secure Soket Layer(SSL)/Transport Layer Secure(TLS).
Sistem ini diaplikasikan pada Smart 3 Phase Power Meter yang diharapkan bisa memenuhi kebutuhan ini. Pembacaan data ini menggunakan metode packet sniffer. Dari pengujian yang telah dilakukan data yang dikirim dari alat rancangan ke database sudah berhasil di enkripsi.
Kata Kunci : Keamanan Pengiriman Data, Smart 3 Phase Power Meter, Packet Sniffer, TLS
ii
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan kehadirat Allah subhanahu wa ta’ala, karena atas berkat dan rahmat-Nya Tugas Akhir ini dapat disusun dan diselesaikan. Sholawat dan salam penulis sampaikan kepada nabi Muhammad shallallahu alaihi wa sallam. Serta penulis sangat berterimakasih kepada orang tua penulis yang menjadi motivasi bagi penulis untuk menyelesaikan Tugas Akhir ini.
Tugas Akhir ini merupakan bagian dari kurikulum yang harus diselesaikan untuk memenuhi persyaratan dalam menyelesaikan pendidikan Sarjana Strata Satu di Departemen Teknik Elektro, Universitas Sumatera Utara. Adapun judul Tugas Akhir ini adalah :
“IMPLEMENTASI KEAMANAN KOMUNIKASI DATA PADA SMART 3 PHASE POWER METER”
Tugas Akhir ini penulis persembahkan kepada orangtua yang teristimewa yaitu ayahanda Surya Utama dan Isnah Khairani yang selalu memberikan semangat dan mendoakan penulis selama masa studi hingga menyelesaikan Tugas Akhir ini.
Selama masa kuliah hingga penyelesaian Tugas Akhir ini, penulis juga banyak mendapatkan dukungan maupun bantuan dari berbagai pihak. Untuk itu penulis ingin menyampaikan rasa terima kasih yang mendalam kepada:
1. Bapak Soeharwinto, S.T., M.T., selaku dosen Pembimbing Tugas Akhir yang telah banyak meluangkan waktu dan pikirannya untuk selalu memberikan bantuan, bimbingan, dan pengarahan kepada penulis selama perkuliahan hingga penyusunan Tugas Akhir ini.
iii
2. Bapak Tigor Hamonangan Nasution, ST., MT., dan Bapak Ir. Kasmir Tanjung, MT., selaku Dosen Penguji Tugas Akhir yang telah memberikan banyak masukan demi perbaikan Tugas Akhir ini.
3. Bapak Ir. Arman Sani, MT., selaku dosen wali penulis dan juga selaku Sekretaris Departemen Teknik Elektro FT-USU yang selama ini telah memotivasi, membimbing serta membina selama masa perkuliahan.
4. Seluruh Bapak dan Ibu dosen teknik elektro, khususnya kepada bapak Ir. T. Ahri Bahriun, M.Sc., bapak Ir. Pernantin Tarigan, M.Sc., bapak Soeharwinto, S.T., M.T., bapak Tigor Hamonangan Nasution, ST., MT., bapak Ir. Kasmir Tanjung, bapak Dr. Fahmi, ST M.Sc. Ph.D., bapak Suherman, ST., M.Comp., Ph.D., bapak ir. M. Zulfin, MT., yang telah banyak mengajarkan dan berbagi pengalaman kepada penulis.
5. Seluruh staf pegawai Departemen Teknik Elektro FT USU Kak Umi, Kak Fika, Bang Divo dak pak Darsono yang telah membantu penulis dalam pengurusan administrasi.
6. Ira Suryani, Teguh Putra Utama, Puspita Tri Utami dan Rina Iswara selaku saudara/i penulis yang memberikan dukungan langsung kepada penulis selama masa studi maupun saat penulisan tugas akhir ini.
7. Teman - teman saib’er selaku teman diskusi dan bermain yang memberikan motivasi kepada penulis.
8. Teman-teman satu angkatan 2015 Teknik Elektro FT USU sebagai teman seperjuangan yang selalu memberikan dukungan.
iv
9. Serta semua keluarga, kerabat, dan teman lainya yang telah banyak membatu penulis dalam menyelesaikan studi yang tidak dapat disebutkan satu persatu.
Saran dan kritik dari pembaca sangat penulis harapkan untuk menyempurnakan dan mengembangkan kajian dalam bidang terkait Tugas Akhir ini. Akhir kata, penulis berharap semoga Tugas Akhir ini dapat bermanfaat bagi pembacanya.
Medan, Oktober 2021 Penulis,
Taupan Erlangga Utama 150402063
v DAFTAR ISI
ABSTRAK ... i
KATA PENGANTAR ... ii
DAFTAR ISI ... v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ... x
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujutan Penulisan ... 3
1.4 Batasan Masalah... 3
1.5 Manfaat Penelitian ... 3
1.6 Sistematiak Penulisan ... 4
BAB II DASAR TEORI ... 5
2.1 HTTP ... 5
2.2 HTTPS ... 6
2.3 SSL/TLS ... 7
2.4 MySQL ... 9
2.5 PHP ... 10
2.6 Mikrokontroler ... 12
2.7 Packet Sniffer ... 13
vi
2.8 Enkripsi Data ... 14
BAB III METODE PENELITIAN ... 16
3.1 Metode dan Tahapan Pelaksanaan ... 16
3.2 Identifikasi Kebutuhan/Persyaratan Sistem (Requirements) ... 17
3.3 Perancangan Sistem ... 18
3.3.1. Kebutuhan Alat ... 19
3.3.2. Perancangan Perangkat Keras ... 23
3.3.3. Perancangan Perangkat Lunak ... 25
3.3.4. Perancangan Halaman Web ... 27
3.4 Implementasi Rancangan Sistem ... 28
3.4.1. Implementasi Perancangan Perangkat Keras ... 28
3.4.2. Implementasi Perancangan Perangkat Lunak ... 28
3.4.3. Implementasi Perancangan Halaman Web... 29
3.5 Pengujian ... 30
BAB IV PENGUJIAN DAN ANALISA ... 32
4.1 Kalibrasi dan Pengujian Modul PZEM-004T ... 32
4.2 Pengujian Keseluruhan Sistem ... 33
4.2.1. Pengujian Pengiriman Data Tanpa Enkripsi ... 34
4.2.2. Pengujian Pengiriman Data Dengan Enkripsi ... 36
4.3 Analisa Sistem ... 40
4.3.1. Batasan Analisa Sistem ... 40
4.3.2. Analisa Sistem ... 40
BAB V KESIMPULAN DAN SARAN ... 43
5.1 Kesimpulan ... 43
vii
5.2 Saran ... 43 DAFTAR PUSTAKA ... 45 LAMPIRAN ... 48
viii
DAFTAR GAMBAR
Gambar 2.1 Penampakan Ikon Pada Website Yang Menggunakan SSL dan Yang
Tidak Menggunakan SSL ... 8
Gambar 2.2 Beberapa Jenis Mikrokontroler ... 12
Gambar 2.3 Interface awal Wireshark ... 14
Gambar 3.1 Diagram Blok Sistem ... 18
Gambar 3.2 Module Arduino Uno ... 20
Gambar 3.3 Raspberry Pi 3 B+ ... 20
Gambar 3.4 Module PZEM-004T ... 21
Gambar 3.5 Halaman Muka Wireshark ... 23
Gambar 3.6 Diagram Blok Perangkat Keras ... 23
Gambar 3.7 Rangkaian Skematik Sistem 3 Phase Power Meter ... 24
Gambar 3.8 Diagram Alir Sistem Pada Alat ... 26
Gambar 3.9 Diagram Alir Halaman Web ... 27
Gambar 3.10 Hasil Mounting Perangkat Keras Yang Terintegrasi... 28
Gambar 3.11 Halaman Web ... 29
Gambar 3.12 Struktur Data Penyimpanan Pada Database ... 30
Gambar 3.13 Percobaan Pengiriman Data ... 31
Gambar 4.1 Proses Kalibrasi Modul PZEM-004T ... 32
Gambar 4.2 Data Pertama ... 34
Gambar 4.3 Data ke-30 ... 35
Gambar 4.4 Data ke-70 ... 35
Gambar 4.5 Data ke 100... 36
Gambar 4.6 Data Terenkripsi Pertama ... 37
ix
Gambar 4.7 Data Terenkripsi ke-30 ... 38
Gambar 4.8 Data Terenkripsi ke-70 ... 38
Gambar 4.9 Data Terenktipsi ke-100 ... 39
Gambar 4.10 Proses Handshake ... 42
x
DAFTAR TABEL
Tabel 2.1 Daftar Fungsi Khusus PHP Untuk Mengakses MySQL ... 10 Tabel 4.1 Perbandingan Pengiriman Data Tanpa atau Dengan Proses Enkripsi .. 40
BAB I PENDAHULUAN 1.1. Latar Belakang
Data penting seperti data pribadi, data perusahaan, data kepemerintahan, dan data penting lainnya haruslah disimpan ditempat yang aman. Keamanan penyimpanan data ini sangat penting karena pengguna tidak ingin data yang mereka simpan ke internet sampai diubah-ubah atau bahkan dicuri.
Ada beberapa cara yang bisa kita lakukan agar data yang kita simpan ke internet bisa lebih aman, salah satu caranya yaitu dengan menenkripsikan data tersebut ketika data hendak dikirim. Pengenkripsian data ini bertujuan agar ketika data yang dikirim berhasil diketahui, maka isi data tidak akan diketahui karena isi data yang dikirim tidak lagi dalam bentuk plaintext.
Pada power meter 3 fase berbasis mikrokontroler yang memiliki modul komunikasi GSM telah dibuat dan diuji dengan hasil yang cukup baik. Sistem pengiriman data dari power meter 3 fase menuju database menggunakan protokol komunikasi HTTP (HyperText Transfer Protocol). Sistem pengiriman data menggunakan protokol komunikasi HTTP sanagt tidak aman. Pasalnya hanya dengan melakukan sniffing data, data yang telah dikirimkan dari power meter 3 fase ke database yang menggunakan protokol komunikasi HTTP dapat dibaca karena data yang dikirim masih dalam bentuk plaintext. Hal ini mengakibatkan data akan sangat tidak aman[10].
Pengiriman paket data yang efektif harus memenuhi beberapa syarat, yaitu pertama adalah aman dari serangan, kemudian efisien dalam performa pengiriman
data dan yang terakhir efektif dengan sehubungan pada kompleksitas ruang dan waktu[1].
Oleh karena itu pada penelitian kali ini akan dirancang kembali sebuah power meter 3 fase yang pengiriman datanya bisa diamankan. Protokol komunikasi data yang digunakan diubah menjadi HTTPS (Hypertext Transport Protokol Secure) dan protokol enkripsi datanya adalah SSL/TLS.
1.2. Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan diatas, maka masalah yang akan dibahas adalah Bagaimana membuat modul enkripsi data pada power meter 3 fase berbasis mikrokontroler
1.3. Tujuan Penulisan
Tujuan dari skripsi ini adalah untuk meningkatkan keamanan data yang akan dikirim dari mikrokontroler ke database menggunakan protokol SSL/TLS.
1.4. Batasan Masalah
Adapun batasan masalah pada penulisan skripsi ini adalah : 1. Protokol enkripsi data yang digunakan adalah SSL/TLS 2. Protokol komunikasi data yang digunakan adalah HTTPS.
3. Target implementasi protokol SSL/TLS adalah sistem berbasis mikrokontroler.
4. Sistem berbasis mikrokontroler yang digunakan mendukung bahasa pemrograman Pyhton
5. Parameter yang akan ditampilkan pada website adalah arus, tegangan, daya, factor daya dan frekuensi listrik.
6. Data pengukuran yang akan direkam adalah data dari awal pengukuran hingga pengukuran terakhir.
7. Penyajian data dalam bentuk grafik dapat disesuaikan dengan periode waktu yang diinginkan (per tahun, per bulan, per minggu, atau per hari) 8. Pengolahan data menggunakan database MySQL.
9. Sistem operasi yang digunakan pada platform mikrokontroler adalah sistem operasi berbasi Unix
10. Untuk pembacaan parameter tegangan, arus, frekuensi menggunakan mikrokontroler Arduino UNO yang dilengkapi dengan modul-modul yang diperlukan.
1.5. Manfaat Penelitian
Adapun manfaat penelitian pada skripsi ini adalah peningkatan dari alat yang telah dibuat sebelumnya dimana pada alat yang dibuat ini sudah dilengkapi dengan modul keamanan data.
1.6. Sistematika Penelitian
Skripsi ini disusun berdasarkan sistematika penulisan sebagai berikut :
BAB I PENDAHULUAN
Bab ini menjelaskan mengenai latar belakang, rumusan masalah, tujuan penelitian, batasan masalah, manfaat penelitan, metode dan sistematika penelitian.
BAB II DASAR TEORI
Bab ini membahas mengenai teori tentang Rasberry pi, HTTP, HTTPS, MYSQL, Packet Sniffer, PHP dan SSL.
BAB III PERANCANGAN SISTEM
Pada bab ini dijelaskan tentang perancangan sistem perancangan perangkat keras, dan perancangan perangkat lunak.
BAB IV PENGUJIAN DAN ANALISIS
Bab ini membahas tentang pengujian dan analisis terhadap sistem yang telah dirancang.
BAB V KESIMPULAN DAN SARAN
Bab ini membahas tentang kesimpulan dari perancangan dan saran-saran yang mungkin untuk pengembangan lebih lanjut.
BAB II DASAR TEORI 2.1. HTTP
HTTP adalah sebuah protokol meminta atau menjawab antara client dan server. Di dalam komunikasi ini, komputer client melakukan permintaan dengan mengakses alamat IP atau domain (URL). Kemudian web server mengelola permintaan tersebut sesuai dengan kode yang dimasukkan.
Protokol ini dikembangkan untuk membantu protes transfer antara komputer.
Berikut adalah beberapa informasi yang bisa ditransfer menggunakan HTTP seperti dokumen, file, gambar, dan video antar komputer[2].
Contoh yang paling sederhana dari komunikasi ini adalah ketika komputer client melakukan permintaan menggunakan browser ke web server, maka web server menanggapi permintaan tersebut dengan mengirimkan data/dokumen yang tersedia di dalam web server sesuai dengan permintaan komputer client.
Selain itu, protokol HTTP cukup fleksibel dan sampai saat ini terus dikembangkan dengan penambahan beberapa fitur baru. Hal ini membuat protokol HTTP menjadi protokol yang paling dapat diandalkan dan paling cepat memproses pertukaran data[11].
2.2. HTTPS
HTTPS memiliki pengertian yang sama dengan HTTP hanya saja HTTPS memiliki kelebihan fungsi dibidang keamanan (secure). Dengan menggunakan Secure Soket Layer (SSL) atau Transport Layer Security (TLS) sebagai sublayer dibawah HTTP aplikasi layer yang biasa. Teknologi HTTPS protokol mencegah kemungkinan “dicurinya” informasi penting yang dikirimkan selama proses komunikasi berlangsung antara user dengan web server atau sebaliknya[2].
Secara teknis, website yang menggunakan HTTPS akan melakukan enkripsi terhadap informasi (data) menggunakan teknik enkripsi SSL. Enkripsi yang dilakukan pada HTTPS adalah pada data session, selain menggunakan komunikasi plain text. Dengan cara ini meskipun seseorang berhasil “mencuri” data tersebut selama dalam perjalanan user web server, orang tersebut tidak akan bisa membacanya karena sudah diubah oleh teknik enkripsi SSL.
Protokol yang digunakan HTTPS adalah Transport Layer Security (TLS) melakukan pengamanan data menggunakan 3 lapis perlindungan kunci:
1. Autentikasi
Fungsi autentikasi pada HTTPS adalah memastikan pengguna melakukan komunikasi dengan situs yang diinginkan. Pengamanan ini dilakukan untuk menanggulangi serangan man-in-the-middle (MTM). MTM merupakan serangan yang dilakukan dengan masuk ke saluran pertukaran yang sedang berlangsung.
2. Enkripsi
Tingkatan enkripsi yang dilakukan HTTPS adalah pada pertukaran data.
Enkripsi dilakukan untuk menjaga dari tindakan pencurian dan
penyadapan data pengguna. Sebelum menggunakan HTTPS dulunya data yang dikirimkan dari klien ke server tidak di enkripsi. Sehingga ketika data dikirimkan mudah saja pengguna lain melihat data tersebut. Jadi, HTTPS melakukan enkripsi sehingga data tidak tidak bisa dibaca secara langsung.
3. Integritas
Selama proses transfer data berlangsung menggunakan HTTPS semua data tidak dapat diubah. Data yang dikirim akan dibungkus oleh protokol atau aturan-aturan. Proses ini dikenal dengan istilah encapsulation yang terjadi pada sisi pengirim dan decapsulation pada sisi penerima[12].
2.3. SSL/TLS
TLS adalah Transport Layer Security yang mengamankan privasi data, sedangkan SSL merupakan singkatan dari Secure Sockets Layer yang merujuk pada jenis keamanan digital yang memperbolehkan komunikasi dienkripsi di antara website dan web browser.
Secara digital, cara kerja SSL adalah dengan mengunci cryptographic key ke pusat informasi yang hendak diidentifikasi. Data pun akan terenkripsi dengan baik selama proses transfer sehingga pihak ketiga tidak bisa masuk dan mencuri informasi yang sensitif.
Tak hanya private key dan public key, SSL/TLS juga memiliki session key untuk setiap secure session yang unik. Pada saat visitor mengetikkan alamat URL yang telah diamankan SSL ke kolom web browser atau membuka halaman yang sudah dilindungi, browser dan web server akan membuat koneksi.
Selama koneksi awal, public key dan private key akan digunakan untuk membuat session key, yang kemudian mengenkripsi dan mendekripsi data yang sedang ditransfer. Session key ini akan tetap valid untuk waktu yang terbatas dan hanya digunakan di session tertentu.
Kita bisa tahu apakah suatu website menggunakan SSL atau tidak dari adanya ikon gembok atau bar hijau yang muncul di atas browser. Ikon tersebut dapat diklik sehingga kita bisa tahu siapa yang menyimpan informasi sertifikat dan juga untuk mengelola pengaturan SSL[13]. Penjelasan diatas dapat dilihat pada Gambar 2.1
Gambar 2.1 Penampakan Ikon Pada Website Yang Menggunakan SSL dan Yang Tidak Menggunakan SSL
Sertifikat SSL/TLS bertanggung jawab untuk memastikan bahwa hanya ada satu orang atau ogranisasi yang dizinkan uploader yang dapat mengakses data yang sedang dipindahkan. Tentunya hal ini sangatlah penting mengingat ada banyak perangkat dan server yang harus dilewati oleh suatu informasi sebelum akhirnya tiba di ‘tempat tujuan’.
2.4. MySQL
MySQL adalah database paling populer dengan open source yang dikembangkan dan didukung oleh Oracle Corporation. Karena sifat yang sangat baik dalam masalah kecepatan, keandalan dan konfigurasi yang mudah, semakin banyak diimplementasikan pada desktop, sistem tertanam, bersama dengan aplikasi lain seperti clients, web servers, computing clauster dan sebagainya.
Saat ini, keamanan penyimpanan data menjadi perhatian besar dan semakin menarik perhatian pengguna. MySQL mengambil keuntungan dari sistem ini untuk memberikan berbagai operasi hak istimewa untuk pengguna yang diautentikasi dan fungsi enkripsi untuk memberikan keamanan password atau data sensitif lainnya. Itu sebabnya, fungsi enkripsi lebih sentral meskipun kontrol akses data dapat didominasi oleh sistem hak istimewa, sementara efek sebenarnya sangat dipengaruhi oleh keamanan sandi dan informasi penting terkait. Jadi fungsi enkripsi memainkan peran penting sebagai dinding realisasi keamanan MySQL[3].
MySQL menggunakan keamanan berdasarkan Access Control Lists (ACLs) untuk semua koneksi, kueri, dan operasi lain yang dapat dicoba dilakukan oleh pengguna. Ada juga dukungan untuk koneksi terenkripsi SSL antara klien dan server MySQL[16].
2.5. PHP
PHP merupakan bahasa pemrograman yang digunakan untuk membuat program website dimana kode program yang telah dibuat dikompilasi dan dijalankan pada sisi server untuk menghasilkan halaman website yang dinamis.
PHP dibuat pada tahun 1994 oleh Rasmus Lerdorf. Pada awalnya PHP didirikan
untuk Personal Home Page. Karena memiliki banyak manfaat dan dapat berkembang dengan baik maka PHP kemudian disebut dengan PHP : Hypertext Preprocessor. Pada januari 2001 tercatat sebanyak lima juta domain website menggunakan pemrograman PHP.
PHP merupakan perangkat lunak open source. Penulisan kode program PHP menyatu dengan HTML yang berjalan pada sisi server. Hal ini berarti semua sintaks yang telah ditulis akan sepenuhnya dijalankan pada server, hanya hasilnya saja yang dikirim ke sisi browser. PHP merupakan bahasa pemrograman yang sesuai untuk membuat aplikasi website dinamis karena memiliki performa yang tinggi, mudah dipelajari, multiplatform, aman, open source, serta mudah dikoneksikan dengan berbagai macam sistem database[8].
PHP mempunyai banyak fungsi bawaan (reserved word) dengan beragam kemampuan, mulai menampilkan informasi, memanipulasi informasi, keperluan kondisional, keperluan perulangan, sampai pengaksesan database, termasuk MySQL. Hubungan antara PHP dan MySQL sangat baik[4]. Berikut adalah daftar beberapa fungsi PHP yang secara khusus digunakan untuk mengakses dan mengelolah database MySQL yang ditunjukkan oleh Tabel 2.1[9].
Tabel 2.1 Daftar Fungsi Khusus PHP Untuk Mengakses MySQL
MYSQL Fungsi
mysql_connect Digunakan untuk membuka hubungan (koneksi) dengan MySQL server
mysql_pconnect Membuka hubungan (koneksi) permanen/tetap dengan MySQL server
mysql_close Menutup hubungan (koneksi) dengan MySQL server
mysql_create_db Membuat sebuah database baru pada server database MySQL.
mysql_drop_db Mendrop atau menghapus sebuah database pada server database MySQL
mysql_select_db Memilih sebuah database sebagai database aktif
mysql_query Mengirim perintah SQL ke server MySQL untuk dieksekusi
mysql_db_query Mengirim perintah SQL ke server MySQL pada database aktif
mysql_fetch_array Mengambil baris hasil sebagai array assosiatif mysql_result Menampilkan data hasil query
mysql_fetch_row Menampilkan baris hasil array satu persatu mysql_affected_row Menampilkan nomor baris akibat dari insert,
update, delete yang terakhir
mysql_num_rows Menampilkan nomor baris pada hasil. Perintah ini hanya bisa digunakan pada select
mysql_fetch_field Mencari informasi kolom dari dari hasil, dan menampilkannya sebagai obyek
mysql_fetch_lengths Menampilkan panjang beberapa field pada baris terakhir
mysql_fetch_object Menampilkan baris hasil berupa obyek mysql_field_name Menampilkan nama field tertentu mysql_list_fields Menampilkan daftar field
mysql_num_fields Menampilkan nomor field mysql_field_seek Mencari field tertentu
mysql_field_type Mendapatkan tipe field tertentu
mysql_insert_id Mendapatkan id dari operasi insert sebelumnya mysql_data_seek Memindahkan hasil internal
mysql_free_result Menampilkan memori yang bebas
mysql_errno Menampilkan pesan error dari operasi yang dilakukan terakhir kali
mysql_error Menampilkan pesan error berupa text dari operasi yang dilakukan terakhir kali
mysql_list_dbs Menampilkan daftar database yang ada pada database MySQL
mysql_list_tables Menampilkan daftar tabel yang ada pada database MySQL
mysql_field_len Menampilkan panjang field tertentu
mysql_field_table Mendapatkan nama field dari tabel tertentu mysql_tablename Mendapatkan nama tabel
2.6. Mikrokontroler
Mikrokontroler adalah suatu chip berupa IC (Integrated Circuit) yang merupakan sistem mikroprosesor lengkap dengan komponen pendukukung seperti antarmuka I/O, memori, dan juga periferal lainya[5]. Mikrokontroler dalam penggunaanya difungsikan sebagai otak dari suatu piranti yang memproses
masukan dapat berupa sensor atau tranducer untuk mengontol akuator seperti motor, LED, relay dan lain-lain. Dalam pengaplikasiannya mikrokontroler mengeksikusi proses - proses berdasarkan program yang dimasukkan kedalamnya.
Kecepatan pengolahan data pada mikrokontroler lebih rendah jika dibandingkan dengan PC. Pada PC kecepatan mikroprosesor yang digunakan saat ini telah mencapai orde GHz, sedangkan kecepatan operasi mikrokontroler pada umumnya berkisar MHz. Begitu juga kapasitas RAM dan ROM pada PC yang bisa mencapai orde Gbyte, dibandingkan dengan mikrokontroler yang hanya berkisar pada orde byte/Kbyte.
Meskipun kecepatan pengolahan data dan kapasitas memori pada mikrokontroler jauh lebih kecil jika dibandingkan dengan komputer personal, namun kemampuan mikrokontroler sudah cukup untuk dapat digunakan pada sistem yang tidak terlalu kompleks dan tidak memerlukan kemampuan komputasi yang tinggi. Mikrokontroler dapat dilihat pada Gambar 2.2.
Gambar 2.2 Beberapa Jenis Mikrokontroler 2.7. Packet Siffer
Sniffing/snifer adalah sebuah kegiatan untuk mencari atau memantau sebuah paket data yang dikirimkan oleh target pada sebuah jaringan yang melewati
sebuah protokol. Untuk mendapatkan sebuah informasi tersebut maka attacker akan membelokkan sebuah paket data/informasi pada komputer attacker.
Sniffing pada dasarnya terbagi kedalam 2 kategori yaitu sniffing aktif dan sniffing pasif. Sniffing aktif adalah kegiatan yang dapat melakukan perubahan paket data dalam jaringan agar bisa melakukan sniffing. Sedangkan sniffing pasif adalah kebalikan dari sniffing aktif yaitu melakukan kegiatan menyadap/mencari informasi yang di inginkan seorang attacker tanpa merubah paket apapun di dalam jaringan dengan kata lain hanya ingin mengetahui keamanan sebuah jaringan.
Berikut ini beberapa informasi yang didapatkan dari kegitan sniffing :
1. Informasi email 2. Kata sandi FTP 3. Kata sandi telnet 4. Dan lain-lain
Cara kerja sniffing adalah ketika menggunakan sebuah komputer yang terhubung dengan jaringan kantor, instansi sekolah atau yang lainnya. Saat mengirimkan sebuah pesan/email kepada jaringan diluar, maka pesan akan dikirimkan melalui komputer melewati jaringan (wifi, hostpot, server, internet dll ) yang terhubung dengan komputer pengirim pengirim pesan. Setelah itu maka pesan akan sampai pada jaringan yang dituju. Pada saat itulah aktifitas sniffing berjalan. Oleh siapa ? Bisa oleh seorang administration jaringan yang mengendalikan server, bisa dengan user/ pengguna lain yang terhubung satu
jaringan, atau kemungkinan lain adalah dilakukan oleh hacker/craker, atau oleh seseorang yang mengerti dengan teknik sniffing tersebut[14]
Tools yang dapat digunakan untuk sniffing seperti Wireshark, Capsa network analyzer, Omnipeek network analyzer, Smac, Ettercap, Cain & abel dan lain-lain. Berikut ini adalah interface awal dari salah satu sniffing tools yang ditunjukkan pada Gambar 2.3
Gambar 2.3 Interface awal Wireshark
2.8. Enkripsi Data
Enkripsi adalah sebuah kode yang digunakan untuk menyembunyikan isi pesan atau data. Ini adalah teknik lama, tetapi metode lama jauh lebih sederhana daripada yang kita gunakan saat ini. Metode enkripsi paling awal cenderung melibatkan perubahan urutan huruf, atau mengganti huruf dengan karakter lain.
Seiring berjalannya waktu, khususnya di abad ke-20, orang menjadi jauh lebih baik dalam memecahkan kode-kode ini, sehingga menjadi penting untuk
membuat kode yang lebih sulit. Munculnya komputer membuat kode cracking yang dulu dianggap rumit menjadi cukup mudah. Banyak hal menjadi lebih rumit oleh pertumbuhan komunikasi digital yang cepat dan kebutuhan keamanannya yang kompleks. Sekarang, jenis enkripsi yang canggih menjadi pelindung dari apa yang membuat kita tetap aman di internet[18].
Ada 2 jenis metode pengenkripsian data : 1. Symmetric-key encryption
Metode Symmetric-key encryption ini melibatkan satu kunci untuk mengenkripsi dan mendeskripsi data. Symmetric-key encryption sangat bagus untuk digunakan ketika hanya satu orang yang perlu mengenkripsi dan mendekripsi data, atau ketika banyak pihak memiliki kesempatan untuk membagikan kunci sebelumnya. Contoh penggunaan Symmetric- key encryption ini adalah 3DES dan AES, tetapi 3DES dan AES menggunakan algoritma matematika yang kompleks dalam pengenkripsian datanya.
2. Public-key encryption
Metode Public-key encryption ini memerlukan satu kunci untuk mengenkripsi data dan satu lagi untuk mendekripsinya. Setiap pengguna menghasilkan sepasang kunci, yang dibuat dari kunci publik dan pribadi.
Kunci publik dibagikan secara terbuka, sedangkan kunci pribadi dirahasiakan sebagai kata sandi. Karena hubungan matematis yang kompleks antara dua kunci, setelah data dienkripsi dengan kunci publik, data hanya dapat didekripsi dengan kunci pribadi yang cocok. Contoh penggunaan Public-key encryption ini adalah RSA.
BAB III
METODE PENELITIAN 3.1. Metode dan Tahapan Pelaksanaan
Penelitian ini menggunakan metode eksperimental skala laboratorium, dengan komparasi terhadap sistem yang sebelumnya telah dibuat. Implementasi rancangan sistem yang diusulkan akan dicobakan dengan variabel utama pengujian adalah keberhasilan proses enkripsi data yang dikirimkan dari perangkat ke server.
Agar perancangan ini dapat berjalan dengan efesien dan terarah, maka perlu dilakukan tahapan – tahapan pelaksanaan, sebagai berikut:
a. Identifikasi kebutuhan/persyaratan sistem (Requirements)
Pada tahap ini dijelaskan kebutuhan sistem yang harus dipenuhi agar tujuan penelitian ini dapat tercapai.
b. Perangcangan sistem
Pada tahap ini pembuatan model sistem 3 Phasa Power Meter sehingga didapatkan gambaran kebutuhan sistem yang akan digunakan, baik kebutuhan perangkat keras maupun perangkat lunak.
c. Implementasi Rancangan Sistem
Pada tahap ini dilakukan pengimplementasian dari perancangan perangkat keras dan perangkat lunak.
d. Pengujian
Pada tahap ini dilakukan konfigurasi pada sisi server agar alat dan web penampil dapat saling berhubungan. Kemudian dilakukan pengujian
pengiriman data dari perangkat meter ke server, untuk melihat apakah proses enkripsi telah berjalan dengan baik atau tidak.
3.2. Identifikasi Kebutuhan/persyaratan Sistem (Requirements)
Pada tugas akhir ini dirancang sebuah perangkat untuk mengukur besaran listrik yang datanya dikirim ke database dan data yang dikirimkan ini harus aman.
Teknik pengiriman data yang aman bisa menggunakan pengenkripsisan data ketika data akan dikirim. Pengenkripsian data ini dilakukan oleh mikrokontroler dan pengiriman data yang terenkripsi ini menggunakan media komunikasi Wi-fi.
Dari penjelasan diatas, dapat dilihat kebutuhan sistem yang akan dibuat.
Diantaranya sebagai berikut :
a. Modul pengukuran besaran listrik
Modul pengukuruan besaran listrik yang dibutuhkan pada penelitian ini adalah modul yang dapat mengukur besaran listrik seperti tegangan, arus, frequensi dan yang lainnya. Dibutuhkan 3 buah modul pengukuran besaran listrik, karena alat ini digunakan untuk mengukur besaran listrik pada listrik 3 fase.
b. Mikrokontroler
Proses enkripsi pada alat yang akan dibuat ini terjadi pada mikrokontroler dan pengenkripsian datanya menggunakan protokol SSL/TLS. Jadi, mikrokontroler yang dibutuhkan haruslah bisa mengimplementasikan protokol SSL/TLS ini. Kemudian mikrokontroler juga harus memiliki pin komunikasi data yang banyak agar mudah terhubung dengan modul pengukuran besaran listrik.
c. Server
Server berfungsi sebagai tempat penyimpanan data dan juga pendeskripsian data besaran listrik.
d. Web penampil
Web penampil berfungsi sebagai media penampil data besaran listrik yang telah dibaca oleh power meter 3 fase.
3.3. Perancangan Sistem
Pada subbab sebelumnya telah dijelaskan kebutuhan dari power meter 3 fase ini agar dapat memenuhi tujuan yang diinginkan. Untuk itu dibuatlah diagram blok dari sistem yang ditunjukkan pada Gambar 3.1.
Gambar 3.1 Blok Diagram Sistem
Pada saat sistem ini mulai berjalan, modul pengukuran besaran listrik akan membaca nilai arus, nilai tegangan dan nilai frekuensi. Kemudian mikrokontroler mengambil data yang telah dibaca oleh modul pengukuran. Setelah data terkumpul, data akan dienkripsi langsung oleh mikrokontroler dengan menggunkan protokol SSL/TLS. Setelah proses enkripsi data berhasil, data kemudian akan dikirim ke database. Database akan langsung mendeskripsikan data yang dikirim oleh mikrokontroler lalu menyimpan datanya. Setelah itu web penampil akan mengambil data dari database lalu menampilkannya pada halaman web.
.
3.3.1. Kebutuhan Alat
Pada subbab sebelumnya telah dijelaskan bahwa perancangan 3 Phase Power Meter membutuhkan perangkat keras dan perangkat lunak. Maka, dibutuhkan pemilihan tipe perangkat yang sesuai dengan kebutuhan sistem yang dirancang.
1. Arduino UNO
Arduino UNO adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.
Uno berbeda dengan semua board sebelumnya dalam hal koneksi USB-to-serial yaitu menggunakan fitur Atmega8U2 yang diprogram sebagai konverter USB-to-serial berbeda dengan board sebelumnya yang menggunakan chip FTDI driver USB-to-serial[13]. Berikut bentuk fisik dari Arduino Uno ditunjukkan pada Gambar 3.2.
Gambar 3.2 Module Arduino Uno
Pada penelitian ini Arduino Uno digunakan sebagai mikrokontroler yang akan membaca data masukan dari modul PZEM-004t dengan menggunakan koneksi serial.
2. Raspberry Pi 3 B+
Raspberry Pi 3 B+ adalah sebuah mikrokomputer yang bisa digunakan untuk perangkat komputer dengan spesifikasi chipset ARM Cortex A53 64- bit dan 4 core CPU, dengan kecepatan 1,2GHz. Chipset ini memiliki menejemen suhu yang lebih baik sehingga dapat berjalan pada kecepatan penuh dengan lebih lama sebelum mengalami throttling akibat panas[1].
Berikut bentuk fisik dari Raspberry Pi 3 B+ ditunjukkan pada Gambar 3.3.
Gambar 3.3 Raspberry Pi 3 B+
Pada penelitian ini Raspberry Pi 3 B+ digunakan sebagai media pengirim data. Raspberry Pi 3 B+ dapat menggunakan protokol SSL/TLS dalam pengiriman datanya yang artinya data yang akan dikirim dapat dienkripsikan.
3. PZEM-004T
PZEM-004T adalah sensor yang dibuat oleh Piecefair Electronics yang digunakan pada penelitian ini untuk mengukur besaran tegangan, arus, daya aktif, energi dan frequensi dengan menggunakan sebuah non-invasif current transformer. PZEM-004T mendapatkan datanya dari CT current transformer dan berkomunikasi dengan sebuah mikrokontroler melalui UART[6]. Berikut bentuk fisik dari PZEM-004T ditunjukkan pada Gambar 3.4.
Gambar 3.4 Module PZEM-004T Berikut spesifikasi dari PZEM-004T :
• Komunikasi serial TTL
• Pengukur daya : 0 ~ 9999kW
• Pengukuran tegangan : 80 ~ 260VAC
• Pengukuran Arus : 0 ~ 100A
4. MySQL
Pada penelitian ini, server yang digunakan adalah MySQL yang memiliki layanan realtime database. Layanan ini menggunakan sinkronasi data setiap kali ada data yang dikirimkan oleh sipengirim, semua perangkat yang terhubung dengan database akan menerima update dalam waktu milidetik. MySQL juga sangat bagus digunakan untuk kebutuhan mendeskripsikan data yang telah dienkripsi.
5. Wireshark
Wireshark adalah protocol penganalisa jaringan paling populer di dunia. Wireshark memiliki fitur yang banyak dan sangat berguna dan berjalan pada sebagian besar platform komputasi termasuk Windows, OS X, Linux, dan UNIX. Wireshark memiliki alat untuk menangkap, melihat, dan menganalisis paket data. Ini digunakan untuk pemecahan masalah jaringan, analisis, perangkat lunak dan pengembangan protokol komunikasi, dan pendidikan.
Pada penelitian ini Wireshark digunakan untuk mengambil data komunikasi antara Raspberry Pi dan database, yang nantinya data tersebut akan dianalisa untuk mendapatkan hasil yang diinginkan. Berikut adalah tampilan utama pada Wireshark yang ditunjukkan pada Gambar 3.5.
Gambar 3.5 Halaman muka Wireshark 3.3.2. Perancangan Perangkat Keras
Perancangan Smart 3 Pahse Power Meter menggunakan perangkat keras berupa Module PZEM-004T, Arduino UNO dan Raspberry PI 3 B+.
Pada Gambar 3.6 dapat dilihat blok diagram perangkat keras.
Gambar 3.6 Diagram Blok Perangkat Keras
Pada Gambar 3.6 dapat dilihat bahwa catu daya yang digunakan adalah adaptor 5 volt, dengan menggunakan adaptor 5 volt tidak perlu menambahkan rangkaian interface untuk penyesuaian tegangan terhadap Raspberry Pi. Pada Gambar 3.6 juga dapat dilihat bahwa Arduino UNO langsung dihubungkan dengan Raspberry Pi, yang mengakibatkan Arduino UNO sudah langsung menyala ketika Raspberry Pi mendapatkan daya.
Gambar 3.7 Rangkaian Skematik Sistem 3 Phase Power Meter
Dari Gambar 3.7 rangkaian skematik sistem dapat dilihat bahwa penggunaan dari PZEM-004T adalah berjumlah 3 buah yang dimaksudkan untuk penginisialan pengukuran besaran listrik 3 fasa yaitu R, S dan T.
Gunanya adalah agar mempermudah penyimpanan data yang diambil ketika proses pengukuran dilakukan.
Pin-pin yang digunakan pada Modul PZEM-004T ini yaitu pin RX dan pin TX. Modul PZEM-004T fasa R untuk pin RX terhubung dengan D3 dan pin TX dengan D4. Modul PZEM-004T fasa S untuk pin RX terhubung dengan D7 dan pin TX dengan D8. Modul PZEM-004T fasa T untuk pin RX terhubung dengan D12 dan pin TX dengan D13. Sedangkan untuk pin VCC dan GND terhubung ke pin 5V dan GND pada Arduino UNO.
3.3.3. Perancangan Perangkat Lunak
Tahap perancangan perangkat lunak alat 3 Phase Power Meter ialah tahap pembuatan alur program atau algoritma alat dan juga algoritma untuk mengenkripsikan data yang dikirim agar hasil yang didapatkan sesuai dengan tujuan dari pembuatan tugas akhir ini.
1. Pembuatan alur program atau algoritma alat
Pada saat sistem dijalankan hal pertama yang dilakukan oleh alat adalah memastikan modul PZEM-004T telah terhubung ke Arduino UNO. Tugas dari Arduino UNO disini adalah untuk membaca nilai besaran-besaran listrik yang didapat oleh modul PZEM-004T yang kemudian nilai hasil bacaan tersebut akan diambil oleh Raspberry Pi.
Setelah Raspberry Pi mendapatkan semua nilai besaran listrik tadi, Raspberry Pi kemudian akan mengenkripsi semua nilai tadi menjadi data acak lalu Raspberry Pi pun akan mengirimkan data tersebut ke database. Data acak yang terenkripsi ini terlebih dahulu dideskripsikan oleh database untuk mendapatkan data yang sebenarnya lalu database akan menyimpannya. Proses ini dapat dilihat pada Gambar 3.8.
Gambar 3.7 Diagram Alir Sistem Pada Alat 2. Algoritma pengenkripsian data
Pada penilitian ini, proses enkripsi yang digunakan yaitu RSA. Pada algoritma RSA seperti yang dijelaskan pada BAB sebelumnya menggunakan public key dan private key. Algoritma ini membutuhkan sebuah sertifikat untuk mengirimkan datanya. Sertifikat ini sangat berperan penting dalam pengiriman data yang akan dilakukan karena
sertifikat inilah yang akan menjadi key pada algortima ini. Ketika proses pengiriman data akan dilakukan, private key akan mengirimkan sertifikat kepada public key sebagai tanda pengenal. Lalu apabila sertifikat yang dimiliki oleh private key dibenarkan oleh public key, maka data akan dikirim oleh public key[17].
3.3.4. Perancangan Web
Tahap perancangan web ini adalah tahap pembuatan alur pengambilan data untuk menampilkan data dari database ke web penampil.
Pada saat membuka halaman web hal pertama yang terjadi adalah memastikan web telah terhubung dengan database. Kemudian web akan mengambil semua data yang tersimpan pada database. Setelah itu terjadilah beberapa perhitungan untuk melengkapi data yang ingin ditampilkan, setelah perhitungan selesai barulah semua data akan ditampilkan pada halaman web.
Proses ini dapat dilihat pada Gambar 3.9.
Gambar 3.9 Diagram Alir Halaman Web
3.4. Implementasi Rancangan Sistem
Implementasi rancangan sistem ialah tahap pembuatan perangkat keras dan perangkat lunak berdasrkan perancangan sistem yang telah dibuat.
3.3.1. Implementasi Perancangan Perangkat Keras
Seluruh komponen yang dibutuhkan untuk membuat 3 phase power meter seperti yang dijelaskan pada perancangan perangkat keras diintegrasikan yang terpusat pada Raspberry Pi 3 B+ sebagai mikrokomputer.
Setelah perangkat keras terintergrasi langkah selanjutnya adalah melakukan proses mounting atau pemasangan perangkat keras kesebuah wadah yang sudah di siapkan. Hasil dari proses mounting ini dapat dilihat pada Gambar 3.10.
Gambar 3.10 Hasil Mounting Perangkat Keras Yang Terintegrasi 3.3.2. Implementasi Perancangan Perangkat Lunak
Implementasi rancangan perangkat lunak adalah tahap pembuatan program untuk alat berdasarkan algoritma yang telah dirancang, pembuatan program menggunakan software Arduino IDE untuk Arduino Uno dan Visual Studio Code untuk Raspberry Pi.
Pada Raspberry Pi harus mengunakan sebuah library untuk bisa berkomunikasi antara Raspberry Pi dengan Arduino UNO karena komunikasi yang digunakan adalah komunikasi serial. Dan pada Raspberry Pi harus diinstall terlebih dahulu library-nya lalu bisa untuk dipergunakan.
Sertifikat yang digunakan pada penelitian kali ini adalah sertifikat dari Cloudflare. Pengenkripsian data pada alat ini terjadi pada Raspberry Pi yang mana bahasa pemograman yang digunakan adalah Python. Python menggunakan algoritma pki_helper pada librarynya untuk menciptakan private key dan public key dan juga menggunaan sertifikatnya.
3.3.3. Implementasi Perancangan Web
Implementasi perancangan web ini berfungsi agar pengguna dapat mengakses data yang telah didapatkan alat. Perancangan web ini menggunakan bahasa pemrograman PHP karena bahasa tersebut sangat mudah untuk digunakan bagi pemula. Berikut adalah tampilan halaman web yang ditunjukkan pada Gambar 3.11.
Gambar 3.11 Halaman Web
3.5. Pengujian
Server yang digunakan pada tugas akhir ini adalah MySQL. Pada tahap konfigurasi ini meliputi pembuatan database, konfigurasi pada sisi server agar alat dan web penampil dapat saling berhubungan. Pada Gambar 3.12 ditunjukan database yang telah dibuat untuk tempat penyimpanan data.
Gambar 3.12 Struktur Data Penyimpanan Pada Database
Setelah pembuatan database langkah selanjutnya adalah melakukan konfugurasi pada server agar alat perancangan dan halaman web dapat saling berhubungan. Pada konfigurasi ini fungsi yang digunakan adalah mysqli_connect.
Fungsi ini berfungsi untuk menghubungkan server dengan clinet yang mana client disini adalah alat perancangan dan web penampil.
Ada beberapa parameter ketika menggunakan fungsi mysqli_connect yaitu nama hots dari database, username MySQL yang digunakan, password dari username, dan nama tabel yang ada pada MySQL. Ketika menggunakan fungsi
mysqli_connect urutan dari parameternya haruslah seperti yang diatas agar fungsi mysqli_connect dapat berjalan.
Setelah proses konfigurasi pada server dilakukan, langkah selanjutnya adalah percobaan pengiriman data. Percobaan pengiriman data ini dilakukan untuk melihat apakah data yang dikirim sudah terenkripsi atau belum. Percobaan pengiriman data ini dapat dilihat pada Gambar 3.13
Gambar 3.13 Percobaan Pengiriman Data
Dari Gambar 3.13 dapat dilihat bahwa data yang dikirim telah terenkripsi.
Data yang dikirim oleh alat perancangan dapat dilihat pada packet no 19 dan 20.
Dari gambar juga terlihat protokol yang digunakan adalah TLS.
BAB IV
PENGUJIAN DAN ANALISA 4.1. Kalibrasi Dan Pengujian Modul PZEM-004T
Kalibrasi modul PZEM-004T bertujuan untuk mendapatkan nilai konstanta yang sesuai agar nilai pengukuran besaran listrik dari modul sama dengan atau mendekati dengan alat ukur besaran listrik(multimeter). Proses kalibrasi dilakukan beberapa kali sehingga mendapatkan nilai konstanta yang sesuai sehingga hasil pengukuran sama dengan alat ukur. Pada proses kalibrasi ini, besaran listrik yang ditentukan menjadi acuan untuk mendapankan nilai konstanta yang sesuai dengan multimeter adalah tegangan. Pada Gambar 4.1 ditunjukkan proses kalibrasi modul PZEM-004T.
Gambar 4.1 Proses Kalibrasi Modul PZEM-004T
Setelah melakukan kalibrasi modul dengan melakukan beberapa kali percobaan sehingga mendapatkan nilai konstanta yang tepat untuk alat yang digunakan.
4.2. Pengujian Keseluruhan Sistem
Pada saat pengujian keseluruhan sistem, seluruh data yang dikirim akan dibagi menjadi 2 bagian yaitu menggunakan beban dan tidak menggunakan beban.
Awal pengujian sistem dibuat tanpa beban kemudian setelah sampai setengah dari keseluruhan pengiriman data, setiap fasa akan diberi beban yang berbeda-beda.
Adapun pengujian dilakukan dengan cara berikut :
1. Pasang alat perancangan dengan modul percobaan yang telah dibuat.
2. Setelah terpasang, nyalakan modul untuk mendapatkan listrik 3 fasa.
3. Kemudian berikan daya pada Raspberry Pi untuk menghidupkan alat perancangan.
4. Setelah itu buka aplikasi Wireshark lalu jalankan aplikasinya.
5. Lalu buka window terminal untuk menjalankan program yang sudah dibuat pada Raspberry Pi.
6. Berikan beban pada setiap fasa sesuai dengan ketentuan yang diatas.
7. Apabila sudah terkumpul semua data yang dibutukan maka stop aplikasi Wireshark.
Perlu diingat bahwa pengiriman data pada alat percobaan ini dilakukan 1 menit sekali untuk meminimalisir terjadinya bug pada program pengiriman data yang mengakibatkan alat perancangan tiba-tiba berhenti mengirimkan data ke database.
Pada pengujian keseluruan sistem, dibagi kedalam 2 bagian yaitu pengujian pengiriman data tanpa enkripsi dan pengujian pengiriman data dengan menggunakan enkripsi. Pengujian ini dilakukan sebanyak 100 kali pengiriman data baik itu pengiriman data tanpa enkripsi maupun data yang sudah dienkripsi.
4.2.1. Pengujian Pengiriman Data Tanpa Enkripsi
Pada pengujian pengiriman data tanpa enkripsi ini dilakukan dengan cara mengumpulkan seluruh data pengukuran lalu data tersebut langsung dikirimkan ke database. Dari data yang dikirim tadi, 4 data diambil dari 100 data yang dikirim oleh alat sebagai acuan untuk membaca apa saja yang dikirimkan alat ke database.
Data pertama yang dikirim oleh alat ke database tidak diberi beban.
Adapun data pertama ini dapat dilihat melalui aplikasi wireshark yang ditunjukkan pada Gambar 4.2.
Gambar 4.2 Data Pertama
Dari Gambar 4.2 dapat dilihat bahwa data pertama berada pada packet 337 dan yang dikirim oleh alat ke database ada pada Hypertext Transfer Protocol. Isi dari data yang terkirim tersebut berupa Plaintext yang artinya masih bisa melihat isi data yang dikirimkan oleh alat.
Data ke-30 yang dikirim oleh alat ke database tidak diberi beban.
Adapun data ke-30 ini dapat dilihat pada aplikasi wirehark yang ditunjukkan pada Gambar 4.3.
Gambar 4.3 Data ke-30
Dari Gambar 4.3 dapat dilihat bahwa data pertama berada pada packet 8020 dan yang dikirim oleh alat ke database ada pada Hypertext Transfer Protocol. Isi dari data yang dikirim tersebut berupa Plaintext yang artinya masih bisa melihat isi data yang dikirimkan oleh alat.
Data ke-70 yang dikirim oleh alat ke database telah diberi beban.
Adapun data ke-70 ini dapat dilihat pada aplikasi wirehark yang ditunjukkan pada Gambar 4.4.
Gambar 4.4 Data ke-70
Dari Gambar 4.4 dapat dilihat bahwa data pertama berada pada packet 18898 dan yang dikirim oleh alat ke database ada pada Hypertext Transfer Protocol. Isi dari data yang dikirim tersebut berupa Plaintext yang artinya masih bisa melihat isi data yang dikirimkan oleh alat.
Data ke-100 yang dikirim oleh alat ke database telah diberi beban.
Adapun data ke-100 ini dapat dilihat pada aplikasi wirehark yang ditunjukkan pada Gambar 4.5.
Gambar 4.5 Data ke-100
Dari Gambar 4.5 dapat dilihat bahwa data pertama berada pada packet 26983 dan yang dikirim oleh alat ke database ada pada Hypertext Transfer Protocol. Isi dari data yang dikirim tersebut berupa Plaintext yang artinya masih bisa terlihat data yang dikirimkan oleh alat.
4.2.2. Pengujian Pengiriman Data Dengan Enkripsi
Pada pengujian pengiriman data dengan enkripsi ini dilakukan dengan cara mengumpulkan seluruh data pengukuran lalu data tersebut dinekripsi oleh Raspberry Pi kemudian dikirimkan ke database. Dari data yang dikirim tadi, 4
data diambil dari 100 data yang dikirim oleh alat sebagai acuan untuk membaca apa saja yang dikirimkan alat ke database.
Data pertama yang dikirim oleh alat ke database tidak diberi beban.
Adapun data pertama ini dapat dilihat melalui aplikasi wireshark yang ditunjukkan pada Gambar 4.6.
Gambar 4.6 Data Terenkripsi Pertama
Dari Gambar 4.6 dapat dilihat bahwa data pertama berada pada packet 48 dan yang dikirim oleh alat ke database ada pada Tranport Layer Security.
Isi dari data yang dikirim tersebut bukan lagi berupa Plaintext melainkan kode-kode yang membuat isi dari data tersebut sudah tidak bisa dibaca lagi.
Data ke-30 yang dikirim oleh alat ke database tidak diberi beban.
Adapun data ke-30 ini dapat dilihat melalui aplikasi wireshark yang ditunjukkan pada Gambar 4.7.
Gambar 4.7 Data Terenkripsi ke-30
Dari Gambar 4.7 dapat dilihat bahwa data pertama berada pada packet 7972 dan yang dikirim oleh alat ke database ada pada Tranport Layer Security. Isi dari data yang dikirim tersebut bukan lagi berupa Plaintext melainkan kode-kode yang membuat isi dari data tersebut sudah tidak bisa dibaca lagi.
Data ke-70 yang dikirim oleh alat ke database telah diberi beban.
Adapun data ke-70 ini dapat dilihat melalui aplikasi wireshark yang ditunjukkan pada Gambar 4.8.
Gambar 4.8 Data terenkripsi ke-70
Dari Gambar 4.8 dapat dilihat bahwa data pertama berada pada packet 20083 dan yang dikirim oleh alat ke database ada pada Tranport Layer Security. Isi dari data yang dikirim tersebut bukan lagi berupa Plaintext melainkan kode-kode yang membuat isi dari data tersebut sudah tidak bisa dibaca lagi.
Data ke-100 yang dikirim oleh alat ke database telah diberi beban.
Adapun data ke-100 ini dapat dilihat pada aplikasi wirehark yang ditunjukkan pada Gambar 4.9.
Gambar 4.9 Data terenkripsi ke-100
Dari Gambar 4.9 dapat dilihat bahwa data pertama berada pada packet 28164 dan yang dikirim oleh alat ke database ada pada Tranport Layer Security. Isi dari data yang dikirim tersebut bukan lagi berupa Plaintext melainkan kode-kode yang membuat isi dari data tersebut sudah tidak bisa dibaca lagi.
4.3. Analisa Sistem
4.3.1. Batasan Analisa Sistem
Pada penelitian ini ada beberapa batasan analisa sistem diantaranya adalah sebagai berikut.
1. Penelitian ini tidak melakukan analisa terhadap besaran listrik yang didapat ataupun ditampilkan.
2. Penelirian ini tidak melakukan analisa terhadap jenis modul Wi-fi yang digunakan.
3. Penelitian ini tidak melakukan analisa konsumsi daya pada alat.
4.3.2. Analisa Sistem
Dalam penelitian ini dilihat apakah data yang dikirim dari alat bisa dienkripsi atau tidak dan juga membandingkan hasil dari data yang dikirim tanpa enkripsi dan data yang dikirim dengan menggunakan enkripsi. Berikut adalah perbandingan hasil pengiriman data yang ditunjukkan pada Tabel 4.1.
Tabel 4.1. Perbandingan pengiriman data tanpa atau dengan proses enkripsi
Packet
Tanpa Enkripsi Dengan Enkripsi
Data ke-1
Data ke-30
Data ke-70
Data ke- 100
Data ke-1
Data ke-30
Data ke-70
Data ke- 100 No Packet 337 8020 18898 26983 48 7972 20083 28164
Destinasi
packet 103.21.14.205 172.67.160.140
Destinasi
port 80 443
Besar
memori 244B 244B 246B 246B 329B 329B 317B 329B
Isi packet Plaintext Tidak plaintext
Dari Tabel 4.1 dapat dilihat bahwa tujuan pengiriman datanya berbeda begitu pula dengan port yang digunakan. Port yang digunakan ketika data dikirim tanpa proses enkripsi adalah port 80, sedangkan pengiriman data dengan proses enkripsi menggunakan port 443. Dari Tabel 4.1 juga bisa dilihat bahwa ukuran memori pada pengiriman data menggunakan proses enkripsi lebih besar dari pengiriman data tanpa proses enkripsi. Perbedaan ukuran memori ini berkisar antara 22% sampai 27%.
Pengiriman data tanpa enkripsi dapat dilihat hasilnya dari Gambar 4.1, Gambar 4.2, Gambar 4.3 dan Gambar 4.4. Dari gambar yang disebutkan tadi dapat dilihat bahwa data yang tidak dienkripsi masih bisa dilihat dan dibaca isi dari data yang dikirim, bahkan besaran-besaran listrik dari hasil pengukuran pun dapat dilihat dengan jelas pada HTML form URL Encode. Hal ini dapat menyebabkan data yang dikirim tersebut bisa dimanipulasi. Maka dari itu enkripsi data sangat penting dalam hal pengiriman data seperti ini.
Pengiriman data dengan enkripsi dapat dilihat hasilnya dari Gambar 4.5, Gambar 4.6, Gambar 4.7 dan Gambar 4.8. Dari gambar yang disebutkan tadi dapat dilihat bahwa data yang terenkripsi tidak bisa dibaca karena sudah berubah menjadi kode-kode unik. Yang berperan dalam pengubahan isi data menjadi kode-kode unik seperti itu adalah Transport Layer Security atau TLS.
Pada penelitian ini, TLS yang digunakan adalah versi 1.2 atau bisa dilihat pada wireshark dengan kode TLSv1.3 pada barisan protocol.
Setiap data yang akan dikirim baik data yang dikirim dengan enkripsi atau tidak harus terlebih dahulu melakukan proses handshake antara alat dengan server. Proses handshake ini bertujuan untuk menghubungkan alat
dengan server agar data bisa dikirim ke database. Contoh proses handshake ini dapat dilihat pada Gambar 4.10.
Gambar 4.10 Proses handshake
Dari Gambar 4.10 dapat kita lihat bahwa packet 41 berisi pesan ”Client Hello” yang dikirim oleh alat dengan alamat IP 192.168.43.68 ke server dengan alamat IP 172.67.160.140. Setelah itu server akan membalas dengan pesan “Server Hello, Change Chiper Spec” yang terdapat pada packet 43.
Maksud dari pesan yang dikirim oleh server ke alat adalah menyatakan bahwa alat sudah terhubung dengan server, setelah itu barulah alat dapat mengirim data ke database.
43 BAB V
KESIMPULAN DAN SARAN 5.1. Kesimpulan
Dari hasil pengujian dan implementasi yang telah dilakukan pada bab sebelumnya, maka dapat diperoleh kesimpulan sebagai berikut:
1. Untuk menambahkan pengamanan pada data, platform mikrokontrolernya harus diganti karena bahasa pemrograman yang digunakan untuk mengamankan data adalah Python, jadi mikrokontroler yang dipilih haruslah bisa menggunakan bahasa pemrograman Python juga,.
2. Setiap kali data akan dikirim oleh alat, alat terlebih dahulu melakukan proses handshake, dan jika prosesnya berjalan lancer maka data sudah bisa dikirim ke database.
3. Data yang dikirim sudah dienkripsi oleh alat, sehingga isi data yang dikirim sudah tidak dalam bentuk plaintext lagi.
4. Data yang dikirim dapat diterima dan disimpan ke database, dan halaman web dapat menampilkan data yang tersimpan pada database.
5. Data yang dikirim tanpa enkripsi menggunakan protokol HTTP sedangkan data yang dikirim dengan enkripsi menggunakan protokol TLSv1.3.
5.2. Saran
Adapun beberapa saran yang dapat diberikan sehubung dengan pelaksanaan skripsi ini adalah sebagai berikut:
44
1. Untuk perancangan selanjutnya diharapkan agar fitur-fiturnya bisa dikembangkan lagi.
45
DAFTAR PUSTAKA
[1] S. Natarajan and T. Wolf, “Encrypted Packet Forwarding in Virtualized Networks,” in 2011 ACM/IEEE Seventh Symposium on Architectures for Networking and Communications Systems, Brooklyn, NY, USA, Oct. 2011, pp. 213–214. doi: 10.1109/ANCS.2011.38.
[2] A. A. Zabar and F. Novianto, “KEAMANAN HTTP DAN HTTPS BERBASIS WEB MENGGUNAKAN SISTEM OPERASI KALI LINUX,”
Komputa J. Ilm. Komput. Dan Inform., vol. 4, no. 2, pp. 69–74, Oct. 2015, doi: 10.34010/komputa.v4i2.2427.
[3] “Zhang et al. - 2015 - The Security Analysis of MySQL’s Encryption Functi.pdf.”
[4] Ji Wen, Yang Zhang, Yong Yan, and Shunren Xia, “A Web-based Examination System Based on PHP+MySQL,” in 2005 IEEE Engineering in Medicine and Biology 27th Annual Conference, Shanghai, China, 2005, pp.
2882–2885. doi: 10.1109/IEMBS.2005.1617076.
[5] A. N. N. Chamim, “Penggunaan Microcontroller Sebagai Pendeteksi Posisi Menggunakan Sinyal GSM,” vol. 4, no. 1, pp. 430–439, 2010.
[6] “200127 PZEM-004.pdf.”
[7] M. Mirjana, V. Vladimir, D. Nikola, M. Vladimir and P. Branko, “Raspberry Pi as Internet of Things hardware: Performances and Constraints,” IcETRAN 2014, Vrnjačka Banja, Serbia, pp. ELI1.6.1-6.
[8] Wahana Komputer. 2011. Mastering CMS Programing with PHP & MySQL.
Yogyakarta : CV. ANDI OFFSET (Pernerbit ANDI).
46
[9] Riyanto. 2011. Sistem Informasi Penjualan dengan PHP dan MySQL.
Yogyakarta : GAVA MEDIA.
[10] A. Stif. 2019 “Perancangan Smart 3 Phase Power Meter Berbasis Android”
Fakultas Teknik, Universitas Sumatera Utara, Medan.
[11] “Pengertian HTTP Beserta Fungsi dan Cara Kerjanya.” [Online]. Available:
https://www.niagahoster.co.id/blog/pengertian-http/. [Accessed : 3-Mar- 2021]
[12] “5 Hal yang Perlu Anda Ketahui Tentang HTTPS.” [Online]. Available:
https://www.niagahoster.co.id/blog/https-adalah-protokol-versi-aman/.
[Accessed : 3-Mar-2021]
[13] “Apa Itu SSL/TLS? Cari Tahu Juga Pengertian Tentang HTTPS dan
Hubungan Keduanya.” [Online]. Available:
https://www.hostinger.co.id/tutorial/apa-itu-ssl. [Accessed : 3-Mar-2021]
[14] “Mengenal Sniffing.” [Online]. Available:
https://fit.labs.telkomuniversity.ac.id/mengenal-sniffing/. [Accessed : 3-Mar- 2021]
[15] “Mengenal Arduino Uno.” [Online]. Available: https://ilearning.me/sample- page-162/arduino/pengertian-arduino-uno/. [Accessed : 9-Jun-2021]
[16] Oracle Corporation, "MySQL :: MySQL 5.7 Reference Manual :: 6.1 Security Guidelines," 2017. [Online]. Available:
https://dev.mysql.com/doc/refman/5.7/en/storage-engines.html. [Accessed 20-Juli-2021].
47
[17] "Exploring HTTPS whit Python." [Online]. Available:
https://realpython.com/python-https/#what-does-a-python-https-application- look-like. [Accessed 6-Agustus-2021
[18] "Common encryption type, protocol and algorithms explained." [Online].
Avaliable:https://www.comparitech.com/blog/information-
security/encryption-types-explained/. [Accessed : 6-Agustus-2021]
48 LAMPIRAN Lampiran 1 : Kode Program Arduino UNO
#include <PZEM004Tv30.h>
PZEM004Tv30 pzemR(12, 13); // Software Serial pin 11 (RX) & 12 (TX) PZEM004Tv30 pzemS(7, 8);
PZEM004Tv30 pzemT(3, 4);
void setup() {
Serial.begin(115200);
}
void loop() {
//Phasa R
float voltageR = pzemR.voltage();
if(voltageR != NAN){
Serial.print("Voltage Phasa R: ");
Serial.print(voltageR);
Serial.println("V");
} else {
Serial.println("Error reading voltage");
}
float currentR = pzemR.current();
if(currentR != NAN){
Serial.print("Current Phasa R: ");
Serial.print(currentR);
Serial.println("A");
} else {
Serial.println("Error reading current");
}
float powerR = pzemR.power();
if(currentR != NAN){
Serial.print("Power Phasa R: ");
Serial.print(powerR);
Serial.println("W");
} else {
Serial.println("Error reading power");
}
float energyR = pzemR.energy();
if(currentR != NAN){
Serial.print("Energy Phasa R: ");
Serial.print(energyR,3);
Serial.println("kWh");
} else {
Serial.println("Error reading energy");
}
float frequencyR = pzemR.frequency();
if(currentR != NAN){
49 Serial.print("Frequency Phasa R: ");
Serial.print(frequencyR, 1);
Serial.println("Hz");
} else {
Serial.println("Error reading frequency");
}
float pfR = pzemR.pf();
if(currentR != NAN){
Serial.print("PF Phasa R: ");
Serial.println(pfR);
} else {
Serial.println("Error reading power factor");
} //Phasa S
float voltageS = pzemS.voltage();
if(voltageS != NAN){
Serial.print("Voltage Phasa S: ");
Serial.print(voltageS);
Serial.println("V");
} else {
Serial.println("Error reading voltage");
}
float currentS = pzemS.current();
if(currentS != NAN){
Serial.print("Current Phasa S: ");
Serial.print(currentS);
Serial.println("A");
} else {
Serial.println("Error reading current");
}
float powerS = pzemS.power();
if(currentS != NAN){
Serial.print("Power Phasa S: ");
Serial.print(powerS);
Serial.println("W");
} else {
Serial.println("Error reading power");
}
float energyS = pzemS.energy();
if(currentS != NAN){
Serial.print("Energy Phasa S: ");
Serial.print(energyS,3);
Serial.println("kWh");
} else {
Serial.println("Error reading energy");
}
50 float frequencyS = pzemS.frequency();
if(currentS != NAN){
Serial.print("Frequency Phasa S: ");
Serial.print(frequencyS, 1);
Serial.println("Hz");
} else {
Serial.println("Error reading frequency");
}
float pfS = pzemS.pf();
if(currentS != NAN){
Serial.print("PF Phasa S: ");
Serial.println(pfS);
} else {
Serial.println("Error reading power factor");
} //Phasa T
float voltageT = pzemT.voltage();
if(voltageT != NAN){
Serial.print("Voltage Phasa T: ");
Serial.print(voltageT);
Serial.println("V");
} else {
Serial.println("Error reading voltage");
}
float currentT = pzemT.current();
if(currentT != NAN){
Serial.print("Current Phasa T: ");
Serial.print(currentT);
Serial.println("A");
} else {
Serial.println("Error reading current");
}
float powerT = pzemT.power();
if(currentT != NAN){
Serial.print("Power Phasa T: ");
Serial.print(powerT);
Serial.println("W");
} else {
Serial.println("Error reading power");
}
float energyT = pzemT.energy();
if(currentT != NAN){
Serial.print("Energy Phasa T: ");
Serial.print(energyT,3);
Serial.println("kWh");
} else {
Serial.println("Error reading energy");
51 }
float frequencyT = pzemT.frequency();
if(currentT != NAN){
Serial.print("Frequency Phasa T: ");
Serial.print(frequencyT, 1);
Serial.println("Hz");
} else {
Serial.println("Error reading frequency");
}
float pfT = pzemT.pf();
if(currentT != NAN){
Serial.print("PF Phasa T: ");
Serial.println(pfT);
} else {
Serial.println("Error reading power factor");
}
delay(2000);
}
Lampiran 2 : Kode Program Raspberry Pi
#!/usr/bin/env python import time
import serial import requests ser = serial.Serial(
port='/dev/ttyACM0', baudrate = 115200,
parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1
)
def get_voltageR(string):
temp = string.split(":") temp = temp[1].strip() temp = temp.strip('v') return float(temp) def get_currentR(string):
temp = string.split(":") temp = temp[1].strip() temp = temp.strip('a') return float(temp) def get_freqR(string):
temp = string.split(":") temp = temp[1].strip() temp = temp.strip('hz') return float(temp)