T1 672008017 Full text

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 ecommerce 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 faktafakta 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 mcommerce Sistem Jejaring Klaster.
Mengingat luasnya masalah yang akan dibahas, maka penelitian ini
memiliki ruang lingkup, yaitu pertama, tidak membahas secara detil aplikasi mcommerce, 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 ECommerce: 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 clientserver. 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 lainlain. 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 clientserver 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 clientserver 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.
Web Server
Application Server

Request / Respon
SQL

Chiper(Data Order)

DBMS iKlaster

Chiper(Data
Chiper(Data
Transaksi)
Transaksi)

Chiper(Data Order)

Application Client

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 mcommerce 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.
Client Application

Mulai

Data Transaksi

Enkripsi(Data
Transaksi)

Chipertext

Transmission Layer

Selesai

Data Transaksi

Dekripsi(Chipertext)

Server Application

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.
Server Layer

Mulai

Data Transaksi

Enkripsi(Data
Transaksi)

Chipertext

Transmission Layer

Selesai

Data Transaksi

Dekripsi(Chipertext)

Client 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.

Terima


Admin Klaster

Konfirmasi Pembayaran

Daftar KOnfirmasi Pembayaran
Tolak




Anggota Klaster

Konfirmasi Packaging/Kirim

Set Status Dapat Diambil



Daftar Order



Set Status Packing

Set Status Kirim

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

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 ecommerce 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 MCommerce

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 mcommerce 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
Pembayaran oleh Pembeli

Gambar 21 Tampilan Pesan Notifikasi
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
1.
2.
3.
4.

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

Pada kode program 1 pada baris kode ke-1 menunjukkan aplikasi pertamatama 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
1. cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
2. return bytesToHex(cipher.doFinal(padString(text).getBytes()));

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.

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
1.
2.
3.
4.
5.
6.
7.
8.

function decrypt($iv,$key,$code) {
$code = $this->hex2bin($code);
$td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);
mcrypt_generic_init($td, $key, $iv);
$decrypted = mdecrypt_generic($td, $code);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return utf8_encode(trim($decrypted));}

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 ke2. 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.
2.
3.
4.
5.
6.
7.

function encrypt($iv,$key,$str) {
$td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv);
mcrypt_generic_init($td, $key, $iv);
$encrypted = mcrypt_generic($td, $str);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return bin2hex($encrypted);}

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 ke2. 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
1
2
3
4
5
6
7
8
9
10
11
12
13

cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
byte[] decrypted = cipher.doFinal(hexToBytes(code));
if (decrypted.length > 0) {
int trim = 0;
for (int i = decrypted.length - 1; i >= 0; i--)
if (decrypted[i] == 0) {
trim++;}
if (trim > 0) {
byte[] newArray = new byte[decrypted.length - trim];
System.arraycopy(decrypted, 0, newArray, 0, decrypted.length-trim);
decrypted = newArray;}
}
return decrypted;

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

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.

No.
1.
2.
3.
4.
5.
6.
7.

8.

Tabel 1 Hasil Pengujian Black-box
Hasil yang
Proses
Hasil yang Muncul
diharapkan
Enkripsi data checkout
Data terenkripsi
Data terenkripsi
Dekripsi data checkout
Data terdekripsi
Data terdekripsi
Enkripsi data konfirmasi
Data terenkripsi
Data terenkripsi
pembayaran
Dekripsi data konfirmasi
Data terdekripsi
Data terdekripsi
pembayaran
Enkripsi pesan notifikasi
Data terenkripsi
Data terenkripsi
konfirmasi pembayaran diterima
Dekripsi pesan notifikasi
Data terdekripsi
Data terdekripsi
konfirmasi pembayaran diterima
Enkripsi pesan notifikasi
Data terenkripsi
Data terenkripsi
konfirmasi status packaging /
kirim
Dekripsi pesan notifikasi
Data terdekripsi
Data terdekripsi
konfirmasi status packaging /
kirim

Simpulan
Valid
Valid
Valid
Valid
Valid
Valid
Valid

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 d