IMPLEMENTASI ALGORITMA KRIPTOGRAFI BLOWFISH UNTUK KEAMANAN DOKUMEN PADA MICROSOFT OFFICE
Naskah Publikasi
diajukan oleh Shanty Erikawaty Aryani Tambunan 06.11.1189
kepada JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA 2010
IMPLEMENTASI ALGORITMA KRIPTOGRAFI BLOWFISH UNTUK KEAMANAN DOKUMEN PADA MICROSOFT OFFICE Shanty Erikawaty Aryani Tambunan Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT Security problem is one of the most important aspect in the world of information technology, such as: security of documents. Today, most of the documents using Microsoft Office applications. To overcome the security problems of this document, the author approaches the data encryption technology using Blowfish algorithm. A data encryption technology to ensure that the information that flows in a session is not intercepted or modified others. Blowfish or often called "OpenPGP.Cipher.4" is a Symmetric Cryptosystem, using the same key for encryption and decryption. This research is divided into 2 part. The first is the implementation of the Blowfish algorithm in the programming language Visual Basic 6.0 to be a desktop model based Cryptosystem. The Second thing is testing key and several Microsoft Office file extensions, and testing of additional tools useful Folder Lock to lock the folder. The result said that the implementation in Windows operation system is successful. All Microsoft Office file types including Microsoft Word files (. Doc,. Docx,. Rtf,. Txt), Microsoft Excel (. Xls,. Xlsx), Microsoft Access (. Mdb) and Microsoft PowerPoint (. Ppt,. Pptx) can do encryption and decryption process.
Keyword: Cryptography, Blowfish Algorithm, Microsoft Office, Symmetric Cryptosystem, Secret Information.
1.
PENDAHULUAN 1.1
Latar Belakang Masalah
Masalah keamanan merupakan salah satu aspek paling penting dalam dunia teknologi informasi, misalnya : keamanan dokumen. Sekarang ini, sebagian besar dokumen-dokumen menggunakan aplikasi Microsoft Office, karena kemudahan dalam menggunakannya. Di dalam Microsoft Office ada beberapa aplikasi yang dapat digunakan, yaitu Microsoft Word, Microsoft Excel, Microsoft Access,dan Microsoft PowerPoint. Berbagai aplikasi dalam Microsoft Office dapat digunakan untuk mengolah kata dan angka sesuai kebutuhan pengguna. Keamanan dokumen sangat diperlukan, maka setiap orang memerlukan suatu aplikasi yang dapat mengamankan dokumen rahasia dan penting agar dokumen tersebut hanya dapat di lihat dan di baca oleh orang tertentu saja. Beberapa cara telah dikembangkan untuk menangani masalah keamanan ini, salah satu teknik untuk pengamanan data adalah dengan menggunakan algoritma penyandian data. Algoritma penyandian data saat ini telah semakin banyak jumlahnya, sejalan dengan berkembangnya ilmu yang mempelajari penyandian data tersebut. Ilmu ini biasa disebut Kriptografi. Dalam kriptografi terdapat beberapa metode yang cukup penting dalam pengamanan data, untuk menjaga kerahasiaan data salah satunya adalah enkripsi (encryption). Enkripsi adalah suatu proses yang dilakukan untuk mengubah pesan asli menjadi chipertext. Sedangkan suatu proses yang dilakukan untuk mengubah pesan tersembunyi menjadi pesan asli disebut dekripsi. Pesan biasa atau pesan asli disebut plaintex sedangkan pesan yang telah diubah atau disandikan supaya tidak mudah dibaca disebut dengan chipertext. Untuk
mengatasi
masalah
keamanan
dokumen
ini,
penulis
melakukan
pendekatan teknologi enkripsi data menggunakan algoritma Blowfish. Enkripsi data merupakan teknologi untuk memastikan bahwa informasi yang mengalir pada suatu sesi tidak disadap atau diubah orang lain. Blowfish atau sering disebut "OpenPGP.Cipher.4"
merupakan enkripsi yang termasuk dalam golongan Symmetric Cryptosystem (Schneier, 1993), yaitu menggunakan kunci yang sama untuk enkripsi dan dekripsinya.
2.
TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1
Tinjauan Pustaka
Skripsi terdahulu dengan judul “Pendekatan Metode Enkripsi Menggunakan Algoritma Blowfish Untuk Perancangan Model Kriptosistem Dengan PHP 5” oleh Diyah Anita Sari. Skripsi tersebut membahas tentang bagaimana membuat aplikasi untuk mengenkripsi dan dekripsi data menggunakan algoritma Blowfish dengan menggunakan software PHP 5. Aplikasi yang dibuat dapat mengenkripsi teks dan file dengan berbagai ekstensi file yang ada. Dari hasil uji coba rancangan dan uji coba sistem, diketahui bahwa kekurangan sistem tersebut adalah: 1.
Sistem belum bisa menerapkan pemakaian kunci yang konstan. Hal ini karena sistem memiliki tujuan untuk memberikan keleluasaan
user
menetapkan jumlah bit kunci yang menentukan faktor keamanan dan kecepatan proses sistem. 2.
Sistem membutuhkan memory yang cukup besar untuk proses kerjanya, sehingga memory kecil pada sebuah PC dan terutama notebook akan sangat mempengaruhi kapasitas file yang diproses.
3.
Sistem belum berbasis database, sehingga belum menyediakan fasilitas yang lebih kompleks dan lebih user friendly bagi user untuk menyimpan file kerja, kunci dan sebagainya.
4.
File hasil dekripsi masih menyertakan ekstensi ciphertext (*.tc8), sehingga user harus menghapus ekstensi terakhir ciphertext untuk dapat membaca kembali plaintext hasil dekripsi.
2.2
Landasan Teori
2.1.1
Konsep Dasar Sistem Kriptografi
Kriptografi berasal dari bahasa Yunani, Crypto dan Graphia. Cripto berarti rahasia (secret) dan graphia berarti tulisan (writing). Menurut terinologinya, Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat yang lain [Dony Ariyus, 2008]. Metode ini sudah digunakan oleh bangsa Mesir sejak 4000 tahun lalu. Algoritma kriptografi terdiri dari tiga fungsi dasar, yaitu : 1.
Enkripsi Enkripsi adalah merubah plaintext menjadi ciphertext. Sebuah pesan yang belum mengalami enkripsi disebut sebagai plaintext. Sedangkan pesan yang sudah disandikan dengan sebuah algoritma enkripsi disebut sebagai ciphertext.
2.
Dekripsi Dekripsi merupakan kebalikan dari enkripsi. Dekripsi adalah proses merubah ciphertext menjadi plaintext.
3.
Kunci Yang dimaksud kunci disini adalah kunci yang dipakai untuk melakukan enkripsi dan dekripsi.
2.1.2
Algoritma Blowfish
Blowfish atau disebut juga OpenPGP.Cipher.4 adalah enkripsi yang termasuk dalam golongan Symmetric Cryptosystem [Schneier, 1993]. Metode enkripsi ini diciptakan oleh Bruce Schneier, seorang Cryptanalyst Presiden perusahaan Counterpane Internet Security, Inc pada tahun 1993. Dan dipublikasikan tahun 1994. Blowfish dibuat untuk digunakan pada komputer yang mempunyai mikroprosesor besar (32 bit ke atas dengan cache data yang besar). Blowfish merupakan cipher blok. Yang berarti selama proses enkripsi dan dekripsi, Blowfish bekerja dengan membagi pesan menjadi blok-blok bit dengan ukuran
sama panjang yaitu 64-bit dengan panjang kunci bervariasi yang mengenkripsi data dalam 8 byte blok. Pesan yang bukan merupakan kelipatan 8 byte akan ditambahkan bitbit tambahan (padding) sehingga ukuran untuk tiap blok sama . Algoritma Blowfish terdiri dari dua bagian: key expansion dan enkripsi data [Schneier, 1993].
2.1.3
Enkripsi Algoritma Blowfish Blowfish menggunakan subkunci besar yang harus dihitung sebelum enkripsi
dan dekripsi data. Algoritma Blowfish menerapkan jaringan Feistel (Feistel Network) yang terdiri dari 16 putaran. Input adalah elemen 64-bit, X untuk alur algoritma enkripsi dengan metode Blowfish dijelaskan sebagai berikut [Schneier, 1993]: 1. Bentuk inisial P-array sebanyak 18 buah (P1,P2,......P18) masing-masing bernilai 32-bit. Array P terdiri dari delapan belas kunci 32-bit subkunci : P1,P2,....,P18 2. Bentuk S-box sebanyak 4 buah masing-masing bernilai 32-bit yang memiliki masukan 256. Empat 32-bit S-box masing-masing mempunyai 256 entri : S1,0,S1,1,....................,S1,255 S2,0,S2,1,....................,S2,255 S3,0,S3,1,....................,S3,255 S4,0,S4,1,....................,S4,255 1. Plaintext yang akan dienkripsi diasumsikan sebagai masukan, Plaintext tersebut diambil sebanyak 64-bit, dan apabila kurang dari 64-bit maka kita tambahkan bitnya, supaya dalam operasi nanti sesuai dengan datanya. 2. Hasil pengambilan tadi dibagi 2, 32-bit pertama disebut XL, 32-bit yang kedua disebut XR. 3. Selanjutnya lakukan operasi XL = XL xor Pi dan XR = F(XL) xor XR. 4. Hasil dari operasi diatas ditukar XL menjadi XR dan XR menjadi XL.
5. Lakukan sebanyak 16 kali, perulangan yang ke-16 lakukan lagi proses penukaran XL dan XR. 6. Pada proses ke-17 lakukan operasi untuk XR = XR xor P17 dan XL = XL xor P18. 7. Proses terakhir satukan kembali XL dan XR sehingga menjadi 64-bit kembali.
3.
ANALISIS MASALAH 3.1
Bagan Alir Sistem Bagan alir sistem dari CryptBlow menjelaskan proses yang terjadi pada
sistem secara keseluruhan. Pada bagan alir sistem CryptBlow akan digambarkan bahwa data yang diinputkan pada sistem berasal dari satu sumber, yaitu dari harddisk. Sebelum proses input file, user harus memilih instruksi (menu) yang akan digunakan untuk memproses file (enkripsi/dekripsi).
Pilih Menu
Encrypt
Decrypt
Encrypt
Decrypt File
File
File
Input File Start Instruction
Insert Key
Ciphertext / Plaintext Gambar 3.1 Flowchart Sistem
3.2 Bagan Alir Program Proses kerja untuk enkripsi dan dekripsi menggunakan kunci dan proses yang serupa. Hanya berbeda pada P-array (P1,P2,........,P18) digunakan dengan urutan terbalik atau di inverskan. Oleh karena itu, flowchart program untuk proses enkripsi dan dekripsi digambarkan dalam satu bagan alir saja. Bagan alir program untuk fungsi F menjelaskan bahwa masukan fungsi berupa xL, yang kemudian data xL akan dibagi menjadi empat bagian sama besar bernilai 8 bit, yaitu menjadi a, b, c, d. Dan proses selanjutnya memproses a, b, c, d ke dalam Fungsi F(xL) untuk menghasilkan F(xL) dan arus program Fungsi F selesai.
Mulai xL
xL/(4) = a, b, c, d a, b, c, d F(xL) = ((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232 F(xL)
Selesai
Gambar 3.2 Flowchart Fungsi F
Flowchart program enkripsi dan dekripsi CryptBlow digambarkan ke dalam flowchart yang sama. Karena proses yang berjalan pada program enkripsi dan dekripsi adalah sama.
Mulai
x x/2 = xL & xR
xL, xR xL = xL XOR Pi xR = F(xL) XOR xR
Tukar xL dengan xR
xL=xR, R=xL
i< Tukar xL dengan xR xL=xR, xR=xL
Satukan xL & xR. x = xL + xR
x Selesai Gambar 3.3 Flowchart Proses Enkripsi dan Dekripsi
4.
HASIL PENELITIAN DAN PEMBAHASAN
4.1
Pengujian Kunci untuk Uji Coba Sistem
Pengujian kunci diperlukan untuk optimalisasi pengujian sistem. Pemakaian weak-key akan dapat mengurangi kinerja program. Dan pengujian sistem tidak dapat dilakukan secara optimal. Kunci yang digunakan untuk uji coba program dan sistem bukan termasuk weak key (kunci yang lemah) maupun semi-weak key (kunci setengah lemah). Hal ini diperlukan adanya pengujian pada kunci untuk proses enkripsi dan dekripsi. Kunci lemah adalah kunci yang apabila mengenkripsi suatu plaintext kemudian dienkripsi lagi menggunakan kunci yang sama, maka ciphertextnya adalah plaintext itu sendiri.
Sedangkan yang disebut dengan kunci setengah lemah adalah sepasang kunci yang memiliki sifat jika sebuah plaintext dienkripsi dengan suatu kunci, akan dapat dienkripsi dengan kunci yang lain. 1. Simulasi Pemakaian Kunci yang bukan Weak Key Ujicoba yg dilakukan pada file Bentuk Normal Chomsky.doc dengan kunci amikom hasil enkripsinya adalah :
Gambar 4.1 Hasil Enkripsi Pertama
Kemudian ciphertext hasil enkripsi akan dienkripsi lagi menggunakan key yang sama (amikom), dapat dilihat pada Gambar 4.2: Ini adalah hasil ciphertext dari enkripsi kedua:
Gambar 4.2 Hasil Enkripsi Kedua
Ternyata hasil enkripsi kedua (ciphertext kedua) bukanlah plaintext pada enkripsi pertama. Maka bisa dikatakan bahwa kunci yang dipakai untuk uji coba sistem bukanlah kunci yang lemah.
4.2
Pengujian Enkripsi Terhadap Beberapa Tipe File Uji coba enkripsi yang telah dilakukan pada file yang berekstensi .txt,
.doc, .docx, .rtf, .ppt, .pptx, .xls, .xlsx, dan .mdb. Dibawah ini menujukkan hasil enkripsi pada file berekstensi .txt, .doc dan .xlsx. 1.
File .txt Untuk ujicoba pada file berekstensi .txt digunakan file bernama blowfish.txt dan menggunakan password “amikom”. Plaintextnya sebagai berikut:
Gambar 4.3 Plaintext blowfish.txt
File plaintext adalah blowfish.txt dengan ukuran kurang dari 1.50 KB. Hasil enkripsi menjadi file dengan nama hasil_enkripsi_blowfish.txt berukuran 1.52 KB atau lebih besar 0.02 KB dari ukuran file aslinya. Hasil enkripsinya :
Gambar 4.4 Ciphertext file blowfish.txt
Hasil enkripsinya berupa simbol-simbol yang tidak bisa dibaca. Jika ingin membaca kembali harus melalui proses dekripsi.
2.
File .doc Untuk ujicoba pada file berekstensi .doc digunakan file bernama Bentuk
Normal Chomsky.doc dan menggunakan password “amikom”. Plaintextnya sebagai berikut:
Gambar 4.5 Plaintext Bentuk normal chomsky.doc
File plaintext adalah Bentuk Normal Chomsky.doc dengan ukuran 45 KB. Hasil enkripsi menjadi file hasil enkripsi Bentuk Normal Chomsky.doc berukuran 45 KB atau sama dengan file aslinya. Hasil enkripsinya :
Gambar 4.6 Ciphertext Bentuk normal chomsky.doc Hasil enkripsinya berupa simbol-simbol yang tidak bisa dibaca. Jika ingin membaca kembali harus melalui proses dekripsi.
3.
File .xlsx Untuk ujicoba pada file berekstensi .xlsx digunakan file bernama
jadwal_ujian.xlsx dan menggunakan password “amikom”. Plaintextnya sebagai berikut:
Gambar 4.22 Plaintext jadwal_ujian.xlsx
File plaintext adalah jadwal_ujian.xlsx dengan ukuran 10.0 KB. Hasil enkripsi menjadi file hasil enkripsi jadwal_ujian.xlsx berukuran 10.0 KB atau lebih sama dengan ukuran file aslinya. Hasil enkripsinya :
Gambar 4.23 Ciphertext jadwal_ujian.xlsx
Hasil enkripsi /ciphertext tidak bisa ditampilkan karena pada file .docx merupakan ekstensi file pada Microsoft Office 2007 yang belum bisa di enkripsi secara baik dengan algoritma Blowfish, tetapi jika di dekripsi file tersebut akan kembali seperti semula/plaintext.
4.3
Pengujian Dekripsi Terhadap Beberapa Tipe File Decrypt file merupakan proses decode dari ciphertext dirubah menjadi
plaintext. File yang didekripsi harus merupakan file ciphertext yang telah dienkripsi sebelumnya, menggunakan system yang sama. Proses dekripsi menggunakan kunci yang sama pada saat enkripsi, yaitu amikom. Hasil yang seharusnya adalah file hasil dekripsi merupakan file plaintext pada saat proses enkripsi. Dibawah ini merupakan contoh dekripsi dari file .xlsx yaitu ”hasil enkripsi jadwal_ujian.xlsx” yang merupakan hasil enkripsi dari file ”jadwal.ujian.xlsx.”
Gambar 4.7 Proses Dekripsi
Proses dekripsi hampir sama dengan proses enkripsi. Langkahlangkahnya sebagai berikut : 1) Masukkan file yang akan di dekripsi dengan menekan button Cari. 2) Pilih radiobutton dekripsi. 3) Masukkan kunci, pilih format kunci kemudian tekan button Set key. 4) Simpan file ditempat yang dikehendaki dengan menekan button simpan. Jika ingi menyimpan pada file yang sama beri tanda centang diatas button simpan. 5) Yang terakhir tekan button Eksekusi. Jika Proses dekripsi berhasil akan muncul tampilan seperti dibawah ini:
Gambar 4.8 Peringatan jika berhasil dekripsi
Hasil dekripsinya :
Gambar 4.9 Hasil Dekripsi
Dari uji coba yang telah dilakukan pada file yang berekstensi .txt, .doc, .docx, .rtf, .ppt, .pptx, .xls, .xlsx, dan .mdb yang telah di enkripsi (ciphertext) yang kemudian di dekripsi, file akan kembali seperti semula (plaintext).
4.4
Pembahasan Masalah 1.
Ukuran file
Dalam ujicoba dengan berbagai format file Microsoft Office ukuran file plaintext dan ciphertextnya relatife sama, kemungkinan berbedaan ukuran file sangat kecil sehingga terlihat sama. Tabel 4.1 Ukuran File Plaintext dan Ciphertext No
Format File
Plaintext
Ciphertext
Keterangan
1
.txt
1.50 KB
1.52 KB
Selisih 0.02 KB
2
.doc
45 KB
45 KB
Sama
3
.docx
10.5 KB
10.6 KB
Selisih 0.1 KB
4
.rtf
42.1 KB
42.1 KB
Sama
5
.ppt
99.0 KB
99.0 KB
Sama
6
.pptx
501 KB
501 KB
Sama
7
.xls
77.5 KB
77.5 KB
Sama
8
.xlsx
10.0 KB
10.0 KB
Sama
9
.mdb
388 KB
388 KB
Sama
2.
Cara Kerja Sistem 1)
Sistem bekerja sebagai aplikasi berbasis desktop yang belum membutuhkan sistem database.
2)
Sebelum proses enkripsi/dekripsi, user harus memberikan masukan key (sebagai kunci enkripsi/dekripsi) kepada sistem. Keamanan data tergantung kepada kerahasiaan kunci.
3)
Proses enkripsi dan dekripsi dengan data file, akan membuat sistem menjalankan prosedur temporary file.
4)
Pada enkripsi file, sistem memberikan output berupa ciphertext file dengan format penamaan ”nama_file.ekstensi_file”
5.
KESIMPULAN Kesimpulan yang dapat diambil dari studi dan implementasi algoritma Blowfish adalah: 1. Algoritma Blowfish menerapkan jaringan Feistel (Feistel Network) yang terdiri dari 16 putaran. Blowfish merupakan cipher blok. Yang berarti selama proses enkripsi dan dekripsi, Blowfish bekerja dengan membagi pesan menjadi blokblok bit dengan ukuran sama panjang yaitu 64-bit dengan panjang kunci bervariasi yang mengenkripsi data dalam 8 byte blok. Pesan yang bukan merupakan kelipatan 8 byte akan ditambahkan bit-bit tambahan (padding) sehingga ukuran untuk tiap blok sama . Algoritma Blowfish terdiri dari dua bagian: key expansion dan enkripsi data.
2. Algoritma Blowfish dapat diimplementasikan ke dalam banyak bahasa pemrograman dan algoritma serta sifat perancangannya terbuka bagi umum. Algoritma Blowfish awalnya diimplementasikan ke dalam bahasa C. Kemudian berkembang ke berbagai bahasa pemrograman karena sifatnya yang open source. Dalam penelitian ini diimplementasikan ke dalam Microsoft Visual Basic 6.0 menjadi sebuah model kriptosistem berbasis desktop. File yang dapat di enkripsi dan dekripsi adalah file Microsoft Office meliputi file Microsoft Word (.doc, .docx, .rtf, .txt), Microsoft Excel (.xls, .xlsx), Microsoft Access (.mdb) dan Microsoft PowerPoint (.ppt, .pptx). 3. Pengujian yang dilakukan adalah pengujian kunci, pengujian berbagai jenis file Microsof Office, pengujian putaran Blowfish dan pengujian tool tambahan yaitu Lock Folder. a. Pengujian kunci Dalam pengujian kunci, maka bisa dikatakan bahwa kunci yang dipakai untuk uji coba sistem bukanlah kunci yang lemah. b. Pengujian berbagai jenis file Microsof Office •
Semua jenis file Microsoft Office meliputi file Microsoft Word
(.doc, .docx, .rtf, .txt), Microsoft Excel (.xls, .xlsx), Microsoft Access (.mdb) dan Microsoft PowerPoint (.ppt, .pptx) dapat dilakukan proses enkripsi dan dekripsi. •
Hasil enkripsi pada file .doc, .rtf, .txt, dan .xls dapat dibuka,
sedangkan hasil enkripsi pada file .docx, .xlsx, .mdb, .ppt, dan .pptx tidak dapat dibuka, tetapi dapat di dekripsi menjadi file semula. c.
Pengujian putaran Blowfish Implementasi algoritma Blowfish optimal dan aman dari pembongkaran pesan, maka algoritmanya harus menggunakan 16 putaran.
d. Pengujian Lock Folder Tool Lock Folder dapat digunakan untuk mengamankan suatu folder.
6.
DAFTAR PUSTAKA
Ariyus, Dony. Pengantar Ilmu Kriptografi Teori, Analisis, dan Implementasi, Andi Offset, Yogyakarta, 2008 Schneier. Bruce. Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish) (http://schneier.com. Diakses 13 juni 2009) Rhee, Man Young. Cryptography and Sesure Communications, Singapore, McGraw-Hill Book Co.1994 Ratih, Studi dan Implementasi Algoritma Blowfish Untuk Aplikasi Enkripsi dan Dekripsi File
(www.informatika.org/~rinaldi/Kriptografi/2006-2007/Makalah1/Makalah1-
077.pdf. Diakses 14 maret 2009) Dendy_arendra.
Metoda
Enkripsi
Blowfish
(http://www.informatika.org/~rinaldi/Kriptografi/20072008/Makalah2/MakalahIF5054-2007-B-059.pdf. Diakses 28 Agustus 2009) Jogiyanto. Analisis & Desain Sistem Informasi: Pendekatan Terstruktur Teori dan Praktek Aplikasi Bisnis. Andi Offset, Yogyakarta. 2005 Indocisc
Pengantar
Kriptografi
(http://www.cert.or.id/~budi/courses/ec5010/04-
kriptografi.pdf. Diakses 9 april 2009) Wikipedia Kriptografi (http://id.wikipedia.org/wiki/Kriptografi. Diakses 21 Maret 2009) Wikipedia Cipher (http://en.wikipedia.org/wiki/Blowfish_(cipher). Diakses 5 Maret 2009) Schneier B. Mode Of DES (www.di-mgt.com.au Diakses 4 Maret 2009) Sholeh,
Muhammad
Pengantar
Kriptografi
(http://202.91.15.14/upload/files/4261_Pengantar_Kriptografi.pdf. Diakses 4 Mei 2009 ) Suta.
Mengenal
Visual
Basic
(http://suta32.googlepages.com/suta32-Bab1-
MengenalVisualBasic6.0.pdf. Diakses 4 Mei 2009) Rusmawan, Uus. Konsep dan Implementasi Visual Basic, Elex Media Computindo, Jakarta, 2007