BAB 2. LANDASAN TEORI

advertisement
BAB 2.
LANDASAN TEORI
2.1. Data dan Informasi
Data adalah bahan baku informasi, didefinisikan sebagai kelompok teratur simbolsimbol yang mewakili kuantitas, tindakan, benda dan sebagainya. Data terbentuk dari
karakter, dapat berupa alfabet, angka, maupun simbol khusus seperti *, $ dan /. Data
disusun untuk diolah dalam bentuk struktur data, struktur file, dan basis data.
Sedangkan informasi merupakan hasil dari pengolahan data menjadi bentuk yang lebih
berguna bagi yang menerimanya yang menggambarkan suatu kejadian-kejadian nyata
dan dapat digunakan sebagai alat bantu untuk pengambilan keputusan.
2.2. Keamanan Data dan Informasi
Kemajuan teknologi informasi yang semakin pesat berdampak pada kehidupan
manusia, baik itu positif maupun negatif, salah satu dampak positifnya adalah
kemudahan akan akses informasi serta cara berkomunikasi antar manusia, disisi lain
kemajuan teknologi juga memunculkan dampak negatif yaitu masalah keamanan data
dan informasi itu sendiri. Dalam hal ini akan membuka peluang bagi orang-orang yang
tidak bertanggung jawab serta tidak berwenang untuk mencuri dan atau mengubah
data untuk kepentingannya sendiri yang tentunya akan merugikan pihak tertentu.
Karena bila pesan yang dikirim berisi sesuatu yang bersifat rahasia sehingga pesan
tersebut dibaca oleh pihak yang tidak berhak, maka bocorlah kerahasiaan pesan yang
dikirim. Ini adalah masalah keamanan pesan yang dinamakan kerahasiaan.
Aman sering diartikan dengan istilah free from danger yang berarti bebas dari
ancaman bahaya. Menurut Harold F. Tipton, “Keamanan biasanya digambarkan
sebagai kebebasan dari bahaya atau sebagai kondisi keselamatan”. (Rifqi,2012).
Keamanan komputer secara rinci adalah perlindungan data didalam suatu sistem
melawan terhadap otorisasi tidak sah. Dimana pengirim menginginkan pesan yang
akan dikirim ke penerima sampai dengan utuh tanpa ada kurang atau lebih pada pesan
tersebut, artinya tidak ada manipulasi pesan selama pesan itu dalam perjalanan menuju
penerima, dan harus dipastikan bahwa pesan yang diterima oleh penerima adalah
pesan asli yang memang dikirim oleh pengirim tanpa ada penambahan atau
2-1
http://digilib.mercubuana.ac.id/
pengurangan terhadap isi pesan yang memungkinkan akan merubah arti dari isi pesan
tersebut. Ketika penerima merasa yakin bahwa pesan yang diterimanya berasal dari
pengirim yang dimaksud dan bukan orang lain yang menyamar, kemudian si pengirim
juga merasa yakin bahwa yang menerima pesan yang dia kirim adalah orang yang
dituju, maka hal ini adalah merupakan masalah keamanan data pesan yang disebut
otentikasi.
Mengingat
pentingnya
sebuah
data
informasi,
mengharuskan
dilakukanya
pengamanan terhadap data informasi tersebut untuk menjaga nilai.keaslian serta
keabsahannya supaya tidak disalah gunakan oleh pihak-pihak yang tidak berwenang
dan tidak bertanggung jawab. Keamanan data informasi merupakan salah satu cabang
studi dari teknologi informasi yang mempelajari metode dan teknik untuk melindungi
data dan sistem informasi dari akses, perusakan, penyebaran, perubahan dan tindakan
lainya tanpa otorisasi yang sah. Keamanan data pada komputer tidak hanya tergantung
pada teknologi saja, tetapi juga dari aspek prosedure dan kebijakan keamanan yang
diterapkan serta jika firewall danperangkat keamanan lainnya bisa dibobol oleh orang
yang tidak berhak, disini perang kriptografi untuk mengamankan data dengan
menggunakan teknik enkripsi sehingga data tidak bisa dibaca (Kurniawan, 2012).
2.3. Layanan Keamanan Jaringan Dalam Komunikasi Data
Layanan-layanan keamanan jaringan didefinisikan berdasarkan kebutuhan yang harus
disediakan untuk memenuhi permintaan terhadap keamanan jaringan. Jenis-jenis
layanan keamanan jaringan berdasarkan rekomendasi
ITU-T (International
Telecommunication Union-Telecommunication Standardiation Sector) pada dokumen
X.800, (Rifqi,2012). Adalah :
1. Otentikasi
Dalam layanan otentikasi terdapat dua layanan, yang pertama adalah layanan
otentikasi entitas (entity aunthentication), yaitu layanan keamanan jaringan yang
memberikan kepastian terhadap identitas semua entitas yang terlibat dalam
komunikasi data. Sedangkan yang kedua adalah otentikasi keaslian data (data
origin authentication) yaitu layanan yang memberikan kepastian terhadap sumber
sebuah data.
2. Kendali Akses (access control)
2-2
http://digilib.mercubuana.ac.id/
Kendali akses yaitu layanan keamanan jaringan yang menghalangi penggunaan
tidak terotorisasi terhadap sumber daya. Pada aplikasi jaringan biasanya kebijakan
kemampuan ditentukan oleh jenis pengguna. Misalnya sebuah data rekam medis
elektronik hanya dapat diakses oleh pasien dan paramedis yang terlibat.
3. Kerahasiaan Data (data confidentiality)
Kerahasiaan data adalah layanan keamanan jaringan yang memproteksi data
tertranmisi terhadap pengungkapan oleh pihak yang tidak berwenang.
4. Keutuhan Data (data integrity)
Keutuhan data adalah layanan keamanan jaringan yang memastikan bahwa data
yang diterima oleh penerima adalah benar-benar sama dengan data yang dikirim
oleh pengirim.
5. Non-Repudiation
Layanan non-repudiation adalah layanan keamanan jaringan yang menghindari
penolakan atas penerimaan/pengiriman data yang telah terkirim.
6. Ketersediaan (availabilituy)
Layanan ketersediaan adalah layanan sistem yang membuat sumber daya sistem
tetap dapat diakses dan digunakan ketika ada permintaan dari pihak yang
berwenang. Serangan terhadap sistem seperti denial of services membuat sistem
tidak dapat diakses oleh pihak yang berwenang. (Rifki Sadikin,2012)
2.4. Mekanisme Keamanan Jaringan
Untuk mewujudkan layanan keamanan jaringan, pengembang sistem dapat
menggunakan mekanisme keamanan jaringan. Berikut ini adalah beberapa jenis
mekanisme keamanan jaringan :
o Encipherment
Merupakan mekanisme keamanan jaringan yang digunakan untuk
menyembunyikan data. Mekanisme ini dapat menyediakan layanan
kerahasiaan data meskipun dapat juga digunakan untuk layanan lainnya.
Untuk mewujudkan mekanisme encipherment teknik kriptografi dan
steganografi dapat digunakan.
o Keutuhan Data
Mekanisme keutuhan data digunakan untuk memastikan keutuhan data
pada unit data atau pada suatu aliran (stream) data unit. Cara yang
digunakan adalah dengan menambahkan nilai penguji (check value) pada
2-3
http://digilib.mercubuana.ac.id/
data asli. Jadi ketika sebuah data akan dikirim nilai penguji dihitung
terlebih dahulu dan kemudian data dan penguji dikirim bersamaan.
o Digital Signature
Digital signature merupakan mekanisme keamanan jaringan yang
menyediakan cara bagi pengirim data untuk “menandatangani” secara
elektronik sebuah data dan penerima dapat memverifikasi “tanda tangan”
itu secara elektronik.
2.5. Kriptografi
2.5.1 Pengertian Kriptografi
Secara etimologi kata kriptografi (cryptography) berasal dari bahasa Yunani, yaitu
kryptos yang artinya tersembunyi dan graphein yang artinya tulisan. Awal mula
kriptografi dipahami sebagai ilmu tentang menyembunyikan pesan (Rifki Sadikin,
2012),buku-buku tentang kriptografi terbitan lama sekitar tahu 80-an secara umum
mendifinisikan kriptografi sebagai sebuah ilmu dan seni untuk menjaga kerahasiaan
pesan dengan cara menyandikannya kedalam bentuk yang tidak dapat dimengerti
lagi maknanya secara umum. Namun saat ini kriptografi lebih dari sekedar privacy,
akan tetapi juga untuk tujuan data integrity, authentication, dan nonrepudiation
(Rifki Sadikin, 2012). Menurut Katz, kriptografi adalah studi ilmiah atau teknik
untuk mengamankan informasi digital, transaksi, dan komputasi yang terdistribusi
(Ade Candra, 2015). Seiring perkembangan zaman hingga saat ini pengertian
kriptografi berkembang menjadi ilmu tentang teknis matematis yang digunakan
untuk menyelesaikan persoalan keamanan informasi seperti kerahasiaan, keutuhan
data dan otentikasi entitas. Jadi dapat disimpulkan bahwa pengertian kriptografi
modern adalah tidak saja mengenai penyembunyian pesan namun lebih kepada
sekumpulan teknik yang menyediakan keamanan informasi. Beberapa mekanisme
yang berkembang pada kriptografi modern antara lain :
1. Fungsi Hash
Fungsi hash yaitu melakukan pemetaan pesan dengan panjang sembarang
kesebuah teks khusus yang disebut message digest dengan panjang tetap.
Fungsi hash umumnya dipakai sebagai nilai uji (check value) pada mekanisme
keutuhan data.
2-4
http://digilib.mercubuana.ac.id/
2. Penyandian dengan kunci simetrik (symmetric key encipherment).
Penyandian dengan kunci simetrik adalah penyandian yang kunci enkripsi dan
kunci dekripsi bernilai sama. Kunci pada penyandian ini bersifat rahasia, hanya
pihak yang melakukan enkripsi dan dekripsi yang mengetahuinya. Penyandian
dengan kunci simetrik disebut juga penyandian kunci rahasia (secret key
encipherment).
3. Penyandian dengan kunci asimetrik (asymmetric key encipherment)
Penyandian dengan kunci asimetrik atau juga sering disebut penyandian kunci
public (public key) adalah penyandian dengan kunci enkripsi dan dekripsi
berbeda nilai. Kunci enkripsi yang juga disebut dengan kunci public (public
key) bersifat terbuka. Sedangkan kunci dekripsi yang juga disebut kunci privat
(private key) bersifat tertutup/rahasia.
Didalam Kriptografi terdapat banyak istilah (terminology). Beberapa istilah yang
perlu diketahui antara lain :
1. Pesan Plainteks dan Pesan cipherteks
Pesan Plainteks (plaintext) adalah data informasi yang dapat dibaca dan
dimengerti maknanya. Pesan dapat berupa daa informasi yang dikirim (melalui
kurir, saluran telekomunikasi,dan lainnya) atau yang disimpan didalam media
penyimpanan (kertas,storage,dll). Pesan dapat berupa teks, suara, gambar, atau
video. Sedangkan pesan cipherteks (ciphertext) adalah pesan asli (plaintext)
yang sudah tersandikan supaya pesan tidak dapat dibaca atau dimengerti oleh
orang lain yang tidak berwenang, cipherteks harus bisa ditranspormasikan
kembali menjadi plainteks oleh penerima supaya bisa dibaca dan dimengerti
makna dan maksudnya.(Munir, 2006)
2. Enkripsi dan Dekripsi
Enkripsi adalah proses penyandian plaintext menjadi ciphertext atau disebut
juga proses encryption. Sedangkan dekripsi (decryption) adalah proses
megembalikan pesan yang sudah tersandi (ciphertext) menjadi pesan asli
(plaintext) supaya bisa dibaca dan dimengerti apa isi dari pesan yang diterima.
3. Pengirim dan Penerima
Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim
adalah entitas yang mengirimkan pesan sedangkan penerima adalah entitas
yang menerima pesan. Pengirim pasti berharap pesan yang dikirimnya dapat
2-5
http://digilib.mercubuana.ac.id/
diterima oleh penerima dengan aman tanpa bisa dibaca oleh pihak lain yang
tidak berhak , untuk itu perlu dilakukan proses penyandian terhadap pesan yang
akan dikirim menjadi cipherteks.
4. Cipher dan Kunci
Cipher merupakan kata lain dari algoritma kriptografi, yaitu aturan bagaimana
melakukan proses enkripsi dan dekripsi secara matematis. Beberapa cipher
memerlukan algoritma yang berbeda untuk melakukan proses enkripsi dan
dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi
antara dua buah himpunan yang berisi elemen-elemen plainteks dengan
himpunan yang berisi elemen-elemen cipherteks. Enkripsi dan dekripsi
merupakan fungsi yang memetakan elemen-elemen kedua himpunan tersebut,
misalkan P adalah plainteks dan C adalah cipherteks, maka :
E(P) = C  fungsi enkripsi E memetakan P ke C
D(C) = P  fungsi dekripsi D memetakan C ke P
Karena proses enkripsi, maka kemudian proses dekripsi mengembalikan pesan
tersandi ke pesan asli dengan persamaan :
D(E(P)) = P harus benar
Kriptografi adalah salah satu teknik untuk mengatai keamanan data, didalam
prosesnya teknik kriptografi menggunakan sebuah kunci yang bersifat rahasia.
Kunci (key) merupakan parameter yang digunakan untuk mentransformasikan
proses enkripsi dan dekripsi. Kunci dapat berupa string maupun bilangan.
Fungsi persamaan enkripsi dan dekripsi dengan menggunakan kunci K adalah
sebagai berikut :
EK(P) = C dan DK(C) =P
Dari kedua fungsi persamaan tersebut, maka akan didapat fungsi persamaan
sebagai berikut :
DK(EK(P)) = P
Keterangan :
E = Enkripsi
D = Dekripsi
K = Kunci
P = Plaintext
C = Ciphertext
2-6
http://digilib.mercubuana.ac.id/
Pada proses enkripsi pesan “P” di enkripsikan dengan “E” menggunakan kunci
“K” menjadi pesan sandi “C”. kemudian pada proses dekripsi pesan “C”
dikembalikan lagi ke pesan asli melalui proses dekripsi “D” dengan
menggunakan kunci “K” sehingga menghasilkan pesan asli plaintext
“P”.
Dengan demikian, dengan menggunakan kunci “K”, maka proses enkripsi dan
dekripsi dapat digambarkan dalam skema sebagai berikut :
Gambar 2.1. Skema proses enkripsi dan dekripsi
2.5.2 Sejarah Kriptografi
Seni kriptografi sudah ada sejak zaman kuno, hal ini dibuktikan dengan
ditemukannya penulisan rahasia tertua pada peradaban Mesir kuno yakni tahun
3000-an SM, dimana pada masa itu bangsa mesir menggunakan ukiran rahasia yang
disebut dengan hieroglyphics untuk menyampaikan pesan kepada orang-orang yang
berhak. Selanjutnya pada awal tahun 400 SM bangsa Spartan di Yunani
memanfaatkan kriptografi dibidang militer dengan menggunakan alat yang disebut
scytale, yaitu pita panjang berbahan daun papyrus yang dibaca dengan cara
digulungkan ke sebatang silinder.
2-7
http://digilib.mercubuana.ac.id/
Gambar 2.2. Hieroglyphics
Sumber : www.ancient-egypt-online.com
Gambar 2.3. Scytale
Sumber : http://2.bp.blogspot.com/s1600/Skytale.jpg/
Sedangkan di Asia peradaban China dan Jepang menemukan kriptogrfi pada abad 15 SM.
Peradaban Islam jugamenemukan kriptografi karena penguasaanya terhadap matematika,
statistik dan linguistik. Bahkan teknik kriptanalis dipaparkan untuk pertama kalinya pada
abad 9 M oleh seorang ilmuwan Islam yang bernama Abu Yusuf Ya‟qub bin „Ishaq asShabbah al Kindi atau biasa di panggil Al Kindi yang menulis kitab tentang seni
2-8
http://digilib.mercubuana.ac.id/
memecahkan kode. Kitab tersebut berjudul Risalah fi Istikhraj al-Mu‟amma (Manuskrip
untuk memecahkan pesan-pesan Kriptografi),yang terinspirasi dari perulangan huruf dalam
Al-Qur‟an, Al-Kindi menemukan teknik analisis frekuensi, yakni teknik untuk
memecahkan ciphertext berdasarkan frekuensi
kemunculan karakter pada sebuah pesan.
Gambar 2.4. Risalah fi Istikhraj al-Mu‟amma
Sejarah panjang kriptografi telah mencatat ada empat kelompok yang dianggap
berkontribusi terhadap perkembangan seni kriptografi, dimana keempat kelompok
tersebut menggunakan kriptografi untuk menjamin kerahasiaan dan keamanan
dalam komunikasi pesan yang dianggap penting. Keempat kelompok tersebut
adalah kalangan militer, diplomatik, penulis buku serta para pecinta (lovers).
Kalangan gereja pada awal masa agama kristen menggunakan teknik kriptografi
untuk keamanan tulisan religius dari gangguan otoritas budaya dan politik yang
lebih dominan pada masa itu. Hal ini dapat diliat dari istilah yang sudah terkenal
dikalangan umat kristiani yaitu “Angka si Buruk Rupa (number of the beast)” yang
tertulis di Kitab perjanjian baru yaitu angka “666” merupakan cara kriptografik
(dienkripsi) untuk menyembunyikan pesan berbahaya, para ahli percaya bahwa
pesan tersebut mengacu kepada kekaisaran Romawi. Sedangkan para pencinta
(lovers)
menggunakan
teknik
kriptografik
untuk
berkomunikasi
dengan
pasangannya dengan rahasia tanpa diketahui oleh orang lain. Hal ini dapat dilihat
2-9
http://digilib.mercubuana.ac.id/
didalam buku Kama Sutra dari India yang merekomendasikan wanita seharusnya
mempelajari seni memahami tulisan dengan cipher.
Pada abad ke-17 sejarah
kriptografi mencatat korban ketika ratu Skotlandia „Queen Mary‟ dihukum pancung
setelah surat rahasianya (surat terenkripsi) yang isinya rencana pembunuhan ratu
Ratu Elizabeth I berhasil dipecahkan oleh seorang pemecah kode .
Sekitar tahun 50 SM, ketika Julius Caesar, Kaisar Roma, ingin mengirimkan satu
pesan rahasia kepada seorang Jendral di medan perang. Pesan tersebut harus
dikirimkan melalui kurir, tetapi karena pesan tersebut mengandung informasi yang
bersifat rahasia maka Julius Caesar tidak ingin pesan tersebut sampai dibuka dan
dibaca ditengah jalan. Julius Caesar memikirkan bagaimana cara mengatasinya
yaitu dengan cara mengacak pesan tersebut menjadi suatu pesan yang tidak dapat
dipahami oleh siapa pun kecuali Jendralnya tersebut. Tentunya jendral tersebut
telah diberitahu bagaimana cara membaca pesan tersebut. Julius Caesar
menggunakan cipher subtitusi untuk mengirim pesan tersebut kepada jendralnya.
Pada cipher ini, huruf – huruf alfabet disubtitusikan dengan huruf – huruf yang lain
pada alfabet yang sama, karena hanya satu alfabet yang digunakan, cipher ini
merupakan subtitusi monoalfabetik. Cipher semacam ini mencakup pergeseran
alfabet dengan 3 huruf dan mensubtitusikan huruf tersebut. Subtitusi ini dikenal
dengan C3 (untuk Caesar menggeser 3 tempat). Secara umum sistem cipher
Caesar dapat ditulis sebagai berikut:
Zi = Cn(Pi)
Dimana Zi adalah karakter-karakter ciphertext, Cn adalah transformasi substitusi
alfabetik, n adalah jumlah huruf yang digeser dan Pi adalah karakter-karakter
plaintext. Disk mempunyai peranan penting dalam kriptografi sekitar 500 tahun
yang lalu. Di Italia sekitar tahun 1460, Leon Battista Alberti mengembangkan disk
cipher untuk enkripsi. Sistemnya terdiri dari dua disk konsentris. Setiap disk
memiliki alfabet di sekelilingnya dan dengan memutar satu disk berhubungan
dengan yang lainnya.
2.5.3 Sistem Kriptografi
Sistem kriptografi terdiri dari 5 bagian :
1. Plaintext
2-10
http://digilib.mercubuana.ac.id/
Plaintext adalah pesan atau data dalam bentuk aslinya yang dapat terbaca.
Plaintext merupakan masukan bagi algoritma enkripsi.
2. Secret Key
Secret key juga merupakan masukan bagi algoritma enkripsi dan merupakan
nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma
enkripsi.
3. Ciphertext
Ciphertext adalah merupakan keluaran algoritma enkripsi, dan merupakan
pesan tersembunyi. Algoritma enkripsi yang baik akan menghasilkan sebuah
ciphertext yang acak dan susah di baca/diartikan.
4. Algoritma Enkripsi
Algoritma enkripsi mempunyai 2 masukan, yaitu teks asli (plaintext) and kunci
rahasia (secret key). Algoritma enkripsi membuat perubahan terhadap teks asli
sehingga menjadi teks sandi.
5. Algoritma Dekripsi
Algoritma dekripsi juga memiliki 2 masukan, yaitu teks sandi (ciphertext) dan
kunci rahasia. Algoritma dekripsi merubah kembali teks sandi yang acak dan
seakan tidak mempunyai arti menjadi teks asli yang mempunyai arti seperti
semula.
2.5.4 Kriptografi Klasik
Kriptografi klasik telah digunakan sebelum era komputer, yang mana umumnya
merupakan teknik penyandian dengan kunci simetrik dan penyembunyian pesan
yang mempunyai arti ke sebuah pesan yang seolah-olah tidak mempunyai arti
dengan menggunakan metode substitusi (pergantian huruf) dan/atau transposisi
(pertukaran tempat). Kriptografi klasik adalah sebuah algoritma dengan berbasis
karakter, dimana enkripsi dan dekripsi dilakukan pada setiap karakter pesan.
Beberapa ciri kriptografi klasik antara lain :

