Penerapan Algoritma AES Guna Keamanan Transmisi Data Pada … · 2016. 10. 17. ·...

23
1. Pendahuluan Perkembangan teknologi informasi saat ini khususnya pada bidang transaksi online sebuah e-commerce sangat pesat. Hal ini terbukti dengan adanya riset yang telah dilakukan oleh DailySocial yaitu bahwa nilai transaksi perdagangan online atau e-commerce di Indonesia tahun 2012 mencapai 0,9 miliar Dollar Amerika Serikat (AS) atau sekitar 8,5 triliun Rupiah. Diprediksi pada tahun 2015, nilai e- commerce akan melonjak ke angka 10 miliar Dolar AS atau 95 triliun Rupiah. Pengguna internet di Indonesia sudah menyentuh angka sekitar 61 juta, sementara dari pengguna seluler mencapai 230 juta, dengan 20% menggunakan smartphone[1]. Hal tersebut diperkuat dengan pernyataan Kementrian Komunikasi dan Informatika bahwa pada tahun 2013 pasar e-commerce di Indonesia diprediksi mencapai Rp 130 triliun (kurang lebih 1 persen pendapatan dunia), setelah sebelumnya pada 2012 mencapai Rp 69 triliun. Pertumbuhan belanja e-commerce di Indonesia juga diperkirakan naik mencapai 71 persen, terbesar di dunia dengan nilai US$ 1,8 milar atau setara Rp 18 triliun pada tahun ini[2]. Berdasarkan fakta- fakta tersebut, maka dapat dikatakan bahwa pasar e-commerce sudah menjadi trend digunakan oleh penduduk Indonesia selain pasar konvensional. Salah satu e-commerce di Indonesia yang telah dibangun adalah Sistem Jejaring Klaster dengan domain iklaster.com. Sistem Jejaring Klaster merupakan sistem jejaring usaha bagi UMKM dan Koperasi berbasis Klaster, dimana aplikasi tersebut dipergunakan sebagai pusat promosi, informasi dan transaksi bisnis bagi UMKM dan Klaster di Indonesia. Sistem Jejaring Klaster tersebut dikembangkan menggunakan teknologi web yaitu framework CodeIgniter dan database MySql[3]. Pada saat ini, Sistem Jejaring Klaster juga telah dikembangkan menjadi mobile commerce (m-commerce) menggunakan teknologi mobile Android. Hal ini menuntut adanya fasilitas keamanan data untuk mengamankan data-data transaksi, antara lain transaksi pemesanan dan konfirmasi pembayaran oleh Pembeli pada aplikasi m-commerce tersebut, supaya dapat meningkatkan nilai kepercayaan para Pembeli sebagai pengguna Sistem Jejaring Klaster. Selain hal tersebut, fasilitas keamanan data pada transaksi online wajib perlu disediakan, sebagai contoh: transaksi penjualan online, transaksi keuangan, e-mail, file transfer, tanda tangan suatu kontrak dalam bentuk digital, informasi dari perusahaan untuk publik (sehingga tidak bisa diubah-ubah orang lain), dan transaksi bisnis lainnya. Teknologi dasar yang dipergunakan dalam pengamanan data untuk e-commerce, yakni cryptography[4]. Berdasarkan latar belakang tersebut, maka rumusan masalah penelitian ini antara lain pertama, bagaimana merancang sistem keamanan guna transmisi data transaksi bisnis pada aplikasi m-commerce berbasis client-server?. Kedua, bagaimana menerapkan algoritma AES pada sistem keamanan guna transmisi data pada aplikasi m-commerce berbasis client-server?. Ketiga, bagaimana mengimplementasikan sistem keamanan guna transmisi data dengan algoritma AES menggunakan bahasa pemrograman JAVA Android? Berdasarkan permasalahan tersebut, maka pada penelitian ini telah dirancang dan diimplementasikan algoritma AES (Advanced Encryption Standard) guna keamanan transmisi data pada aplikasi client-server studi kasus Sistem Jejaring Klaster. Aplikasi client diimplementasikan menggunakan teknologi mobile

