1
APLIKASI KEAMANAN SHORT MESSAGE SERVICE DENGAN METODE ADVANCED ENCRYPTION STANDARD (AES) PADA ANDROID Ressy Ananda Terunawan 1, Heni Rachmawati 2, Warnia Nengsih3 1
Politeknik Caltex Riau, Jl. Umbansari / Patin No.1 Rumbai – Pekanbaru 28265 (
[email protected]) 2 Politeknik Caltex Riau, Jl. Umbansari / Patin No.1 Rumbai – Pekanbaru 28265 (
[email protected]) 3 Politeknik Caltex Riau, Jl. Umbansari / Patin No.1 Rumbai – Pekanbaru 28265 (
[email protected] )
Abstrak Short Message Service (SMS) merupakan suatu layanan yang diberikan kepada pengguna untuk melakukan komunikasi melalui pengiriman pesan singkat. Namun komunikasi melalui media SMS ini bukanlah komunikasi secara langsung sampai pada tujuan, melainkan melalui jaringan dan disimpan dalam SMS Center (SMSC) layanan seluler yang dipakai. Pada jaringan SMS tersebut, keamanan pesan sangat terancam untuk dibaca oleh orang yang tidak bertanggung jawab. Sehingga untuk meningkatkan keamanan pesan menggunakan algoritma kriptografi yang memiliki proses enkripsi dan dekripsi. Untuk itu dibuat sebuah aplikasi keamanan SMS dengan metode Advanced Encryption Standard (AES), AES digunakan untuk meningkatkan keamanan pesan dengan mengenkripsi pesan yang dikirimkan. AES menggunakan kunci sepanjang 192 bit, untuk proses enkripsi maupun dekripsi. Berdasarkan penelitian, algoritma AES lebih lama melakukan proses generate kunci pada saat enkripsi, dengan durasi waktu sebesar 7,5 ms dan 7,1 ms untuk proses dekripsi, jika dibandingkan algoritma Triple DES yang hanya mempunyai durasi waktu sebesar 5 ms untuk enkripsi dan 5,1 ms untuk proses dekripsi. Tetapi algortima AES lebih cepat dalam melakukan proses enkripsi dengan durasi waktu sebesar 12,7 ms dan 15 ms untuk proses dekripsi dibandingkan algoritma Triple DES dengan durasi waktu sebesar 19,8 dan 23,5 ms. Kata kunci : Algoritma AES, Dekripsi, Enkripsi, SMS
Abstract Short Message Service (SMS) is a service provided to the user to communicate via short messages. However, through the medium of SMS communication is not communication directly to the destination, but rather through the network and stored in the SMS Center (SMSC) mobile services are used. On the SMS network, messaging security seriously threatened to be read by people who are not responsible. So as to enhance the security of the message using a cryptographic algorithm that has encryption and decryption process. For security it created an SMS application using the Advanced Encryption Standard (AES), AES is used to improve the security of a message to encrypt messages sent. AES using 192 bit keys along, for the encryption and decryption process. Based on research, the AES algorithm longer to process at the time of the encryption key generated, with duration of 7.5 ms and 7.1 ms for the decryption process, when compared to the Triple DES algorithm that only has time duration of 5 ms for encryption and 5, 1 ms for the decryption process. But faster AES algorithm in the encryption process with duration of 12.7 ms and 15 ms for the Triple DES decryption algorithm compared with duration of 19.8 and 23.5 ms. Keywords: Algorithm AES,Triple DES, SMS
1
Pendahuluan
Dalam proyek akhir ini dirancang sebuah sistem aplikasi dengan menggunakan algoritma AES (Advanced Encryption Standard) untuk mengenkripsi pesan dan mendekripsi pesan tersebut. AES merupakan algoritma enkripsi simetris, yaitu sebuah algoritma yang menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi pesan, dan memiliki panjang blok 128 bit serta ukuran kunci sepanjang 128 bit, 192 bit dan 256 bit. AES menggantikan algoritma DES (Data Encryption Standard) yang hanya memiliki panjang kunci 56 bit. Sampai saat ini AES masih dianggap aman untuk digunakan disebabkan dengan penggunaan kunci yang sangat besar. Jadi akan sulit untuk di serang karena memiliki ruang
2
Ressy Ananda T
kunci 2128, 2192 dan 2256 dari tiap panjang kunci. Aplikasi ini menggunakan panjang kunci 192 bit dan dapat melakukan proses enkripsi dan dekripsi pada smartphone berbasis android. Adapun tujuan dari proyek akhir ini adalah membangun aplikasi keamanan layanan SMS dengan mengimplementasikan kriptografi AES. Perumusan masalah dalam pembuatan proyek akhir ini adalah : 1. Bagaimana mengenkripsi SMS dengan kriptografi AES. 2. Bagaimana mendekripsi SMS dengan kriptografi AES. 3. Bagaimana implementasi kriptografi AES pada android. 2.
Tinjauan Pustaka
2.1
Kriptografi
Menurut Kautzar [4] Kriptografi berasal dari dua kata Yunani, yaitu Crypto yang berarti rahasia dan Grapho yang berarti menulis. Secara umum kriptografi dapat diartikan sebagai ilmu dan seni penyandian yang bertujuan untuk menjaga keamanan dan kerahasiaan suatu pesan. Kriptografi pada dasarnya sudah dikenal sejak lama. Menurut catatan sejarah, kriptografi sudah digunakan oleh bangsa Mesir sejak 4000 tahun yang lalu oleh rajaraja Mesir pada saat perang untuk mengirimkan pesan rahasia kepada panglima perangnya melalui kurir-kurinya. Orang yang melakukan penyandian ini disebut kriptografer, sedangkan orang yang mendalami ilmu dan seni dalam membuka atau memecahkan suatu algoritma kriptografi tanpa harus mengetahui kuncinya disebut kriptanalis. Seiring dengan perkembangan teknologi, algoritma kriptografi pun mulai berubah menuju ke arah algoritma kriptografi yang lebih rumit dan kompleks. Kriptografi mau tidak mau harus diakui mempunyai peranan yang paling penting dalam peperangan sehingga algoritma kriptografi berkembang cukup pesat pada saat Perang Dunia I dan Perang Dunia II. Menurut catatan sejarah, terdapat beberapa algoritma kriptografi yang pernah digunakan dalam peperangan, diantaranya adalah ADFVGX yang dipakai oleh Jerman pada Perang Dunia I, Sigaba/M-134 yang digunakan oleh Amerika Serikat pada Perang Dunia II, Typex oleh Inggris, dan Purple oleh Jepang. Selain itu Jerman juga mempunyai mesin legendaris yang dipakai untuk memecahkan sandi yang dikirim oleh pihak musuh dalam peperangan yaitu, Enigma. Algoritma kriptografi yang baik tidak ditentukan oleh kerumitan dalam mengolah data atau pesan yang akan disampaikan Kriptografi pada dasarnya terdiri dari dua proses, yaitu proses enkripsi dan proses dekripsi. Proses enkripsi adalah proses penyandian pesan terbuka menjadi pesan rahasia (ciphertext). Ciphertext inilah yang nantinya akan dikirimkan melalui saluran komunikasi terbuka. Pada saat ciphertext diterima oleh penerima pesan, maka pesan rahasia tersebut diubah lagi menjadi pesan terbuka melalui proses dekripsi sehingga pesan tadi dapat dibaca kembali oleh penerima pesan. Terdapat dua jenis kriptografi berdasarkan waktu yaitu [5] : 1. Algoritma Klasik adalah cara penyamaran data atau informasi yang dilakukan oleh orang-orang dulu ketika belum ada komputer. 2. Algoritma Modern adalah cara penyamaran data atau informasi yang dilakukan pada era computer yang memiliki kerumitan yang sangat kompleks. Terdapat dua jenis kriptografi berdasarkan jenis kuncinya yaitu [5]: 1. Algoritma Simetri (private key) adalah algoritma kriptografi yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. 2. Algoritma Asimetri (public key) adalah algoritma kriptografi yang menggunakan kunci enkripsi yang berbeda dengan kunci dekripsinya.
3
2.2
Advanced Encryption Standard (AES)
Menurut Huda [2], AES merupakan algoritma block cipher dengan menggunakan sistem permutasi dan substitusi (P-Box dan S-Box). Berdasarkan panjang kunci yang digunakan AES dikelompokkan menjadi 3 bagian, angka-angka di belakang kata AES menggambarkan panjang kunci yang digunakan pada tipa-tiap AES. Selain itu, hal yang membedakan dari masingmasing AES ini adalah banyaknya round yang dipakai. AES-128 menggunakan 10 round, AES192 sebanyak 12 round, dan AES-256 sebanyak 14 round. Berikut adalah tabel jumlah putaran yang digunakan algoritma ini. Garis besar algoritma AES yang beroperasi blok 128-bit dengan kunci 192-bit adalah sebagai berikut: 1. AddRoundKey: melakukan XOR antara state awal (plainteks) dengan cipher key. Tahap ini disebut juga initial round. 2. Putaran sebanyak Nr – 1 kali. Proses yang dilakukan pada setiap putaran adalah: a.ByteSub: Substitusi byte dengan menggunakan tabel substitusi (S-box). b. ShiftRow: Pergeseran baris-baris array state secara wrapping. c. MixColumn: Mengacak data di masing-masing kolom array state. d. AddRoundKey: Melakukan XOR antara state sekarang dengan round key. 1. Final round: proses untuk putaran terakhir: a. ByteSub. b. ShiftRow. c. AddRoundKey. 2.3
Short Message Service (SMS)
Short Message Service (SMS) adalah kemampuan untuk mengirim dan menerima pesan dalam bentuk teks dari dan kepada ponsel. Teks tersebut bisa terdiri dari kata-kata atau nomor atau kombinasi alphanumeric. SMS diciptakan sebagai standar pesan (message) oleh ETSI (Europesan Telecommunication Standards Institute), yang juga membuat standar GSM yang diimplementasikan oleh semua operator GSM. SMS yang pertama dikirimkan pada Desember 1992 dari PC ke sebuah ponsel melalui jaringan GSM Vodafone di UK. Setiap Pesan maksimal terdiri dari 160 karakter jika menggunakan alphabet Latin, dan 70 karakter jika menggunakan alphabet non-Latin seperti huruf Arab atau China. Cara kerja SMS : Saat kita menerima pesan SMS/MMS dari handphone (mobile originated), pesan tersebut tidak langsung dikirimkan ke handphone tujuan (mobile terminated), akan tetapi dikirim terlebih dahulu ke SMS Center (SMSC) yang biasanya berada di kantor operator telepon, baru kemudian pesan tersebut diteruskan ke handphone tujuan. Dengan adanya SMSC, kita dapat mengetahui status dari pesan SMS yang telah dikirim, apakah telah sampai atau gagal. 2.4
Android
Pada mulanya, Android adalah salah satu produk besutan dari Android Inc., namun Google mengakuisisi Android Inc., dan semua kekayaan intelektual milik Android Inc. diperoleh Google Inc. yang kemudian mengembangkan kembali sistem Android mengakuisi Android Inc.
4
Ressy Ananda T
Android adalah sistem operasi Mobile Phone berbasiskan Linux. Android bersifat open source yang source codenya diberikan secara gratis bagi para pengembang untuk menciptakan aplikasi mereka agar dapat berjalan di Android. 3
PERANCANGAN
3.1
Perancangan Use Case Diagram
Use case digunakan untuk melihat interaksi antara sistem dengan pengguna atau disebut aktor. Pada gambar 1 menggambarkan fungsionalitas dari sistem yang dibangun. Pengirim dapat input kontak, input pesan, input kunci, setelah itu dapat melakukan proses enkripsi terhadap pesan yang diinputkan, lalu pengirim dapat mengirim pesan ke nomor tujuan yang telah diinputkan. input kunci
Penerima
dekripsi pesan
input kontak
input pesan Pengirim
input kunci
enkripsi pesan
kirim pesan
Gambar 1. Use case pengiriman pesan enkripsi
Pada gambar 2 menggambarkan fungsionalitas dari sistem yang akan dibangun. Penerima dapat melakukan input kunci dan dekripsi pesan. Sebelum melakukan dekripsi maka penerima terlebih dahulu menginputkan kunci yang sama saat pengirim melakukan pengiriman pesan, setelah itu penerima pesan dapat mendekrip pesan dan terlihat pesan asli yang dikirim oleh si pengirim pesan.
input kunci
Penerima
dekripsi pesan
Gambar 2. Use case mendekripsi pesan
4. 4.1
PENGUJIAN DAN ANALISA
input kontak
input pesan
Skenario Penggunaan Aplikasi Skenario penggunaan aplikasi menjelaskan cara pemakaian aplikasi dari proses awal input kunci hingga selesai. Pengirim
4.1.1 Skenario Proses Pengiriman SMS Cara penggunaan menu kirim SMS dan proses enkripsi : 1. Tampilan pada saat running aplikasi di smartphone android. enkripsi pesan
kirim pesan
5
2.
Gambar 3. Tampilan running aplikasi
3.
Setelah langkah 1 selesai, maka muncul tampilan menu utama dari aplikasi ini. Terlihat pada gambar 4.2 terdapat dua menu utama yaitu SMS masuk dan kirim SMS.
Gambar 4. Form Menu Awal
4.
Untuk melakukan proses pengiriman SMS maka harus memilih menu “Kirim SMS”. Pada
form kirim sms ini user diminta untuk memasukkan nomor tujuan bisa diketikkan langsung maupun diambil dari menu kontak yang terlah tersedia. Setelah itu diminta untuk memasukkan password dengan maximal 24 karakter. Langkah selanjutnya user mengisi isi dari pesan yang ingin dikirimkan. Setelah itu, user memilih tombol “Enkrip” yang telah disediakan. Maka akan terlihat sms yang akan dikirimkan telah berubah menjadi bentuk chiperteks (pesan rahasia) terlihat pada gambar 5 sms sebelum di enkrip dan pada gambar 6 sms telah berubah menjadi bentuk chiperteks.
Gambar 5. sebelum ekripsi
Gambar 6. sesudah enkripsi
Terlihat perbedaan pada kedua gambar diatas, terlihat pesan berbentuk plainteks dan pesan berbentuk chiperteks. Setelah melakukan enkrip maka user bisa langsung memilih tombol “kirim” untuk melakukan proses pengiriman. 4.1.2 Skenario Proses Penerimaan SMS
1.
Cara penggunaan menu “sms masuk” dan proses dekripsi : Untuk tampilan “sms masuk” jika terdapat pesan yang belum terbuka maka akan tampil di tampilan tersebut, seperti gambar berikut :
6
Ressy Ananda T
Gambar 7. Tanpilan SMS masuk
2.
Setelah itu, user dapat membuka pesan tersebut. Isi pesan yang diterima sama dengan isi pesan yang dikirim oleh pengirim, dengan berbentuk chiperteks. Pada tampilan “sms masuk” ini terdapat nama atau nomor si pengirim sms, selain itu juga terdapat “password” untuk si penerima memasukkan password yang sama saat melakukan pengiriman sms oleh si pengirim sms. Dan juga terdapat “pesan” yang berisi sms dalam bentuk chiperteks yang akan dirubah ke bentuk plainteks. Untuk melakukan proses itu, maka user harus memilih tombol “dekrip” lalu pesan akan berubah bentuk menjadi plainteks kembali, yang dapat di mengerti oleh si penerima sms. Terlihat pada gambar 8 dan gambar 9 proses sebelum dan sesudah di dekripsi.
Gambar 8. sebelum didekripsi
Gambar 9. Sesudah didekripsi
3.
Tombol “tutup” untuk kembali ke menu sebelumnya.
4.2
Pengujian
Dalam penelitian ini, pengujian dilakukan dengan membandingkan algortima AES dan Triple DES terhadap waktu dari proses generate kunci ekripsi / dekripsi, proses enkripsi / dekripsi yang dilakukan dengan beberapa percobaan. Kemudian seluruh hasil percobaan dijumlahkan lalu dibagi dengan banyaknya percobaan. Pengujian juga pada efek avalanche pada algoritma AES, untuk menentukan baik atau tidaknya suatu algortima kriptografi, dimana akan diketahui seberapa besar perubahan bit yang terjadi pada chiperteks akibat proses enkripsi. Semakin besar avalanche effect akan semakin baik algoritma kriptografi tersebut. Tabel 1 Efek Avalanche pada satu bit kunci No
Kata Kunci
Hasil Prosentase
1
bilajarkriptografi
10,2 %
2
bimajarkriptografi
14,8 %
7
3
bimipirkriptografi
19,3 %
4
bimipikrpiptografi
24,6 %
5
bpkulimhtyoografi
33,0 %
6
b35879iydwqxz9rafi
39,5 %
7
bcvnxzplhfsqityafi
44,7 %
8
b2345678902tydglfi
48,0 %
9
bcxzwqplhbncvytesi
53,1 %
10
bomikitljknotrgita
58,9 %
Tabel 2 Efek Avalanche pada satu bit plainteks No
Plainteks
Hasil Prosentase
1
Soka suka bermain kartu
12,3 %
2
Siap luka bermain kartu
15,7 %
3
Somn lipa bermain kartu
20,4 %
4
Sklm tida termain kartu
25,1 %
5
Sbtn 1245 jafmain kartu
38,7 %
6
Sidi macl ermainbin kartu
40,9 %
7
Skal biku wrqzvbm kartu
47,6 %
8
Sjie nomu ptwqxzs turtu
50,3 %
9
Sopi edni 1234567 waktu
57,5 %
10
Siyi pidi wjklmnop tidak
66,2 %
8
Ressy Ananda T
4.3 Analisa 1.
Uji coba kecepatan proses generate kunci enkripsi pada AES dan Triple DES
Dalam pengujian kecepatan proses generate kunci terlihat berbeda bahwa Triple DES lebih cepat di bandingkan dengan AES yang bernilai 1,4 ms dan 1 ms. Hal ini terjadi dikarenakan karena AES memiliki keyExpansion yang diikuti proses Rcon, XOR, SubByte sedangkan untuk Triple DES tidak melakukan proses tersebut, sehingga Triple DES lebih cepat melakukan generate kunci dibandingkan AES.
2.
Uji coba kecepatan proses generate kunci dekripsi pada AES dan Triple DES
Dalam pengujian kecepatan proses generate kunci terlihat berbeda bahwa Triple DES lebih cepat di bandingkan dengan AES yang bernilai 1,2 ms dan 1 ms. Hal ini sama seperti melakukan generate kunci pada proses enkripsi, dimana AES memiliki proses untuk melakukan generate kunci sedangkan Triple DES tidak melakukan proses seperti yang dilakukan AES. 3.
Uji coba kecepatan proses enkripsi pada AES dan Triple DES
Dalam pengujian kecepatan pada proses enkripsi bahwa AES lebih cepat dibanding dengan Triple DES dengan nilai 12,7 ms banding 19,8 ms. Hal ini dikarenakan proses enkripsi pada AES 192 bit ini memiliki 12 putaran sedangkan DES memiliki 16 putaran yang berarti melakukan proses sebanyak 16 kali dalam satu kali pemrosesan enkripsi bagaimana dengan Triple DES yaitu 64 putaran yang berati 64 kali proses setiap melakukan proses enkripsi, tentu akan memakan waktu proses lebih lama di banding dengan AES 192 bit. 4. Uji coba kecepatan proses dekripsi pada AES dan Triple DES Sama halnya dengan proses enkripsi, bahwa AES lebih cepat dibandingkan Triple DES dengan nilai 15 ms dibanding 23,5 ms,hal ini dikarenakan kedua algoritma tersebut memiliki jumlah putaran yang sangat jauh berbeda, sehingga waktu untuk memporoses dengan jumlah putaran yang begitu banyak akan membutuhkan waktu yang cukup lama dibandingkan dengan jumlah putaran yang sedikit. 5.
Uji coba effect avalanche pada perubahan satu bit kunci dan satu bit plainteks
Dalam pengujian kali ini, terlihat bahwa pada tabel 4.5 dan 4.6 bahwa untuk menghasilkan nilai avalanche yang memiliki nilai diatas standar yaitu 50%, maka harus mengganti bit sebanyak mungkin dengan beberapa percobaan. Pada tabel 4.5 pengujian terhadap perubahan kunci yang dilakukan 10 kali percobaan, pada percobaan ke – 9 memiliki nilai avalanche sebesar 53.1 % dengan merubah bit sebanyak 16 bit dari 18 bit total dan pada percobaan ke – 10 menghasilkan avalanche sebesar 58.9 % dengan merubah sebanyak 17 bit. Sedangkan pada tabel 4.6 pengujian terhadap perubahan plainteks, terlihat pada percobaan ke –8 sampai ke -10 bahwa nilai avalanche sudah memenuhi kriteria SAC yang bernilai, yaitu 50.3 % , 57.5 %, dan 66.2 %. Hal ini menunjukkan bahwa, semakin banyak perubahan yang terjadi pada kunci atau plainteks, maka hasil dari avalanche akan mencapai 50 % atau lebih. Sehingga akan sulit bagi
9
orang yang tidak bertanggung jawab untuk melakukan pembajakan terhadap isi dari pesan yang telah dirahasiakan (chiperteks) 6.
Uji keamanan pesan
Dalam pengujian keamanan pesan dapat dilihat pesan enkripsi yang dikirimkan dan pesan hasil dekripsi melalui aplikasi ini tidak tercatat atau tersimpan, baik pada aplikasi maupun log pesan pada handphone sehingga pesan yang dikirimkan dapat terjaga kerahasiaannya. Selain itu, pesan yang dienkripsikan (ciphertext) tidak bisa dibaca atau diubah ke pesan aslinya (plaintext) tanpa mengetahui atau memasukkan kunci yang benar. 5
KESIMPULAN DAN SARAN
5.1
Kesimpulan Setelah melakukan pengujian dan analisa dari aplikasi yang telah dirancang bangun dapat diambil beberapa kesimpulan, bahwa : 1. Algoritma AES dapat diimplementasikan pada aplikasi SMS pada smartphone berbasis android. 2. Algoritma AES lebih lama melakukan proses generate kunci pada saat enkripsi maupun dekripsi dengan 7,5 ms dan 7,1 ms dibandingkan algoritma Triple DES dengan 5 ms dan 5,1 ms. 3. Algortima AES lebih cepat dalam melakukan proses enkripsi maupun dekripsi dengan 12,7 ms dan 15 ms dibandingkan algoritma Triple DES dengan 19,8 dan 23,5 ms. 4. Avalanche Effect untuk algoritma AES pada perubahan bit kunci dan juga pada plainteks, harus merubah minimal 16 bit agar bisa menghasilkan nilai avalanche diatas dari 50% yang sesuai dengan kriteria SAC. 5.2
Saran
Untuk pengembangan proyek akhir ini di masa akan datang, ada beberapa saran yang perlu diperhatikan, yaitu sebagai berikut : 1. Adanya menu tambahan yaitu, menu MMS yang biasa digunakan untuk mengirim gambar, jadi tidak hanya teks saja yang bisa di rahasiakan, tetapi gambar / foto juga bisa di jadikan sebagai objek pengiriman data. 2. Dapat dikembangkan dengan algoritma lain atau menggabungkan dua buah algoritma seperti AES dan 3DES, dikarenakan AES cepat dalam melakukan proses enkripsi-dekripsi pesan sedangkan 3DES memiliki 16 putaran dalam setiap melakukan proses enkripsidekripsi sehingga pesan akan sulit untuk diprediksi.
DAFTAR PUSTAKA [1] [2] [3]
Ari, I Made. (2003). Penyandian Data Dengan Algoritma Kriptografi Noekeon. Mahasiswa jurusan Teknik Elektro Institut Teknologi Bandung. Huda, Miftahul Choirul. (2010). Perancangan Aplikasi Enkripsi dan Dekripsi SMS dengan Algoritma Simetri AES pada Telepon Seluler. Kromodimoeljo, Sentot (2009). Teori dan Aplikasi Kriptografi. Penerbit : SPK IT Consulting.
10
[4] [5] [6] [7]
[8]
Ressy Ananda T
Kautzar, Mohammad Gilang. (2006). Studi Kriptografi Mengenai Triple DES dan AES. Mahasiswa jurusan Teknik Informatika Institut Teknologi Bandung. Kurniawan, Yusuf (2004), KRIPTOGRAFI : Keamanan Internet dan Jaringan Komunikasi. Bandung : Informatika. Mistari, Aplikasi Belajar Membaca dan Mengucapkan Huruf Hijaiyah dengan Tadjwid Berbasis Android. Roystons (2010), Aplikasi Keamanan Short Message Service dengan Metode International Data Encryption Algorithm. Mahasiswa jurusan Teknik Informatika Politeknik Caltex Riau. Tidak dipublikasikan Sadikin, Rifki. (2012). Kriptografi untuk Keamanan Jaringan dan Implementasinya dalam Bahasa Java. Yogyakarta : Penerbit Andi.