Berbasis karakter

Termasuk kedalam kriptografi kunci simetris

Alat yang digunakan adalah pena dan kertas (belum menggunakan komputer)
2-11
http://digilib.mercubuana.ac.id/
Kriptografi klasik merupakan dasar dari ilmu kriptografi modern dan diperlukan
guna mempelajari konsep dasar kriptografi, dengan mempelajari kriptografi klasik,
maka kita bisa memahami kelemahan sistem kode. Pada dasarnya, algoritma
kriptografi klasik dapat dikelompokkan kedalam dua macam cipher, yaitu :
1. Cipher Substitusi (Substitution Cipher)
Di dalam cipher substitusi setiap unit plainteks diganti dengan satu unit
cipherteks. Algoritma substitusi tertua yang diketahui adalah Caesar cipher
yang digunakan oleh kaisar Romawi , Julius Caesar sehingga dinamakan juga
caesar cipher, untuk mengirimkan pesan yang dikirimkan kepada gubernurnya.
Caranya adalah dengan mengganti mensubstitusi setiap karakter dengan
karakter lain dalam susunan abjad (alfabet). Misalnya, tiap huruf disubstitusi
dengan huruf kelima berikutnya dari susunan abjad. Dalam hal ini kuncinya
adalah jumlah pergeseran huruf yaitu k = 5.
pi: A B C D
E
F
ci:
I
J
pi: N O P Q
R
ci:
F G H
S
G
I
J
K L M
K L
M N
O
P Q
R
S
U V W X Y
Z
Z
E
T
T U V W X Y
H
A
B
C D
Tabel 2.1. Cipher Substitusi
Contoh Pesan :
MAHASISWA UMB KELAS KARYAWAN
Disandikan (enkripsi) menjadi :
RFMFXNXBF ZRG PJQFX PFWTFBFS
Penerima pesan mendekripsi cipherteks dengan menggunakan table substitusi,
sehingga cipherteks:
RFMFXNXBF ZRG PJQFX PFWTFBFS
Dapat di ubah kembali menjadi pesan asli seperti semula yaitu :
MAHASISWA UMB KELAS KARYAWAN
2-12
http://digilib.mercubuana.ac.id/
Dengan mengkodekan setiap huruf abjad dengan integer sebagai berikut: A = 0,
B = 1, …, Z = 25, maka secara matematis caesar cipher menyandikan plainteks
pi menjadi ci dengan aturan:
ci = E(pi) = (pi + 3) mod 26
(1)
dan dekripsi cipherteks ci menjadi pi dengan aturan:
pi = D(ci) = (ci - 3) mod 26
(2)
Karena hanya ada 26 huruf abjad, maka pergeseran huruf yang mungkin
dilakukan adalah dari 0 sampai 25. Secara umum, untuk pergeseran huruf
sejauh k (dalam hal ini k adalah kunci enkripsi dan dekripsi), fungsi enkripsi
adalah:
ci = E(pi) = (pi + k) mod 26
(3)
dan fungsi dekripsi adalah:
pi = D(ci) = (ci - k) mod 26
(4)
Catatan:
a) Pergeseran 0 sama dengan pergeseran 26 (susunan huruf tidak berubah).
b) Pergeseran lain untuk k > 25 dapat juga dilakukan namun hasilnya akan
kongruen dengan bilangan bulat dalam modulo 26. Misalnya k = 37
kongruen dengan 11 dalam modulo 26, atau 37 ≡ 11 (mod 26).
c) Karena ada operasi penjumlahan dalam persamaan (3) dan (4), maka
caesar cipher kadang-kadang dinamakan juga additive cipher.
Untuk mengenkripsi/dekripsi pesan yang disusun oleh karakter-karakter teks
(ASCII, 256 karakter), maka persamaan 3 dan 4 ditulis:
ci = E(pi) = (pi + k) mod 256
(3)
pi = D(ci) = (ci - k) mod 26
(4)
Terdapat empat cara dalam menggunakan teknik subtitusi, yaitu:
a. Monoalphabet, dimana setiap karakter Ciphertext mengganti satu
macam karakter Plaintext tertentu.
b. Polialphabet, dimana setiap karakter Ciphertext mengganti lebih dari
satu macam karakter Plaintext.
c. Monograf/unilateral, dimana satu enkripsi dilakukan terhadap satu
karakter Plaintext.
d. Poligraf/multilateral, dimana satu enkripsi dilakukan terhadap lebih dari
satu karakter Plaintext. (Dian, 2015)
2-13
http://digilib.mercubuana.ac.id/
2. Cipher transposisi (transposition cipher)
Di dalam cipher transposisi pengacakan huruf dilakukan berdasar letak atau
posisinya yang di rubah akan tetapi untuk huruf-huruf yang digunakan dalam
kalimat masih sama. Metode ini disebut juga permutasi atau pengacakan
(scrambling), karena transpose setiapkarakter didalam teks masih samadengan
mempermutasikankarakter-karakter tersebut.
Contoh pesan :
FAKULTAS ILMU KOMPUTER MERCUBUANA
Untuk mengenkripsi pesan, plainteks ditulis secara horizontal dengan lebar
kolom tetap, misal selebar 6 karakter (kunci k – 6):
FAKULT
ASILMU
KOMPUT
ERMERC
UBUANA
Maka cipherteksnya dibaca secara vertical menjadi:
FAKEUASORBKIMMUULPEALMURNTUTCA
Untuk mendekripsi pesan, kita membagi panjang cipherteks dengan kunci. Pada
contoh ini, kita membagi 30 dengan 6 untuk mendapatkan 5. kita menulis
cipherteks dalam baris-baris selebar 5 karakter menjadi:
FAKEU
ASORB
KIMMU
ULPEA
LMURN
TUTCA
Dengan membaca setiap kolom kita memperoleh pesan semula:
FAKULTAS ILMU KOMPUTER MERCUBUANA
2-14
http://digilib.mercubuana.ac.id/
Ada benyak variasi yang bisa di explore dari metode transposisi, tergantung
kreativitas seseorang dalam memanfaatkan metode ini dalam proses enkripsi
dan dekripsi.
2.5.5 Sistem Kriptografi Klasik berbasis Substitusi
Sistem-sistem kriptografi klasik dapat dilihat dari operasi yang digunakan dalam
enkripsi dan dekripsi. Salah satu operasi yang digunakan untuk enkripsi dan
dekripsi adalah substitusi. Prinsip utama substitusi adalah mengganti kemunculan
sebuah simbol dengan simbol lainnya. Sistem kriptografi yang menggunakan
operasi substitusi disebut dengan sistem kriptografi berbasis substitusi. Sistem
kriptografi berbasi substitusi diantaranya adalah Shift cipher (Ceisar cipher), Affine
cipher, Vgenere cipher dan Hill cipher.
2.5.5.1 Shift cipher (Caesar cipher)
Sandi Caesar merupakan sistem persandian klasik berbasis substitusi yang
sederhana. Enkripsi dan dekripsi pada sistem persandian Caesar menggunakan
operasi shift. Operasi shift adalah mesubstitusi suatu huruf menjadi huruf pada
daftar alphabet berada di-k sebelah kanan atau sebelah kiri huruf tersebut. Misalkan
dipilih k=3 (ganti dengan huruf ke-3 sebelah kanan) maka “A” akan menjadi huruf
“D”, dan “B” akan menjadi huruf “E” dan seterusnya. Bagaimana dengan “X”,
“Y”, dan “Z”. supaya semuanya memiliki substitusi, maka huruf “A” dianggap
disebelah kanan huruf “Z” sehingga “X” menjadi “A”, “Y” menjadi “B” dan “Z”
menjadi “C”.
Untuk dapat mengolah teks asli yang merupakan deretan symbol huruf diperlukan
pemetaan dari huruf menjadi angka sehingga dapat diaplikasikan dengan operasi
martematika. Misal huruf “A” sampai “Z” dipetakan ke angka “0” sampai “25”.
Nilai yang mungkin untuk teks asli dan teks sandi adalah dari “0” sampai “25” dan
jika hasi penggeseran melebihi 26 maka angka tersebut dibagi 26 dan nilai sisa
yang dipakai adalah sisa bagi atau dalam istilah matematika adalah modular, oleh
karena itu aritmatika modular Z26 digunakan pada sistem persandian ceasar.
2-15
http://digilib.mercubuana.ac.id/
Gambar 2.7. Simulasi penyandian Caesar Cipher
Kelas Caesar cipher memiliki 2 fungsi, yaitu enkripsi dan dekripsi. Operasi
enkripsi melakukan penjumlahan nilai kunci K terhadap satu input karakter teks
asli, sedangkan operasi dekripsi penjumlah invers nilai kunci K terhadap satu input
karakter teks sandi, semua operasi aritmatika pada aritmatika modular Z26.
Implementasi dalam bahsa java sebagai berikut :
Public class CaesarCipher extends ClassicCipher {
//kunci K
Public CaesarCipher (int K) {
This.K = K;
}
//fungsi enkripsi x = (x + K) mod 26
Public int enkripsi(int x) {
return z_m.tambah (x, K);
}
//fungsi dekripsi x = (x – K) mod 26
Public int dekripsi (int y) {
return z_m.tambah (y, z_m.neg(K));
}
}
Contoh :
Dengan menggunakan sandi ceasar dengan kunci K=7 sandikan pesan berikut ini:
UDIN PERGI KE KAMPUS
Jawab :
Petakan terlebih dahulu karakter alfabet menjadi bilangan pada Z26
U
D
I
N
P
E
R
G
I
K
E
K
A
M
P
U
S
2-16
http://digilib.mercubuana.ac.id/
20
3
8
13
15
4
17
6
8
10
4
10
0
12
15
20
18
Setelah didapatkan rangkaian bilangan tambahan K untuk tiap bilangan dalam
aritmatika moduluar Z26, maka hasilnya adalah :
1
10
15
20
22
11
24
13
15
17
11
17
7
19
22
1
25
B
K
P
U
W
L
R
N
P
R
L
R
H
T
W
B
Z
Jadi cipherteks untuk pesan “UDIN PERGI KE KAMPUS” adalah “
BKPU WLRNP RL RHTWBZ
Keamanan Sandi Caesar
Keamanan sandi ceasar msih lemah, hal ini dapat didemontrasikan dengan analisis
sandi dengan tipe penyerangan ciphertext-only attack, yaitu dengan hanya melihat
teks sandi saja nilai kunci K pada sandi ceasar dapat dipecahkan. Ketidak amanan
sandi Ceasar disebabkan oleh besar ruang nilai yang mungkin bagi kunci K terlalu
kecil yaitu hanya 26 tebakan.
Contoh :
Jika diketahui ciphertext berikut di hasilkan oleh sandi Caesar :
RWR YNBJW AJQJBRJ
Maka kunci K dapat dicoba dari 1 sampai dengan k dengan menjalankan operasi
dekripsi. Nilai k dipilih ketika dekripsi cipherteks memberikan plainteks yang bisa
dibaca
k
Plainteks
1
QVQ XMAIV
ZIPIAQI
2
PUP
3
OTO VKYGT
4
NSN UJXFS
WFMFXNF
5
MRM TIWER
VELEWME
WLZHU YHOHZPH
XGNGYOG
2-17
http://digilib.mercubuana.ac.id/
6
LQL SHVDQ UDKDVLD
7
KPK
RGUCP TCJCUKC
8
JOJ
QFTBO
9
INI PESAN
SBIBTJB
RAHASIA
Pada nilai K = 9, teks asli yang didapatkan adalah INI PESAN Rahasia, plainteks
ini bisa dibaca sehingga dapat disimpulkan nilai kunci K adalah 9.
2.5.5.2 Sandi Affine
Sistem sandi affine merupakan sandi monoalfabetik yang menggunakan teknik
substitusi yang menggunakan fungsi linier ap + b untuk enkripsi teks asli p dan a-1
c – b untuk dekripsi teks sandi c pada Z26 .
Gambar 2.8. Ilustrasi Sandi Affine
(Rifki Sadikin, 2012)
Kunci pada sandi affine adalah 2 integer yaitu a dan b. Nilai a yang dapat dipakai
adalah anggota elemen pada Z26 yang memiliki invers yaitu yang memenuhi
gcd(a,26) =1.
Implementasi Sandi Affine
public class AffineCipher extends ClassicCipher {
// K [0] = a, K[1] = b
Int [ ] K= new int [2];
2-18
http://digilib.mercubuana.ac.id/
public AffineCipher(int [ ] K) {
int [ ] mZstar = z_m.mult_group ();
int aHasInvers = java.util.Arrays.binarySearch (mZstar, K[0]);
if (aHasInvers == -1) {
System,err.pintln (“Kunci a pada affine cipher harus memiliki
Invers perkalian, a = “+ K[0];
}
System.arraycopy(K,0, this.K,0, 2);
}
public int enkripsi (int x) {
// e(x) = ax + b mod 26
Return z_m.tambah(z_m.kali(K[0],x) ,K[1]);
}
public int dekripsi(int y) {
// d(y) = a^{-1} (y -b) mod 26
return z_m.kali(z_m.invers(K[0]) ,
z_m.tambah(y, z_m.neg(K[1])));
}
}
Implementasi sandi affine seperti tertera diatas, kunci disimpan pada larik integer.
Fungsi
enkripsi
menggunakan
metode
kali
dan
tambah
dari
kelas
AritmatikaModular untuk melakukan perhitungan c[i] = a x p[i] + b pada Z26.
Fungsi dekripsi menggunakan metode invers, kali, tambah dan neg dari kelas
AritmatikaModular untuk melakukan perhitungan p[i] = a-1 x c[i] – b.
Keamanan Sandi Affine
Sandi Affine memiliki kelemahan yang sama dengan sandi Caesar yaitu ukuran
ruang kunci yang kecil. Ukuran ruang kunci sandi Affine adalah 12 x 26 = 312 (12
adalah jumlah bilangan integer yang memiliki invers di Z26 yang dapat dipakai
sebagai nilai a, sedangkan untuk b, terdapat 26 nilai kemungkinan). Ukurang ruang
kunci yang kecil menyebabkan sistem sandi affine
dapat depecahkan dengan
pencarian brute force.(Akbar, 2013)
2-19
http://digilib.mercubuana.ac.id/
Sandi Affine dapt secara mudah terbongkar keamanannya jika diserang dengan tipe
penyerangan known plaintext attack. Misalkan terdapat 2 pasang teks asli dan teks
sandi yang diketahui maka dengan mudah si penyerang mengetahui nilai a dan b
dengan menyelesaikan sistem persamaan linear. ( Rifqi Sadikin, 2012)
C1 = ap1 + b
C2 = ap2 + b
Contoh :
Jika didapat sepasang teks asli “BIMA SAKTI” dan teks sandi “WXFH RHBGX”
dan diketahui sistem sandi yang digunakan adalah sandi affine, maka kunci yang
digunakan dapat dicari dengan hanya dibutuhkan 2 pasang karakter teks asli dan
karakter teks sandi untuk memecahkan sandi affine dengan membentuk sistem
persamaan linier, 2 karakter pertama pada teks asli dan teks sandi dapat digunakan
yaitu (B,W) dan (I,X). bentuk sistem persamaan linier dengan mengubah
representasi alphabet menjadi integer, sebagai berikut :
22 = 1a + b
23 = 8a + b
Sistem persamaan linier dapat dipecahkan sehingga didapatkan 7a =1, a = 7-1 = 15
dan kemudian mendapatkan b = 22-15 =7, jadi kunci yang digunakan adalah a=15,
b=7.
2.5.6 Serangan Terhadap Kriptografi
2.5.6.1 Jenis-jenis Serangan
1. Berdasarkan keterlibatan penyerang dalam komunikasi, serangan dapat dibagi atas
dua macam, yaitu:
a. Serangan pasif (passive attack)
Pada serangan ini, penyerang tidak terlibat dalam komunikasi antara
pengirim dan penerima, namun penyerang menyadap semua pertukaran
pesan antara kedua entitas tersebut. Tujuannya adalah untuk mendapatkan
sebanyak mungkin informasi yang digunakan untuk kriptanalisis. Beberapa
metode penyadapan antara lain:
2-20
http://digilib.mercubuana.ac.id/

wiretapping: penyadap mencegat data yang ditransmisikan pada
saluran kabel komunikasi dengan menggunakan sambungan
perangkat keras.

electromagnetic eavesdropping: penyadap mencegat data yang
ditrasnmisikan melalui saluran wireless, misalnya radio dan
microwave.

acoustic eavesdropping:
menangkap
gelombang suara
yang
dihasilkan oleh suara manusia.
b. Serangan aktif (active attack)
Pada jenis serangan ini, penyerang mengintervensi komunikasi dan ikut
mempengaruhi sistem untuk keuntungan dirinya. Misalnya penyerang
mengubah aliran pesan seperti menghapus sebagian cipherteks , mengubah
cipherteks, menyisipkan potongan cipherteks palsu, me-replay pesan lama,
mengubah informasi yang tersimpan, dan sebagainya.
2. Berdasarkan banyaknya informasi yang diketahui oleh kriptanalis, maka serangan
dapat dikelompokkan menjadi lima jenis, yaitu:
a. Ciphertext-only attack
Ini adalah jenis serangan yang paling umum namun paling sulit, karena
informasi yang tersedia hanyalah cipherteks saja. Kriptanalis memiliki
beberapa cipherteks dari beberapa pesan, semuanya dienkripsi dengan
algoritma yang sama. Untuk itu kriptanalis menggunakan beberapa cara,
seperti mencoba semua kemungkinan kunci secara exhaustive search.
Menggunkan analis frekuensi, membuat terkaan berdasarkan informasi yang
diketahui,dan sebagainya.
b. Known-plaintext attack
Ini adalah jenis serangan dimana kriptanalis memiliki pasangan plainteks
dan cipherteks yang berkoresponden.
c. Chosen-plaintext attack
Serangan jenis ini lebih hebat dari pada known-plaintext attack, karena
kriptanalis dapat memilih plainteks yang dimilikinya untuk dienkripsikan,
yaitu plainteks-plainteks yang lebih mengarahkan penemuan kunci.
d. Chosen-ciphertext attack
Ini adalah jenis serangan dimana kriptanalis memilih cipherteks untuk
didekripsikan dan memiliki akses ke plainteks hasil dekripsi.
2-21
http://digilib.mercubuana.ac.id/
e. Chosen-text attack
Ini adalah jenis serangan yang merupakan kombinasi chosen-plaintext
attack dan chosen-chiphertext attack.
3. Berdasarkan teknik yang digunakan dalam menemukan kunci, maka serangan dapat
dibagi menjadi empat, yaitu:
a. Exhaustive attack atau brute force attack
Ini adalah serangan untuk mengungkap plainteks atau kunci dengan
menggunakan
semua
kemungkinan
kunci.
Diasumsikan
kriptanalis
mengetahui algoritma kriptografi yang digunakan oleh pengirim pesan.
Selain itu kriptanalis memiliki sejumlah cipherteks dan plainteks yang
bersesuaian.
b. Analytical attack
Pada
jenis
serangan
ini,
kriptanalis
tidak
mencoba-coba
semua
kemungkinan kunci tetapi menganalisis kelemahan algoritma kriptografi
untuk mengurangi kemungkinan kunci yang tidak ada. Diasumsikan
kriptanalis mengetahui algoritma kriptografi yang digunakan oleh pengirim
pesan. Analisis dapat menggunakan pendekatan matematik dan statistik
dalam rangka menemukan kunci.
c. Related-key attack
Kriptanalis memiliki cipherteks yang dienkripsi dengan dua kunci berbeda.
Kriptanalis tidak mengetahui kedua kunci tersebut namun ia mengetahui
hubungan antara kedua kunci, misalnya mengetahui kedua kunci hanya
berbeda 1 bit.
d. Rubber-hose cryptanalysis
Ini mungkin jenis serangan yang paling ekstrim dan paling efektif.
Penyerang mengancam, mengirim surat gelap, atau melakukan penyiksaan
sampai orang yang memegang kunci memberinya kunci untuk mendekripsi
pesan
2.5.6.2 Kompleksitas Serangan
Kompleksitas serangan dapat diukur dengan beberapa cara, yaitu:
1. Kompleksitas data (data complexity)
2-22
http://digilib.mercubuana.ac.id/
Jumlah data (plainteks dan cipherteks) yang dibutuhkan sebagai masukan untuk
serangan. Semakin banyak data yang dibutuhkan untuk melakukan serangan,
semakin kompleks serangan tersebut, yang berarti semakin bagus sistem
kriptografi tersebut.
2. Kompleksitas waktu (time complexity)
Waktu yang dibutuhkan untuk melakukan serangan. Semakin lama waktu yang
dibutuhkn untuk melakukan serangan, berarti semakin bagus kriptografi
tersebut.
3. Kompleksitas ruang memori (space/storage complexity)
2.6. Tinjauan Matematis
2.6.1 Konsep Dasar Kriptografi
Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi-relasi
himpunan yaitu himpunan yang berisi elemen plainteks dan himpunan yang berisi
elemen cipherteks. Enkripsi dan dekripsi merupakan fungsi transformasi antara dua
himpunan tersebut. Bila himpunan plainteks dinotasikan dengan P dan himpunan
cipherteks dinotasikan dengan C, sedangkan fungsi enkripsi dinotasikan dengan E
dan fungsi dekripsi dinotasikan dengan D maka proses enkripsi dan dekripsi dapat
dinyatakan dalam notasi matematis sebagai berikut :
E(P) = C
D(C) = P
Karena proses enkripsi dan dekripsi bertujuan untuk memperoleh kembali data
asal, maka :
D(E(P)) = P
Relasi antara himpunan plainteks dengan himpunan cipherteks merupakan
korespondensi satu-satu. Hal ini merupakan keharusan untuk mencegah terjadinya
ambigu dalam dekripsi yaitu satu elemen cipherteks menyatakan lebih dari satu
elemen plainteks. Pada metode kriptografi simetris hanya menggunakan satu buah
kunci untuk proses enkripsi dan dekripsi. Bila kunci dinotasikan dengan k maka
proses enkripsi dan dekripsi kriptografi simetris dapat dinyatakan sebagai berikut :
Ek (P) = C
Dk (C) = P
maka
Dk (Ek (P)) = P
2-23
http://digilib.mercubuana.ac.id/
Pada metode kriptografi asimetris menggunakan kunci umum untuk enkripsi dan
kunci pribadi untuk dekripsi. Bila kunci umum dinotasikan dengan pk dan kunci
pribadi dinotasikan dengan sk, maka proses enkripsi dan dekripsi kriptografi
asimetris dapat dinyatakan sebagai berikut :
Epk (P) = C
Dsk (C) = P
maka
Dsk (Epk (P)) = P
2.6.2 Aritmatika Modular
Aritmatika
modular
merupakan
operasi
matematika
yang
banyak
diimplementasikan pada metoda kriptografi. Pada metoda kriptografi simetris,
operasi aritmatika modular yang sering dipakai adalah operasi penjumlahan modulo
dua dalam operasi XOR (Exclusive OR) dengan dinotasikan. Nilai operasi XOR
dapat dilihat pada tabel berikut ini :
a
b
a
b
0
0
0
0
1
1
1
0
1
1
1
0
Tabel 2.2. Tabel nilai operasi XOR
Keterangan :
A
A=0
A
0=A
A
1 = A1 dengan A1 adalah kebalikan (komplemen) A
2.7. Java
2.7.1 Pengertian Java
Java merupakan sebuah bahasa pemrograman yang berkembang cukup pesat. Java
menyediakan
paket
yang
lengkap
untuk
melakukan
pemrograman
dari
pemrograman dekstop, pemrograman internet, pemrograman jaringan, hingga
2-24
http://digilib.mercubuana.ac.id/
pemrograman mobile. Selain itu java juga bersifat multiplatform sehingga dapat
dijalankan pada semua platform sistem operasi. Java juga dapat diperoleh dengan
mudah tanpa harus membayar hak cipta.
Java menurut definisi dari Sun adalah nama untuk sekumpulan teknologi untuk
membuat dan menjalankan perangkat lunak pada komputer standalone ataupun
pada lingkungan jaringan. Java dikembangkan pada bulan Agustus 1991, dengan
nama semula Oak. Pada Januari 1995, karena nama Oak dianggap kurang
komersial dan juga nama tersebut sudah menjadi hak cipta bahasa lain, maka
diganti menjadi Java. Pada Desember 1998, Sun memperkenalkan nama “Java 2”
(J2) sebagai generasi kedua dari java platform. Konvensi nama baru ini diterapkan
untuk semua edisi Java yaitu Standard Edition (J2SE), Enterprise Edition (J2EE),
dan Micro Edition (J2ME). Ada tiga platform Java yang telah didefinisikan, yang
masing-masing diarahkan untuk tujuan tertentu dan untuk lingkungan komputasi
yang berbeda-beda:
1. Standard Edition (J2SE): J2SE
Merupakan inti dari bahasa yang dinotasikan dengan dua ekspresi. Contoh, e1 |
e2 = { x | x anggota L1 atau x anggota L2 }. Closure ditunjukkan dengan
kurung kurawal { }, atau dengan subskrip *, yang berarti pengulangan dari
ekspresi kosong atau lebih. Seperti, { e1 } = e1* = { x | x anggota L1* } dimana
L1* adalah penutup dari L1. pemrograman Java. J2SE Didesain untuk jalan
pada komputer desktop dan komputer workstations.
2. Enterprise Edition (J2EE)
Dengan built-in mendukung untuk servlets. JSP, dan XML, edisi ini ditujukan
untuk aplikasi berbasis server.
3. Micro Edition (J2ME)
Didesain untuk piranti dengan memori terbatas, layar display terbatas dan
power pemrosesan yang juga terbatas.
2.7.2 Sejarah Java
Java lahir pada saat penelitian yang dilakukan oleh sejumlah insinyur di Sun
California pada tahun 1991. Mereka membuat proyek pembuatan bahasa
pemrograman yang dapat berjalan pada perangkat yang memiliki memori ukuran
2-25
http://digilib.mercubuana.ac.id/
kecil. Selain itu mereka juga mengharapkan program dapat berjaan di platform
manapun, ini dikarenakan setiap perangkat mempunyai manufaktur yang berbeda.
Pada mulanya, mereka menamakan proyek ini dengan nama “Green Project”.
Dalam proyek penelitiannya, proyek Green berhasil menciptakan Star 7 (*7),
sebuah peranti yang dapat digunakan untuk berkomunikasi jarak jauh yang sangat
cerdas. Star 7 dibuat dengan basis C dan C++. Setelah beberapa lama, James
Gosling, salah satu pimpinan tim merasa kedua bahasa ini mempunyai kekurangan,
sehingga mereka sepakat mengembangkan
bahasa baru. Bahasa yang mereka
kembangkan ini diberi nama Oak, terinspirasi ketika James Gosling melihat pohon
oak di seberang kantornya. Oleh karena Oak telah menjadi hak cipta bahasa
lainnya, maka mereka mengubah namanya menjadi Java. Penamaan Java sendiri
terinspirasi ketika para tim minum kopi disebuah kedai kopi di dekat kantor
mereka. Salah seorang tim berbicara tentang asal muasal biji kopi yang mereka
minum yaitu dari java (pulau Jawa). Kemudian para tim sepakat menamakan
bahasa itu Java dengan logo secangkir kopi panas.
Setelah mereka berhasil menciptakan Star 7, ternyata pangsa pasar belum begitu
tertarik, sehingga mereka mencari pangsa pasar lain yaitu pemrograman internet.
Mereka mengarahkan penelitian ke pengembangan internet karena Java memiliki
karakteristik yang cocok untuk mengembangkan Internet yaitu mempunyai ukuran
yang kecil, efisien, dan portable. Pada saat yang sama perkembangan internet
begitu pesat, sehingga Java dalam waktu yang tidak lama telah menjadi populer
dikalangan para pengembang web. Setelah mereka sukses dengan pemrograman
internet , selanjutnya mereka mengembangkan Java ke pemrograman dekstop,
mobile, klien-server (jaringan), dan lainnya.
2.7.3 Fitur-fitur Java
Java telah mengadopsi fitur-fitur dari bahasa lain yang dianggap memiliki
kelebihan, sehingga menjadikannya sebagai bahasa portabel, efisien, tangguh, dan
sederhana. Berikut beberpa fitur yang membedakannya dengan pemrograman
lainnya :
a. Java Virtual Machine (JVM)
2-26
http://digilib.mercubuana.ac.id/
JVM adalah sebuah mesin maya yang bekerja menyerupai aplikasi pada sebuah
mesin nyata. JVM menyediakan spesifikasi piranti keras dan platform dimana
kompilasi kode Java terjadi . Spesifikasi inilah yang membuat aplikasi berbasis
Java menjadi bebas dari platform manapun karena proses kompilasi
diselesaikan oleh JVM.
b. Garbage Collection
Garbage collection adalah sebuah fasilitas pengelolaan memori secara dinamis
yang dilakukan oleh bahasa pemrograman, termasuk Java. Dengan fasilitas ini
seorang programmer tidak perlu mengalokasikan memori sendiri sebagaimana
pada pemrograman C/C++. Hal ini berarti mengurangi kesalahan programmer,
apabila dia Lupa mengosongkan blok memori yang dipakai program, maka
akan menjadi memori piblik. Kondisi ini dikenal dengan istilah Memory leaks.
c. Code Security
Code Security terimplementasi dengan Java melalui penggunaan java Runtime
Environment (JRE). Setelah melewati proses Code Security, barulah kode
program Java dijalankan. Javamenggunakan model model pengamanan 3 lapis
untuk melindungi sistem dari Untrusted Code, yaitu antara lain :

Class-loader menangani pemanggilan kelas Java ke interpreter runtime.
Proses inin melakukan pemilahan kelas-kelas yang berasal dari disk local
dengan kelas-kelas yang berasal dari jaringan, hal ini dapat melindungi
sistem dari Trojan.

ByteCode verifier menangani pembacaan bytecode sebelum dijalankan dan
memastikan bytecode memenuhi aturan-aturan bahasa Java.

Security Management menangani keamanan tingkat aplikasi dengan
mengendalikan program yang berhak maengakses sumber daya seperti
sistem file, port jaringan, proses eksternal dan sistem windowing.
d. Java memiliki beberapa pengaman terhadap applet. Untuk mencegah program
bertindak mengganggu media penyimpanan, maka appet tidak diperbolehkan
melakukan open, read ataupun write terhadap berkas secara sembarangan. Oleh
karena Java applet dapat membuka jendela browser yang baru, maka jendela
mempunyai logo Java dan teks identifikasi terhadap jendela yang dibuka. Hal
ini mencegah jendela pop-up menipu sebagai permintaan keterangan nama
pengguna dan kata sandi.
2-27
http://digilib.mercubuana.ac.id/
2.7.4 Kelebihan Java
Java memiliki beberapa kelebihan yang tidak dimiliki oleh bahasa lain,
berdasarkan dokumen resmi dari Sun Microsystem, Java memiliki karakteristik
sebagai barikut :
1. Sederhana
Bahasa pemrograman Java menggunakan sintaks mirip C++ namun sintaks Java
telah banyak diperbaiki terutama dengan menghilangkan penggunaan pointer
yang rumit dan multiple inheritance. Java juga menggunakan automatic
memory allocation dan memory garbage collection. Java diracang untuk mudah
dipelajari, terutama bagi programmer yang telah mengenal bahasa C/C++ aka
mudah sekali untuk berpindah ke Java. Pemakai dapat belajar membuat
program dengan Java secara cepat jika telah memahami konsep dasar
pemrograman
berorientasi
objek.
Java
tidak
memiliki
hal-hal
yang
mengejutkan dan aneh. Java memberi kita kemampuan untuk menuangkan
semua ide, karena bahasa pemrograman ini bukan merupakan scriping language
(bahasa naskah) yang menghilangkan kemampuan kita untuk berinovasi, tetapi
dengan cara berorientasi objek yang mudah dan jelas.
2. Aman
Java dirancang sebagai bahasa pemrograman yang handal dan aman. Aplikasiaplikasi yang dibangun dengan bahasa Java sangat handal dengan manajemen
memori yang bagus. Aplikasi Java juga dikenal sangat secure, yaitu kasuskasus seperti buffer everflow yang umumnya menjadi lubang keamanan aplikasi
aplikasi berbasis C/C++ tidak terjadi di Java, karena pengaturan securitynya
yang bagus. Seperti yang kita ketahui ancaman virus dan penyusup ada dimanamana, bahkan dokumen word processor dapat mengandung virus. Salah satu
prinsip kunci perancangan Java adalah keselamatan dan keamanan. Java tidak
pernah memiliki fasilitas dan kemampuan yang tidak aman sampai perlu
ditangani secara khusus untuk pengamanannya. Maka karena program Java
tidak dapat memanggil fungsi-fungsi global dan memperoleh akses ke berbagai
sumber dalam sistem, terdapat sejumlah pengawasan yang dapat dilakukan oleh
program Java yang tidak dapat dilakukan oleh sistem lain.
2-28
http://digilib.mercubuana.ac.id/
3. Berorientasi Objek
Paradigma pemrograman berorientasi objek merupakan paradigm pemrograman
masa depan. Java merupakan bahasa pemrograman berorientasi onjek. Java
bukan turunan langsung dari bahasa pemrograman manapun, juga sama sekali
tidak
kompatibel
dengan
semuanya.
Java
memiliki
keseimbangan,
menyediakan mekanisme peng-class-an sederhana, dengan model antar muka
dinamik yang intuitif hanya jika diperlukan.
4. Kokoh
Java membatasi kita dari beberapa hal kunci supaya kita dapat menemukan
kesalahan lebih cepat saat mengembangkan program. Java langsung memeriksa
program saat kita menuliskannya, dan sekali lagi ketika program dijalankan.
Karena Java adalah bahasa yang sangat ketat dalam hal tipe data dan deklarasi,
banyak kesalahan umum terjadi saat kompilasi. Hal ini akan lebih menghemat
waktu jika dibandingkan dengan keharusan menjalankan program terlebih
dahulu dan memeriksa semua bagian program untuk melihat ketidak cocokan
dinamis selama program berjalan. Ini adalah contoh dari beberapa bahasa lain,
tetapi dengan imbalan yang layak untuk kelebihan itu.
5. Interaktif
Java memiliki beberapa kemampuan yang memungkinkan program melakukan
beberapa hal pada saat bersamaan, tanpa harus kesulitan menangani proses
yang akan terjadi selanjutnya. Jalinan program-program Java yang mudah
digunakan memungkinkan kita untuk memikirkan pembuatan perilaku khusus,
tanpa harus mengintegrasikan perilaku tersebut dengan model pemrograman
global yang mengatur perulangan kejadian.
6. Netral Terhadap Berbagai Arsitektur
Java telah mengambil beberapa keputusan yang sulit dalam pembuatan bahasa
Java dan bagaimana program dijalankan, jadi kita dapat sepenuhnya percaya
“tulis sekali, jalan dimana saja, kapan saja, selamanya”.
7. Terinterprestasi dan Berkinerja Tinggi
Java dilengkapi keajaiban lintas platform yang luar biasa dengan kompilasi ke
dalam representasi langsung yang disebut kode-byte Java (Java byte-code),
yang dapat diterjemahkan oleh sistem manapun yang memiliki program Java
didalamnya. Java, bagaimanapun dirancang untuk tetap berkinerja baik pada
CPU yang tidak terlalu kuat. Walaupu Java merupakan bahasa terinterprestasi
2-29
http://digilib.mercubuana.ac.id/
kode-kode
Java
telah
dirancang
dengan
hati-hati
sehingga
mudah
diterjemahkan ke dalam bahasa asli suatu mesin untuk menghasilkan kinerja
yang tinggi. Sistem program Java yang melakukan optimasi tepat waktu
tersebut tidak kehilangan keuntungan dari program yang netral terhadap
platform. “lintas platform berkinerja tinggi” bukan sekedar omong kosong.
Dalam aplikasi Java (*.class) merupakan Java bytecode yang berjalan di atas
jvm
(Java
Virtual
Machine),
yang
kemudian
jvm-lah
yang
akan
mengiterpresentasikan kode-kode tersebut ke kode native atau kode mesin dari
arsitektur yang bersangkutan. Hal ini sangat menari karena urusan arsitektur
mesin bukan jadi masalah bagi programmer tapi menjadi urusan compiler pada
bahasa pemrograman Java.
2.8. NetBeans
2.8.1 Pengertian NetBeans
NetBeans adalah imtegrated Development Environment (IDE) berbasiskan Java
dari Sun Microsystems yang berjalan di atas Swing, Swing adalah sebuah teknologi
Java untuk pengembangan aplikasi Dekstop yang dapat berjalan diberbagai macam
platform 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 inrerpreter dan suatu debugger. NetBeans merupakan
software development yang Open Source, dengan kata lain software ini dibawah
pengembangan bersama, bebas biaya. NetBeans merupakan sebuah proyek kode
terbuka yang sukses dengan pengguna yang sangat luas, komuitas 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, yaitu NetBeans IDE dan NetBeans
Platform. The Netbeas IDE adalah sebuah produk bebas dengan tanpa batasan
bagaimana digunakan. Tersedia juga NetBeans Platform, yaitu sebuah fondasi yang
moduloar dan dapat diperluas yag dapat digunakan sebagai perangkat lunak dasar
untuk membuat aplikasi dekstop yang besar.
2-30
http://digilib.mercubuana.ac.id/
2.8.2 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.
NetBeans IDE 6.0 memperkenalkan 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 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 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.
2.9. UML (Unified Modeling Language)
Pada perkembangan teknologi perangakt lunak, diperlukan adanya bahasa yang
digunakan untuk memodelkan perangkat lunak yang akan dibuat dan perlu adanya
standarisasi agar orang di berbagai negara dapat mengerti permodelan perangkat
lunak. Banyak orang yang telah membuat bahasa permodelan pembangunan pada
saat itu, misalnya yang sempat berkembang dan digunakan oleh banyak pihak
adalah Data Flow Diagram (DFD) untuk memodelkan perangkat lunak yang
menggunakan pemograman procedural atau structural. Pada perkembangan teknik
pemogramkan
berorientasi
objek
munculkan
sebuah
standarisasi
bahasa
permodelan untuk pembangunan perangkat lunak yang dibangun dengan
menggunakan pemograman berorientasi obek yaitu Unifed Modeling Language
(UML). UML merupakan bahasa visual untuk pemodelan dan komunikasi
mengenai sebuah sistem dengan menggunakan diagram dan teks-teks pendukung.
2-31
http://digilib.mercubuana.ac.id/
UML
juga
berfungsi
untuk
melakukan
permodelan.
(Rosa
A.S
,M.
Shalahuddin,2013).
2.9.1 Class Diagram
Diagram kelas atau class diagram menggambarkan struktur sistem
dari segi
pendefinisian kelas – kelas yang dibuat untuk membangun sistem. Kelas memiliki
apa yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang akan
disebut atribut dan metode atau operasi. (Rosa A.S ,M. Shalahuddin,2013).
Kelas – kelas yang ada pada struktur sistem harus dapat melakukan fungsi – fungsi
sesuai dengan kebutuhan sistem sehingga pembuatan perangkat lunak atau
programmer dapat membuat kelas – kelas didalam program perangkat lunak sesuai
dengan perancangan diagram kelas.
Susunan struktur kelas yang baik pada diagram kelas sebaiknya memiliki jenis –
jenis kelas berikut :

Kelas Main
Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan.

Kelas yang menangani tampilan sistem (view)
Kelas yang mendefinisikan dan mengatur tampilan ke pemakai.

Kelas yang diambil dari pendefinisian use case (controller)
Kelas yang menangani fungsi-fungsi yang harus ada diambil dari pendefinisian use
case, kelas ini biasanya disebut dengan kelas proses yang menangani proses bisnis
pada perangkat lunak.

Kelas yang diambil dari pendefinisian data (model)
2.9.2 Use Case Diagram
Use case diagram merupakan pemodelan untuk kelakuan sebuah sistem yang akan
dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor
dengan sistem yang akan dibuat. Secara kasar, use case digunakan untuk
mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang
berhak menggunakan fungsi-fungsi tersebut (Rosa A.S ,M. Shalahuddin,2013).
2-32
http://digilib.mercubuana.ac.id/
Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut actor dan use
case.

Aktor merupakan orang, proses atau sistem lain yang berinteraksi dengan sistem
informasi yang akan dibuat diluar sistem informasi yang akan dibuat itu sendiri, jadi
walaupun simbol dari actor adalah gambar orang, tapi actor belum tentu merupakan
orang.

Use Case merupakan fungsionalitas yang disediakan sistem sebagai unit – unit
yang saling bertukar pesan antar unit atau actor.
Use-case diagram dapat digunakan selama proses analisis untuk menangkap
requirement system dan untuk memahami bagaimana sistem seharusnya bekerja.
Selama tahap desain, use-case diagram berperan untuk menetapkan perilaku
(behavior) sistem saat diimplementasikan. Dalam sebuah model mungkin terdapat
satu atau beberapa use-case diagram. Kebutuhan atau requirements system adalah
fungsionalitas apa yang harus disediakan oleh sistem kemudian didokumentasikan
pada model use-case yang menggambarkan fungsi sistem yang diharapkan (usecase), dan yang mengelilinginya (actor), serta hubungan antara actor dengan usecase (use-case diagram) itu sendiri.
2.9.3 Activity Diagram
Diagram aktivitas atau activity diagram menggambarkan workflow (aliran kerja)
atau aktivitas dari sebuah sistem atau proses bisnis atau menu yang ada pada
perangkat lunak. Yang perlu diperhatikan disini adalah bahwa diagram aktivitas
menggambarkan aktivitas sistem bukan apa yang dilakukan actor, jadi aktivitas
yang dapat dilakukan oleh sistem. (Rosa A.S ,M. Shalahuddin,2013).
Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut:

Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan
proses bisnis sistem yang didefinisikan.

Urutan atau pengelompokkan tampilan dari sistem/user interface, dimana setiap
aktivitas dianggap memiliki sebuah rancangan antar muka tampilan.

Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian
yang perlu didefinisikan kasus ujinya.

Rancangan menu yang ditampilkan pada perangkat lunak.
2.9.4 Sequence Diagram
2-33
http://digilib.mercubuana.ac.id/
Diagram sekuen menggambarkan kelakuan objek pada use case dengan
mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima
antar objek. Oleh karena itu untuk menggambarkan diagram sekuen maka harus
diketahui objek – objek yang terlihat dalam sebuah use case beserta metode –
metode yang dimiliki kelas yang diintanisasi menjadi obejk itu. Banyaknya
diagram sekuen yang harus digambar adalah minimal sebanyak pendefinisian use
case yang memiliki proses sendiri atau yang penting semua use case yang
didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. (Rosa
A.S ,M. Shalahuddin,2013).
2.10. Metode Pengujian Black Box
Menurut Rosa A.S (2013:275) “Black Box Testing yaitu menguji perangkat lunak
dari segi spesifikasi fungsional tanpa menguji desain dan kode program. Pengujian
dimaksudkan untuk mengetahui apakah fungsi-fungsi, masukan, keluaran dari
perangkat lunak sesuai dengan spesifikasi yang dibutuhkan”.
Pengujian kotak hitam dilakukan dengan membuat kasus uji yang bersifat mencoba
semua fungsi dengan memakai perangkat lunak apakah sesuai dengan spesifikasi
yang dibutuhkan. Kasus uji yang dibuat untuk melakukan pengujian kotak hitam
harus dibuat dengan kasus benar dan kasus salah, misalkan untuk kasus proses
login maka kasus uji yang dibuat adalah :

Jika user memasukkan nama pemakai (username) dan kata sandi (password) yang
benar.

Jika user memasukkan nama pemakai (username) dan kata sandi (password) yang
salah, misalnya nama pemakai benar tapi kata sandi salah, atau sebaliknya, atau
keduanya salah.
2-34
http://digilib.mercubuana.ac.id/
Download