BAB II LANDASAN TEORI
2.1
Definisi Kriptografi Kriptografi merupakan ilmu sekaligus seni untuk menjaga keamanan pesan
(Cryptography is the art and science of keeping messages secure) selain itu ada pengertian tentang kriptografi yaitu kriptografi merupakan ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Kata “seni” di dalam definisi di atas maksudnya adalah mempunyai cara yang unik untuk merahasiakan pesan. Kata “graphy” di dalam “cryptography” itu sendiri sudah menyiratkan sebuah seni (Munir, 2006). Secara umum, kriptografi merupakan teknik pengamanan informasi yang dilakukan dengan cara mengolah informasi awal (plaintext) dengan suatu kunci tertentu menggunakan suatu metode enkripsi tertentu sehingga menghasilkan suatu informasi baru (ciphertext) yang tidak dapat dibaca secara langsung. Ciphertext tersebut dapat dikembalikan menjadi informasi awal (plaintext) melalui proses dekripsi. Urutan proses kriptografi secara umum dapat dilihat pada Gambar 2.1.
Gambar 2.1 Urutan Proses Kriptografi 2.1.1
Sejarah Kriptografi Kriptografi mempunyai sejarah yang panjang. Informasi yang
lengkap mengenai sejarah kriptografi dapat di temukan di dalam buku David Kahn yang berjudul The Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi mulai dari
6
http://digilib.mercubuana.ac.id/
penggunakaan kriptografi oleh bangsa Mesir 4000 tahun yang lalu (berupa hieroglyph yang tidak standar pada piramid) hingga penggunaan kriptografi pada abat ke-20.secara historis ada empat kelompok orang yang berkontribusi
terhadap
perkembangan
kriptografi,
dimana
mereka
menggunakan kriptografi untuk menjamin kerahasiaan dalam komunikasi pesan penting, yaitu kalangan militer (termasuk intelejen dan mata-mata), kalangan diplomatic, penulis buku harian, dan pencinta (lovers). Diantara ke-empat kelompok ini, kalangan militer yang memberikan kontribusi paling penting karena pengiriman pesan didalam suasana perang membutuhkan teknik enkripsi dan deskripsi yang rumit. Kriptografi juga digunakan Untuk tujuan keamanan. Kalangan gereja pada masa awal agama Kristen menggunakan kriptografi untuk menjaga tulisan religious dan 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 dienskripsi) untuk menyembunyikan pesan berbahaya; para ahli percaya bahwa pesan tersebut mengacu pada kerajaan Romawi. Kriptografi modern dipicu oleh perkembangan peralatan komputer digital. Dengan komputer digital, cipher yg lebih kompleks menjadi sangat mungkin untuk dapat dihasilkan. Tidak seperti kriptografi klasik yang mengenskripsi karakter per karakter (dengan menggunakan alphabet tradisionil), kriptografi modern beroperasi pada string biner. Cipher yang kompleks seperti DES (Data Encryption Standard) dan penemuan algoritma RSA adalah algoritma kriptografi modern yang paling dikenal di dalam sejarah kriptografi modern. Kriptografi modern tidak hanya berkaitan dengan teknik menjaga kerahasiaan pesan, tetapi juga melahirkan konsep seperti tanda –tangan digital dan sertifikasi digital. Dengan kata lain, kriptografi modern tidak hanya memberikan aspek keamanan confidentiality, tetapi juga aspek keamanan lain seperti otentikasi, integritas data, dan penyangkalan (Munir, 2006).
7
http://digilib.mercubuana.ac.id/
2.1.2
Tujuan Kriptografi Menurut (Munir, 2006) Ada empat tujuan mendasar dari ilmu
kriptografi ini yang juga merupakan aspek keamanan informasi, yaitu: 1. Convidentiality (kerahasiaan), yaitu memberikan kerahasiaan pesan dan menyimpan data dengan menyembunyikan data dengan menyembunyikan informasi lewat teknik-teknik enkripsi. 2. Message intergrity (integritas data), yaitu memberikan jaminan bahwa dari setiap bagian tidak mengalami perubahan dari saat data dibuat/ dikirim sampai dengan saat data tersebut di buka. 3. Non-repudiation (nirpenyangkalan), yang memberikan cara untuk membuktikan bahwa suatu dokumen dating dari setiap seseorang apabila ia mencoba menyangkal memiliki dokumen tersebut. 4. Auntentication (autentikasi), yang memberikan dua layanan. Yang pertama
mengidentifikasi
keaslian
dari
suatu
pesan
dan
memberikan jaminan keotentikannya. Kedua, untuk meguji identitas seseorang apabila ia akan memasuki sebuah sistem.
2.1.3 a.
Kriptografi Klasik Dan Kriptografi Modern Kriptografi Klasik Sebelum
komputer
ada
kriptografi
dilakukan
dengan
algoritmaberbasis karakter. Algoritma yang digunakan termasuk ke dalam sistem kriptografi simetri dan digunakan jauh sebelum sistem kriptografi kunci public ditemukan. Terdapat sejumlah algoritma yang tercatat dalam sejarah kriptografi (sehingga dinamakan algoritma kriptografi klasik), namun sekarang algoritma tersebut sudah usang karena sangat mudah dipecahkan (Munir, 2006).
8
http://digilib.mercubuana.ac.id/
Tiga alasan mempelajari algoritma kriptografi klasik, yaitu: 1. Untuk memberikan pemahaman konsep dasar kriptografi. 2. Dasar dari algoritma kriptografi modern. 14 3. Dapat memahami potensi-potensi kelemahan sistem chiper. b.
Kriptografi Modern Algoritma kriptografi modern umumnya beroperasi dalam mode bit
ketimbang mode karakter (seperti yang dilakukan pada cipher substitusi atau cipher transposisi dari algoritma kriptografi klasik) (Munir, 2006). Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi cipherteks dalam bentuk rangkaian bit, demikian sebaliknya. Enkripsi modern berbeda dengan enkripsi konvensional. Karena enkripsi modern sudah menggunkan komputer untuk pengoperasiannya. Berfungsi untuk mengamankan data baik yang di transfer melalui jaringan komputer maupun yang bukan. Hal ini sangat berguna untuk melindungi privacy data, integrity, authentication dan non-repudiation. Perkembangan algoritma kriptografi modern berbasis bit didorong oleh penggunaan komputer digital yang merepresentasikan data dalam bentuk biner. Kriptografi modern merupakan suatu perbaikan yang mengacu pada kriptografi klasik. Pada kriptogarfi modern terdapat berbagai macam algoritma yang dimaksudkan untuk mengamankan informasi yang dikirim melalui jaringan komputer.
9
http://digilib.mercubuana.ac.id/
Algoritma kriptografi modern terdiri dari dua jenis 1.
Algoritma Simetris Algoritma simetris adalah yang menggunakan kunci yang sama
untuk enkripsi dan dekripsinya. Algoritma kriprografi simetris sering disebut algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu. Kelebihan dari algoritma kriprografi simetris adalah waktu proses untuk enkripsi dan dekripsi relatif cepat. Hal ini disebabkan efesiensi yang terjadi pada pembangkit kunci. Karena prosesnya relatif cepat maka algoritma ini tepat untuk digunakan pada sistem komunikasi digital secara real time seperti GSM.
Gambar 2.2 Algoritma Simetris
Kelebihan kriptografi simetris adalah : 1. Proses enkripsi atau dekripsi kriptografi simetris membutuhkan waktu yang singkat. 2. Ukuran kunci simetris relative lebih pendek. 3. Otentikasi pengiriman pesan langsung dari ciphertext yang diterima, karena kunci hanya diketahui oleh penerima dan pengirim saja.
10
http://digilib.mercubuana.ac.id/
Kelemahan kriptografi asimetris adalah : 1. Proses enkripsi dan dekripsi umumnya lebih lambat dari algortima simetri, karena menggunakan bilangan yang besar dan operasi bilangan yang besar. 2. Ukuran ciphertext lebih besar dari plaintext. 3. Ukuran kunci relative lebih besar daripada ukuran kunci simetris. 2.
Algoritma Asimetris Algoritma Asimetris adalah pasangan kunci kriptografi yang salah
satunya digunakan untuk proses enkripsi dan satu lagi deskripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia itu, yang dalam hal ini kunci rahasia, untuk melakukan pembongkaran terhadap kode yang dikirim untuknya. Contoh algoritma terkenal yang menggunakan kunci Asimetris adalah RSA (merupakan singkatan dari nama penemunya, yakni Rivest, Shamir dan Adleman).
Gambar 2.3 Algoritma Asimetris Kelebihan kriptografi asimetris adalah : 1. Hanya kunci private yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. Tidak ada kebutuhan mengirim kunci private sebagaimana kunci simetri. 2. Pasangan kunci private dan kunci public tidak perlu diubah dalam jangka waktu yang sangat lama. 3. Dapat digunakan dalam pengaman pengiriman kunci simetris.
11
http://digilib.mercubuana.ac.id/
Kelemahan kriptografi asimetris adalah : 1. Proses enkripsi dan dekripsi umumnya lebih lambat dari algortima simetri, karena menggunakan bilangan yang besar dan operasi bilangan yang besar. 2. Ukuran ciphertext lebih besar dari plaintext. 3. Ukuran kunci relative lebih besar daripada ukuran kunci simetris. 2.1.4 Pengertian Enkripsi dan Deskripsi Enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. atau bisa didefinisikan juga Enkripsi merupakan proses untuk mengubah plainteks menjadi chiperteks. Planteks sendiri adalah data atau pesan asli yang ingin dikirim, sedangkan Chiperteks adalah data hasil enkripsi. Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah
chiper
mengunakan
suatu
algoritma
yang
dapat
mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unintelligible). Karena teknik chiper merupakan suatu system yang telah siap untuk di automasi, maka teknik ini digunakan dalam system keamanan computer dan jaringan. Enkripsi dimaksudkan untuk melindungi informasi agar tidak terlihat oleh orang atau pihak yang tidak berhak. Informasi ini dapat berupa nomor kartu kredit, catatan penting dalam komputer, maupun password untuk mengakses
sesuatu.
Deskripsi
dalam
dunia
keamanan
komputer
merupakan proses untuk mengubah chiperteks menjadi plainteks atau pesan asli. Jadi Deskripsi merupakan kebalikan dari Enkripsi upaya pengolahan data menjadi sesuatu yang dapat diutarakan secara jelas dan tepat dengan tujuan agar dapat dimengerti oleh orang yang tidak langsung mengalaminya sendiri.
12
http://digilib.mercubuana.ac.id/
Kategori dari Enkripsi Dalam hal ini terdapat tiga kategori enkripsi, yaitu : 1. Kunci enkripsi rahasia, artinya terdapat sebuah kunci yang digunakan untuk mengenkripsi dan juga sekaligus mendekripsikan informasi. 2. Kunci enkripsi public, artinya dua kunci digunakan satu untuk proses enkripsi dan yang lain untuk proses dekripsi. 3. Fungsi one-way, atau fungsi satu arah adalah suatu fungsi dimana informasi dienkripsi untuk menciptakan “signature” dari informasi asli yang bisa digunakan untuk keperluan autentikasi. Kelebihan dari Enkripsi 1. Kerahasiaan suatu informasi terjamin. 2. Menyediakan
autentikasi
dan perlindungan
integritas
pada
algoritma checksum/hash. 3. Menanggulangi penyadapan telepon dan email 4. Untuk digital signature. Kekurangan dari Enkripsi 1. Penyandian rencana teroris. 2. Penyembunyian record kriminal oleh seorang penjahat. 3. Pesan tidak bisa dibaca bila penerima pesan lupa atau kehilangan kunci. 2.2
Data Encryption Standar (DES) Data Encrytion Standar (DES) adalah algoritma cipher blok yang popular
karena dijadikan standar algoritma enkripsi kunci-simetri, meskipun saat ini standar tersebut telah digantikan dengan algoritma yang baru, AES, karena DES sudah di anggap tidak aman lagi. Sebenarnya DES adalah nama standar enkripsi simetri, nama algoritma enkripsinya sendiri adalah DEA (Data Encryption Algorithm),namun nama DES lebih popular dari pada DEA. Algoritma.
13
http://digilib.mercubuana.ac.id/
DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada Feistel. Algoritma ini telah disetujuin oleh National Bureau of standar (NBS) Amerika Serikat (Munir, 2006) DES termasuk ke dalam system kriptografi simetri dan tergolong jenis cipher blok. DES peroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit chipherteks dengan menggunkan 56 kunci internal atau upa-kunci. Kunci internal di bangkitkan dari kunci eksternal yang panjangnya 64 bit.
Gambar 2.4 Global Algoritma DES
Skema global dari algoritma DES adalah sebagai berikut 1.
Blok plainteks di permutasikan dengan metric permutasi awal (initial permutation atau IP).
2.
Hasil permutasian awal kemudian di-enciphering- sebanyak 16 kali (16 putaran) setiap putaran menggunkan kunci internal yang berbeda.
3.
Hasil enciphering kemudian di permutasikan dengan matriks permutasi balikan (invers initial permutation atau ip-1) menjadi blok cipherteks.
Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES.
14
http://digilib.mercubuana.ac.id/
Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES.
Implementasi Hardware dan Software DES
DES sudah diimplementasikan dalam bentuk perangkat keras.
Dalam bentuk perangkat keras, DES diimplementasikan di dalam chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik).
Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik (pada komputer mainframe IBM 3090). 2.3.1
Keamanan DES
Isu-isu yang menjadi perdebatan kontroversi menyangkut keamanan DES 1.
Panjang kunci Panjang kunci eksternal DES hanya 64 bit atau 8 karakter , itupun yang dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang di usulkan IBM adalah 128 bit,tetapi atas permintaan NSA, panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan. Serangan yang palik praktis terhadap DES adalah exhaustive key search. Dengan panjang kunci 56 bit akan terdapat 256 atau 72.057.594.037.927.936 kemungkinan kunci. Jika di asumsikan serangan exhaustive key search dengan menggunkan prosesor paraler mencoba setengah dari jumlah kemungkinan kunci itu , maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk menemukan kunci yang benar. Namun tahun, pada tahun 1998 electronic frontier foundation (EFE) merancang dan membuat perangkan keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan
15
http://digilib.mercubuana.ac.id/
dapat diharapkan dapat menemukan kunci selama 5 hari. Tahun 1990, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. 2.
Jumlah Putaran Sebenarnya delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acac dari setiap bit plainteks dan setiap bit chiperteks. Jadi,mengapa harus 16 x putaran? Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat di pecahkan dengan known-plaintexk attack bagus dari pada dengan brute force attack [SCH96].
2.
Kotak-S Pengisian kota-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kota itu.
2.3.2
Mode DES DES dapat di operasikan dengan mode, ECB, CBC, OFB, dan
CFB. Namun karena kesederhanaannya, mode ECB lebih sering di gunakan pada paket program komersil meskipun sangat rentan terhadap serangan Mode CBC lebih kompleks dari pada ECB namu memberikan tingkat keamanan yang lebih bagus dari mode ECB. mode CBC hanya kadang-kadang saja digunakan. 2.3.3
File Document Dalam teknologi komputasi, DOC atau doc (singkatan dari
'document' ) adalah sebuah ekstensi berkas untuk aplikasi pengolah kata yang terdapat di Microsoft Word Binary File Format.Sejarah mengatakan bahwa ekstensi tersebut pernah digunakan pada teks biasa, khususnya program atau perangkat keras komputer di berbagai sistem operasi. Pada 1980an, WordPerfect menggunakan DOC sebagai format bawaan mereka.
16
http://digilib.mercubuana.ac.id/
Kemudian,
pada
dasawarsa
1990an,
Microsoft
memilih
untuk
menggunakan ekstensi DOC untuk format bawaaan Microsoft Word. 2.3.4
DOC
File doc terkait dengan Microsoft word, dibuat oleh Microsoft Corporation. MsWord ini biasa digunakan untuk membuat dan membagikan dokumen dengan menggunakan writing tools yang sudah disediakan. Pada MsWord sendiri terdapat sedikit perbedaan extension dikarena-kan jenis versi yang berbeda, misalnya pada MsWord 2007 dengan format .docx. 2.3.5
PDF
File pdf terkait dengan acrobat, dibuat oleh Adope Systems Incorporated. Adobe Acrobat dirancang untuk membuat, melihat, memanipulasi, dan mengatur file yang ada dalam Adobe’s Portable Document Format (PDF). 2.3.6
PPT
PPT (Power PoinT), digunakan untuk mempresentasikan laporan. Tekait dengan Microsoft Power Point, dengan menggunakan MsPPT ini presentasi menjadi lebih berkualitas karena didukung dengan sistem multimedia. 2.3.7
XLS
File xls terkait dengan Microsoft Excel, dibuat oleh Microsoft Corporation. Biasa digunakan untuk memperhitungkan, mempresentasi data, menganalisa dll. 2.3.8
LATEX
Fitur – fitur yang ada pada latex didesain untuk memproduksi dokumentasi teknis dan ilmiah. Sehingga orang – orang yang mengunakan latex biasanhya berprofesi ilmuan, insinyur , matematikawan , dll.
17
http://digilib.mercubuana.ac.id/
2.3.9
MDB
Digunakan untuk membuat suatu database dengan menggunakan Ms.Access. 2.3.10
TEXT
File jenis ini sering kita jumpai, merupakan format mendasar dari teks file. Untuk membuat dan membuka file ini dapat digunakan notepad, wordpad , ataupun text editor lainnya. 2.3
Flowchart Flowchart adalah suatu metode untuk menggambarkan tahap-tahap
pemecahan masalah dengan mempresentasikan simbol-simbol tertentu yang mudah dimengerti, mudah digunakan dan standar (sutedjo, 2004). 1. System Flowchart System flowchart adalah urutan proses dalam system dengan menunjukkan alat. Media input, output, serta jenis media penyimpanan dalam proses pengolahan data. System flowchar ini tidak digunakan untuk menggambar urutan
langka
untuk
memecahkan
masalah,
tetapi
hanya
untuk
menggambarkan prosedur dalam system yang di bentuk.berikut ini adlah gambar dari simbol-simbol standar yang telah banyak digunakan pada penggunaan penggambaran system flowchart. 2.3.1
FLOW DIRECTION SYMBOLS Yaitu, simbol yang dipakai untuk menghubungkan antara simbol
yang satu dengan simbol lainnya atau disebut juga connecting line.
Arus / Flow
Penghubung antara prosedur / proses.
18
http://digilib.mercubuana.ac.id/
Connector
Simbol keluar / masuk prosedur atau proses dalam lembar / halaman yang sama.
Off-line Connector
Simbol keluar / masuk prosedur atau proses dalam lembar / halaman yang lain.
Tabel. 2.1 Simbol-simbol System Flowchart Direction
19
http://digilib.mercubuana.ac.id/
2.3.2
PROCESSING SYMBOLS Merupakan simbol yang menunjukkan jenis operasi pengolahan
dalam suatu prosedur.
Process
Simbol yang menunjukkan pengolahan yang dilakukan Komputer.
Decision
Simbol untuk kondisi yang akan menghasilkan beberapa kemungkinan jawaban / aksi.
Predefined Process
Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan didalam storage.
Terminal
Simbol untuk permulaan atau akhir darti suatu program.
Manual Input
Simbol untuk pemasukan data secara manual on-line keyboard.
Tabel. 2.2 Simbol-simbol System Flowchart Processing
20
http://digilib.mercubuana.ac.id/
2.3.3
INPUT OUTPUT SYMBOLS Simbol yang dipakai untuk menyatakan jenis peralatan yang
digunakan sebagai media input atau output.
Input-Output
Simbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya.
Document
Simbol yang menyatakan input berasal dari dokumen dalam bentuk kertas atau output di cetak dikertas
Disk and On-
Simbol untuk menyatakan input
line Storage
berasal dari disk atau output di simpan ke disk
Tabel. 2.3 Simbol-simbol System Flowchart Input Output 2.3.4
Program Flowchart Program flowchart adalah diagram alir yang menggambarkan
urutan
logika
dari
suatu
prosedur
pemecahan
masalah.
Untuk
menggambarkan program flowchart tersedia simbol-simbol standar, berikut ini adalah gambaran dari simbol-simbol standar yang digunakan program flowchart.
21
http://digilib.mercubuana.ac.id/
2.4
NetBeans IDE
2.4.1
Pengertian NetBeans adalah Integrated Development Environment (IDE)
berbasiskan Java dari Sun Microsystems yang berjalan di atas Swing. Swing sebuah teknologi Java untuk pengembangan aplikasi Desktop yang dapat bejalan di berbagai macam platforms seperti Windows, Linux, Mac OS X and Solaris. Suatu IDE adalah lingkup pemrograman yang diintegrasikan kedalam suatu aplikasi perangkat lunak yang menyediakan pembangun Graphic User Interface (GUI), suatu text atau kode editor, suatu compiler atau interpreter dan suatu debugger. Netbeans merupakan software development yang Open Source, dengan kata lain software ini di bawah pengembangan bersama, bebas biaya NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas, komunitas yang terus tumbuh, dan memiliki hampir 100 mitra. Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama. Saat ini terdapat dua produk : NetBeans IDE dan NetBeans Platform. The NetBeans IDE adalah sebuah lingkungan pengembangan – sebuah kakas untuk pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java – namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan. Tersedia juga NetBeans Platform sebuah fondasi yang modular dan dapat diperluas yang dapat digunakan sebagai perangkat lunak dasar untuk membuat aplikasi desktop yang besar. Mitra ISV menyediakan plug-in bernilai tambah yang dapat dengan mudah diintegrasikan ke dalam Platform dan dapat juga digunakan untuk membuat kakas dan solusi sendiri. Kedua produk adalah kode terbuka (open source) dan bebas (free) untuk penggunaan komersial dan non komersial. Kode sumber tersedia untuk guna ulang dengan lisensi Common Development and Distribution License (CDDL). 2 Kelebihan
22
http://digilib.mercubuana.ac.id/
dan Kekurangan Netbeans Kelebihan NetBeans GUI Builder : Salah satu yang menjadi kelebihan NetBeans GUI Builder adalah yang telah disebutkan diatas, yaitu GRATIS. Selain itu NetBeans GUI Builder sangat kompetebel dengan Swing karena memang langsung dikembangkan oleh Sun yang notabenenya sebagai pengembang Swing. Kekurangan NetBeans GUI Builder : NetBeans hanya mensupport 1 pengembangan Java GUI, yaitu Swing, yang padahal ada Java GUI yang dikembangkan oleh eclipse yang bernama SWT dan JFace yang sudah cukup populer. NetBeans mempatenkan source untuk Java GUI yang sedang dikerjakan dalam sebuah Generated Code, sehingga programmer tak dapat mengeditnya secara manual. 2.4.2
Awal Sejarah Netbeans NetBeans dimulai pada tahun 1996 sebagai Xelfi (kata bermain
pada Delphi ), Java IDE proyek mahasiswa di bawah bimbingan Fakultas Matematika dan Fisika di Charles University di Praha . Pada tahun 1997 Staněk Romawi membentuk perusahaan sekitar proyek tersebut dan menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun Microsystems pada tahun 1999. Komunitas NetBeans sejak terus tumbuh, berkat individu dan perusahaan yang menggunakan dan berkontribusi dalam proyek ini. 2.4.3
Versi Lancar NetBeans
IDE
memperkenalkan
6.0
dukungan
untuk
mengembangkan modul IDE dan aplikasi klien kaya berdasarkan platform NetBeans, Java Swing GUI builder (sebelumnya dikenal sebagai “Proyek Matisse”), meningkatkan CVS dukungan, WebLogic 9 dan JBoss 4 dukungan, dan perangkat tambahan banyak editor. NetBeans 6 is available in official repositories of major Linux distributions. NetBeans 6 tersedia dalam repositori resmi dari distribusi Linux utama. Selain itu, NetBeans Enterprise Pack mendukung pengembangan aplikasi Java EE 5 perusahaan, termasuk SOA alat desain visual, skema
23
http://digilib.mercubuana.ac.id/
XML tools, web orkestrasi layanan (untuk BPEL), dan UML modeling. The NetBeans IDE Bundle for C/C++ supports C/C++ development. The NetBeans IDE Bundle untuk C / C + + mendukung C / C + + pembangunan. Hosting pengembang sumber terbuka proyek di kenai.com tambahan manfaat dari instant messaging dan pelacakan masalah integrasi dan navigasi kanan dalam IDE, dukungan untuk pengembangan aplikasi web dengan PHP 5.3 dan kerangka Symfony, dan kode selesai diperbaiki, layout, petunjuk dan navigasi dalam proyek JavaFX. Dirilis pada bulan Juni 2010, menambahkan dukungan untuk OSGi , Spring Framework 3.0, Java EE injeksi ketergantungan (JSR-299), Zend Framework untuk PHP , dan navigasi kode lebih mudah (seperti “Apakah / ditimpa Penerapan” penjelasan), format , petunjuk, dan refactoring di beberapa bahasa. 2.4.4
Bahasa Program Java Java adalah sebuah teknologi yang diperkenalkan oleh Sun
Microsysytems pada pertengahan tahun 1990. Menurut definisi Sun, Java adalah nama untuk
sekumpulan teknologi
untuk
membuat
dan
menjalankan perangkat lunak pada computer standalone ataupun pada lingkungan jaringan. Kita lebih menyukai Java sebagai sebuah teknologi disbanding hanya sebuah bahasa pemrograman, karena Java lebih lengkap karena Java lebih lengkap dibanding sebuah bahasa pemrograman konvensional. Teknologi Java memiliki tiga komponen penting, yaitu: Programming-language specification Application-programming interface Virtual-machine specification JDK (Java Development Kit) Java Development Kit (JDK) adalah Sun Microsystems produk ditujukan untuk pengembang Java. Sejak diperkenalkannya Java, telah jauh SDK Java yang paling banyak digunakan. Pada tanggal 17 November 2006, Sun mengumumkan bahwa akan dirilis di bawah GNU General Public License (GPL), sehingga membuat perangkat lunak bebas. Hal ini terjadi sebagian besar
24
http://digilib.mercubuana.ac.id/
pada tanggal 8 Mei 2007 [3]; Sun kontribusi kode sumber untuk JDKOpen. JRL (Java Research License) JRL (JAVA RESEARCH LICENSE) ini dibuat khusus untuk universitas dan peneliti yang ingin menggunakan teknologi Java [tm] sebagai subyek pembelajaran dan penelitian. Ia ditulis untuk menyederhanakan dan bersantai persyaratan bagian yang ada “penelitian” dari SCSL saat ini. JRL adalah lisensi yang diciptakan khusus untuk universitas dan peneliti yang ingin menggunakan teknologi Java sebagai subyek pembelajaran dan penelitian. itu ditulis untuk menyederhanakan dan bersantai persyaratan bagian yang ada “penelitian” dari SCSL saat ini. NetBeans mengacu pada kedua kerangka platform untuk aplikasi desktop Java, dan sebuah lingkungan pengembangan terpadu (IDE) untuk pengembangan dengan Java, JavaScript, PHP, Python, Ruby, Groovy, C, C + +, Scala, Clojure, dan lain-lain. NetBeans IDE ditulis dalam Java dan berjalan di mana-mana di mana JVM yang diinstal, termasuk Windows, Mac OS, Linux, dan Solaris. Sebuah JDK diperlukan untuk pengembangan fungsionalitas Jawa, tetapi tidak diperlukan untuk pembangunan di bahasa pemrograman lain. Platform NetBeans memungkinkan aplikasi untuk dikembangkan dari satu set komponen perangkat lunak moduler yang disebut modul. Aplikasi berbasis platform NetBeans ( termasuk IDE NetBeans ) dapat diperpanjang oleh pengembang pihak ketiga. 2.5
Metodologi
2.5.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. Metodologi Pengembangan sistem berarti metode-metode, prosedur-prosedur, konsepkonsep
pekerjaan,
aturan-aturan
dan
postulat-postulat
25
http://digilib.mercubuana.ac.id/
(kerangka
pemikiran) yang akan digunakan untuk mengembangkan suatu sistem informasi. Urut-urutan prosedur untuk pemecahan masalah dikenal dengan istilah Algoritma. 2.5.2
Metode Waterfall Metode Waterfal sering disebut juga model sekuensial linier
(sequential linear) atau alur hidup klasik (classic life cycle). Model air terjun menyediakan pendekatan alur hidup
perangkat lunak secara
sekuensial (Pressman 2010 ). 1.Communication Langkah ini merupakan analisis terhadap kebutuhan software, dan tahap untuk mengadakan pengumpulan data dengan melakukan pertemuan dengan customer, maupun mengumpulkan data-data tambahan baik yang ada dijurnal, artikel, maupun internet. 2.Planning Proses planning merupakan lanjutan dari proses communication (analysis requirement). Tahapan ini akan menghasilkan dokumen user requirement atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan software, termasuk rencana yang akan dilakukan. 3.Modeling Proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan software yang dapat diperkieakan sebelum di coding. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) procedural. Tahapan ini akan mengasilkan dokumen yang disebut software requirement. 4.Construction Construction merupakan proses membuat kode. Coding atau pengkodean merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer.Programmer akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan
26
http://digilib.mercubuana.ac.id/
tahapan secara nyata
dalam mengerjakan
suatu
software,
artinya penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut untuk kemudian bisa diperbaiki. 5.Deployment Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala.
Gambar 2.5 Metode Waterfall
2.6
Analisis Pengertian analisis diartikan sebagai penguraian suatu pokok atas berbagai
penelahan bagian itu sendiri, serta hubungan antar bagian untuk memperoleh pengertian yang tepat dan pemahaman arti keseluruhan (Prastowo dan Julianty, 2002). Lain pula menurut (Komaruddin, 2001), analisis kegiatan berfikir untuk menguraikan suatu keseluruhan menjadi komponen sehingga dapat mengenal tanda-tanda komponen, hubungannya satu sama lain dan fungsi masing-masing dalam satu keseluruhan yang terpadu. Dari pendapat data diatas dapat disimpulkan bahwa analisis atau analisa adalah kegiatan berfikir untuk menguraikan suatu pokok hal menjadi bagianbagian atau komponen sehingga dapat diketahui ciri atau tanda tiap bagian,
27
http://digilib.mercubuana.ac.id/
kemudian hubungan satu sama lain serta fungsi masing-masing bagian dari keseluruhan. 2.7
Perancangan Menurut (whitte, 2004) Perancangan didefinisikan sebagai tugas yang
fokus pada spesifikasi solusi detail berbasis komputer. Terhadap beberapa strategi perancangan dasain system yaitu : 2.1 Desain stuktur modern 2.2 Teknik informasi 2.3 Prototyping 2.4 Join Application Development (JAD) 2.5 Rapid Application Development ( RAD ) 2.6 Desain Berorientasi Objek Kadang – kadang teknik tersebut dianggap sebagai teknik yang saling bersaing, tetapi seringkali untuk beberapa jenis proyek tertentu diperlukan kombinasi dari beberapa diantaranya sehingga saling melengkapi satu sama lain.
2.8
Pengujian Pengujian elemen perangkat lunak adalah elemen kritis dari jaminan
kualitas dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean. 2.8.1 Pengujian Black Box Black box testing merupakan pengujian yang memungkinkan software
engineer
mendapatkan
serangkaian
kondisi
input
yang
sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program. Pengujian black-box juga merupakan pendekatan komplementer yang memungkinkan besar mampu mengungkap kelas kesalahan daripada metode white-box.
28
http://digilib.mercubuana.ac.id/
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.
29
http://digilib.mercubuana.ac.id/