DENGAN ALGORITMA RSA
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika
Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia
Hendi Hadian Darmawan
10101186
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
rahmatnya, sehingga penulis dengan segala keterbatasannya dapat menyelesaikan penyusunan tugas akhir ini guna melengkapi sebagian syarat untuk mencapai jenjang setara Sarjana Strata Satu (S1) Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia.
Dalam proses penulisan tugas akhir ini penulis banyak menemui kesulitan baik yang disebabkan karena keterbatasan kemampuan, waktu maupun tenaga, karena itu penulis sangat menghargai bantuan dari berbagai pihak yang telah memberi bantuan baik berupa dukungan semangat, buku-buku, serta bermacam-macam bahan penulisan sehingga tugas akhir ini dapat terwujud. Untuk itu pada kesempatan ini perekenankanlah penulis mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Bapak Dr.Ir. Eddy Soeryanto Soegoto, M.Sc, selaku Rektor Universitas Komputer Indonesia.
2. Bapak Prof.Dr.Ir. Ukun Sastraprawira, M.Sc, selaku Dekan Fakultas Teknik dan Ilmu Komputer.
3. Bapak dan Ibu Pembantu Dekan I, II, III Fakultas Teknik Universitas Komputer Indonesia.
4. Ibu Mira Kania Sabaniah, S.T, M.T, selaku Ketua Jurusan Teknik Informatika, juga selaku Dosen Wali.
membantu serta memberikan pengarahan dalam menyusun tugas akhir ini. 6. Bapak Andri Heryandi, S.T, selaku dosen penguji 1.
7. Bapak Irfan Maiki, S.T, selaku dosen penguji 3.
8. Bapak dan Ibu dosen pengajar yang telah banyak memberikan kuliah di Jurusan Teknik Informatika Fakultas Teknik Universitas Komputer Indonesia.
9. Bapak dan Ibu serta Staf Pengurus Perpustakaan dan Tata Usaha Fakultas Teknik Universitas Komputer Indonesia.
10. Bapak dan Mamahku yang duitnya sudah terkuras habis buat bantu bayarin kuliahku, serta buat Do’anya yang sampai sekarang masih termunajatkan. (Maaf Cuma Tugas Akhir ini Yang Baru Bisa Ngebayar Itu Semua).
11. Keluarga Besar Darmawan, M’Koko, P’Lusep, M’Aich, P’Ato, M’Nuna, P’Udi, D’Ithot, D’Izal, Cadut, Koko, Jidut, Ecrot, Oach, Seyro.
12. “Mamet”…Dipanjanginya Mamah Metta, Thanx for all everything, sometimes u’re make me so boored, and sometimes u’re make so fit to finished my
skripsi. And thanx for all u’re support (duit, dianterin, dibantuin, trus dibikin seger dech…. ☺).
13. Teman Merangkap Sahabat, Ncas, Dick’s, Agoes Boeloe, Paul, Abe, Ateu yang ga pernah bosen nanyain kapan beres kuliah ( padahal sudah bosen ditanyain terus…☺). Thank you for always cheering me up dan makes my day full of joy and happiness. It’s an honor to knowing you all guys.
disebutkan satu-persatu, dikarenakan keterbatasan memory penulis.
Atas segala bantuan, bimbingan dan dorongan yang telah diberikan kepada penulis, dengan ini semoga Alloh SWT membalas seluruh amal baiknya, baik secara tunai ataupun berupa tabungan buat di akherat nanti. Amin.
Akhir kata, penulis menyadari bahwa tulisan ini masih jauh dari kesempurnaan mengingat terbatasnya pengetahan dan pengalaman yang dimiliki oleh penulis, dan semoga penulisan tugas akhir ini ada manfaatnya bagi penulis khusunya dan pembaca pada umumnya.
Bandung, Februari 2009
Penulis
i
PERANCANGAN DAN PENERAPAN SISTEM KEAMANAN DATA
PADA PERANGKAT LUNAK “KOMDAT LAN”
MENGGUNAKAN KRIPTOGRAFI
DENGAN ALGORITMA RSA
Oleh
Hendi Hadian Darmawan
10101186
Pemakaian teknologi komputer sebagai salah satu aplikasi dari teknologi informasi sudah menjadi suatu kebutuhan, seiring dengan kemajuan teknologi, teknologi instant messanger yang dulu hanya digunakan untuk melakukan percakapan dalam satu jaringan terpadu sekarang sudah bisa digunakan untuk saling bertukar file. Dengan berkembangnya teknik telekomunikasi dan sistem pengolahan data yang berkaitan erat dengan komunikasi antar pengguna komputer yang satu dengan pengguna komputer yang lain yang berfungsi untuk menyalurkan data, sehingga masalah keamanan menjadi salah satu aspek penting dari teknologi itu sendiri.
ii
ON SOFTWARE “KOMDAT LAN” BY USING CRYPTOGRAPHY
WITH RSA ALGORITHM
BY :
Hendi Hadian Darmawan 10101186
Application of computer technology as one of the applications of information technology has been a necessity. In line with developments in technologies, the technology of instant messenger, once used for only making conversation in an integrated network, now has been applicable to mutually exchange files. With the developments in telecommunication techniques and data processing system closely related to communication among one computer user with another that serves to distribute data, so security problem becomes an important aspect of the technology it self
2.9.4 Jenis File Pada Visual Basic ... 34
2.9.5 Komponen Pada Visual Basic ... 34
2.10 Pendekatan rekayasa Perangkat Lunak ... 36
2.10.1 Pengertian Rekayasa Perangkat Lunak ... 36
2.10.2 Model Proses Waterfall (pressman 1992)... 37
2.11 Flowchart ... 39
3.5.2 Data Flow Diagram... 55
3.8 Perancangan Tampilan Antara Muka (interface design) ... 65
3.9 Jaringan Semantik ... 71
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Sistem ... 72
4.1.1 Perangkat Keras ... 72
4.1.2 Perangkat Lunak ... 73
4.1.3 Implementasi Aplikasi... 73
4.2 Pengujian Sistem ... 78
4.2.1 Skenario Pengujian ... 78
4.2.1.1 Pengujian Koneksi ... 79
4.2.1.2 Pengujian Kirim Pesan Teks ... 80
4.2.1.3 Pengujian Kirim File Teks ... 80
4.2.2 Analisa Hasil Pengujian Alpha ... 83 BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan... 84 5.2 Saran... 84 DAFTAR PUSTAKA
BAB I PENDAHULUAN
1.1 Latar Belakang
Pemakaian teknologi komputer sebagai salah satu aplikasi dari teknologi informasi sudah menjadi suatu kebutuhan, seiring dengan kemajuan teknologi, teknologi instant messanger yang dulu hanya digunakan untuk melakukan percakapan dalam satu jaringan terpadu sekarang sudah bisa digunakan untuk saling bertukar file. Dengan berkembangnya teknik telekomunikasi dan sistem pengolahan data yang berkaitan erat dengan komunikasi antar pengguna komputer yang satu dengan pengguna komputer yang lain yang berfungsi untuk menyalurkan data, sehingga masalah keamanan menjadi salah satu aspek penting dari teknologi itu sendiri.
Dalam komunikasi data, terdapat sebuah metode pengamanan data yang dikenal dengan nama kriptografi. Kriptografi merupakan salah satu metode pengamanan data yang dapat digunakan untuk menjaga kerahasiaan data, keaslian data, serta keaslian pengirim. Metode ini bertujuan agar informasi yang bersifat rahasia yang dikirim melalui telekomunikasi umum seperti LAN atau internet tidak dapat diketahui atau dimanfaatkan oleh orang yang tidak berkepentingan atau yang tidak berhak menerimanya.
tersendiri. Langkah-langkah pengerjaan setiap metode pun berbeda-beda, baik dari segi panjang maupun kerumitan. Salah satu metode kriptografi yang akan diterapkan pada penulisan tugas akhir ini adalah metode RSA (Rivest-Shamir-Adleman).
Pada penulisan tugas akhir ini akan dilakukan perancangan dan pembangunan perangkat lunak untuk komunikasi data pada jaringan lokal dan penerapan sistem keamanan dengan teknik kriptografi algoritma RSA pada perangkat lunak tersebut, dan lebih menitik beratkan pada keamanan data waktu dikirim dan waktu diterima pada jaringan komputer.
Berdasarkan uraian diatas, penulis bermaksud untuk mengambil tugas akhir (skripsi) dengan judul “PERANCANGAN DAN PENERAPAN SISTEM KEAMANAN PADA PERANGKAT LUNAK KOMDAT LAN MENGGUNAKAN KRIPTOGRAFI DENGAN ALGORITMA RSA”.
1.2 Identifikasi Masalah
1.3 Maksud dan Tujuan
Maksud penyusunan tugas akhir ini adalah untuk merancang suatu perangkat lunak untuk keamanan data dengan menggunakan kriptografi algoritma RSA.
Tujuan dari penyusunan tugas akhir ini yaitu :
1. Untuk merancang dan membangun sebuah perangkat lunak untuk melakukan komunikasi data pada jaringan komputer lokal.
2. Menerapkan teknik kriptografi algoritma RSA pada perangkat lunak yang dibangun untuk menjaga keamanan data dengan cara melakukan enkripsi pada data yang akan dikrim dan dekripsi pada data yang diterima baik berupa data teks ataupun file.
1.4 Batasan Masalah
Karena keterbatasan waktu dan pengetahuan penulis, maka ruang lingkup permasalahan dalam penulisan tugas akhir ini dibatasi pada bidang kajian yang akan dibahas yaitu :
1. Data yang akan dienkripsi hanya menangani teks dan file teks.
2. Algoritma Kriptografi yang digunakan adalah RSA (Rivest-Shamir-Adleman).
4. Panjang kunci yang digunakan 64 Bit.
5. Perangkat lunak ini dibangun pada perangkat komputer berbasiskan sistem operasi Windows XP Profesional.
6. Perangkat lunak dibangun menggunakan MS Visual Basic 6.0 yang berfungsi sebagai tempat penulisan script yang digunakan.
1.5 Metodologi Penelitian
Metodologi Penelitian merupakan tahapan-tahapan yang dilalui oleh peneliti mulai dari perumusan masalah sampai kesimpulan. Dalam penyelesaian Tugas Akhir ini, penulis menggunakan beberapa metode penelitian, antara lain :
1.5.1 Metode Penelitian
Metode Penelitian merupakan cara-cara atau teknik dalam melakukan suatu penelitian. Dalam pembuatan tugas akhir ini, penulis menggunakan metode penelitian Eksperimental yang berarti peneliti mengadakan kegiatan percobaan untuk melihat sesuatu hasil.
1.5.2 Metode Pengumpulan Data
Dalam penyusunan tugas akhir ini penulis menggunakan metode dan langkah pengumpulan data sebagai berikut :
a. Studi Literatur.
b. Observasi.
Teknik pengumpulan data dengan mengadakan penelitian dan peninjauan langsung terhadap masalah yang diambil.
1.5.3 Metode Pembuatan Perangkat Lunak.
Teknik analisis data dalam pembuatan perangkat lunak menggunakan paradigma perangkat lunak secara waterfall, yang meliputi beberapa proses diantaranya :
Gambar 1.1 Diagram Alir Secara Waterfall 1. Requirements Definitions
Maksudnya adalah untuk mengidentifikasikan masalah, menentukan penyebabnya, dan garis besar strategi untuk pemecahannya.
2. System and Software Design
3. Implementation and Unit Testing
Hasil langkah ketiga adalah melakukan simulasi yang tengah dirancang pada langkah sebelumnya. Dengan melakukan simulasi dapat diketahui berfungsi atau tidaknya suatu sistem yang dibangun. Hasil dari simulasi ini akan dilakukan pada langkah kelima yaitu dengan melakukan pengujian validasi pada sistem tersebut.
4. Integration and System Testing
Hasil rancangan yang telah dibuat selanjutnya divalidasi, yang meliputi kegiatan konfirmasi dan konsultasi kepada dosen pembimbing. Selain itu tahap validasi ini dilakukan pengujian terhadap hasil rancangan dengan menguji cobakan data. Bila hasil rancangan ini dianggap belum valid, maka rancangan perlu diperbaiki atau dilengkapi.
5. Operational Maintenance
Pada langkah ini, akan dicoba hasil yang telah siap dioperasikan.
1.6 Sistematika Penulisan
Untuk mempermudah penulisan, maka penyusunan skripsi ini dibagi kedalam V (lima) bab, yaitu sebagai berikut :
BAB I. PENDAHULUAN
BAB II. LANDASAN TEORI
Bagian ini membahas tentang hal-hal yang berkaitan dengan kriptograpi, enkripsi dan dekripsi.
BAB III. ANALISIS DAN PERENCANAAN
Bagian ini menganalisis masalah dari model penelitian untuk memperlihatkan keterkaitan antar variabel yang diteliti secara model matematis untuk analisisnya.
BAB IV. IMPLEMENTASI DAN PENGUJIAN
Bagian ini merupakan tahapan yang dilakukan dalam penelitian secara garis besar sejak dari tahap persiapan sampai penarikan kesimpulan, metode dan kaidah yang diterapkan dalam penelitian. Termasuk menentukan variabel penelitian, identifikasi data yang diperlukan dan cara pengumpulannya, penentuan contoh penelitian dan teknik pengambilannya, serta metode/teknik analisis yang akan dipergunakan dan perangkat lunak yang akan dibangun jika ada.
BAB V. KESIMPULAN DAN SARAN
BAB II
TINJAUAN PUSTAKA
2.1 Pengertian Kriptografi
Kriptografi secara umum merupakan ilmu dan seni untuk menjaga
kerahasiaan berita. Kriptografi juga dapat diartikan sebagai ilmu yang
mempelajari teknik-teknik matematika yang berhubungan dengan aspek
keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta
autentikasi data. Pada kriptografi tidak semua aspek keamanan informasi akan
ditangani.
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek
keamanan informasi, yaitu sebagai berikut :
1. Kerahasiaan
Merupakan layanan yang digunakan untuk menjaga isi dari informasi dari
siapapun kecuali yang memiliki kunci rahasia atau otoritas untuk membuka
informasi yang telah disandikan.
2. Integritas data
Berhubungan dengan penjagaan dari perubahan data secara tidak sah.
Untuk dapat menjaga integritas data, suatu sistem harus memiliki
kemampuan untuk mendeteksi manipulasi data yang dilakukan pihak-pihak
yang tidak berhak, antara lain penyisipan, penghapusan, dan pendistribusian
3. Autentikasi
Berhubungan dengan identifikasi, baik secara kesatuan sistem maupun
informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling
memperkenalkan diri. Informasi yang dikirimkan harus diautentikasi
keasliannya, isi datanya, waktu pengiriman dan lain sebagainya.
4. Non-repudiasi
Merupakan usaha untuk mencegah terjadinya penyangkalan terhadap
pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.
2.2 Dasar Matematis
Cryptographic algorithm adalah fungsi matematika yang digunakan
untuk enksripsi dan dekripsi. Umumnya terdapat dua fungsi yang berhubungan
yaitu satu untuk enkripsi dan satu untuk dekripsi. Komponen atau elemen
kriptografi terdiri dari :
1. Plaintext
Plaintext adalah sumber berita atau pesan atau teks asli.
2. Ciphertext
Ciphertext adalah teks asli yang sudah diproses (diacak, digantikan).
3. Algoritma & kunci
Misal : subsitusi (algoritma) & number of shift (kunci) Pemisahan
algoritma & kunci ditemukan oleh Auguste Kerckhofs von Niewenhof
Enkripsi merupakan proses pengkodean sebuah pesan sehingga isi dari
pesan tersebut tidak diketahui. Dekripsi adalah proses kebalikan dari enkripsi
yaitu mentranformasi pesan yang dienkripsi kembali menjadi bentuk semula.
Sebuah sistem enkripsi dan dekripsi disebut cryptosystem. Bentuk asli dari
sebuah pesan disebut dengan plaintext dan bentuk asli yang dienkripsi disebut
ciphertext.
Gambar 2.1. Enkripsi dan Dekripsi
Plaintext dinotasikan dengan M (Message), yang dapat berupa bit tream, file text, digitized voice stream, digital video image atau lebih singkatnya M
adalah data binary. Ciphertext dinotasikan dengan C, juga berupa data binary yang kadang-kadang mempunyai ukuran yang sama dengan M, lebih kecil dari M
atau lebih besar dari M. Fungsi enkripsi E, berfungsi untuk mengubah M menjadi
C, dalam matematika dinotasikan dengan :
E(M) = C.
Fungsi dekripsi D, berfungsi untuk mengubah C menjadi M, dalam matematika dinotasikan dengan :
D(C) = M.
2.3 Jenis Kriptografi
Kriptografi terbagi menjadi dua bagian, yaitu :
1. Private key cryptosystem ( sistem kripto kunci pribadi )
Yang dimaksud dengan sistem kripto kunci pribadi disini bersifat simetrik,
dimana kunci atau password yang digunakan untuk mengunci dan membuka
teks yang satu/sama. Dalam penggunaan kripto kunci pribadi, pengiriman
kunci akan membutuhkan saluran khusus, dimana kelebihannya akan
memberikan proses yang lebih cepat dibandingkan kripto kunci publik.
Gambar 2.2 Diagram Blok Kriptografi Dengan Kunci Pribadi
2. Public key cryptosystem (sistem kripto kunci publik)
Yang dimaksud dengan sistem kripto kunci publik disini bersifat asimetrik,
dimana kunci atau password yang digunakan untuk mengunci dan membuka
teks berbeda. Dalam penggunaanya kripto kunci publik membutuhkan
waktu yang cukup lama ( membutuhkan komputasi yang tinggi ).
Kripto kunci publik mempunyai kelebihan dalam penguncian data, yaitu
kunci dalan pengenkripsian lebih sedikit dibandingkan dengan kripto kunci
yang terpercaya. Selain itu penggunaan kripto kunci publik akan komplek
dikarenakan kemungkinan besar akan ada pihak ketiga.
Menurut stalling, proses enkripsi public key sederhana melibatkan empat
tahap, yaitu sebagai berikut :
1. Setiap pengguna didalam jaringan membuat sepasang kunci untuk
digunakan sebagai kunci enkripsi dan dekripsi dari pesan yang akan
diterima.
2. Pengguna mempublikasikan kunci enkripsinya dengan menempatkan
kunci publiknya ke tempat umum. Pasangan kunci yang lain tetap
dijaga kerahasiaannya.
3. Jika pengguna A ingin mengirimkan sebuah pesan ke pengguna B, ia
akan mengenkripsi pesan tersebut dengan mengunakan kunci publik
user B.
4. Pada saat pengguna B ingin membuka sebuah pesan dari pengguna A,
ia akan menggunakan kunci pribadinya sendiri. Tidak ada pihak lain
yang bisa mendekripsi pesan itu, karena hanya B sendiri yang
mengetahui kunci pribadi.
Sampai saat ini hanya ada beberapa sistem kriptografi asimetrik yang
dipublikasikan. Yang paling berhasil sejauh ini adalah algoritma RSA yang
memenuhi keenam persyaratan public-key diatas. Disamping itu, algoritma
Gambar 2.3 Diagram Blok Kriptografi Dengan Kunci Publik
2.4 Algoritma RSA (Rivest-Shamir-Adleman)
Algoritma RSA (Rivest-Shamir-Adleman) mulai diperkenalkan pada
tahun 1976 oleh tiga orang peneliti dari MIT (Massachussetes Institute of
Technology), yaitu Ronald Rivest, Adi Shamir, dan Leonard Adleman. Seperti
sistem kunci publik lainnya, algoritma RSA ini berasal dari suatu permasalahan
sukar (hard problem) teori matematika, yang dalam hal ini RSA berasal pada
permasalahan pencarian faktor prima pada bilangan yang sangat besar.
Kunci enkripsi dan dekripsi pada algoritma ini keduanya merupakan
bilangan bulat. Kunci untuk enkripsi merupakan kunci publik, sedangkan kunci
untuk dekripsi merupakan kunci rahasia yang hanya diketahui oleh penerima
pesan. Untuk membuat pasangan kunci publik dan rahasia, langkah-langkah
dasarnya adalah sebagai berikut:
1. Pilih dua buah bilangan prima, kita pilih p dan q. Dari dua bilangan
2. Pilih bilangan ketiga, e, yang bilangannya relatif prima (faktor
pembagi terbesarnya =1) terhadap hasil perkalian (p-1) (q-1).
3. Hitung sebuah nilai d dari persamaan (ed-1)/[(p-1)(q-1)]. Bilangan d
tersebut adalah kunci deskripsinya.
Keamanan algoritma RSA terletak pada tingkat kesulitan dalam
memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini
r = p × q.
Sekali r berhasil difaktorkan menjadi p dan q, maka φ(r) = (p – 1) (q – 1)
dapat dihitung. Selanjutnya, karena kunci enkrispi PK diumumkan (tidak rahasia),
maka kunci dekripsi SK dapat dihitung dari persamaan PK⋅SK≡ 1 (mod φ(r)).
Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari
100 digit. Dengan demikian hasil kali r = p × q akan berukuran lebih dari 200
digit. Menurut Rivest dan kawan-kawan, usaha untuk mencari faktor bilangan 200
digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi
bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat
ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).
Algoritma yang paling mangkus untuk memfaktorkan bilangan yang
besar belum ditemukan. Inilah yang membuat algoritma RSA tetap dipakai hingga
saat ini. Selagi belum ditemukan algoritma yang mangkus untuk memfaktorkan
bilangan bulat menjadi faktor primanya, maka algoritma RSA tetap
2.5 Enkripsi dan Dekripsi 2.5.1 Enkripsi
Proses utama dalam suatu algoritma kriptografi adalah enkripsi dan
dekripsi. Enkripsi merubah sebuah plaintext ke dalam bentuk ciphertext. Pada
mode ECB (Electronic Codebook), sebuah blok pada plaintext dienkripsi ke dalam
sebuah blok ciphertext dengan panjang blok yang sama.
Blok cipher memiliki sifat bahwa setiap blok harus memiliki panjang
yang sama (Misal 128 bit). Namun apabila pesan yang dienkripsi memiliki
panjang blok terakhir yang tidak tepat 128 bit, maka diperlukan mekanisme
padding, yaitu penambahan bit-bit dummies untuk menggenapi menjadi panjang
blok yang sesuai, biasanya padding dilakukan pada blok terakhir plaintext.
2.5.2 Dekripsi
Dekripsi merupakan proses kebalikan dari proses enkripsi, merubah
ciphertext ke dalam bentuk plaintext.
2.6 Konsep Dasar Perhitungan Matematis 2.6.1 Fungsi Phi-Euler
Fungsi Phi-Euler ( φ)n merupakan fungsi terhadap bilangan bulat positif
n yang menyatakan banyaknya elemen ℤn yang mempunyai invers terhadap
operasi pergandaan. Ingat bahwa ℤn belum tentu merupakan grup terhadap
operasi pergandaan. Dengan kata lain, ( φ)n adalah banyaknya elemen {x, 0 ≤ x <
n | gcd( x , n = 1 }. Jika n = pq dengan p dan q adalah bilangan prima, maka ( φ)n
2.6.2 Algoritma Euclide
Algoritma ini digunakan untuk mencari nilai pembagi persekutuan
terbesar dari dua bilangan bulat. Algoritma ini didasarkan pada pernyataan berikut
ini. Diberikan bilangan bulat r0 dan r1 , dengan r0 ≥ r1, kemudian dihitung
Dari pernyataan di atas, dapat ditunjukkan bahwa :
gcd(r0, r1) =gcd(r1, r2) = … = gcd(rn-1, rn) = (rn,0) = rn.
Contoh 1. Akan dihitung gcd(40,24). Jawab : 40 = 1.24 + 16
24 = 1.16 + 8
16 = 2.8
Jadi, gcd(40,24)=8.
2.6.2.1 Algoritma Euclide Diperluas
Algoritma ini merupakan perluasan dari algoritma Euclide (Extended
Euclidean Algorithm), digunakan untuk mencari invers terhadap operasi
pergandaan. Algoritma ini didasarkan pada pernyataan berikut. Diberikan
bilangan bulat positif r0 dan r1, r0 > r1. Jika gcd(r0, r1), maka r1-1 mod r0 ada. Jika
gcd(r0, r1) ≠ 1, r1-1 mod r0 tidak ada. Gunakan rumus rekurensi berikut ini :
tj = tj-2 - qj – 1tj-1, j≥ 2 ……… (1)
Ket: qj diperoleh dari perhitungan gcd(r0, r1) menggunakan algoritma Euclide.
Jika gcd(r0, r1) = 1, r1-1= tn, sehingga rn = tnr1 atau 1 =tnr1
Dari penyelesaian algoritma Euclide di atas diperoleh n = 4. Selanjutnya,
menggunakan rumus rekurensi (1) di atas, diperoleh : (semua perhitungan
dilakukan dalam mod 75)
t2= t0 – q1t1 = 0 – 2.1 = -2 = 73
t3 = t1 – q2t2= 1-1.(-2) = 3
t4= t2 – q3t3 = -2-2.3 = -8 = 67
r4 = t4r1 = 67.28 = 1 ↔ 67 = 28-1
Dari hasil terakhir di atas, diperoleh 28-1 mod 75= 67.
2.6.3 Metode Fast Exponentiation
Metode ini digunakan untuk menghitung operasi pemangkatan besar
bilangan bulat modulo dengan cepat. Metode ini memanfaatkan ekspansi biner
g2i+1 = ( g2i ) 2
Untuk lebih jelasnya mengenai langkah-langkah metode fast
exponentiation, perhatikan contoh berikut ini.
Contoh 3. Akan dihitung 673 mod100 . Jawab :
73 = 1.26 + 1.23 + 1.20 atau 73 = ( 1001001 ) 2
(semua perhitungan dilakukan dalam mod 100)
6
20 =6
,
6
21 =36, 6
22 =36
2 =96, 6
23 =16,
6
24 = 16
2 =56
,
6
25 =56
2=36
,
6
2656
2= 96
Sehingga diperoleh:
6
73 =6.6
23.6
26= 6.16.96 = 16
Jadi
673 mod100 = 162.7 Proses Algoritma RSA
Proses-proses yang digunakan oleh RSA terdiri dari pembentukan kunci,
enkripsi, dan dekripsi, yaitu sebagai berikut :
2.7.1 Pembentukan Kunci
Berikut ini adalah proses pembentukan kunci. Proses ini dilakukan oleh
pihak penerima, dalam hal ini adalah B.
1. Pilih bilangan prima p dan q.
3. Hitung j (n) = ( p -1)(q -1) .
4. Pilih sebarang bilangan b, 1 < b < j (n) , dengan gcd(b,j (n)) = 1.
5. Hitung invers dari b, yaitu a = b-1 modj (n) .
6. Kunci publik: (n, b) dan kunci rahasia: a.
Untuk mempermudah pemahaman dalam sandi RSA, maka plaintext
yang digunakan hanya berupa bilangan 0 s/d 25 yang berkorespondensi dengan
huruf a s/d z. tetapi pada penggunaan yang sebenarnya, digunakan korespondensi
khusus seperti kode ASCII, serta bilangan-bilangan yang sangat besar. Dalam
pemilihan p dan q harus memenuhi n = pq lebih dari atau sama dengan nilai
Berikut ini adalah proses enkripsi RSA. Dilakukan oleh pihak pengirim,
dalam hal ini adalah A. Seluruh perhitungan pemangkatan bilangan modulo
dilakukan menggunakan metode fast exponentiation.
1. Ambil kunci publik (n,b).
2. Pilih plaintextm, dengan 0 ≤m ≤n -1 .
4. Diperoleh ciphertextc, dan kirimkan kepada B.
2.7.3 Dekripsi RSA
Berikut ini adalah proses dekripsi RSA. Dilakukan oleh pihak penerima
ciphertext, yaitu B.
1. Ambil kunci publik (n,b) dan kunci rahasia a.
2. Hitung m = camod n .
2.8 Pengertian Jaringan Komputer
Jaringan komputer merupakan sekelompok komputer otonom yang saling
berhubungan antara satu dengan yang lainnya menggunakan protokol komunikasi
melalui media komunikasi sehingga dapat saling berbagi informasi,
program-program, penggunaan perangkat keras bersama seperti printer, harddisk, dan
sebagainya.
2.8.1 Jenis – Jenis Jaringan Komputer
Jenis-jenis jaringan komputer terdiri dari :
1.Local Area Network (LAN)
Local Area Network (LAN) merupakan jaringan milik pribadi di dalam
sebuah gedung atau kampus yang berukuran sampai beberapa kilometer.
LAN seringkali digunakan untuk menghubungkan komputer-komputer
pribadi dan Workstation dalam kantor perusahaan atau pabrik-pabrik
untuk memakai bersama resource (misalnya printer, scanner) dan saling
LAN dapat dibedakan dari jenis jaringan lainnya berdasarkan tiga
karakteristik yaitu ukuran, teknologi transmisi dan topologinya. LAN
mempunyai ukuran yang terbatas, yaitu berarti bahwa waktu transmisi
pada keadaan terburuknya terbatas dan dapat diketahui sebelumnya.
Dengan mengetahui keterbatasannya menyebabkan adanya kemungkinan
untuk menggunakan jenis desain tertentu. Hal ini juga memudahkan
manajemen jaringan.
2.Metropolitan Area Network (MAN)
Metropolitan Area Network (MAN) pada dasarnya merupakan versi LAN
yang berukuran lebih besar dan biasanya memakai teknologi yang sama
dengan LAN. MAN dapat mencakup kantor-kantor perusahaan yang
berdekatan dan dapat dimanfaatkan untuk keperluan pribadi swasta atau
umum. MAN biasanya mampu menunjang data dan suara, dan bahkan
dapat berhubungan dengan jaringan televisi kabel.
MAN hanya memiliki sebuah kabel atau dua buah kabel dan tidak
mempunyai elemen switching. Switching dapat digunakan atau berfungsi
untuk mengatur paket melalui beberapa output kabel. Adanya elemen
switching membuat rancangan menjadi lebih sederhana.
3.Wide Area Network (WAN)
Wide Area Network (WAN) adalah sebuah jaringan yang memiliki jarak
yang sangat luas, karena radiusnya mencakup sebuah Negara dan benua.
Pada sebagian besar WAN, komponen yang dipakai dalam
kabel transmisi dan elemen switching. Kabel transmisi berfungsi untuk
memindahkan bit-bit dari satu komputer ke komputer lainnya, sedangkan
elemen switching disini adalah sebuah komputer khusus yang digunakan
untuk menghubungkan dua buah kabel transmisi atau lebih. Saat data
yang dikirimkan sampai ke kabel penerima, elemen switching harus
memilih kabel pengirim untuk meneruskan pesan-pesan tersebut.
4.Jaringan tanpa kabel
komputer mobile seperti komputer notebook dan Personal Digital
Assitant (PDA), merupakan cabang industri komputer yang paling cepat
pertumbuhannya. Banyak pemilik jenis komputer tersebut yang
sebenarnya telah memiliki mesin-mesin desktop yang terpasang pada
LAN atau WAN tetapi karena koneksi kabel tidaklah mungkin dibuat di
dalam mobil atau pesawat terbang, maka banyak yang tertarik untuk
memiliki komputer dengan jaringan tanpa kabel. Jaringan tanpa kabel
mempunyai berbagai manfaat, yang telah umum dikenal adalah kantor
portable. Orang yang sedang dalam perjalanan seringkali ingin
menggunakan peralatan elektronik portablenya untuk mengirim atau
menerima telepon, fax, e-mail, membaca file jarak jauh, login ke mesin
jarak jauh dan sebagainya, juga ingin melakukan hal-hal tersebut di mana
saja, darat, laut, udara. Jaringan tanpa kabel sangat berguna untuk
2.8.2 Topologi Jaringan Komputer
Topologi jaringan komputer adalah pola hubungan antar terminal dalam
suatu jaringan komputer. Bentuk topologi terbagi dua menjadi topologi secara
logik dan topologi secara fisik. Bentuk topologi yang paling utama terdiri dari
topologi bus, ring dan star, yaitu sebagai berikut :
1. Bus
Pada topologi bus semua terminal terhubung ke jalur komunikasi.
Informasi yang dikirim akan melewati semua terminal pada jalur
tersebut. Jika alamat yang tercantum dalam data atau informasi yang
dikirim sesuai dengan alamat terminal yang dilewati, maka data atau
informasi tersebut akan diterima dan diproses, jika alamat tersebut tidak
sesuai, maka informasi tersebut akan diabaikan oleh terminal yang
dilewati.
Gambar 2.4 Topologi Bus
2. Ring
Sistem ring menggunakan koneksi antar node berbentuk melingkar,
sistem ini dikembangkan oleh IBM. Topologi ini mirip dengan topologi
bus, tetapi kedua terminal yang berada di ujung saling dihubungkan.
dilewatinya. Jika bukan untuknya, informasi dilewatkan sampai
menemukan alamat yang benar. Setiap terminal dalam topologi ini sangat
tergantung, sehingga jika terjadi kerusakan pada satu terminal maka
seluruh jaringan akan terganggu.
Gambar 2.5 Topologi Ring
3. Star
Sistem star menggunakan konsentrator untuk koneksi semua node,
konsentrator ini bisa berupa hub ataupun switch. Pada topologi star,
semua terminal pusat bertindak sebagai pengatur dan pengendali semua
komunikasi data yang terjadi. Terminal-terminal lain terhubung padanya
dan pengiriman data dari satu terminal ke terminal lainnya melalui
terminal pusat. Terminal pusat akan menyediakan jalur komunikasi
khusus untuk dua terminal yang akan berkomunikasi. Sebagai salah satu
Gambar 2.6 Topologi Star
2.8.3 Manfaat Jaringan Komputer
Manfaat komputer bagi manusia dapat dikelompokkan pada jaringan
untuk perusahaan, jaringan untuk umum, dan masalah sosial jaringan.
1. Jaringan untuk perusahaan atau organisasi
Dalam membangun jaringan komputer di perusahaan atau organisasi, ada
beberapa resource sharing, reliabilitas tinggi, lebih ekonomis, skabilitas,
dan media komunikasi. Resource sharing bertujuan agar seluruh
program, peralatan, khususnya data dapat digunakan oleh setiap orang
yang ada pada jaringan tanpa terpengaruh oleh lokasi resource dan user
(pemakai). Reliabilitas tinggi yaitu adanya sumber-sumber alternatif
pengganti jika terjadi masalah pada salah satu perangkat dalam jaringan.
Komputer yang lebih kecil memiliki rasio harga atau kinerja yang lebih
baik dibanding dengan komputer besar. komputer mainframe memiliki
kekuatan kurang lebih sepuluh kali lipat kecepatan komputer pribadi,
akan tetapi harga mainframe seribu kalinya lebih mahal. Dengan selisih
memilih membangun sistem yang terdiri dari komputer-komputer pribadi
dibandingkan dengan mainframe.
Skalabilitas yaitu kemampuan untuk meningkatkan kinerja sistem secara
berangsur-angsur sesuai dengan beban pekerjaan dengan hanya
menambahkan sejumlah prosesor. pada komputer mainframe yang
tersentralisasi, jika sistem sudah jenuh, maka komputer harus diganti
dengan komputer yang mempunyai kemampuan lebih besar. hal ini
membutuhkan biaya yang sangat besar dan dapat menyebabkan
gangguan terhadap kontinyuitas kerja para pemakai. Sebuah jaringan
komputer mampu bertindak sebagai media komunikasi yang baik bagi
para pegawai yang terpisah secara jauh.
2. Jaringan untuk umum
Jaringan komputer akan memberikan layanan yang berbeda kepada
perorangan di rumah-rumah dibandingkan dengan layanan yang
diberikan pada perusahaan. Terdapat tiga hal pokok yang menjadi daya
tarik jaringan komputer pada jaringan yaitu :
a.Akses ke informasi yang berada ditempat yang lebih jauh.
b.Komunikasi orang ke orang.
3. Masalah sosial jaringan
Penggunaan jaringan oleh masyarakat luas akan menyebabkan
masalah-masalah sosial, etika, dan politik. Internet telah masuk ke segala penjuru
kehidupan masyarakat, semua orang dapat memanfaatkannya tanpa
memandang status sosial, usia dan jenis kelamin. Penggunaan internet
tidak akan menimbulkan masalah selama subyeknya terbatas pada
topik-topik teknis, pendidikan atau hobi, hal-hal dalam batas norma-norma
kehidupan.
4. Layanan-layanan dalam jaringan komputer
a. Layanan kirim data
Layanan ini berfungsi untuk melakukan proses kirim (send) ataupun
menerima data (receive).
b. Layanan chatting (percakapan dalam jaringan lokal atau internet)
Chatting adalah percakapan dalam bentuk tulisan yang diselenggarakan
melalui jaringan internet. Pelaksanaanya tidak berbeda dengan
percakapan telepon yang dapat dilaksanakan dengan siapapun/dimanapun
dalam jangkauan jaringan telepon baik melalui saluran maupun dengan
transmisi. Perbedaanya terletak pada bentuknya yang berupa komunikasi
tulisan. Terdapat beberapa web site yang juga menyediakan fasilitas
chatting bagi penggunanya dan ada pula web yang khusus untuk chatting.
Pengguna hanya perlu memonitor nama-nama pengguna yang sedang
bergabung dalam chatting, pengguna dapat pula terlebih dahulu
mengadakan perjanjian untuk chatting dengan penggunalain.
2.9 Visual Basic
Microsoft Visual Basic adalah bahasa pemrograman yang digunakan
untuk membuat aplikasi Windows yang berbasis grafis (GUI – Graphical User
Interface). Visual Basic merupakan event-driven programming (pemrograman
terkendali kejadian) artinya program menunggu sampai adanya respon dari
pemakai berupa event/kejadian tertentu (tombol diklik, menu dipilih, dan
lain-lain). Ketika event terdeteksi, kode yang berhubungan dengan event (prosedur
event) akan dijalankan.
2.9.1 Sejarah Singkat Visual Basic
Berikut ini adalah point-point penting dalam sejarah perkembangan
Visual Basic, sebagai berikut :
1. Visual Basic pertama kali diperkenalkan tahun 1991.
2. Berikutnya dirilis Visual Basic 3.0 tahun 1993.
3. Visual Basic 4.0 dirilis pada akhir tahun 1995 (tambahan dukungan
untuk aplikasi 32 bit).
4. Visual Basic terbaru adalah versi 6.0 yang dirilis pada akhir tahun 1998.
Microsoft umumnya membuat tiga edisi Visual Basic yaitu :
a. Standard Edition merupakan produk dasar.
b. Profesional Edition berisi tambahan Microsoft Jet Data Access Engine
c. Enterprise Edition adalah edisi client-server.
2.9.2 IDE Visual Basic
Langkah awal dari belajar Visual Basic adalah mengenal IDE (Integrated
Developement Environment) Visual Basic yang merupakan Lingkungan
Pengembangan Terpadu bagi programmer dalam mengembangkan aplikasinya.
Dengan menggunakan IDE programmer dapat membuat user interface, melakukan
koding, melakukan testing dan debuging serta menkompilasi program menjadi
executable. Penguasaan yang baik akan IDE akan sangat membantu programmer
dalam mengefektifkan tugas-tugasnya sehingga dapat bekerja dengan efisien
Sesaat kita aktif di IDE Visual Basic, maka kita akan dihadapkan kepada
suatu pilihan terhadap jenis Project yang ingin kita buat sebagaimana yang
ditunjukkan oleh Gambar 2.7.
Sebagai langkah awal dari proses belajar adalah memilih project Standard EXE.
2.9.3 Jendela IDE
IDE Visual Basic 6 menggunakan model MDI (Multiple Document
Interface). Berikut ini adalah gambar yang menunjukan bagian-bagian dan
nama-nama jendela yang dapat tampil pada IDE Visual Basic. Mungkin pada IDE anda
hanya ditampilkan sebagian jendela , karena penampilan dari jendela-jendela
tersebut dapat diatur dengan perintah pada menu View. Sebagai langkah awal dari
proses belajar, tidak semua jendela akan kita gunakan, tetapi hanya beberapa yang
penting, sedangkan yang lainnya bersifat khusus.
Adapun jendela-jendela yang perlu kita perhatikan adalah sebagai berikut:
1. Menu Bar, digunakan untuk memilih tugas-tugas tertentu seperti menyimpan project, membuka project, dll
2. Main Toolbar, digunakan untuk melakukan tugas-tugas tertentu dengan cepat.
3. Jendela Project, jendela ini berisi gambaran dari semua modul yang terdapat dalam aplikasi anda. Anda dapat menggunakan icon Toggle
Folders untuk menampilkan modul-modul dalam jendela tersebut secara di
group atau berurut berdasarkan nama. Anda dapat menggunakan Ctrl+R
untuk menampilkan jendela project, ataupun menggunakan icon Project
Explorer.
4. Jendela Form Designer, jendela ini merupakan tempat anda untuk merancang user interface dari aplikasi anda. Jadi jendela ini menyerupai
5. Jendela Toolbox, jendela ini berisi komponen-komponen yang dapat anda gunakan untuk mengembangkan user interface.
6. Jendela Code, merupakan tempat bagi anda untuk menulis koding. Anda dapat menampilkan jendela ini dengan menggunakan kombinasi Shift-F7.
7. Jendela Properties, merupakan daftar properti-properti object yang sedang terpilih. Sebagai contohnya anda dapat mengubah warna tulisan
(foreground) dan warna latarbelakang (background). Anda dapat
menggunakan F4 untuk menampilkan jendela properti.
8. Jendela Color Palette, adalah fasilitas cepat untuk mengubah warna suatu object.
9. Jendela Form Layout, akan menunjukan bagaimana form bersangkutan ditampilkan ketika runtime.
10.Jendela Toolbox merupakan jendela yang sangat penting bagi anda. Dari jendela ini anda dapat mengambil komponen-komponen (object) yang
akan ditanamkan pada form untuk membentuk user interface.
11.Adapun secara garis besar fungsi dari masing-masing intrinsic kontrol
12.Pointer bukan merupakan suatu kontrol; gunakan icon ini ketika anda ingin memilih kontrol yang
sudah berada pada form.
13.PictureBox adalah kontrol yang digunakan untuk menampilkan image dengan format: BMP, DIB
(bitmap), ICO (icon), CUR (cursor), WMF
(metafile), EMF (enhanced metafile), GIF, dan
JPEG.
14.Label adalah kontrol yang digunakan untuk menampilkan teks yang tidak dapat diperbaiki
oleh pemakai.
15.TextBox adalah kontrol yang mengandung string yang dapat diperbaiki oleh pemakai, dapat berupa
satu baris tunggal, atau banyak baris.
16.Frame adalah kontrol yang digunakan sebagai
kontainer bagi kontrol lainnya. Gambar 2.8 Toolbox
17.CommandButton merupakan kontrol hampir ditemukan pada setiap form, dan digunakan untuk membangkitkan event proses tertentu ketika pemakai
melakukan klik padanya.
19.OptionButton sering digunakan lebih dari satu sebagai pilihan terhadap beberapa option yang hanya dapat dipilih satu.
20.ListBox mengandung sejumlah item, dan user dapat memilih lebih dari satu (bergantung pada property MultiSelect).
21.ComboBox merupakan konbinasi dari TextBox dan suatu ListBox dimana pemasukkan data dapat dilakukan dengan pengetikkan maupun pemilihan.
22.HScrollBar dan VScrollBar digunakan untuk membentuk scrollbar berdiri sendiri.
23.Timer digunakan untuk proses background yang diaktifkan berdasarkan interval waktu tertentu. Merupakan kontrol non-visual.
24.DriveListBox, DirListBox, dan FileListBox sering digunakan untuk membentuk dialog box yang berkaitan dengan file.
25.Shape dan Line digunakan untuk menampilkan bentuk seperti garis, persegi, bulatan, oval.
26.Image berfungsi menyerupai image box, tetapi tidak dapat digunakan sebagai kontainer bagi kontrol lainnya. Sesuatu yang perlu diketahui
bahwa kontrol image menggunakan resource yang lebih kecil
dibandingkan dengan PictureBox
27.Data digunakan untuk data binding
2.9.4 Jenis File Pada Visual Basic
Proyek merupakan cikal bakal dari aplikasi dan terdiri dari beberapa file
yang saling terkait satu sama lain, file-file tersebut mempunyai ekstensi yang
berbeda-beda sesuai dengan isi dan fungsinya. Sebuah Proyek dapat terdiri atas:
a. File .VBF untuk tiap proyek
b. File .FRM untuk tiap form aplikasi pada sebuah proyek.
c. File .VBX atau OCX untuk tiap custom pada sebuah proyek.
d. File .BAS untuk tiap modul standar pada proyek.
e. File .CLS untuk tiap modul class pada sebuah proyek.
f. File .FRX untuk tiap form pada sebuah proyek yang memiliki control
berproperti menggunakan data binary.
g. File .RES yaitu sebuah resource file pada sebuah proyek.
Dalam hal ini tidak perlu membuat seluruh file di atas. Karena apa saja
yang dibutuhkan tergantung dari proyek yang sedang dikerjakan.
2.9.5 Komponen Pada Visual Basic
Komponen-komponen yang sering dipakai diantaranya:
a. Modul Form (File berekstensi .FRM).
Merupakan kumpulan form yang berisi deskripsi secara grafis mengenai
tampilan serta kontrol yang digunakan dalam sebuah proyek. Termasuk di
dalamnya pengaturan properti yang digunakan oleh masing-masing
kontrol. Disampimg itu rutin yang ditulis untuk masing-masing obyek
banyak form, masing-masing form tersimpan dalam sebuah file
berekstensi .FRM.
b. Modul Class (File Berekstensi .CLS)
Fungsinya sama dengan modul form tetapi terlihat dalam bentuk tampilan.
Melalui modul ini bisa dicoba membuat sendiri obyek yang ingin
ditampilkan. Masing-masing obyek yang dibuat harus mempunyai
properti dan modul tersendiri.
c. Modul Standar (File berekstensi .BAS).
Modul ini berisi deklarasi tipe, konstanta, variabel eksternal procedure
(prosedur yang menangani kejadian) dan public procedure. Biasanya file
ini berisikan perhitungan atau logika yang kompleks.
d. File Resource (File berekstensi .RES).
File ini berisi bitmap, text string, atau data lainnya yang dapat diubah
tanpa perlu mengedit kembali rutin. Biasanya file ini digunakan untuk
mengubah bahasa pada user interface alokasi untuk pemakai berbahasa
asing (selain yang digunakan oleh si pembuat aplikasi).
e. OLE Custom Control dan Insertable Objects (File berekstensi .OCX)
File ini berisi custom dan Insertable Objects yang ditambahkan pada
proyek anda.
f. VBX Custom Controls (File berekstensi .VBX).
Sama dengan file berekstensi .OCX namun hanya digunakan pada Visual
2.10 Pendekatan Rekayasa Perangkat Lunak 2.10.1 Pengertian Rekayasa Perangkat Lunak
Pengertian rekayasa perangkat lunak menurut Pressman (1992) :
Pembentukan dan penggunaan dari prinsip-prinsip rekayasa yang baik untuk
mendapatkan perangkat lunak ekonomis yang handal dan bekerja efisien pada
mesin nyata.
Rekayasa perangkat lunak adalah :
1. Sekumpulan aktifitas-aktifitas kerja yang berkaitan erat dengan perancangan
dan implementasi produk-produk dan prosedur-prosedur yang dimaksudkan
untuk merasionalisasikan produksi perangkat lunak berikut pengawasannya.
2. Pendekatan sistematik dalam pengembangan, operasi, pemeliharaan perangkat
lunak.
Rekayasa perangkat lunak merupakan teknologi yang terdiri dari
beberapa elemen (Pressman, 1992) yaitu :
1. Proses : Bertindak sebagai perekat yang mempertahankan teknologi dan
memungkinkan pengembangan perangkat lunak menjadi rasional dan tepat
waktu. Selain itu, proses juga mendefinisikan kerangka yang harus didirikan
agar penyerahan teknologi rekayasa perangkat lunak menjadi efektif.
2. Metode : Menyediakan teknik bagaimana membangun perangkat lunak,
meliputi tugas-tugas yang mencakup analisis, perancangan, implementasi
(pemrograman), pengujian, dan pemeliharaan.
3. Alat bantu (tools) : Alat bantu yang digunakan saling terintegrasi sehingga
lainnya, maka sistemnya sering disebut Computer Aided Software Engineering
(CASE).
2.10.2 Model Proses Waterfall (Pressman 1992)
Model ini memerlukan pendekatan yang sistematis dan sekuensial di
dalam pengembangan sistem perangkat lunaknya, pengembangannya dimulai dari
analisis dan definisi kebutuhan, perancangan sistem dan perangkat lunak,
implementasi dan pengujian unit, integrasi dan pengujian sistem, operasi dan
perawatan. Model Proses Waterfall dapat dilihat dalam gambar 2.9.
Gambar 2.9 Model Proses Waterfall
Dengan demikian, pada model ini terdapat aktifitas-aktifitas sebagai
berikut :
Karena perangkat lunak merupakan bagian dari sistem yang lebih besar maka
pengembangannya dimulai dari pengumpulan semua kebutuhan
elemen-elemen sistem. Hal ini menjadi sangat penting karena perangkat lunak akan
berkomunikasi dengan perangkat keras, data, manusia, dan bahkan dengan
perangkat lunak lainnya.
2. Analisis.
Pada tahap ini dilakukan pengumpulan kebutuhan elemen-elemen di tingkat
perangkat lunak. (requirement analysis). Dengan analisis, harus dapat
ditentukan domain-domain data atau informasi, fungsi, proses, atau prosedur
yang diperlukan beserta unjuk kerjanya. Hasil akhir dari tahap ini adalah
spesifikasi kebutuhan perangkat lunak.
3. Perancangan.
Pada tahap perancangan, kebutuhan-kebutuhan atau spesifikasi perangkat
lunak, yang dihasilkan pada tahap analisis, ditransformasikan ke dalam bentuk
arsitektur perangkat lunak yang memiliki karateristik mudah dimengerti dan
tidak sulit untuk diimplementasikan.
4. Pemrograman.
Pada tahap ini dilakukan implementasi hasil rancangan ke dalam baris-baris
kode program yang dapat dimengerti oleh mesin (komputer).
5. Pengujian.
Pada tahap ini pengujian dilakukan pada setiap modul. Jika setiap modul
selesai diuji dan tidak bermasalah, modul-modul tersebut segera diintegrasikan
6. Pengoperasian dan Pemeliharaan.
Tahap ini ditandai oleh penyerahan perangkat lunak kepada pemesanannya
yang kemudian dioperasikan oleh pemiliknya. Dalam masa operasional
sehari-hari, suatu perangkat lunak mungkin saja mengalami kesalahan atau kegagalan
dalam menjalankan fungsi-fungsinya. Dengan demikian, kedua faktor ini
menyebabkan perlunya perangkat lunak dipelihara dari waktu ke waktu.
2.11 Flowchart
Flowchart adalah suatu alat yang cukup efisien untuk menggambarkan
suatu algoritma agar dapat dengan mudah diimplementasikan pada suatu aplikasi.
Tujuan utama penggunaan flowchart adalah untuk menggambarkan suatu tahapan
penyelesaian masalah secara sederhana. Metode ini menggunakan simbol-simbol
tertentu yang mudah dimengerti dan telah distandarisasi dalam menyelesaikan
masalah yang dihadapi. Adapun simbol-simbol program flowchart dapat dilihat
SIMBO L KETERA NG A N
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Masalah
Analisis masalah bertujuan untuk mengidentifikasi
permasalahan-permasalahan yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat
keras (hardware), perangkat lunak (software) dan pengguna (user). Analisis ini
diperlukan sebagai dasar bagi tahapan perancangan sistem. Analisis sistem
meliputi identifikasi permasalahan, analisis sistem, analisis kriptografi, analisis
proses enkripsi, analisis proses dekripsi.
Keamanan informasi adalah suatu keharusan yang perlu diperhatikan
apalagi jika informasi itu bersifat rahasia. Ketika suatu data dikirim melalui
jaringan komputer, data akan melewati sejumlah komputer lainnya, sehingga
memberi kesempatan kepada pengguna komputer lain untuk menyadap dan
mengubah data tersebut.
Sistem keamanan informasi pada jaringan komputer harus direncanakan
dan dipahami dengan baik, agar dapat melindungi sumber daya dan investasi
jaringan komputer tersebut secara efektif. Berdasarkan hal tersebut kita harus
menentukan siapa saja yang berhak untuk akses sehingga keamanan data dan
informasi yang berada didalamnya dapat dilindungi dari ancaman yang
3.1.1 Gambaran Umum Sistem
Dalam hal penerapan sistem keamanan dengan menggunakan kriptografi
algoritma RSA pada proses komunikasi data, maka dibangun sebuah aplikasi yang
diberi nama KomDat LAN.
Aplikasi ini digunakan untuk melakukan chatting (percakapan) dan
pengiriman data (send/receive) dalam sebuah jaringan komputer, baik jaringan
lokal ataupun internet. Dengan melakukan enkripsi terhadap teks ataupun berkas
yang akan dikirimkan, dan melakukan dekripsi terhadap teks atau berkas yang
akan diterima maka keamanan data tersebut akan terjaga dari upaya orang yang
tidak berhak untuk melakukan penyusupan atau penyadapan.
Ketika user menggunakan aplikasi KomDat LAN ini, user tidak perlu
memasukkan kunci untuk enkripsi ataupun dekripsi, user pada sisi pengirim
cukup mengirimkan teks atau berkas dan user pada sisi penerima akan menerima
teks atau berkas dalam keadaan sudah terdekripsi. Penjelasan lebih lengkap dapat
A (pengirim) C (Penyadap) B (penerima)
Gambar 3.1 Proses Komunikasi KomDat LAN
3.1.2 Contoh Proses Enkripsi dan Dekripsi RSA
Misalkan input key p = 5, dan q = 11, maka proses pembentukan kunci
adalah sebagai berikut :
1. Mencari nilai n, yaitu hasil dari p.q
n = 5.11
= 55
2. Mencari nilai m, yaitu hasil dari (p-1).(q-1)
m = (5-1).(11-1)
= 4.10
3. Mencari nilai relatif prima (e) / GCD dari m,
GCD (e) = 13
4. Mencari nilai kunci private (d), d = (1 + m.n ) / e
d = (1+40.55) / 13
= 37
5. Didapatkan kunci public (n,e), dan kunvi private (n,d)
Kunci publik = 55,13
Kunci private = 55,37
Misalkan dimasukkan plainteks : “unikom”, maka proses enkripsi
sebagai berikut :
Menggunakan table 3.1 diperoleh m1=22, m2=15, m3=10, m4=12, m5=16,
m6=14. Selanjutnya dihitung :
c1 = m1e mod n = 2213 mod 55 = 22
c2 = m2e mod n = 1513 mod 55 = 20
c3 = m3e mod n = 1013 mod 55 = 10
c4 = m4e mod n = 1213 mod 55 = 12
c5 = m5e mod n = 1613 mod 55 = 26
Jadi cipherteksnya adalah 22-20-10-12-26-49, selanjutnya A
mengirimkan cipherteks ke B.
Setelah B menerima cipherteks dari A, yaitu 22-20-10-12-26-49, maka
diambil kunci rahasia d = 37, dan dilakukan perhitungan berikut :
m1 = c1d mod n = 2237 mod 55 = 22
m2 = c2d mod n = 2037 mod 55 = 15
m3 = c3d mod n = 1037 mod 55 = 10
m4 = c4d mod n = 1237 mod 55 = 12
m5 = c5dmod n = 2637 mod 55 = 16
m6 = c6d mod n = 4937 mod 55 = 14
Diperoleh plainteks 22-15-10-12-16-14, jika dikorespondensikan dengan tabel
3.1, diperoleh pesan asli yang dikirimkan oleh A, yaitu “unikom”.
3.2 Analisis Non Fungsional
3.2.1 Analisis Kebutuhan Sistem
Sistem yang akan dibangun dalam tugas akhir ini, dirancang sebagai
sistem keamanan dalam pengiriman pesan atau pun berkas, karenanya sistem ini
1. Aplikasi KomDat LAN ini dapat dijalankan pada Komputer dengan
Sistem Operasi Windows.
2. Aplikasi KomDat LAN ini dapat melakukan proses enkripsi ketika
mengirim Pesan ataupun berkas.
3. Aplikasi ini dapat melakukan dekripsi pada teks ataupun berkas
yang telah terenkripsi.
Dalam pengoperasiannya sistem ini membutuhkan perangkat keras
(Hardware) dan perangkat lunak (Software) pendukung dengan spesifikasi
sebagai berikut :
3.2.1.1 Analisis Kebutuhan Perangkat Keras
Pada dasarnya komputer merupakan sebuah sistem yang terdiri dari
beberapa komponen saling berhubungan dan menghasilkan fungsi dasar : input,
proses, output dan storage. Dengan kata lain sebuah komputer adalah sebuah
sistem yang terdiri dari beberapa komponen dan fungsi perangkat keras yaitu yang
mendukung proses komputerisasi.
Perangkat keras yang dibutuhkan untuk implementasi sistem yang akan
dibuat. Adapun perangkat keras yang dibutuhkan antara lain :
1. Komputer server
Prosesor : P IV 2 GHZ
Memori : DDR 512 GB
Monitor : LG 17"
Kartu Jaringan
Keyboard dan Mouse
2. Komputer Klien
Prosesor : Intel PIII 933 MHZ
Memori : SDRam 128 MB
Hardisk : 10GB
Monitor : LG 15"
Kartu Jaringan
Keyboard dan Mouse
3.2.1.2 Analisis Kebutuhan Perangkat Lunak
Pada bagian ini dijelaskan mengenai kebutuhan perangkat lunak
(software) dari aplikasi KomDat LAN, adapun perangkat lunak yang dibutuhkan
antara lain :
1. Perangkat lunak ini dibangun pada perangkat komputer berbasiskan
sistem operasi Windows XP Profesional.
2. Adapun perangkat lunak dibangun menggunakan Microsoft Visual
Secara keseluruhan sistem operasi yang digunakan pada setiap komputer
adalah Windows XP. Untuk pengolahan sistem maka diperlukan perangkat lunak
penunjang untuk melakukan proses tersebut. Perangkat lunak yang diusulkan
dalam pembuatan sistem kamanan ini adalah Visual Basic alasan penulis
menggunakan Visual Basic yaitu dikarenakan Visual Basic menawarkan
kemudahan dalam mengembangkan aplikasi serta berbasis GUI ( Graphical User
Interface )
3.2.1.3 Analisis Jaringan
Koneksi jaringan yang ada menggunakan switch sebagai penghubung
antar komputer. Proses pengiriman data berlangsung tanpa adanya sistem
keamanan yang menjamin keaslian dan keakuratan data, disebabkan adanya
interupsi dari komputer yang tidak berhak dalam pengaksesan data.
Berikut ini adalah gambar lingkungan pengguna komputer yang ada.
Penulis membangun suatu jaringan client – server dimana menggunakan
topologi star. Usulan untuk gambaran jaringan komputer yaitu digunakannya
aplikasi KomDAt LAN pada tiap komputer, dengan spesifikasi satu komputer
sebagai server dan satu lagi digunakan sebagai client dimana jaringan yang
digunakan menggunakan topologi star.
Gambar 3.3 Arsitektur Jaringan Komputer
3.2.1.4 Analisis Pengguna
1. Yang mempunyai hak akses untuk menggunakan aplikasi KomDat
LAN.
3.3 Analisis Masukan dan Keluaran Sistem
Pada sistem ini yang akan menjadi inputan adalah teks dan berkas yang
akan dibuat.
Sedangkan yang menjadi keluaran adalah sebagai berikut :
1. Teks dan berkas Enkripsi
2. Teks dan berkas yang telah di dekripsi.
3.4 Analisis Proses Algoritma RSA
3.4.1 Proses Pembentukan Kunci Pada Algoritma RSA
Proses pembentukan kunci pada metode algoritma RSA adalah sebagai
berikut :
1. Pilih dua buah bilangan prima p dan q secara acak, p ≠ q.
2. Hitung n = pq.
3. Hitung m = (p-1) (q-1).
4. Pilih bilangan bulat (integer) antara 1 dan m (1 < e < m) yang tidak
mempunyai factor pembagi dari m.
5. Hitung d hingga d e ≡ 1 (mod m) atau bisa ditulis d = ( 1+m.n ) / e
Setelah langkah ini selesai, didapatkan kesimpulan :
Public key
n,e
Secret key
n,d
3.4.2 Proses Enkripsi Menggunakan RSA
Berikut ini adalah proses enkripsi RSA. Dilakukan oleh pihak pengirim,
dalam hal ini adalah A. seluruh perhitungan pemangkatan bilangan modulo
dilakukan menggunakan metoda fast exponentiation.
1. Ambil kunci publik (n,e)
3. Hitung c = pe mod n.
4. Diperoleh cipherteks c, dan kirimkan kepada B.
3.4.3 Proses Dekripsi Menggunakan RSA
Berikut ini adalah proses dekripsi RSA. Dilakukan oleh penerima
cipherteks, yaitu B.
1. Ambil kunci public (n,e) dan kunci rahasia d.
2. Hitung p = cdmod n.
3. Diperoleh plainteks p.
3.4.4 Konversi Plainteks ke Bilangan Sequent
Seluruh teks (plainteks) yang akan dienkripsi harus dikonversikan
terlebih dahulu kedalam bentuk bilangan sequent, karena proses enkripsi yang
dilakukan adalah proses perhitungan matematis (mod), sehingga teks yang sudah
menjadi bilangan dapat langsung di ekripsi dengan algoritma RSA yang sudah
ditetapkan.
A B C D E ….. Z
2 3 4 5 6 ….. 28
0 dan 1 tidak dijadikan referensi konversi teks ke bilangan karena apabila “0” dan
“1” dienkripsi dengan menggunakan kunci public maka hasilnya tetap, sehingga
proses konversi dimulai dari 2, sebagai contoh, A=2, B=3, dan seterusnya.
3.5 Analisis Fungsional 3.5.1 Diagram Konteks
Diagram Konteks merupakan gambaran aliran data dari suatu sistem atau
perangkat lunak secara global, yang bertujuan untuk memudahkan pemahaman
terhadap suatu sistem atau perangkat lunak tersebut. Pada intinya diagram konteks
mendeskripsikan ruang lingkup sistem atau perangkat lunak dan interaksi yang
terjadi dengan entitas-entitas luarnya.
Gambar 3.6 dibawah ini menjelaskan tentang diagram konteks dari
sistem kriptografi.
Pengirim
Penerim a Sistem kriptografi
Plainteks, kunci publik
Plainteks Kunci Private
Gambar 3.6 Diagram Konteks menerangkan tentang suatu sistem dari
Kriptografi atau cara kerja dari Kriptografi. Dalam gambar diatas, input yang
digunakan adalah Plaintext yaitu berupa berkas asli yang akan di-enkripsi,
kemudian diproses dalam sistem kriptografi untuk menghasilkan output berupa
ciphertext yaitu berupa berkas yang sudah ter-enkripsi. Sistem Kriptografi juga
akan menghasilkan ciphertext yang akan dikembalikan lagi menjadi plaintext.
3.5.2 Data Flow Diagram
DFD merupakan hasil pemodelan analisis yang merupakan pecahan dari
diagram konteks ke tingkat atau level selanjutnya yang lebih spesifik. Gambaran
pada DFD dan seterusnya haruslah konsisten sampai ke tingkat terkecil atau
tingkat paling primitive yang bisa dicapai.
Dalam gambar 3.7 dibawah ini, menjelaskan tentang proses dari sistem
kriptografi.
Gambar 3.6 Data Flow Diagram Level 1
Gambar 3.7 Data Flow Diagram Level 1 menerangkan tentang sistem
kerja dari kriptografi. Langkah awal yaitu dengan meng-input plaintext (berkas
asli) yang akan dienkripsi. Dalam proses enkripsi, akan menghasilkan output
Proses dekripsi dilakukan untuk mengembalikan ciphertext menjadi berkas asli
(plaintext).
Gambar 3.7 Data Flow Diagram Level 1 Proses 1
Gambar 3.8 Data Flow Diagram Level 1 Proses 1 menerangkan tentang
sistem kerja dari proses konversi dan enkripsi. Langkah awal yaitu dengan
meng-input plaintext (berkas asli) yang akan dikonversi. Dalam proses konversi, akan
menghasilkan berkas dalam bentuk nilai sequent. Kemudian berkas hasil konversi
di enkripsi sehingga menghasilkan output berupa berkas hasil enkripsi yang
disebut ciphertext (berkas sudah teracak). Proses dekripsi dilakukan untuk
mengembalikan ciphertext menjadi berkas asli (plaintext).
Gambar 3.8 Data Flow Diagram Level 1 Proses 2
Gambar 3.9 Data Flow Diagram Level 1 Proses 2 menerangkan tentang
sistem kerja dari proses dekripsi. Langkah awal yaitu dengan meng-input
cipherteks (berkas sudah teracak) yang akan didekripsi. Dalam proses dekripsi,
konversi untuk mengembalikan berkas dalam bentuk teks. Proses dekripsi
dilakukan untuk mengembalikan ciphertext menjadi berkas asli (plaintext).
3.5.3 Spesifikasi Proses
Spesifikasi proses merupakan deskripsi dari setiap elemen proses yang
terdapat dalam program, yang meliputi nama proses, input, output dan
keterangan proses.
Penggunaan algoritma RSA pada simulasi kriptografi seperti telah
disebutkan, menerapkan beberapa proses yang saling berhubungan sehingga akan
membentuk suatu sistem utuh yang diharapkan. Berikut ini spesifikasi proses
aplikasi KomDat LAN.
Tabel 3.2 Spesifikasi Proses Aplikasi KomDat LAN
Proses Keterangan
No. Proses 1.1
Nama Proses Konversi ke bilangan sequent
Input Teks atau file dari pengguna berupa plainteks Output Teks atau file dalam bentuk bilangan sequent Logika Proses Begin
{pengguna memasukkan teks atau file berupa
plainteks}
End
Proses Keterangan
No. Proses 1.2
Input Teks atau file dalam bentuk bilangan sequent Output Teks atau file dalam bentuk cipherteks
Logika Proses Begin
{sistem memasukkan teks atau file berupa bilangan
sequent}
End
Proses Keterangan
No. Proses 2.1
Nama Proses Dekripsi teks atau file
Input Teks atau file berupa cipherteks
Output Teks atau file dalam bentuk bilangan sequent Logika Proses Begin
{sistem memasukkan teks atau file berupa bilangan
sequent}
End
Proses Keterangan
No. Proses 2.2
Nama Proses Konversi ke bentuk teks
Input Teks atau file dalam bentuk bilangan sequent Output Teks atau file dalam bentuk plainteks
Logika Proses Begin
{sistem memasukkan teks atau file berupa bilangan
sequent}
3.5.4 Kamus Data
Kamus data ikut berperan dalam perancangan dan pembangunan sistem
informasi. Berfungsi untuk menjelaskan semua data yang digunakan didalam
sistem. Berikut adalah kamus data untuk sistem informasi yang dibangun
Tabel 3.3 Kamus Data
Nama Data plainteks
Deskripsi Berisi teks atau file dalam bentuk plainteks
Struktur data Teks + File
Teks [A..Z | a..z | 0..9]
File [A..Z | a..z | 0..9]
Nama Data bilangan sequent
Deskripsi Berisi teks atau file plainteks yang dikonversi
Struktur data Bilangan sequent
Bilangan sequent [0..255]
Nama Data cipherteks
Deskripsi Berisi teks atau file yang sudah terenkripsi
Struktur data Teks + File
Teks [# | 0..9]
3.6 Perancangan Sistem
Perancangan akan dimulai setelah tahap analisis terhadap sistem selesai
dilakukan. Perancangan dapat didenifisikan sebagai penggambaran, perencanaan
dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah ke
dalam satu kesatuan yang utuh dan berfungsi. Tahapan ini menyangkut
mengkonfigurasi dari komponen-komponen perangkat lunak dan perangkat keras
dari suatu sistem sehingga setelah instalasi dari sistem akan benar-benar
memuaskan dari rancang bangun yang telah ditetapkan pada akhir tahap analisis
sistem. Alat bantu yang digunakan untuk menggambarkan perancangan sistem
secara umum yang akan dibangun. Untuk menjelaskan bagaimana suatu masukan
diproses pada sistem maka digunakan spesifikasi proses dan kamus data untuk