Transcript of Penerapan Algoritma AES Guna Keamanan Transmisi Data Pada … · 2016. 10. 17. ·...

  • 1. Pendahuluan Perkembangan teknologi informasi saat ini khususnya pada bidang transaksi

    online sebuah e-commerce sangat pesat. Hal ini terbukti dengan adanya riset yang

    telah dilakukan oleh DailySocial yaitu bahwa nilai transaksi perdagangan online

    atau e-commerce di Indonesia tahun 2012 mencapai 0,9 miliar Dollar Amerika

    Serikat (AS) atau sekitar 8,5 triliun Rupiah. Diprediksi pada tahun 2015, nilai e-

    commerce akan melonjak ke angka 10 miliar Dolar AS atau 95 triliun Rupiah.

    Pengguna internet di Indonesia sudah menyentuh angka sekitar 61 juta, sementara

    dari pengguna seluler mencapai 230 juta, dengan 20% menggunakan

    smartphone[1]. Hal tersebut diperkuat dengan pernyataan Kementrian Komunikasi

    dan Informatika bahwa pada tahun 2013 pasar e-commerce di Indonesia diprediksi

    mencapai Rp 130 triliun (kurang lebih 1 persen pendapatan dunia), setelah

    sebelumnya pada 2012 mencapai Rp 69 triliun. Pertumbuhan belanja e-commerce

    di Indonesia juga diperkirakan naik mencapai 71 persen, terbesar di dunia dengan

    nilai US$ 1,8 milar atau setara Rp 18 triliun pada tahun ini[2]. Berdasarkan fakta-

    fakta tersebut, maka dapat dikatakan bahwa pasar e-commerce sudah menjadi trend

    digunakan oleh penduduk Indonesia selain pasar konvensional.

    Salah satu e-commerce di Indonesia yang telah dibangun adalah Sistem

    Jejaring Klaster dengan domain iklaster.com. Sistem Jejaring Klaster merupakan

    sistem jejaring usaha bagi UMKM dan Koperasi berbasis Klaster, dimana aplikasi

    tersebut dipergunakan sebagai pusat promosi, informasi dan transaksi bisnis bagi

    UMKM dan Klaster di Indonesia. Sistem Jejaring Klaster tersebut dikembangkan

    menggunakan teknologi web yaitu framework CodeIgniter dan database MySql[3].

    Pada saat ini, Sistem Jejaring Klaster juga telah dikembangkan menjadi mobile

    commerce (m-commerce) menggunakan teknologi mobile Android. Hal ini

    menuntut adanya fasilitas keamanan data untuk mengamankan data-data transaksi,

    antara lain transaksi pemesanan dan konfirmasi pembayaran oleh Pembeli pada

    aplikasi m-commerce tersebut, supaya dapat meningkatkan nilai kepercayaan para

    Pembeli sebagai pengguna Sistem Jejaring Klaster. Selain hal tersebut, fasilitas

    keamanan data pada transaksi online wajib perlu disediakan, sebagai contoh:

    transaksi penjualan online, transaksi keuangan, e-mail, file transfer, tanda tangan

    suatu kontrak dalam bentuk digital, informasi dari perusahaan untuk publik

    (sehingga tidak bisa diubah-ubah orang lain), dan transaksi bisnis lainnya.

    Teknologi dasar yang dipergunakan dalam pengamanan data untuk e-commerce,

    yakni cryptography[4].

    Berdasarkan latar belakang tersebut, maka rumusan masalah penelitian ini

    antara lain pertama, bagaimana merancang sistem keamanan guna transmisi data

    transaksi bisnis pada aplikasi m-commerce berbasis client-server?. Kedua,

    bagaimana menerapkan algoritma AES pada sistem keamanan guna transmisi data

    pada aplikasi m-commerce berbasis client-server?. Ketiga, bagaimana

    mengimplementasikan sistem keamanan guna transmisi data dengan algoritma AES

    menggunakan bahasa pemrograman JAVA Android?

    Berdasarkan permasalahan tersebut, maka pada penelitian ini telah

    dirancang dan diimplementasikan algoritma AES (Advanced Encryption Standard)

    guna keamanan transmisi data pada aplikasi client-server studi kasus Sistem

    Jejaring Klaster. Aplikasi client diimplementasikan menggunakan teknologi mobile

  • Android, sedangkan aplikasi server diimplementasikan menggunakan bahasa

    pemrograman PHP. Basis Data yang digunakan adalah database MySQL Server.

    Algortima AES yang dipergunakan adalah AES 128 bit data masukkan dan 128 bit

    chipper key, supaya tidak banyak membutuhkan waktu proses enkripsi dan dekripsi

    yang dipergunakan untuk mengamankan data-data transaksi bisnis pada m-

    commerce Sistem Jejaring Klaster.

    Mengingat luasnya masalah yang akan dibahas, maka penelitian ini

    memiliki ruang lingkup, yaitu pertama, tidak membahas secara detil aplikasi m-

    commerce, tetapi penelitian berfokus pada pengamanan data menggunakan

    algoritma AES pada aplikasi m-commerce tersebut. Kedua, keamanan data pada

    aplikasi m-commerce hanya untuk transaksi pembelian atau pemesanan produk dan

    transaksi konfirmasi pembayaran yang dilakukan oleh pengguna yaitu Pembeli.

    Ketiga, proses bisnis pada aplikasi m-commerce berdasarkan aturan pada Sistem

    Jejaring Bisnis UMKM dan Koperasi Berbasis Klaster, dengan domain

    iklaster.com. Keempat, penelitian ini menggunakan aplikasi m-commerce berbasis

    client-server menggunakan teknologi mobile Android. Kelima, tidak membahas

    secara detail bahasa pemrograman JAVA Android dan database MySQL.

    Sedangkan manfaat yang diperoleh dari hasil penelitian ini antara lain

    pertama, bagi Pembeli, yaitu mendapatkan jaminan bahwa data-data transaksi

    bisnis tidak dapat diketahui oleh pihak-pihak lain yang tidak memiliki kepentingan.

    Kedua, bagi Pengelola, yaitu dapat mengamankan data-data transaksi bisnis pada

    aplikasi jual beli berbasis client server mengunakan Android. Ketiga, bagi

    Akademik, sebagai sarana pembelajaran yang dapat digunakan untuk penelitian

    lebih lanjut.

    2. Tinjauan Pustaka Penelitian sebelumnya yang pernah dilakukan dengan judul Rancang

    Bangun Sistem Jejaring Klaster Berbasis Web Dengan Pendekatan Model E-

    Commerce: Marketplace Concentrator[3]. Penelitian tersebut bertujuan merancang

    dan membangun sebuah e-commerce berbasis web bagi Klaster. Manfaat penelitian

    tersebut adalah bahwa telah tersedia basis data menggunakan MySQL Server yang

    menyimpan semua informasi pengguna, transaksi bisnis dan data-data produk milik

    Klaster, sehingga pada penelitian ini tidak perlu melakukan desain basis data.

    Sedangkan perbedaan dengan penelitian ini adalah pada sistem pengamanan data

    menggunakan AES 128 bit pada aplikasi m-commerce Sistem Jejaring Klaster yang

    telah dibangun menggunakan teknologi Java Android.

    Penelitian lain yang pernah dilakukan sebelumnya adalah Perancangan dan

    Implementasi Sistem Notifikasi Bisnis Pada Sistem Jejaring Klaster Berbasis

    Android[5]. Penelitian tersebut bertujuan untuk membangun sebuah aplikasi mobile

    berbasis Android untuk notifikasi bisnis yang mampu menampilkan informasi

    pemesanan produk dan pembayaran secara cepat kepada Pengguna yaitu Admin

    dan Anggota Klaster serta Pembeli. Dalam membangun sistem tersebut digunakan

    metode prototype sebagai metode pengembangan sistem notifikasi bisnis dengan

    teknologi push message notification. Pengembangan aplikasi ini menggunakan

    framework Phonegap dalam proses menampilkan notifikasi. Manfaat yang

    diperoleh dari penelitian tersebut adalah bahwa telah diperoleh tabel notifikasi pada

  • database server serta isi pesan dari notifikasi yaitu berupa kode order. Sedangkan

    perbedaannya adalah penelitian tersebut belum memiliki sistem keamanan data.

    Konsep dasar pengamanan data pada penelitian ini adalah algoritma

    kriptografi, disebut juga cipher yaitu aturan untuk enciphering dan deciphering,

    atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa

    cipher memerlukan algoritma yang berbeda untuk enciphering dan deciphering.

    Keamanan algoritma kriptografi sering diukur dari banyaknya kerja yang

    dibutuhkan untuk memecahkan ciphertext menjadi plaintext tanpa mengetahui

    kunci yang digunakan. Apabila semakin banyak proses yang diperlukan berarti juga

    semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma tersebut dan

    semakin aman digunakan untuk menyandikan pesan. Algoritma kriptografi terdiri

    dari fungsi dasar, yaitu pertama adalah Enkripsi, merupakan hal yang sangat

    penting dalam kriptografi yang merupakan pengamanan data yang dikirimkan

    terjaga rahasianya, pesan asli disebut plaintext yang dirubah menjadi kode-kode

    yang tidak dimengerti. Kedua, Dekripsi, merupakan kebalikan dari enkripsi, pesan

    yang telah dienkripsi dikembalikan ke bentuk asalnya (plaintext) disebut dengan

    dekripsi pesan. Ketiga, Kunci, yang dimaksud di sini adalah kunci yang dipakai

    untuk melakukan enkripsi dan dekripsi, kunci terbagi jadi 2 (dua) bagian yaitu kunci

    pribadi (private key) dan kunci umum (public key). Secara umum, proses enkripsi

    dan dekripsi dapat ditunjukkan pada Gambar 1.

    Gambar 1 Proses Enkripsi dan Dekripsi[6]

    Pada dasarnya terdapat dua jenis algoritma kriptografi berdasarkan kunci

    yang digunakan. Yang pertama adalah kriptografi dengan menggunakan secret key

    dan yang kedua adalah kriptografi yang menggunakan public key. Kriptografi

    public key menggunakan dua kunci yang berbeda dimana satu kunci digunakan

    untuk melakukan enkripsi dan kunci yang lain digunakan untuk melakukan

    dekripsi. Ada empat tujuan mendasar dari ilmu kriptografi yang merupakan aspek

    keamanan informasi atau data, yaitu pertama, Kerahasiaan (Confidentiality) yang

    berarti pesan (plaintext) hanya dapat dibaca oleh pihak yang memliki kewenangan.

    Kedua, Autentikasi (Authentication), artinya yaitu pengirim pesan harus dapat

    diidentifikasi dengan pasti, penyusup harus dipastikan tidak bisa berpura-pura

    menjadi orang lain. Ketiga, Integritas (Integrity), yaitu penerima pesan harus dapat

    memastikan bahwa pesan yang dia terima tidak dimodifikasi ketika sedang dalam

    proses transmisi data. Keempat, Nir-penyangkalan (Non-Repudiation) berarti

    pengirim pesan harus tidak bisa menyangkal pesan yang dia kirimkan[6].

    Algoritma yang dipergunakan pada penelitian ini adalah algoritma AES.

    Algoritma AES merupakan algoritma kriptografi yang menggunakan kriptografi

    simetris atau block chiper simetris untuk proses enkripsi dan dekripsi. Proses

    enkripsi dan dekripsi algoritma AES memproses data masukan berukuran 128 bit

    menggunakan cipher key berukuran 128, 192 dan 256 bit. Algoritma AES bekerja

  • menggunakan substitusi, permutasi dan sejumlah putaran yang dikenakan pada tiap

    blok yang akan dienkripsi dan dekripsi.

    Penelitian ini menggunakan AES 128 bit yang beroperasi pada blok

    masukan data dengan ukuran 128 bit. Panjang kuncinya berukuran 4 word dan

    untuk tiap word-nya berukuran 32 bit, sehingga total kuncinya 128 bit. Untuk

    proses transformasinya sebanyak 10 putaran. Algoritma AES mempunyai 3 fungsi

    utama, yaitu pertama, Plaintext adalah array yang berukuran 16-byte, yang berisi

    data masukan. Kedua, Ciphertext adalah array state yang berisi hasil enkripsi.

    Ketiga, Kunci adalah array yang berukuran 16-byte, yang berisi kunci cipher

    (disebut juga cipher key)[7]. Garis besar algoritma AES ditunjukkan pada Gambar

    2.

    Gambar 2 Diagram Proses Enkripsi dan Dekripsi[7]

    Gambar 2 menjelaskan bahwa garis besar algoritma AES yang beroperasi

    pada blok 128 bit dengan kunci 128 bit adalah sebagai berikut:

    Transformasi AddRoundKey, melakukan XOR antara state awal (plaintext) dengan cipher key. Tahap ini disebut juga initial round.

    Putaran sebanyak Nr–1 kali. Proses yang dilakukan pada setiap putaran adalah: a. Transformasi SubBytes adalah substitusi byte dengan menggunakan Tabel

    substitusi (S-Box).

    b. Transformasi ShiftRows adalah pergeseran baris-baris array state secara wrapping.

    c. Transformasi MixColumns adalah mengalikan setiap kolom array state dengan polinomial.

    d. Transformasi AddRoundKey adalah melakukan XOR antara state sekarang dengan round key.

    Final round, proses untuk putaran terakhir: Transformasi SubBytes, Transformasi ShiftRows dan Transformasi

    AddRoundKey

    Aplikasi yang dibangun pada penelitian menggunakan arsitektur client-

    server. Arsitektur client-server dibangun untuk memenuhi lingkungan komputing

    dimana sejumlah PC, workstation, file server, printer, database server, web server,

    serta peralatan lainnya dapat saling terhubung via network[8].

    Komponen dasar client-server dibentuk oleh tiga komponen dasar, yaitu

    client, middleware dan server. Hubungan antara ketiga komponen tersebut dapat

    dilihat pada Gambar 3.

  • Gambar 3 Komponen Dasar Client Server[9]

    Aplikasi client-server memiliki ciri-ciri mendasar yang membedakannya

    dengan perangkat lunak terdistribusi lain[10], yaitu pertama berbasis layanan, yang

    berarti adalah server memberikan sejumlah layanan yang dibutuhkan dan diminta

    oleh client, antara lain: berbagi pakai berkas, data, peralatan pendukung dan lain-

    lain. Kedua, sumber daya yang digunakan bersama, artinya server mengelola

    sejumlah sumber daya yang dimilikinya agar dapat diakses dan digunakan secara

    bersama-sama oleh terminal-terminal client yang terhubung pada server. Ketiga,

    hubungan dan interaksi antara client-server, artinya bahwa hubungan yang terjadi

    antara server dan client adalah one-to-many, yang berarti bahwa satu server

    melayani banyak client. Client selalu memulai interaksi dengan meminta layanan,

    sedangkan server menanti permintaan layanan secara pasif. Keempat, client tidak

    perlu mengetahui lokasi fisik server, sehingga server dapat terletak di berbagai

    tempat yang belum tentu diketahui oleh client. Walaupun demikian, client tetap

    dapat mengakses server untuk mendapatkan layanan sesuai kebutuhannya. Kelima,

    interoperabilitas perangkat lunak dan perangkat keras, berarti perangkat keras dan

    perangkat lunak yang digunakan oleh masing-masinhg client tidak harus sama

    dengan yang digunakan server, namun masih dapat saling terkoneksi antara satu

    dan yang lain. Keenam, pertukaran berbasis pesan, yang artinya adalah mekanisme

    dari client-server berdasar pada pertukaran pesan. Pesan yang dipertukarkan ialah

    permintaan layanan dan umpan balik dari permintaan layanan. Ketujuh, enkapsulasi

    layanan. Hal ini client tidak perlu mengetahui proses pengolahan permintaan yang

    terjadi dalam server sehingga client tidak dapat mengontrol proses pengolahan

    permintaan. Kedepalan, Skalabilitas, yaitu ukuran sistem client-server dapat

    diubah secara horisontal maupun vertikal. Pengubahan vertikal berarti berpindah ke

    server yang lebih besar atau lebih cepat mendistribusikan tugas melayani client ke

    beberapa server. Pengubahan horisontal berarti menambah atau mengurangi jumlah

    client. Kesembilan, konsistensi data, yaitu data hanya dikelola pada server pusat

    sehingga konsistensi dan data lebih terjamin dan biaya pemeliharaan menjadi lebih

    murah.

    Arsitektur client-server memiliki 2 (dua) jenis model, yaitu model two-tier

    dan model Three Tier. Model two-tier merupakan lingkungan client / server secara

    tradisional. Pada model ini suatu aplikasi dibagi menjadi dua entitas, yaitu aplikasi

    client dan aplikasi server. Dalam konfigurasi yang tipikal, pembagian ini juga

    meliputi pembagian perangkat lunak dan perangkat keras. Aplikasi client umumnya

    diletakkan pada workstation yang digunakan oleh user, sedangkan server

    merupakan suatu komputer yang diletakkan di bagian lain pada jaringan[11]. Model

    arsitektur dari two-tier terdiri dari dua bagian, yaitu pertama, Layanan Presentasi

    (Client Tier). Layanan presentasi atau logika antarmuka pengguna ditempatkan

    pada mesin client. Lapisan ini berfungsi untuk menangani interaksi user dengan

  • aplikasi. Kedua, Layanan Data (Data Source Tier). Layanan data merupakan

    sebuah database server atau DBMS (Database Management Systems) yang

    menyediakan data bagi lapisan layanan client atau presentasi. Skema model two tier

    dapat dilihat pada Gambar 4.

    Gambar 4 Model Two Tier Client Server[11]

    Model kedua yaitu model three-tier atau disebut juga multi-tier, dimana

    model ini merupakan langkah pengembangan dari two-tier client/server. Hal ini

    berarti, setiap aplikasi three-tier adalah client/server, namun tidak semua aplikasi

    client/server adalah three-tier. Model three-tier menambahkan komponen ketiga

    diantara aplikasi client dengan aplikasi server yang disebut middle tier atau layanan

    bisnis. Oleh karena itu, dalam model ini pemrosesan disebarkan di antara tiga

    lapisan atau lebih[11]. Layanan Presentasi (Client Tier), yaitu sebagaimana dalam

    two-tier, layanan ini berfungsi untuk menangani semua interaksi user dengan

    aplikasi. Namun demikian, layanan ini tidak langsung mengakses database server.

    Layanan Bisnis (Business Tier), merupakan layanan bisnis atau disebut dengan

    middle tier merupakan sebuah aplikasi yang memberlakukan aturan-aturan bisnis,

    memproses data, dan mengelola transaksi. Logika yang semula ditempatkan pada

    client dipindahkan ke dalam komponen lapisan bisnis ini. Layanan Data (Data

    Source Tier). Layanan data merupakan sebuah DBMS yang mewakili satu atau lebih

    penyimpanan data. Lapisan ini menyediakan permintaan data bagi aplikasi client

    dengan melalui lapisan layanan bisnis. Skema model three tier dapat dilihat pada

    Gambar 5..

    Gambar 5 Model Three Tier Client Server[11]

    Untuk menunjang fasilitas notifikasi pesan, maka pada penelitian ini

    menggunakan layanan Google Cloud Messaging (GCM). Google Cloud Messaging

    (GCM) adalah suatu layanan yang digunakan untuk mengirimkan data pesan

    singkat dari server ke pengguna pada perangkat Android. GCM dapat mengirimkan

    pesan singkat untuk memberitahu aplikasi bahwa terdapat data baru yang akan

    diambil dari server, seperti file film yang diunggah oleh seorang teman atau pesan

    yang berisi data sampai dengan 4 KB. Layanan GCM menangani semua aspek

    antrian pesan dan pengiriman ke aplikasi pengguna Android pada perangkat

    pengguna. GCM tidak peduli seberapa besar pesan yang dibutuhkan oleh pengguna

    dan tidak ada kuota[12].

  • 3. Metode Perancangan Sistem Didalam melaksanakan penelitian, diperlukan beberapa tahapan seperti

    terlihat pada Gambar 6.

    Analisis Situasi

    Perumusan

    Masalah

    Pengumpulan

    Data

    Analisis

    Kebutuhan

    Pengembangan

    Sistem

    Uji Sistem

    Penulisan

    Laporan Akhir

    Gambar 6 Tahapan Penelitian

    Berdasarkan Gambar 6, tahapan pertama adalah analisis situasi, yaitu tahap

    yang menghasilkan sebuah latar belakang masalah yang dianggap layak untuk

    dilakukan penelitian, yaitu para pengurus dan anggota Klaster, pemilik Sistem

    Jejaring Klaster, serta Pengelola Aplikasi Sistem Jejaring KLaster membutuhkan

    sistem pengamanan untuk data-data transaksi yaitu pemesanan barang, konfirmasi

    pembayaran dan proses notifikasi pada aplikasi m-commerce Sistem Jejaring

    Klaster berbasis Android. Tahap kedua, perumusan masalah menghasilkan

    pemetaan masalah berdasarkan analisis situasi, antara lain bagaimana menerapkan

    algoritma AES sebagai sistem keamanan transmisi data pada proses transaksi

    pemesanan barang, proses konfirmasi pembayaran dan proses notifikasi transaksi.

    Tahap ketiga, pengumpulan data menghasilkan data-data yang terkait dengan

    transaksi pemesanan barang, konfirmasi pembayaran dan pesan notifikasi

    menggunakan layanan push message Google Cloud Messaging (GCM). Tahap

    keempat analisis kebutuhan, menghasilkan kebutuhan fungsionalitas dari sistem

    keamanan transmisi data menggunakan algoritma AES 128 bit pada aplikasi client-

    server m-commerce Sistem Jejaring Klaster. Tahap kelima, pengembangan sistem,

    yaitu sistem keamanan data pada aplikasi client-server m-commerce Sistem Jejaring

    Klaster menggunakan metode Prototype Model. Tahap keenam, uji sistem. Setelah

    dilakukan pengembangan sistem, berikutnya adalah melakukan pengujian sistem.

    Pengujian sistem dilakukan untuk mengetahui performa dari penerapan algoritma

    AES pada aplikasi client-server m-commerce Sistem Jejaring Klaster. Tahap

    ketujuh, penulisan laporan akhir. Setelah dilakukan pengembangan dan pengujian

    sistem, tahap berikutnya adalah menarik kesimpulan yang dituangkan dalam bentuk

    laporan skripsi. Pada bagian ini juga diberikan saran-saran pengembangan untuk

    penelitian selanjutnya.

    Metode pengembangan sistem yang digunakan pada pembuatan aplikasi ini

    adalah model prototype. Model prototype merupakan suatu teknik untuk

    mengumpulkan informasi tertentu mengenai kebutuhan-kebutuhan informasi

    pengguna secara cepat. Dengan metode prototype ini pengembang dan pihak

  • pengelola Sistem Jejaring Klaster dapat saling berinteraksi selama proses

    pembuatan sistem. Secara lengkap, alur model prototype akan digambarkan seperti

    pada Gambar 7.

    Gambar 7 Prototype Model[13]

    Gambar 7, merupakan gambaran tahapan umum dari prototype model.

    Berikut adalah penjelasan dari tahap-tahap prototype model. Pada tahapan pertama,

    yaitu listen to customer atau information gathering tentang kebutuhan aplikasi yang

    akan dibangun. Pada tahap ini dilakukan wawancara dengan seorang pemilik dan 6

    (enam) pengelola Sistem Jejaring Klaster. Pada tahap wawancara diperoleh

    informasi aplikasi m-commerce Sistem Jejaring Klaster membutuhkan sistem

    keamanan data pada proses-proses transaksi, antara lain transaksi pemesanan,

    konfirmasi pembayaran dan proses notifikasi transaksi bagi member Pembeli.

    Sistem keamanan pada transmisi data khususnya di dalam proses transaksi bisnis

    m-commerce dibutuhkan untuk meningkatkan kepercayaan publik atau masyarakat

    khususnya kepada member Pembeli Sistem Jejaring Klaster yang sudah mencapai

    36 (tigapuluh enam) orang.

    Tahapan selanjutnya dalam metode prototype yaitu build/revise mock-up

    atau membangun aplikasi secara cepat. Pada tahap ini dilakukan pembuatan aplikasi

    secara cepat, lebih memfokuskan pada input output aplikasi sesuai dengan

    kebutuhan umum yang diketahui pada tahap pertama. Tahap ini menghasilkan 3

    (tiga) prototipe. Hasil uji fungsionalitas prototipe I adalah bahwa data-data yang

    diamankan hanya pada proses transaksi pemesanan barang dan konfirmasi

    pembayaran oleh aktor Pembeli, sedangkan proses notifikasi pesan transaksi bagi

    Pembeli belum dilakukan. Pada Prototipe II, sistem keamanan data sudah dapat

    melakukan enkripsi dan dekripsi untuk isi pesan proses notifikasi transaksi bisnis

    bagi Pembeli. Tetapi pada prototype II penggunaan private key untuk fungsi

    algoritma AES 128 bit menggunakan data tetap berupa kata statis bertipe string.

    Hal ini tidak disetujui oleh pemilik Sistem Jejaring Klaster dimana mengusulkan

    private key diambil dari Id Registration GCM. Hasil penelitian berakhir pada

    prototype III dimana private key sudah menggunakan Id Registration GCM. Untuk

    dapat memastikan bahwa private key berukuran 128 bit, maka private key tersebut

    berupa hasil proses Hash MD5 Id Registration GCM.

    Tahap Customer Test-Drives Mock-Up. Pada tahap ini dilakukan uji dan

    evaluasi prototype oleh pengelola seperti tahap wawancara. Uji dan evaluasi

    prototype digunakan untuk mendapatkan umpan balik apakah aplikasi sudah sesuai

    dengan kebutuhan user. Sebelum dilakukan uji dan evaluasi oleh user, maka

    dilakukan pengujian menggunakan Blackbox model untuk mengetahui validitas

  • proses enkripsi dan dekripsi. Untuk mengetahui apakah sistem keamanan data pada

    level transmisi data melalui protocol http berhasil, maka dibutuhkan sebuah aplikasi

    spyware berupa wireshark. Evaluasi dilakukan dengan cara wawancara. Jika

    evaluasi prototype belum sesuai dengan kebutuhan user, maka dilakukan proses

    perbaikan dimulai kembali ke tahap awal dan dilanjutkan ke tahap berikutnya.

    Arsitektur aplikasi sistem keamanan pada transmisi data apliksai client-

    server Sistem Jejaring Klaster menggunakan arsitektur three-tier. Dengan demikian

    dalam arsitektur ini terdapat tiga layer yaitu layer client, layer middle, dan layer

    server. Pada layer client disini terdapat aplikasi mobile berupa m-commerce yang

    digunakan oleh pembeli atau public (guest), Layer middle berupa layanan push

    message yang disediakan oleh GCM (google cloud messaging), sedangkan di dalam

    layer server berupa aplikasi yang dibangun menggunakan bahasa pemrograman

    php dengan framework CodeIgniter.

    DBMS iKlaster

    Web Server

    Application Client

    Chiper(Data Order)

    Chiper(Data Transaksi)

    Chiper(Data Order)

    Request / ResponSQL

    Application Server

    Chiper(Data Transaksi)

    Gambar 8 Arsitektur Client-Server Sistem Keamanan Transmisi Data Pada Aplikasi Client Server

    Sistem Jejaring Klaster

    Untuk mewujudkan keamanan pada transmisi data aplikasi client-server m-

    commerce Sistem Jejaring Klaster seperti pada Gambar 8, maka pada aplikasi client

    dan aplikasi server dibangun fungsi enkripsi dan fungsi dekripsi menggunakan

    algoritma AES 128 bit untuk proses transaksi pemesanan barang, proses konfirmasi

    pembayaran dan notifikasi transaksi. Pada proses notifikasi transaksi bisnis antara

    lain notifikasi Terima konfirmasi pembayaran Pembeli oleh Admin Klaster dan

    notifikasi Status Pengiriman dari Anggota Klaster kepada Pembeli, isi pesan

    notifikasi berupa chipertext hasil encode dari aplikasi server yang dikirim ke GCM

    dan diteruskan ke mobile device pembeli. Oleh aplikasi client isi pesan tersebut

    diproses decode menggunakan fungsi dekripsi untuk menjadi plaintext, sehingga

    aplikasi client dapat membaca data yang diterima dari GCM, yang kemudian

    melakukan request ke aplikasi server. Data request berupa chipertext dari aplikasi

    client tersebut kemudian dilakukan proses decode untuk dapat dibaca oleh aplikasi

    server sehingga aplikasi server dapat memberikan respon kepada aplikasi client.

    Pada prinsipnya, semua data dilakukan proses encode dan decode pada aplikasi

    server maupun client supaya data yang dikirimkan melalui media protocol http

    berupa data chipertext.

    Untuk dapat memperjelas proses keamanan transmisi data menggunakan

    algoritma AES pada aplikasi client-server m-commerce Sistem Jejaring Klaster,

    maka dapat dilihat pada Gambar 9 dan Gambar 10. Gambar 9 memperlihatkan

    bahwa saat proses request untuk transaksi pemesanan barang dan konfirmasi

  • pembayaran, maka data-data transaksi tersebut oleh aplikasi client dilakukan proses

    enkripsi sebelum di-posting ke server. Dengan demikian, data-data transaksi pada

    layer transmisi yaitu protocol http sudah berupa chipertext. Kemudian, chipertext

    tersebut didalam layer server oleh aplikasi server dilakukan proses dekripsi,

    sehingga aplikasi server dapat membaca data transaksi tersebut untuk dapat

    dilakukan proses selanjutnya.

    Mulai Data TransaksiEnkripsi(Data

    Transaksi)Chipertext

    Client Application

    Selesai Data Transaksi Dekripsi(Chipertext)

    Server Application

    Transmission Layer

    Gambar 9 Diagram Alir Enkripsi Dekripsi Data Transaksi Proses Request

    Hal serupa juga dilakukan pada saat proses response yang dilakukan oleh

    aplikasi server seperti terlihat pada Gambar 10. Sebelum diambil oleh client, maka

    data-data transaksi diproses oleh fungsi enkripsi sehingga menjadi chipertext.

    Berdasarkan kedua diagram alir tersebut, maka algoritma AES diimplementasikan

    kedalam aplikasi server maupun aplikasi client pada fungsi enkripsi dan dekripsi.

    Mulai Data TransaksiEnkripsi(Data

    Transaksi)Chipertext

    Client Layer

    Selesai Data Transaksi Dekripsi(Chipertext)

    Server Layer

    Transmission Layer

    Gambar 10 Diagram Alir Enkripsi Dekripsi Data Transaksi Proses Response

    Sistem keamanan pada transmisi data berbasis client-server dirancang

    menggunakan Unified Modelling Language (UML) sebagai pemodelan sistem.

    UML menyediakan beberapa diagram dalam proses perancangan sistem. Dalam

    sistem yang dibuat digunakan beberapa diagram, yaitu: use case diagram, activity

    diagram, sequence diagram dan class diagram.

    Use Case Diagram menggambarkan pola dari interkasi dan hubungan antara

    actor dengan use case. Terdapat tiga komponen di dalam use case diagram yaitu

    use case, package, dan relationship. Use case diagram yang dibuat pada penelitian

    ini meliputi Use Case Diagram aplikasi m-commerce dan aplikasi e-commerce. Use

    Case Diagram aplikasi m-commerce dapat dilihat pada Gambar 11.

  • Gambar 11 Use Case Diagram Aplikasi M-Commerce

    Pada Gambar 11 menggambarkan aplikasi m-commerce memiliki dua actor

    yaitu Guest dan Pembeli. Guest memiliki kemampuan untuk register, masuk

    beranda portal, lihat daftar klater, lihat daftar produk, dan lihat detail produk.

    Sedangkan Pembeli memiliki kemampuan meliputi masuk beranda portal, lihat

    daftar klater, lihat daftar produk, lihat detail produk, beli produk, lihat keranjang,

    lihat daftar tagihan, lihat daftar konfirmasi, dan lihat daftar riwayat. Pada lihat

    keranjang, Pembeli secara langsung dapat melihat daftar order item, serta dapat

    memperbaharui jumlah pesanan pada order item dan menghapus order item.

    Disamping itu, pada keranjang terdapat fungsi checkout yang dapat digunakan

    pembeli untuk mengakhiri proses pemesanan dan membuat tagihan ke Pembeli.

    Pada daftar tagihan, Pembeli dapat melihat detail order, serta melakukan

    konfirmasi pembayaran dan pada daftar konfirmasi pembelian, dapat melihat daftar

    transaksi yang telah ditolak Admin Klaster, serta detail order. Sedangkan, jika

    transaksi diterima oleh Admin Klaster, maka order akan masuk pada daftar riwayat

    yang berisi status packaging/kirim yang dilengkapi menu lihat detail order dan set

    status order telah Diterima atau Belum Diterima.

    Untuk memperjelas case-case yang dimiliki oleh Admin Klaster pada proses

    konfirmasi pembayaran oleh Pembeli, dapat dilihat use case diagram pada Gambar

    12.

    Gambar 12 Use Case Diagram pada E-Commerce Proses Konfirmasi Pembayaran

    Gambar 12 memperlihatkan bahwa konfirmasi pembayaran yang dilakukan

    Pembeli akan masuk kedalam Daftar Konfirmasi Pembayaran pada Admin Klaster.

    Oleh Admin Klaster, konfirmasi pembayaran Pembeli tersebut dapat diterima atau

    ditolak. Jika diterima, maka akan mengirim notifikasi berita ke Anggota Klaster.

    Berita tersebut berisi perintah packaging atau kirim tergantung dari jenis delivery

    produk yang ditentukan oleh Pembeli saat proses checkout. Isi berita berupa

    Tolak

    Terima

    Konfirmasi PembayaranAdmin Klaster

    Daftar KOnfirmasi Pembayaran

    Konfirmasi Packaging/KirimAnggota KlasterDaftar Order

    Set Status Dapat Diambil

    Set Status Packing

    Set Status Kirim

  • perintah packaging, maka set status Dapat Diambil dilakukan oleh Anggota Klaster

    jika jenis delivery adalah COD (Cash On Delivery). Isi berita berupa perintah

    Kirim, maka set status Packaging dan Kirim dilakukan oleh Anggota Klaster jika

    jenis delivery adalah Kirim.

    Activity diagram menggambarkan aliran aktivitas dalam sistem yang sedang

    dirancang, aliran masing-masing case, decision yang mungkin terjadi, dan

    bagaimana aliran tersebut berakhir. Activity diagram yang digunakan pada

    penelitian ini meliputi proses konfirmasi pembayaran oleh Admin Klaster pada e-

    commerce dan konfirmasi pembayaran oleh Pembeli pada m-commerce. Activity

    diagram konfirmasi pembayaran oleh Pembeli pada m-commerce dapat dilihat pada

    Gambar 13.

    Gambar 13 Activity Diagram Proses Konfirmasi Pembayaran pada M-Commerce

    Pada Gambar 13 memperlihatkan bahwa proses konfirmasi pembayaran

    oleh Pembeli, diawali dengan adanya proses login. Jika login benar, maka actor

    Pembeli dapat memilih menu tagihan untuk dapat menampilkan daftar tagihan yang

    belum akan dikonfirmasi. Setelah memilih salah satu tagihan, maka proses

    konfirmasi pembayaran diawali dengan memasukkan data pembayaran. Setelah

    dianggap data pembayaran benar oleh Pembeli, maka dapat dilanjutkan ke proses

    posting data pembayaran ke server. Sebelum di-posting ke server, terlebih dahulu

    data pembayaran tersebut diproses enkripsi sehingga menjadi data chipertext. Data

    pembayaran berbentuk chipertext tersebut, lalu dikirim ke server. Oleh aplikasi

    server, data pembayaran berbentuk chipertext diproses dekripsi untuk

    mengembalikan menjadi plaintext data pembayaran, setelah itu disimpan kedalam

    basis data. Setelah tersimpan, aplikasi server akan merubah status konfirmasi

    pembayaran tagihan tersebut menjadi 1 untuk dapat melakukan proses pengiriman

    notifikasi konfirmasi pembayaran Pembeli kepada Admin Klaster.

    Selanjutnya, Activity diagram konfirmasi pembayaran oleh Admin Klaster

    pada e-commerce dapat dilihat pada Gambar 14. Fokus penelitian ini adalah

    beberapa aktivitas proses setelah even proses Diterima atau Ditolak, yaitu pada

    proses enkripsi data pesan notifikasi yang berupa id_order. Id_order diproses

    enkripsi karena data tersebut yang akan dikirim ke client melalui layanan GCM.

    Setelah pesan notifikasi tersebut sampai pada client, maka aplikasi client

  • melakukan proses dekripsi chipertext pesan, sehingga aplikasi client dapat

    mengetahui id_order yang akan dipergunakan untuk melakukan request detil data

    id_order kepada aplikasi server. Untuk menjamin kerahasiaan data, id_order juga

    di-encode oleh aplikasi client dalam proses request detil data order. Begitu juga

    data detil order, oleh aplikasi server di-encode sebelum dikirim ke client.

    Gambar 14 Activity Diagram Konfirmasi Pembayaran pada E-Commerce

    Sequence diagram menggambarkan interaksi antar obyek di dalam dan di

    sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang

    digambarkan terhadap waktu. Sequence diagram terdiri antar dimensi vertikal

    (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram yang

    digunakan pada penelitian ini meliputi konfirmasi pembayaran oleh Admin Klaster

    pada e-commerce dan Pembeli pada m-commerce.

    Gambar 15 Sequence Diagram Konfirmasi Pembayaran oleh Pembeli pada Aplikasi M-

    Commerce

    Sequence Diagram konfirmasi pembayaran oleh Pembeli pada m-commerce

    dapat dilihat pada Gambar 15, dimana menggambarkan aliran proses dan interaksi

    antar class program yang terjadi, yaitu sebagi berikut:

  • 1. Pada langkah pertama yang dilakukan saat proses konfirmasi pembayaran, pembeli memasukkan data pembayaran pada halaman konfirmasi yang

    ditampilkan oleh class ConfirmationActivity.

    2. Kemudian class ConfirmationActivity menjalankan fungsi encrypt() yang berada di class MCrypt untuk mendapatkan hasil encode dari data pembayaran.

    3. Setelah data pembayaran berhasil di-encode, maka aplikasi client akan mengirimkan data ke aplikasi server dengan mengirimkan request HTTP POST.

    4. Request tersebut akan menjalankan fungsi yang ada di class controller, yaitu kelas Order() pada aplikasi server.

    5. Data yang diterima aplikasi server berupa data yang telah di-encrypt, maka supaya data dapat dibaca, maka class Order memanggil fungsi decrypt() yang

    ada di class Mod_Order.

    6. Fungsi decrypt() akan mengembalikan hasil kembalian berupa data yang telah di-decode dalam bentuk String.

    7. Setelah data berhasil didapatkan maka class Order akan memanggil fungsi updateKonfirmasiPembayaran() di class Mod_Order untuk memasukkan data

    pembayaran ke database.

    8. Setelah data berhasil dimasukkan ke database, maka Pembeli akan mendapatkan pesan pemberitahuan atau notifikasi bahwa proses tersebut berhasil.

    Class diagram menggambarkan interaksi antar class serta atribut-atribut

    yang melekat pada class tersebut. Pada penelitian ini, memiliki 2 (dua) class

    diagram, yaitu class diagram aplikasi server dan class diagram aplikasi client.

    Aplikasi server berfungsi untuk melakukan layanan kepada aplikasi client

    guna proses transaksi pengambilan maupun pengiriman data dengan DBMS Server,

    dimana DBMS Server yang digunakan adalah MySql. Class yang bertugas

    melakukan kelola data ke DBMS Server tersebut adalah class Order dan class

    Mod_Order. Selain hal itu, juga memiliki fungsi untuk proses enkripsi dan dekripsi

    data, yaitu pada class Mod_Mcrypt berdasarkan perintah dari class Order. Untuk

    dapat memperjelas relasi antar class pada aplikasi server, maka dapat dilihat pada

    Gambar 16.

    Gambar 16 Class Diagram Aplikasi Server

    Sedangkan relasi antar class pada aplikasi client, dapat dilihat pada Gambar

    17. Hal utama dari penelitian ini adalah merancang sistem pengamanan transmisi

    data-data transaksi pada aplikasi client yaitu m-commerce. Sebagai contoh, pada

  • Gambar 17 terlihat bahwa untuk dapat mengamankan data berupa pesan notifikasi

    melalui GCM, maka disediakan class MCrypt yang bertugas melakukan proses

    enkripsi dan dekripsi isi pesan notifikasi. Dengan demikian, client dapat melakukan

    proses dekripsi pesan notifikasi sebelum pesan ditampilkan kepada actor. Untuk

    semua transaksi pada m-commerce, khususnya proses checkout dan konfirmasi

    pembayaran, dirancang beberapa class untuk melakukan transaksi tersebut, yaitu

    class ConfirmationActivity, class PostSecureTask dan class NetworkUtility.

    Gambar 17 Class Diagram Aplikasi Client

    4. Hasil dan Pembahasan Aplikasi yang dibangun pada penelitian ini diimplementasikan pada aplikasi

    Android sebagai aplikasi client, dan aplikasi Web sebagai aplikasi server. Kedua

    aplikasi tersebut memiliki peranan penting yang saling terkait, yang digunakan oleh

    user yang berbeda. Pada aplikasi Android akan digunakan oleh Pembeli untuk

    melakukan proses pemesanan dan konfirmasi pembayaran, sedangkan pada aplikasi

    Web digunakan Admin Klaster untuk menyetujui konfirmasi pembayaran dari

    Pembeli.

    Aplikasi client yaitu aplikasi berbasis Android yang dibangun pada

    penelitian ini, dikembangkan menggunakan bahasa pemrograman Java, serta

    memanfaatkan framework Android SDK yang didapat melalui situs resmi

    pengembang Android. Aplikasi Android dibangun menggunakan Eclipse Juno

    sebagai alat untuk menulis kode hingga men-deploy kode menjadi sebuah file

    berekstensi apk, yang nantinya dapat digunakan untuk memasang aplikasi pada

    perangkat Android. Pada project Android Application yang dibangun dengan

    Eclipse Juno menggunakan tiga pustaka yaitu Android Support v7, Google Play

    Service, dan Jackson untuk mendukung pengembangan aplikasi ini. Pustaka

    Android Support v7 digunakan supaya aplikasi dapat menampilkan actionBar pada

    sistem operasi Android 2.3.3, pustaka Google Play Service digunakan supaya

    aplikasi dapat memanfaatkan layanan Google Cloud Messaging, sedangkan pustaka

    Jackson digunakan supaya aplikasi dapat mengkonversi data yang diterima server

    dalam bentuk JSON.

    Untuk membangun aplikasi client berupa m-commerce dengan bahasa

    pemrograman Java pada aplikasi mobile Android, maka IDE yang digunakan pada

    penelitian ini yaitu eclipse Juno, harus memiliki plugin Android Development Tools

  • (ADT) untuk menghubungkan dengan Android SDK. Pada Android SDK tersebut,

    algoritma AES 128 bit dapat diimpelementasikan, dengan cara mengimport class

    yang berada pada package javax.crypto.

    Aplikasi client pada penelitian ini pada prinsipnya merupakan aplikasi m-

    commerce Sistem Jejaring Klaster. Penerapan algoritma AES 128 bit, hanya

    dipergunakan untuk mengamankan data-data transaksi antara lain checkout,

    konfirmasi pembayaran oleh Pembeli, dan pengiriman pesan notifikasi Diterima

    atau Ditolak konfirmasi pembayaran Pembeli dari Admin Klaster. Tampilan

    keranjang belanja actor Pembeli dapat dilihat pada Gambar 18, dan transaksi

    checkout pada Gambar 19.

    Gambar 18 Tampilan Keranjang Belanja Gambar 19 Tampilan Transaksi Checkout

    Sedangkan, tampilan transaksi konfirmasi pembayaran oleh actor Pembeli

    dapat dilihat pada Gambar 20, dan Gambar 21 merupakan tampilan notifikasi pesan

    konfirmasi pembayaran pada actor Pembeli dari Admin Klaster.

    Gambar 20 Tampilan Transaksi Konfirmasi Gambar 21 Tampilan Pesan Notifikasi

    Pembayaran oleh Pembeli Konfirmasi Pembayaran Pembeli

    Aplikasi server yang dibangun pada penelitian ini berbasis Web,

    dikembangkan menggunakan Bahasa pemrograman PHP, dan menggunakan

    framework CodeIgnitier. Pada bagian ini menjelaskan bahwa hasil penelitian ini,

    berdasarkan hasil perancangan dan pengembangan pada prototipe ketiga atau

    terakhir dari metode pengembangan sistem, yang sesuai dengan kebutuhan. Pada

  • bagian ini, pembahasan hanya berfokus pada proses enkripsi dan dekripsi

    menggunakan algoritma AES, guna keamanan pada transmisi data melalui protokol

    http atau pada port 80.

    Pembahasan implementasi enkripsi dan dekripsi pada Konfirmasi

    Pembayaran oleh Pembeli pada Aplikasi Client. Data yang berada di jaringan

    selama proses transmisi dari aplikasi client menuju aplikasi server, saat melakukan

    melakukan konfirmasi pembayaran diubah menjadi sebuah pesan chiper yang

    dienkripsi menggunakan algoritma AES, dengan kunci public yang bersifat statis

    yang disimpan dalam aplikasi server maupun client, dan kunci private yang diambil

    dari id GCM pengguna yang telah di hash dalam format MD5. Id GCM dari setiap

    pembeli dapat diperoleh melalui proses request ke layanan Google Cloud

    Messaging yang dilakukan oleh aplikasi Android, yang nantinya akan disimpan

    pada perangkat Android dan server. Perintah yang digunakan untuk mendapatkan

    id GCM dapat dilihat pada kode program 1.

    Kode Program 1 Request ID GCM

    Pada kode program 1 pada baris kode ke-1 menunjukkan aplikasi pertama-

    tama memeriksa kondisi objek bernama gcm yang merupakan objek dari kelas

    GoogleCloudMessaging. Jika objek tersebut bernilai null maka aplikasi akan

    menginisialisasi objek tersebut sebagai sebuah objek baru yang dapat dilihat pada

    baris kode ke-2. Kemudian objek tersebut memanggil fungsi bernama register

    dengan memasukkan parameter bernama SENDER_ID berupa id project yang

    didapat dari Google API Console yang nantinya akan mengembalikan nilai berupa

    id gcm yang akan disimpan pada variabel bernama regid bertipe String yang dapat

    dilihat pada baris kode ke-4. Proses tersebut berjalan ketika aplikasi tidak

    menemukan id gcm pada shared preference maupun pada basis data di server serta

    ditempatkan pada proses login maupun register sebagai pembeli pada aplikasi

    Android.

    Setelah id gcm berhasil didapatkan dan disimpan pada perangkat Android

    maupun basis data di server, maka proses enkripsi dan dekripsi dapat dilakukan

    karena kunci private telah dimiliki. Proses enkripsi pada aplikasi client digunakan

    saat mengirimkan parameter pada request HTTP POST ke aplikasi server ketika

    melakukan konfirmasi pembayaran. Perintah yang digunakan untuk melakukan

    enkripsi pada aplikasi client dapat dilihat pada kode program 2.

    Kode Program 2 Fungsi Enkripsi Pada Aplikasi Client

    Pada kode program 2, pada baris kode ke-1 menunjukkan objek bernama

    cipher yang merupakan objek dari kelas Cipher memanggil fungsi yaitu init()

    dengan parameter berupa mode enkripsi, kunci private, dan kunci public untuk

    menginisialisasi spesifikasi kunci yang dibutuhkan untuk memulai proses enkripsi.

    1. if (gcm == null) { 2. gcm = GoogleCloudMessaging.getInstance(context); 3. } 4. regid = gcm.register(SENDER_ID);

    1. cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); 2. return bytesToHex(cipher.doFinal(padString(text).getBytes()));

  • Kemudian pada baris kode ke-2 objek chipper memanggil fungsi doFinal() dengan

    parameter teks yang akan dienkripsi untuk mendapatkan hasil enkripsi yang akan

    menghasilkan data yang bertipe byte. Data dalam bentuk byte tersebut akan

    dikembalikan berupa String dengan memanggil fungsi bytesToHex() .Setelah hasil

    enkripsi diperoleh maka aplikasi akan mengirimkan pesan chipper tersebut ke

    aplikasi server melalui request HTTP POST.

    Setelah aplikasi menerima pesan chiper dari aplikasi client, maka aplikasi

    server harus mendekripsi pesan tersebut supaya dapat membaca parameter yang

    didapat dari request HTTP POST dari aplikasi client. Perintah yang digunakan

    untuk melakukan dekripsi pada aplikasi server dapat dilihat pada kode program 3.

    Kode Program 3 Fungsi Dekripsi Pada Aplikasi Server

    Pada kode program 3, pada baris kode ke-1 menunjukkan fungsi dekripsi

    berada pada fungsi decrypt dengan parameter kunci public, kunci private, dan teks

    yang akan didekripsi. Parameter teks terebut kemudian diubah menjadi sebuah data

    binary dengan memanfaatkan fungsi hex2bin() yang nantinya hasilnya akan

    disimpan pada suatu variable bernama $code yang ditunjukkan pada baris kode ke-

    2. Setelah data tersebut diperoleh maka module dari suatu alogaritma yaitu

    “rijndael-128” dengan menggunakan mode “cbc” akan dibuka dengan fungsi

    mcrypt_module_open yang nantinya akan menghasilkan kembalian berupa

    encryption descriptor untuk objek td. Kemudian pada baris kode ke-3, aplikasi

    menginisialisasi setiap buffer yang akan digunakan untuk proses dekripsi dengan

    fungsi mcrypt_generic_init sebelum melakukan proses dekripsi dengan fungsi

    mdecrypt_generic yang ditunjukkan pada baris kode ke-4. Pada fungsi

    mcrypt_generic, hasil dekripsi dapat dihasilkan dalam bentuk String, dengan

    memasukkan parameter berupa encryption descriptor, dan data yang akan

    didekripsi seperti yang dapat dilihat dari baris kode ke-5. Setelah proses dekripsi

    selesai dilakukan, maka hasil dekripsi akan ditampung pada variabel bernama

    decrypted bertipe String dan aplikasi akan menutup setiap buffer dan module yang

    digunakan untuk proses dekripsi yang ditunjukkan pada baris kode ke-6 sampai

    baris kode ke-7. Setelah buffer dan module berhasil ditutup maka hasil dekripsi

    yang didapat dikembalikan.

    Implementasi enkripsi dan dekripsi pada Konfirmasi Pembayaran oleh

    Admin Klaster, yaitu data yang berada di jaringan selama proses mengirim pesan

    notifikasi dari aplikasi server ke Google Cloud Messaging, maupun dari Google

    Cloud Messaging ke aplikasi client berupa pesan chiper. Pesan notifikasi akan

    dikirim ketika admin klaster telah menyetujui atau menolak konfirmasi pembayaran

    dari pembeli. Perintah yang digunakan untuk melakukan dekripsi pada aplikasi

    server dapat dilihat pada kode program 4.

    Kode Program 4 Fungsi Enkripsi Pada Aplikasi Server

    1. function decrypt($iv,$key,$code) { 2. $code = $this->hex2bin($code); 3. $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv); 4. mcrypt_generic_init($td, $key, $iv); 5. $decrypted = mdecrypt_generic($td, $code); 6. mcrypt_generic_deinit($td); 7. mcrypt_module_close($td); 8. return utf8_encode(trim($decrypted));}

  • Pada kode program 4, pada baris kode ke-1 menunjukkan fungsi dekripsi

    berada pada fungsi encrypt dengan parameter kunci public, kunci private, dan teks

    yang akan dienkripsi. Kemudian module dari suatu alogaritma yaitu “rijndael-128”

    dengan menggunakan mode “cbc” akan dibuka dengan fungsi

    mcrypt_module_open yang nantinya akan menghasilkan kembalian berupa

    encryption descriptor untuk objek td seperti yang dapat dilihat pada baris kode ke-

    2. Kemudian aplikasi menginisialisasi setiap buffer yang akan digunakan untuk

    proses dekripsi dengan fungsi mcrypt_generic_init sebelum melakukan proses

    dekripsi dengan fungsi mdecrypt_generic yang ditunjukkan pada baris kode ke-3.

    Pada fungsi mcrypt_generic, hasil enkripsi dapat dihasilkan dalam bentuk String,

    dengan memasukkan parameter berupa encryption descriptor, dan data yang akan

    dienkripsi. Setelah proses enkripsi selesai dilakukan, maka hasil dekripsi akan

    ditampung pada variabel bernama encrypted bertipe String pada baris kode ke-4

    dan aplikasi akan menutup setiap buffer dan module yang digunakan untuk proses

    dekripsi yang ditunjukkan pada baris kode ke-5 sampai baris kode ke-6. Setelah

    buffer dan module berhasil ditutup maka hasil dekripsi yang didapat dikembalikan.

    Setelah pesan untuk notifikasi sudah terenkripsi, maka aplikasi server

    akan mengirimkan request PUSH ke layanan Google Cloud Messaging. Pesan yang

    dikirimkan ke layanan Google Cloud Messaging berupa pesan chipper, hingga

    nantinya akan diterima aplikasi client. Maka, pesan tersebut harus didekripsi supaya

    aplikasi client dapat membaca pesan notifikasi dari layanan Google Cloud

    Messaging. Perintah yang digunakan untuk melakukan dekripsi pada aplikasi client

    dapat dilihat pada kode program 5.

    Kode Program 5 Fungsi Dekripsi Pada Aplikasi Client

    Pada kode program 5, pada baris kode ke-1, menunjukkan objek bernama

    cipher yang merupakan objek dari kelas Cipher memanggil fungsi yaitu init()

    dengan parameter berupa mode enkripsi, kunci private, dan kunci public, untuk

    menginisialisasi spesifikasi kunci yang dibutuhkan untuk memulai proses dekripsi.

    Kemudian pada baris kode ke-2, objek chipper memanggil fungsi doFinal(), dengan

    parameter teks yang akan didekripsi untuk mendapatkan hasil enkripsi yang akan

    disimpan pada variabel dc yang bertipe byte. Kemudian pada baris kode ke-3

    1. function encrypt($iv,$key,$str) { 2. $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv); 3. mcrypt_generic_init($td, $key, $iv); 4. $encrypted = mcrypt_generic($td, $str); 5. mcrypt_generic_deinit($td); 6. mcrypt_module_close($td); 7. return bin2hex($encrypted);}

    1 cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); 2 byte[] decrypted = cipher.doFinal(hexToBytes(code)); 3 if (decrypted.length > 0) { 4 int trim = 0; 5 for (int i = decrypted.length - 1; i >= 0; i--) 6 if (decrypted[i] == 0) { 7 trim++;} 8 if (trim > 0) { 9 byte[] newArray = new byte[decrypted.length - trim]; 10 System.arraycopy(decrypted, 0, newArray, 0, decrypted.length-trim); 11 decrypted = newArray;} 12 } 13 return decrypted;

  • sampai baris kode ke-12, aplikasi menghapus spasi yang ditemukan pada hasil

    dekripsi tersebut.

    5. Uji Sistem Pengujian yang pertama dengan menggunakan metode black-box, dengan

    hasil yang dapat dilihat pada Tabel 1.

    Tabel 1 Hasil Pengujian Black-box

    No. Proses Hasil yang

    diharapkan Hasil yang Muncul Simpulan

    1. Enkripsi data checkout Data terenkripsi Data terenkripsi Valid

    2. Dekripsi data checkout Data terdekripsi Data terdekripsi Valid

    3. Enkripsi data konfirmasi

    pembayaran

    Data terenkripsi Data terenkripsi Valid

    4. Dekripsi data konfirmasi

    pembayaran

    Data terdekripsi Data terdekripsi Valid

    5. Enkripsi pesan notifikasi

    konfirmasi pembayaran diterima

    Data terenkripsi Data terenkripsi Valid

    6. Dekripsi pesan notifikasi

    konfirmasi pembayaran diterima

    Data terdekripsi Data terdekripsi Valid

    7. Enkripsi pesan notifikasi

    konfirmasi status packaging /

    kirim

    Data terenkripsi Data terenkripsi Valid

    8. Dekripsi pesan notifikasi

    konfirmasi status packaging /

    kirim

    Data terdekripsi Data terdekripsi Valid

    Pengujian yang kedua digunakan untuk membuktikan bahwa data yang

    melalui media transmisi yaitu protocol http pada aplikasi client-server, merupakan

    data hasil proses enkripsi menggunakan algoritma AES. Pengujian ini

    menggunakan aplikasi spyware bernama tPacketCapture karena diinstall pada

    aplikasi mobile Android. Hasil capture proses checkout, dapat dilihat pada Gambar

    22. Sedangkan, capture hasil posting data transaksi konfirmasi pembayaran

    Pembeli dapat dilihat pada Gambar 23.

  • Gambar 22 Hasil Capture Proses Checkout Gambar 23 Hasil Capture Proses

    Konfirmasi

    Pada Aplikasi Client Pembayaran Pada Aplikasi Client

    Kedua gambar tersebut membuktikan bahwa penerapan algoritma AES 128

    bit sudah dapat diimpelemntasikan. Algoritma AES tersebut, sudah dapat

    mengamankan data-data yang melalui media transmisi pada transaksi-transaksi

    bisnis aplikasi client-server m-commerce Sistem Jejaring Klaster.

    6. Simpulan Berdasarkan hasil dari perancangan dan implementasi penerapan algoritma

    AES 128 bit guna keamanan transmisi data pada aplikasi client-server, maka

    diperoleh kesimpulan yaitu pertama, didalam menjaga kerahasiaan data dilakukan

    dengan membangun fungsi-fungsi enkripsi dan dekripsi di sisi server maupun di

    sisi client, sehingga tercapai konsep kerahasiaan data (confidenciallity). Kedua,

    dengan menggunakan id GCM sebagai privat key pada algoritma AES, digunakan

    untuk otentikasi transaksi bisnis pada aplikasi client. Ketiga, Untuk menjamin

    panjang kunci hingga 128 bit, maka id GCM terlebih dahulu dikenai proses hash

    md5.

    Saran pengembangan pada sistem keamanan data, privat key dapat

    diperpanjang hingga 256 bit agar lebih aman. Untuk pengamanan pada transmisi

    data, algoritma dapat diganti dengan menggunakana algoritma yang terbaru, dengan

    cara hanya mengubah fungsi enkripsi dan dekripsi di sisi client maupun di sisi

    server.

    7. Pustaka [1] Perdana, J. 2013. Transaksi Online Indonesia 2015 Diprediksi Rp 95 triliun

    Waktunya Brand Besar Geluti E-Commerce. http://the-

    marketeers.com/archives/transaksi-online-indonesia-2015-diprediksi-

    rp95-triliun-waktunya-brand-besar-geluti-e-commerce.html. Diakses

    tanggal 24 Maret 2014.

    [2] Tobing, D. 2014. Pertumbuhan Internet Banking dan e-Commerce di

    Indonesia : ATM dan CoD Mendominasi.

    http://startupbisnis.com/pertumbuhan-internet-banking-dan-e-commerce-

    di-indonesia-atm-dan-cod-mendominasi/. Diakses tanggal 24 Maret 2014

    [3] Suprihadi, Hudiono, R., Sinatra, L. 2013. Rancang Bangun Sistem Jejaring

    Klaster Berbasis Web Dengan Pendekatan Model E-Commerce:

    Marketplace Concentrator. Jurnal Aiti: Vol. 10 No. 1 Februari 2013. FTI-

    UKSW. Salatiga.

    [4] Widayanti, R. 2012, Konsep Keamanan E-Commerce.

    http://www.esaunggul.ac.id/article/konsep-keamanan-e-commerce-2/.

    Diakses tanggal 24 Maret 2014

    [5] Kristanto, R., Suprihadi, Tanone, R. 2013. Perancangan dan Implementasi

    Sistem Notifikasi Bisnis Pada Sistem Jejaring Klaster Berbasis Android,

    Skripsi FTI UKSW. Salatiga.

  • [6] Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet dan Jaringan

    Telekomunikasi. Bandung : Informatika.

    [7] Munir, Rinaldi. 2004. Advanced Encryption Standard (AES).

    www.informatika.org/~rinaldi/.../MakalahIF505430708089.pdf. Diakses

    tanggal 7 Maret 2014.

    [8] Basofi, A. 2013. Database Client / Server. http://lecturer.eepis-

    its.edu/~ariv/Database%202/Pertemuan-10%20(Database%20Client-

    Server).pdf. Diakses tanggal 25 Maret 2014.

    [9] Budi, S. 2006. Client Server dan Sistem Terdistribusi. Yogyakarta: Penerbit

    Andi.

    [10] Siagian, FA. 2007. Perancangan Komunikasi Client Server dan Sistem

    Database. http://repository.usu.ac.id/ bitstream/123456789/

    11859/1/09E00061.pdf. Diakses tanggal 21 Maret 2014.

    [11] Pujiyono, dkk, 2004, Perbandingan Model Two-Tier dengan Three-Tier

    dalam Asritektur Client/Server untuk Mengolah Perintah Query pada

    Aplikasi Database.

    http://journal.uii.ac.id/index.php/Snati/article/viewFile/1810/1589. Diakses

    tanggal 26 Maret 2014.

    [12] Anonim. 2012. Bab 2 Landasan Teori.

    http://library.binus.ac.id/eColls/eThesisdoc/Bab2/2012-1-00346-

    IF%20Bab2001.pdf. Diakses tanggal 25 Maret 2014.

    [13] Pressman, 2001, Software Enginering: A Practicioner’s Approach 5th Edition,

    America: Mc. Graw Hill.