BAB II LANDASAN TEORI
2.1
Studi Pustaka Penelitian tentang penerapan algoritma kriptografi pada aplikasi berbasis
desktop, diantaranya: a. Jurnal mahasiswa Fakultas Ilmu Komputer Universitas AKI Semarang yang ditulis oleh [3] dengan judul “Keamanan Pertukaran Kunci Kriptografi dengan Algoritma Hybrid : Diffie-Hellman dan RSA” yang menjelaskan kombinasi algoritma antara RSA dan Diffie-Hellmen. bertujuan untuk memperkuat algoritma pertukaran kunci DiffieHellman bisa menjadi contoh bagaimana peningkatan keamanan itu terjadi. b. Jurnal mahasiswa Fakultas Teknik Elektro Universitas Komputer Indonesia yang ditulis oleh [4] dengan judul “Studi Dan Implementasi Algoritma RSA
Untuk Pengamanan Data Transkrip Akademik
Mahasiswa” yang menjelaskan Penerapan operasi Chiper Block Chaining pada algoritma kriptografi RSA terutama ditujukan untuk menghasilkan prinsip diffusion, dimana setiap bit dari setiap plaintext mempengaruhi setiap bit ciphertext. c. Jurnal mahasiswa Fakultas Teknologi Informasi Universitas Budi Luhur yang ditulis oleh [5] dengan judul “Aplikasi Enkripsi Menggunakan
Metode RSA Dan Base64 Pada PT Menara Media
Murakabi” yang menjelaskan strategi untuk menggambarkan informasi dengan cara melakukan penggabungan dua jenis algoritma yang berbeda yaitu algoritma simetris dan asimetris yang biasa disebut dengan algoritma hybrid. 2.2
Algoritma Ditinjau dari asal-usulnya, kata algoritma berasal dari bahasa arab, yaitu
algorism yang berarti proses perhitungan [6], Para ahli bahasa menemukan kata algorism berasal dari nama cendikiawan muslim yang terkenal yaitu Abu Ja’far 6 http://digilib.mercubuana.ac.id/
7
Muhammad Ibnu Musa Al-Khuwarijmi (Al-Khuwarijmi dibaca oleh orang Barat menjadi algorism) dalam bukunya yang berjudul Kitab Aljabar Wal-muqabala, yang artinya “Buku Pemugaran dan Pengurangan” (The book of restoration and eduction). Dari judul buku itu kita memperoleh kata “aljabar” (algebra). Perubahan dari kata algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic sehingga akhiran – sm berubah menjadi – thm [6]. Para ahli mendefinisikan algoritma sebagai berikut: Menurut Rinaldi Munir (2009) Algoritma adalah urutan langkah-langkah untuk memecahkan suatu masalah [6]. Menurut Thomas H. Cormen (1989), algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan (input) dan menghasilkan beberapa nilai yang disebut keluaran (output). Jadi, algoritma adalah deretan langkah komputasi yang mentransformasikan masukan menjadi keluaran [7]. Menurut Anany Levitin (2012), algoritma adalah instruksi yang jelas untuk memecahkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas [8]. Menurut Dony Ariyus, algoritma kriptografi merupakan langkah-langkah logis bagaimana menyembunyikan pesan dari orang-orang yang tidak berhak atas pesan tersebut [9]. 2.3
Kriptografi 2.3.1
Definisi dan Terminologi dan Kriptografi Kriptografi Kriptografi berasal dari kata Yunani kryptos dan
grapho, yang mempunyai arti "tulisan tersembunyi". Kriptografi adalah ilmu yang mempelajari bagaimana membuat suatu pesan yang dikirim pengirim dapat disampaikan kepada penerima dengan aman [10]. Kriptografi dapat memenuhi kebutuhan umum suatu transaksi, yaitu : 1. Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi (penyandian).
http://digilib.mercubuana.ac.id/
8
2. Keutuhan (integrity) atas data dilakukan dengan fungsi hash satu arah. 3. Jaminan atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan transaksi dilakukan dengan menggunakan password atau sertifikat digital. Sedangkan keotentikan data transaksi dapat dilakukan dengan tandatangan digital. 4. Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal (nonrepudiation) dengan memanfaatkan tandatangan digital dan sertifikat digital. Pembakuan penulisan pada kriptografi dapat ditulis dalam bahasa matematika. Fungsi-fungsi yang mendasar dalam kriptografi adalah enkripsi dan dekripsi. Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan dalam bahasa sandi (ciphertext), C = E (M) dimana : M = pesan asli E = proses enkripsi C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi) Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan asli kembali, yaitu M = D (C) dimana D = proses dekripsi. Umumnya, selain menggunakan fungsi tertentu dalam melakukan enkripsi dan dekripsi, seringkali fungsi itu diberi parameter tambahan yang disebut dengan istilah kunci yang dibagi menjadi kunci simetris dan asimetris. Ada berbagai istilah yang sering muncul didalam ilmu kriptografi diantaranya adalah: a. Plaintext, Ciphertext dan Key Plaintext merupakan pesan yang dapat dimengerti manusia. Agar pesan tersebut tidak dapat dimengerti maknanya oleh pihak lain yang tidak berkepentingan, maka plaintext tersebut harus disandikan kebentuk yang tidak dimengerti oleh pihak lain. Bentuk plaintext yang telah disandikan disebut ciphertext. Untuk dapat melakukan perubahan bentuk plaintext menjadi
http://digilib.mercubuana.ac.id/
9
bentuk sandi atau ciphertext maka dibutuhkan kunci atau key. Key inilah yang digunakan untuk merubah bentuk plaintext menjadi chipertext atau sebaliknya atau disebut enkripsi dan dekripsi [1]. b. Enkripsi dan Dekripsi Enkripsi atau enchipering adalah proses merubah plaintext menjadi bentuk sandi atau ciphertext. Sedangkan kebalikan dari proses enkripsi disebut dekripsi. c. Eavesdropping dan Sniffing Eavesdropping (menguping) adalah usaha untuk mencoba menangkap pesan yang ditransmisikan pada sebuah jaringan komputer, sedangkan orang yang melakukannya disebut eavesdropper.
Sedangkan
sniffing
adalah
usaha
untuk
melakukan capture paket yang ditrasmisikan melalui jaringan. Tujuan dari eavesdropper dan sniffing adalah mendapatkan informasi seperti username dan password atau data-data penting lainnya. d. Peserta Komunikasi 1. Entitas atau peserta adalah orang atau sesuatu yang mengirim, menerima, atau memanipulasi informasi. Entitas bisa berupa orang, terminal komputer, kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan dengan orang lainnya
(contoh: Alice berkomunikasi dengan Bob)
sedangkan di dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin (contoh: mesin ATM berkomunikasi dengan komputer server di bank). 2. Pengirim
adalah
entitas
dalam
komunikasi
yang
mengirimkan informasi kepada entitas lainnya lainnya. 3. Penerima adalah entitas dalam komunikasi yang diharapkan menerima informasi. 4. Penyusup (adversary) adalah entitas diluar pengirim dan penerima yang mencoba untuk membobol keamanan
http://digilib.mercubuana.ac.id/
10
informasi.
Penyusup
biasanya
bertindak
seolah-olah
sebagai pengirim yang sah ataupun penerima yang sah. 2.3.2
Sejarah Kriptografi Di jaman Romawi kuno, Julius Caesar telah menggunakan teknik
kriptografi yang dijuluki Caesar Cipher untuk mengirim pesan secara rahasia, meskipun teknik yang digunakannya sangat tidak memadai untuk ukuran kini. Casanova menggunakan pengetahuan mengenai kriptografi untuk mengelabui Madame Durfe (ia mengatakan kepada Madame Durfe bahwa sesosok jin memberi tahu kunci rahasia Madame Durfe kepadanya, padahal
ia
berhasil
memecahkan
kunci
rahasia
berdasarkan
pengetahuannya mengenai kriptografi), sehingga ia mampu mengontrol kehidupan Madame Durfe secara total. Sewaktu perang dunia kedua, pihak sekutu berhasil memecahkan kode mesin kriptografi Jerman, Enigma; keberhasilan yang sangat membantu pihak sekutu dalam memenangkan perang. Sejarah kriptografi penuh dengan intrik dan banyak orang melihat kriptografi sebagai sesuatu yang penuh dengan misteri. Juga
banyak
orang
yang
menganggap
pengetahuan
dan
penggunaan kriptografi sebagai perbuatan subversif, bahkan Amerika Serikat pernah memperlakukan kriptografi sebagai senjata yang tidak dapat diekspor secara bebas, meskipun sekarang peraturan sudah diperlunak. Di satu sisi pemerintah AS tidak menginginkan warganya dan pihak lain menggunakan kriptografi untuk berbagai macam keperluan, di sisi lain kriptografi sangat diperlukan dalam aplikasi pengamanan teknologi informasi seperti transaksi perbankan. Ada beberapa negara, baik negara belum maju yang memiliki pemerintahan represif maupun negara barat yang “liberal", yang melarang atau membatasi penggunaan kriptografi [2]. Kriptografi mempunyai sejarah yang panjang dan menakjubkan. Informasi yang lengkap mengenai sejarah kriptografi dapat ditemukan di dalam buku David Kahn yang berjudul The Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi mulai dari penggunaan kriptografi oleh Bangsa Mesir 4000 tahun yang lalu
http://digilib.mercubuana.ac.id/
11
(berupa hieroglyph yang terdapat pada piramid) hingga penggunaan kriptografi pada abad ke-20. Secara historis ada empat kelompok yang berkontribusi terhadap perkembangan kriptografi, dimana mereka menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer (termasuk intelijen dan mata-mata), kalangan diplomatik, penulis buku harian, dan pencinta (lovers). Di antara keempat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan di dalam suasana perang membutuhkan teknik enkripsi dan dekripsi yang rumit. Kriptografi juga digunakan untuk tujuan keamanan. Kalangan gereja pada masa awal agama Kristen menggunakan kriptografi untuk menjaga tulisan relijius dari gangguan otoritas politik atau budaya yang dominan saat itu. Mungkin yang sangat terkenal adalah “Angka si Buruk Rupa” (Number of the Beast) di dalam Kitab Perjanjian Baru. Angka “666” menyatakan cara kriptografi (yaitu dienkripsi) untuk menyembunyikan pesan berbahaya, para ahli percaya bahwa pesan tersebut mengacu pada Kerajaan Romawi. Di India, kriptografi digunakan oleh pencinta (lovers) untuk berkomunikasi tanpa diketahui orang. Bukti ini ditemukan di dalam buku Kama Sutra yang merekomendasikan wanita seharusnya mempelajari seni memahami tulisan dengan cipher. Pada Abad ke-17, sejarah kriptografi mencatat korban ketika ratu Skotlandia, Queen Mary, dipancung setelah surat rahasianya dari balik penjara (surat terenkripsi yang isinya rencana membunuh Ratu Elizabeth I) berhasil dipecahkan oleh seorang pemecah kode [1] Dimulai dari usaha Feistel dari IBM di awal tahun 70-an dan mencapai puncaknya pada 1977 dengan pengangkatan DES (Data Encryption Standard) sebagai standar pemrosesan informasi federal Amerika Serikat untuk mengenkripsi informasi yang tidak belum diklasifikasi. DES merupakan mekanisme kriptografi yang paling dikenal sepanjang sejarah.
http://digilib.mercubuana.ac.id/
12
Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan ”New Directions in Cryptography”. Tulisan ini memperkenalkan konsep revolusioner kriptografi kunci publik dan juga memberikan metode baru untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret. Meskipun Diffie dan Hellman tidak memiliki realisasi praktis pada ide enkripsi kunci publik saat itu, idenya sangat jelas dan menumbuhkan ketertarikan yang luas pada komunitas kriptografi. Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci publik yang sekarang disebut RSA. Rancangan RSA berdasar pada masalah faktorisasi bilangan yang sulit, dan menggiatkan kembali usaha untuk menemukan metode yang lebih efisien untuk pemfaktoran. Tahun 80-an terjadi peningkatan luas di area ini, sistem RSA masih aman. Sistem lain yang merupakan rancangan kunci publik ditemukan oleh Taher ElGamal pada tahun 1984. Rancangan ini berdasar pada masalah logaritma diskret. Salah satu kontribusi penting dari kriptografi kunci publik adalah tanda tangan digital. Pada 1991 standar internasional pertama untuk tanda tangan digital diadopsi. Standar ini berdasar pada rancangan kunci publik RSA. Pada 1994 pemerintah Amerika Serikat mengadopsi Digital Signature Standard, sebuah mekanisme kriptografi yang berdasar pada algoritma. 2.3.3
Tujuan Kriptografi Tujuan dari kriptografi yang juga merupakan aspek keamanan
informasi adalah sebagai berikut: Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi. Ada beberapa pendekatan untuk menjaga kerahasiaan, dari pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat data tidak dapat dipahami. Istilah lain yang senada dengan confidentiality adalah secrecy dan privacy. Integritas data adalah layanan penjagaan pengubahan data dari pihak yang tidak berwenang. Untuk menjaga integritas data, sistem harus
http://digilib.mercubuana.ac.id/
13
memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihakpihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan yang sebenarnya. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Pesan yang telah ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli. Otentikasi adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda-tangan digital (digital signature). Tanda-tangan digital menyatakan sumber pesan. Nirpenyangkalan
(non-repudation)
adalah
layanan
untuk
mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan. 2.3.4
Jenis Kriptografi Berdasarkan jenis kunci yang digunakannya, algoritma kriptografi
dikelompokan menjadi dua bagian, yaitu algoritma simetris (algoritma konvensional) dan algoritma asimetris (algoritma kunci publik) [1]. 1. Kriptografi Simetri Algoritma kriptografi simetris atau disebut juga algoritma Kriptografi konvensional adalah algoritma yang menggunakan kunci yang sama untuk proses enkripsi dan proses dekripsi. Algoritma Kriptografi Simetris dibagi menjadi 2 kategori yaitu algoritma aliran (Stream Chipers) dan algoritma blok (Block Chipers). Pada algortima aliran, proses penyandian
http://digilib.mercubuana.ac.id/
14
berorientasi pada satu bit atau satu byte data. Sedangkan pada algoritma blok, proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per blok). Contoh algoritma kunci simetris adalah DES (Data Encryption Standard), blowfish, twofish, MARS, IDEA, 3DES (DES diaplikasikan 3 kali), AES (Advanced Encryption Standard) yang bernama asli Rijndael.
Gambar 2.1 Algoritma Kriptografi Simetris 2. Kriptografi Asimetris Kriptografi algoritma asimetrik (Asymetric Cryptography) adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Kunci enkripsi dapat disebarkan kepada umum dan dinamakan sebagai kunci publik (public key). Sedangkan kunci dekripsi disimpan untuk digunakan sendiri dan dinamakan sebagai kunci privat (private key). Contoh algoritma yang menggunakan kunci asimetris adalah ECC (Elliptic Curve Cryptography), algoritma LUC dan RSA (Rivest Shamir Adleman) yang akan dibahas pada laporan tugas akhir ini. Pada kriptosistem asimetrik, setiap pelaku sistem informasi memiliki sepasang kunci, yaitu kunci public dan kunci private. Kunci public digunakan sebagai kunci untuk enkripsi data dan dapat didistribusikan kepada umum, sedangkan kunci privat disimpan untuk dekripsi pesan yang tersandikan.
Gambar 2.2 Algoritma Kriptografi Asimetris
http://digilib.mercubuana.ac.id/
15
2.4
Algoritma RSA (Rivest Shamir Adleman) 2.4.1
Sejarah Algoritma RSA Tahun 1978, Len Adleman, Ron Rivest dan Adi Shamir
mempublikasikan sistem RSA. Semula sistem ini dipatenkan di Amerika Serikat dan seharusnya masa paten habis tahun 2003, akan tetapi RSA Security melepaskan hak paten setelah 20 September 2000. Sebetulnya sistem serupa telah dilaporkan oleh Clifford Cocks tahun 1973 meskipun informasi mengenai ini baru dipublikasi tahun 1997 karena merupakan hasil riset yang diklasifikasikan sangat rahasia oleh pemerintah Britania Raya (Clifford Cocks bekerja untuk GCHQ, suatu badan di Britania Raya yang fungsinya serupa dengan fungsi NSA di Amerika Serikat), jadi validitas paten patut dipertanyakan karena adanya prior art.[11] 2.4.2
Tahapan Algoritma RSA Algoritma RSA memiliki tahapan sebagai berikut: 1. Generate Key (pembangkit pasangan kunci). 2. Encryption (proses enkripsi). 3. Decryption (proses dekripsi).
2.4.3
Cara kerja RSA 1. Pilih dua buah bilangan prima besar sembarang, p dan q 2. Hitung n = p . q (sebaiknya p ≠ q,sebab jika p = q maka n = p2 sehingga p dapat diperoleh dengan menarik akar pangkat dua dari n). Jika p dan q diketahui fungsi euler dapat dengan mudah dikomputasi. 3. Hitung fungsi euler Φ(n) = (p-1)(q-1). 4. Pilih kunci e dengan menggunakan random number generator suatu bilangan e antara 1 dan Φ(n) yang koprima dengan Φ(n). Dengan syarat gcd (e, Φ(n)) = 1, dapat dilakukan dengan menggunakan euclid algorithm. 5. Kemudian mengkomputasi inverse dari e modulo Φ(n), yaitu e.d ≡ 1 (mod Φ (n)). Dapat dilakukan menggunakan extended euclid algorithm.[11]
http://digilib.mercubuana.ac.id/
16
Hasil dari algoritma diatas adalah 1. Kunci publik adalah pasangan (n,e) 2. Kunci privat adalah pasangan (n,d) N tidak bersifat rahasia,
sebab
ia
diperlukan
pada
perhitungan
enkripsi/dekripsi. 2.4.4
Algoritma Enkripsi dan Dekripsi a. Enkripsi 1. Ambil kunci publik 2. Convert plaintext M kedalam ascii decimal. 3. Setiap angka decimal dienkripsi dengan menggunakan rumus C = Me (mod n). b. Dekripsi 1. Ambil kunci privat 2. Setiap chipertext didekripsi dengan menggunakan rumus M = Cd (mod n). 3. Convert chipertext kedalam plaintext menggunakan tabel ascii.
2.4.5
Keamanan RSA Keamanan dari RSA bersandar pada fakta bahwa mengetahui n
tidak membantu mencari e yaitu inverse modulo Φ(n) dari d. Hal ini karena mengetahui n tidak membantu mencari Φ(n) jika n tidak bisa diuraikan menjadi n = p.q [11]. 2.5
Sistem Bilangan Biner Sebuah sistem penulisan angka dengan bilangan basis 2 pada sistem bilangan yaitu 0 dan 1. Sistem bilangan ini merupakan dasar dari semua sistem bilangan berbasis digital. Dari sistem biner, kita dapat mengkonversinya ke sistem bilangan Oktal atau Hexadesimal. Sistem ini juga dapat kita sebut dengan istilah bit, atau Binary Digit. Pengelompokan biner dalam komputer selalu berjumlah 8, dengan istilah 1 Byte/bita. Dalam istilah komputer, 1 Byte = 8 bit. Kode-kode rancang bangun komputer, seperti ASCII, American Standard Code for Information Interchange menggunakan sistem peng-kode-an 1 Byte [12].
http://digilib.mercubuana.ac.id/
17
2.6
Dasar Kriptografi Public Key 2.6.1
Fermat’s Little Theorem Teorema Kecil Fermat adalah teorema sangat penting dalam teori
bilangan yang menjadi dasar dari berbagai teknik enkripsi asimetris. Untuk bilangan prima p dan bilangan bulat a, ap ≡ a (mod p) dan jika a tidak dapat dibagi oleh p maka ap-1 ≡ 1 (mod p). 2.6.2
Chinese Remanider Theorem Seperti halnya dengan algoritma Euclid, Chinese Remainder
Theorem merupakan penemuan penting dibidang teori bilangan yang telah berumur ribuan tahun. Aplikasi jaman dahulu mungkin untuk astronomi dimana r events berulang secara periodis, setiap event i mempunyai periode mi, event i akan muncul secepatnya dalam waktu ai, dan kita ingin mengetahui kapan semua events akan muncul secara bersamaan. Suatu contoh aplikasi ini adalah untuk memprediksi kapan akan terjadi gerhana. 2.6.3
Fungsi Euler Fermat's little theorem berlaku untuk modulus prima. Euler
berhasil membuat generalisasi dengan menggunakan fungsi Euler phi (Φ). Dengan menggunakan konsep fungsi Euler Φ, fermat's little theorem dapat digeneralisasi sebagai berikut: a Φ (m) ≡ 1 (mod m). 2.7
Kode ASCII ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam bentuk kode tetapi ASCII lebih bersifat universal yang digunakan dalam komputasi dan digital lainnya, kode ASCII ini digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Dalam kode ASCII terdapat kumpulan kode-kode yang digunakan untuk mempermudah interaksi antara user dan komputer. Interaksi yang dimaksud adalah sarana untuk menyelesaikan permasalahan hubungan antara komputer yang hanya mengenal angka atau bilangan biner, sedangkan manusia tidak mungkin harus menghafal angka yang
http://digilib.mercubuana.ac.id/
18
cukup banyak tersebut dan menggunakan keyboard sebagai masukan atas perintah yang diinginkannya [13]. 2.8
Java Java adalah suatu jenis teknologi pemograman yang dikembangkan oleh Sun Microsystem. Teknologi java dapat digunakan untuk pembuatan alplikasi database, web, jaringan, ataupun grafis. Java merupakan bahasa pemograman yang sangat andal [14]. Keandalannya ini terbukti sesuai dengan slogannya “Write Once Run Everywhere” yang mana penulisan kode program dalam bahasa java dapat dijalankan pada berbagai system operasi dan berbagai platform tanpa tergantung pada arsitektur komputer disebut Java Virtual Machine atau JVM sehingga lebih praktis untuk diterapkan. 2.8.1
Sejarah Singkat Java Java lahir dari sebuah green project yang berjalan selama 18 bulan
yaitu pada awal 1991 sampai musim panas 1992. Proyek yang dimotori oleh Patrick Naugton, Bill Joy, James Gosling, dan Sembilan pemogram lainnya dari tim Sun Microsystem yang pada awalnya membuat bahasa pemograman kecil yang akan diterapkan pada peralatan elektronik. Bahasa pemograman ini kemudian diberikan nama Oak yang merupakan nama salah satu jenis pohon yang tumbuh diluar jendela pemimpin proyek tersebut. Bahasa pemograman Oak merupakan modifikasi dari C++ tetapi lebih mudah beradaptasi pada berbagai system operasi dan platform. Seperti yang telah dibuktikan oleh pengembang C++, bahasa pemograman baru ini lebih tetapi telah memasukkan banyak fitur yang dimiliki C++. Bahasa Oak berganti nama menjadi java setelah bergantinya cara pelayanan konsumen peralatan
elektronik
dari pelayanan manual ke
pelayanan online kemudian tim Sun Microsystem mengganti bahasa pemograman desktop menjadi web browser. Web browser yang dirilis pada maret 1995 ini diberi nama HotJava karena nama Oak sudah digunakan untuk merek dagang perangkat lunak yang telah dikembangkan
http://digilib.mercubuana.ac.id/
19
terlebih dahulu. Maka, nama HotJava-lah yang digunakan untuk versi rilis perangkat lunak buatan Sun Microsystem yan berjalan pada web. Nama ini diambil dari nama kopi murni yang digiling langsung (Kopi tubruk) kesukaan James Gosling.[14] 2.9
Netbeans Netbeans merupakan salah satu IDE yang dikembangkan dengan bahasa pemograman java. Netbeans mempunyai lingkup pemograman yang terintegrasi dalam suatu perangkat lunak yang didalamnya menyediakan pembangunan pemograman GUI, text editor, compiler, dan interpreter. Netbeans adalah sebuah perangkat lunak open source sehingga dapat digunakan secara gratis untuk keperluan komersial maupun non komersial yang didukung oleh Sun Microsystem [14].
2.10
Metodologi 2.10.1 Metode Pengembangan Sistem Metodologi adalah kesatuan metode-metode, prosedur-prosedur, konsep-konsep pekerjaan, aturan-aturan, postulat-postulat yang digunakan oleh suatu ilmu pengetahuan, seni atau disiplin lainnya. Metode adalah suatu cara, teknik yang sistematik untuk mengerjakan sesuatu [15]. Metodologi Pengembangan sistem berarti metode-metode, prosedurprosedur, konsep-konsep pekerjaan, aturan-aturan dan postulat-postulat (kerangka pemikiran) yang akan digunakan untuk mengembangkan suatu sistem informasi. Urut-urutan prosedur untuk pemecahan masalah dikenal dengan istilah Algoritma [16]. 2.10.2 Metode Waterfall Waterfall sering juga disebut dengan sekuensial linear (sequantial linear) atau alur hidup klasik (classic life cycle). Model waterfall menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian, dan tahap pendukung (support) [17]. Pengembangan perangkat lunak dengan menggunakan metode waterfall memiliki tahapan-tahapan sebagai berikut:
http://digilib.mercubuana.ac.id/
20
1. Analisis kebutuhan perangkat lunak Proses pengumpulan kebutuhan dilakukan secara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu didokumentasikan. 2. Desain Desain perangkat lunak adalah proses multi langkah yang fokus pada desain pembuatan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antarmua, dan prosedur pengodean. Tahap ini mentranslasi kebutuhan perangkat lunak dari tahap analisis kebutuhan ke representasi desain agar dapat diimplementasikan menjadi program pada tahap selanjutnya. Desain perangkat lunak dihasilkan pada tahap ini juga perlu didokumentasikan. 3. Pembuatan Kode Program Desain harus ditranslasikan ke dalam program perangkat lunak, hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahapan desain. 4. Pengujian Pengujian fokus pada perangkat lunak secara dari segi lojik dan fungsional dan memastikan bahwa semua bagian sudah diuji. Hal ini dilakuan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan. 5. Pendukung (support) atau pemeliharaan (maintenance) Tidak
menutup
kemungkinan
sebuah
perangkat
lunak
mengalami perubahan ketika sudah dikirimkan ke user. Perubahan ini bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat pengujian atau perangkat lunak harus beradaptasi dengan linkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses
http://digilib.mercubuana.ac.id/
21
pengembangan mulai dari analisis spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak membuat perangkat lunak baru. 2.11
Diagram Alir (Flowchart) Diagram alir (flowchart) adalah representasi grafis dan langkahlangkah yang harus diikuuti dalam menyelesaikan suatu permasalahan yang terdiri dari sekumpulan simbol, dimana masing-masing simbol mempresentasikan kegiatan tertentu [18]. Flowchart menolong analisis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alteratif-alternatif dalam pengoprasian Berikut adalah daftar simbol pada flowchart. Lihat Gambar 2.3.
Gambar 2.3 Daftar Simbol Flowchart 2.12
Pengujian Pengujian elemen perangkat lunak adalah elemen kritis dari jaminan kualitas dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean [17]. 2.12.1 Pengujian Black Box Black-Box Testing yaitu menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program.
http://digilib.mercubuana.ac.id/
22
Pengujian dimaksudkan untuk mengetahui apakah fungsi-fungsi, masukan, dan keluaran dari perangkat lunak sudah sesuai dengan spesifikasi yang dibutuhkan [17]. Pengujian
black-box
juga
merupakan
pendekatan
komplementer yang memungkinkan besar mampu mengungkap kelas kesalahan dari pada metode white-box. Pengujian black-box berusaha menemukan kesalahan dalam kategori sebagai berikut: 1. Fungsi-fungsi yang tidak benar atau hilang. 2. Kesalahan Interface 3. Kesalahan dalam struktur data atau akses database eksternal 4. Kesalahan kinerja 5. Inisialisasi dan kesalahan terminasi
http://digilib.mercubuana.ac.id/