bab ii dasar teori - repository.uksw.edurepository.uksw.edu/bitstream/123456789/3852/3/t1... ·...
TRANSCRIPT
6
BAB II
DASAR TEORI
Bab ini berisi dasar teori pendukung yang digunakan sebagai acuan dalam
merealisasikan sistem. Teori – teori yang dibahas pada bab ini dibagi menjadi 2 bagian
yaitu perangkat keras dan perangkat lunak. Perangkat keras membahas teori yang
digunakan dalam perancangan modul e-STNK diantaranya adalah mikokontroler
ATMega 2560, modul GSM/GPRS SIMCOM SIM908, modul Liquid Crystal Display
(LCD) keypad, dan RFID. Perangkat lunak membahas mengenai teori yang digunakan
dalam perancangan perangkat lunak, diantaranya adalah Virtual Private Server (VPS)
untuk membangun aplikasi TCP server, basis data, komunikasi socket, komunikasi
GPRS, dan fungsi hash MD5.
2.1. Perangkat Keras
2.1.1. Mikrokontroler ATMega2560
ATMega2560 adalah mikrokontroler keluarga AVR yang dibuat oleh
Atmel Corporation. Untuk memprogram mikrokontroler ini digunakan compiler
Arduino. Gambar 2.1 menunjukkan konfigurasi pin mikrokontroler ATMega2560.
Beberapa fasilitas ATMega2560 yang digunakan adalah sebagai berikut :
1. 4Kbytes Internal EEPROM.
2. 8KBytes Static Random Memory (SRAM).
3. 256Kbytes Self-Programmable Flash.
4. 86 saluran input / output.
5. 4 buah Universal Asynchronus Receiver Transceiver UART Hardware.
6. Antarmuka SPI.
7. Bekerja pada frekuensi 16MHz dan memiliki kecepatan 16MIPS.
7
Gambar 2.1. Konfigurasi pin mikrokontroler ATMega 2560 [4]
2.1.2. Modul GSM/GPRS SIMCOM SIM908
SIM908 merupakan modul GSM/GPRS yang memiliki fitur – fitur sebagai
berikut :
a. Quad-Band 850/900/1800/1900 MHz.
b. GPRS Mobile Station Class B.
c. GPRS Multislot class 10 yang memiliki downlink maksimal 85.6 kbps
dan uplink maksimal 42.8 kbps.
d. Integrated TCP/IP Stack.
e. Dikontrol dengan menggunakan ATCommand melalui komunikasi
serial.
f. Dua mode sms yaitu teks dan Protocol Data Unit (PDU).
g. Mekanisme pengisian ulang baterai otomatis.
8
Gambar 2.2. Diagram konfigurasi pin SIM908 [5]
Gambar 2.2 menunjukkan konfigurasi pin modul SIM908. Modul SIM908
digunakan sebagai jembatan untuk berkomunikasi dengan server melalui
komunikasi GPRS menggunakan metode socket. Untuk mengontrol modul ini,
digunakan library GSM Shield arduino untuk SIM900 [10]. Contoh kode
komunikasinya dapat dilihat pada Kode Sumber 2.1.
1 #include "SIM900.h"
2 #include "inetGSM.h"
3
4 InetGSM inet;
5 bool started=false, serverConnected=false;
6 char strPaket[50], strRespon[50];
7 void setup()
8 {
9 Serial.begin(9600);
10 if (gsm.begin(19200))
11 {
12 Serial.println("GSM Connected");
13 started=true;
14 }
15 if(started)
16 {
17 if (inet.attachGPRS("internet", "", ""))
18 {
GN
D
GP
S-A
NT
GN
D
GN
D
GP
S-V
AN
T-I
N
GP
S-V
AN
T-O
UT
VC
HG
TE
MP
-BA
T
DT
R
TX
D
DC
D
RI
RX
D
CT
S
RT
S
GN
D
GN
D
VB
AT
VB
AT
GN
D
GND GND
GND GSM-ANT
PWRKEY GND
NC GND
GND I2C-SDA
DISP-CLK I2C-SCL
DISP-DATA NC
DISP-D/C NC
DISP-CS STATUS
GND NETLIGHT
PWM3
PWM2
PWM1
ADC
NC
GPS/DBG-RXD NC
SIM-DATA VDD-EXD
SIM-RST GND
SIM-CLK VRTC
SIM-VDD GND
SP
K1N
SP
K1P
MIC
1P
MIC
1N
SP
K2N
SP
K2P
MIC
2P
MIC
2N
NC
NC
GP
IO1/K
BR
0
GP
IO2/K
BR
1
GP
IO3/K
BR
2
GP
IO4/K
BC
0
GP
IO5/K
BC
1
GP
IO6/K
BC
2
GN
D
NC
NC
GN
D
GPS/DBG-TXD
NC
NC
NC
GND
80
79
78
77
70
69
76
75
74
73
64
1 60
68
67
66
65
72
71
2 59
3 58
4 57
5 56
6 55
7 54
9 52
8 53
11 50
12 49
10 51
14 47
SIM908
TOP VIEW13 48
15 46
16 45
17 44
21
22
23
24
25
26
27
28
29
30
31
32
37
33
34
35
36
18
19
20
43
42
41
63
62
61
38
39
40
9
19 Serial.println("status = GPRS ATTACHED");
20 if(inet.connectTCPOnly("180.246.73.191",1210))
21 {
22 Serial.println("Connected to server..");
23 serverConnected=true;
24 }
25 }
26 else Serial.println("status = Server disconnected");
27 }
28 else Serial.println("GSM not connected");
29 }
30
31 void loop()
32 {
33 if(serverConnected)
34 {
35 if(inet.tcpSend(strPaket,strRespon)>0)
36 {
37 Serial.print(“Respon dari server = ”);
38 Serial.println(strRespon);
39 }
40 else Serial.print(“TCP Connection problem..”);
41 }
42 }
Kode Sumber 2.1. Contoh program komunikasi metode socket pada
modul SIM908
Penjelasan Kode Sumber 2.1 adalah sebagai berikut :
Baris 1 dan 2 mereferensikan library GSM shield yang digunakan.
Baris 4, 5 dan 6 merupakan deklarasi variabel yang dibutuhkan.
InetGSM merupakan kelas pada library inetGSM.h yang merupakan
kelas utama yang digunakan untuk melakukan komunikasi socket.
Baris 9 merupakan inisialisasi serial dengan baudrate 9600.
Baris 10 merupakan inisialisasi GSM dengan baudrate 19200. Variabel
gsm merupakan variabel dari kelas SIMCOM900 yang dideklarasikan
pada library SIM900.h. Kelas ini digunakan untuk menangani
komunikasi jaringan GSM.
Baris 17 menunjukkan bahwa modem SIM908 sedang berusaha
terkoneksi ke jaringan GPRS dengan APN (Access Point Name)
“internet”.
Baris 20 menunjukkan modem SIM908 sedang melakukan komunikasi
socket ke server dengan IP server 180.246.73.191 dan port 1210.
10
Baris 35 menunjukkan pengiriman dan penerimaan data dengan
menggunakan komunikasi socket. Variabel strPaket merupakan paket
data yang dikirimkan ke server, sedangkan variabel strRespon
merupakan balasan yang diterima dari server.
2.1.3. Modul LCD Keypad
LCD dan keypad menggunakan modul LCD Keypad Shield dari DFRobot.
Modul ini terdiri dari sebuah LCD karakter 2x16 dan antarmuka keypad yang
terdiri atas 6 buah push button. LCD karakter tersebut mendukung 4 bit mode data
dan digunakan untuk menampilkan menu serta informasi dari berbagai proses
yang dilakukan oleh modul e-STNK. Untuk mengakses modul ini, digunakan
library LiquidCrystal pada arduino. Contoh penggunaan modul ini dapat dilihat
pada Kode Sumber 2.2.
1 #include "LiquidCrystal.h"
2
3 LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
4
5 void setup()
6 {
7 lcd.begin(16,2);
8 lcd.clear();
9 lcd.setCursor(0,0);
10 lcd.print(“E-STNK SYSTEM”);
11 }
Kode Sumber 2.2. Contoh program penggunaan modul LCD
Penjelasan Kode Sumber 2.2 adalah sebagai berikut :
Baris 1 mereferensikan library LiquidCrystal yang digunakan.
Baris 2 merupakan deklarasi variabel LiquidCrystal.
Baris 7 merupakan inisialisasi LCD.
Baris 8 melakukan clear pada LCD.
Baris 9 memindahkan cursor LCD ke posisi (0,0).
Baris 10 menuliskan “E-STNK SYSTEM” pada LCD dimulai dari
koordinat (0,0).
2.1.4. RFID
RFID atau Radio Frequency Identification adalah sebuah metode
identifikasi terhadap suatu obyek melalui data yang ditransmisikan melalui
11
frekuensi radio. Sistem tersebut minimal memerlukan sebuah tag (yang berfungsi
sebagai transponder), sebuah reader (yang berfungsi sebagai interrogator), dan
sebuah antenna (yang berfungsi sebagai coupling device). Reader biasanya
terhubung dengan dengan sebuah host computer atau perangkat lainnya yang
memiliki kecerdasan untuk memproses lebih lanjut tag data dan memutuskan
untuk mengambil suatu tindakan.
Salah satu elemen penting pada RFID adalah data transfer. Data transfer
terjadi ketika terjadi hubungan antara sebuah tag dengan sebuah reader, yang
dikenal dengan coupling, melalui antena baik yang terpasang pada tag tersebut
maupun pada reader seperti yang diilustrasikan pada Gambar 2.3.
Gambar 2.3. Hubungan antara tag, reader dan antena RFID [6]
Elemen penting lainnya dalam sistem RFID adalah frekuensi untuk operasi
antara tag dan reader. Pemilihan suatu frekuensi didorong oleh kebutuhan aplikasi
seperti kecepatan, akurasi dan kondisi-kondisi lingkungan, yang mungkin
melibatkan juga regulasi dan standar yang mengatur suatu aplikasi.
Adapun frekuensi-frekuensi yang biasa digunakan pada RFID adalah
sebagai berikut :
Low Frequency (LF): kurang dari 135KHz
High Frequency (HF): pada 13.56 MHz
Ultra High Frequency (UHF) antara 433 MHz s/d 860 to 930 MHz
Microwave pada 2.45 GHz dan 5.8 GHz
Modul RFID MFRC522 yang digunakan bekerja pada frekuensi 13.56
MHz sehingga sudah mendukung untuk baca tulis data. Memiliki jarak
pembacaan kartu tag maksimum 5 cm dari antena. Kartu tag yang adalah mifare
ISO 14443A dengan kapasitas 1KB. Modul ini berkomunikasi dengan
mikrokontroler dengan menggunakan komunikasi SPI. Untuk mengontrol RFID
MFRC522 digunakan library RFID arduino [11]. Contoh penggunaan modul ini
dapat dilihat pada Kode Sumber 2.3.
12
1 #include <SPI.h>
2
3 unsigned char flag;
4 unsigned char serNum[5];
5 unsigned char strData[32];
6 char serial[20];
7 char data[32];
8
9 void setup()
10 {
11 Serial.begin(9600);
12 SPI.begin();
13 MFRC522_Init();
14 }
15
16 void loop()
17 {
18 flag=0;
19 while(1)
20 {
21 ReadRFID_Data();
22 if(flag==1)break;
23 }
24 sprintf(serial,"%i%i%i%i%i",serNum[0],serNum[1],
25 serNum[2],serNum[3],serNum[4]);
26 for(int i=0;i<32;i++) strData[i]=(strHash[i]);
27 Serial.print(“Nomor serial kartu = “);
28 Serial.println(serial);
29 Serial.print(“Data pada kartu = “);
30 Serial.println(strData);
31 }
Kode Sumber 2.3. Contoh program pembacaan data pada modul
RFID MFRC522
Penjelasan Kode Sumber 2.3 adalah sebagai berikut :
Baris 1 mereferensikan library SPI yang dibutuhkan untuk mengakses
modul RFID.
Baris 3 sampai 7 mendeklarasikan variabel – variabel yang dibutuhkan.
Baris 11 menginisialisasi serial dengan baudrate 9600.
Baris 12 menginisialisasi SPI.
Baris 13 adalah fungsi untuk menginisialisasi modul RFID.
Baris 18 mereset nilai flag menjadi 0.
Baris 19 memulai perulangan tak berhingga untuk melakukan
pembacaan data. Hal ini dilakukan karena modul RFID menunggu user
untuk mendekatkan kartu tag.
13
Baris 21 adalah fungsi untuk membaca data pada kartu tag yang
didekatkan. Jika data berhasil dibaca, didalam fungsi tersebut akan
menyimpan nomor serial kartu pada variabel serNum dan data yang
tersimpan di dalam kartu pada variabel strData serta mengubah nilai
flag menjadi 1 tanda bahwa pembacaan data berhasil dilakukan.
Baris 22 melakukan pengecekan terhadap variabel flag, bila
pembacaan data berhasil dilakukan, maka akan break dari perulangan
tak berhingga.
Baris 24 sampai 26 melakukan konversi nomor serial kartu dan data
kartu tag dari tipe data unsigned char menjadi char.
Baris 27 sampai 30 menampilkan data yang dibaca pada serial.
2.2. Perangkat Lunak
2.2.1. Virtual Private Server
Virtual Private Server (VPS) adalah mesin virtual yang disediakan oleh
perusahaan yang menawarkan jasa internet hosting. VPS berjalan di atas sebuah
software yang terdapat pada sebuah komputer fisik yang sama dengan pelanggan
lain. VPS bekerja layaknya sebuah komputer fisik dan dapat diatur berdasarkan
kebutuhan masing-masing penggunanya.
Pada model server virtual, software virtualization menciptakan lebih dari
satu komputer virtual yang memiliki harddisk, memori dan kartu jaringan yang
terpisah kepada beberapa user walaupun berasal dari sebuah komputer fisik yang
sama, tetapi melalui software virtualization ini server virtual dari masing-masing
user memiliki tingkat security yang lebih tinggi dan terpisah dari virtual server
yang lain. Masing masing server virtual dapat menjalankan sendiri sistem operasi
yang disesuaikan dengan kebutuhan user dan dapat secara indepen untuk
dijalankan ulang (reboot).
Aplikasi TCP server yang dijalankan di VPS bertugas untuk menerima dan
mengolah paket data dari modul e-STNK serta memberikan balasan dari request
yang diminta. Selain aplikasi TCP server, basis data juga dipasang pada VPS ini
sehingga mempercepat dalam proses transaksi data.
14
2.2.2. Basis Data
Basis data merupakan sekumpulan data berisi informasi yang terdapat
dalam tabel yang saling berhubungan. Sedangkan tabel merupakan sekumpulan
entity data yang masing – masing berisi informasi. Pengolahan data dan
perancangan basis data yang tepat akan menghasilkan informasi yang berguna,
memiliki integritas data yang tinggi serta memudahkan dalam proses pencarian
data.
Standar bahasa yang digunakan untuk mengakses dan melakukan
manipulasi data dalam sistem basis data adalah SQL (Structured Query
Language). SQL dieksekusi pada Database Management System (DBMS). SQL
ini dipakai oleh berbagai macam DBMS seperti Microsoft Access, MySQL
Server, DB2, Informix, Microsoft SQL Server, Oracle, dan lain – lain. Pada
skripsi ini digunakan Microsoft SQL Server sebagai basis data server.
Tabel 2.1 menunjukkan ringkasan beberapa daftar sintaks – sintaks yang
umum digunakan dalam pengaksesan atau manipulasi basis data.
Tabel 2.1. Sintaks SQL yang digunakan (bersambung)
STATEMENT KEGUNAAN SINTAKS
INSERT INTO Memasukkan data-
data ke dalam kolom-
kolom suatu tabel
INSERT INTO Mahasiswa(NIM,
Nama, AlamatAsal,
TempatLahir, TanggalLahir,
AlamatTinggal, NoTelepon,
Fak_Key, Angkatan,
Keterangan) VALUES(@NIM,
@Nama, @AlamatAsal,
@TempatLahir, @TanggalLahir,
@AlamatTinggal, @NoTelepon,
@Fak_Key, @Angkatan,
@Keterangan)
SELECT Menampilkan data
kolom tertentu
SELECT * FROM Mahasiswa
UPDATE Memperbaharui data UPDATE Mahasiswa SET
NIM=@NIM, Nama=@Nama,
AlamatAsal=@AlamatAsal,
TempatLahir=@TempatLahir,
TanggalLahir=@TanggalLahir,
AlamatTinggal=@AlamatTinggal,
NoTelepon=@NoTelepon,
Fak_Key=@Fak_Key,
Angkatan=@Angkatan,
Keterangan=@Keterangan WHERE
Mahasiswa_Key=@Key
15
Tabel 2.1. Sintaks SQL yang digunakan (lanjutan)
STATEMENT KEGUNAAN SINTAKS
DELETE
FROM
Menghapus baris-
baris tertentu pada
tabel sesuai kondisi
yang disyaratkan
DELETE FROM Mahasiswa
WHERE Mahasiswa_Key=@Key
AS Memberikan nama
alias untuk tabel
SELECT A.*, B.Fak_Nama,
B.Fak_Kode FROM Mahasiswa A,
Fakultas B WHERE
A.Fak_Key=B.Fak_Key
WHERE Memfilter akses atau
manipulasi data
berdasar kondisi
tertentu
SELECT *
FROM Mahasiswa
WHERE Mahasiswa_Key=@Key
AND Memfilter akses atau
manipulasi data
berdasar kondisi-
konsisi tertentu
SELECT A.*, B.Fak_Nama,
B.Fak_Kode FROM Mahasiswa A,
Fakultas B WHERE
A.Fak_Key=B.Fak_Key AND
A.Mahasiswa_Key=@Key
ORDER BY Menciptakan suatu
acuan urutan pada
kolom tertentu
SELECT A.*, B.Fak_Nama,
B.Fak_Kode FROM Mahasiswa A,
Fakultas B WHERE
A.Fak_Key=B.Fak_Key ORDER BY
Fak_Kode, NIM, Nama
BETWEEN Memfilter akses atau
manipulasi data
dengan suatu batasan
nilai
SELECT * FROM ParkirOut WHERE
Tanggal BETWEEN @tanggalAwal
AND @tanggalAkhir
GROUP BY Membuat suatu
pengelompokan
tampilan berdasar
kolom tertentu
SELECT COUNT(STNK_Key) AS
JUMLAH, TANGGAL FROM
ParkirOut WHERE
year(Tanggal)=@tahun AND
month(Tanggal)=@bulan GROUP
BY Tanggal
Pada Microsoft SQL Server, terdapat fitur replikasi yang memungkinkan
basis data pada sebuah server dapat disinkronisasi dengan basis data pada server
fisik yang lain. Fitur ini dimanfaatkan untuk membangun basis data pada server
cadangan, sehingga ketika server utama mengalami gangguan dan tidak dapat
online, maka server cadangan akan menggantikan fungsi dari server utama serta
melakukan replikasi data yang masuk ke database server cadangan. Hal ini
dimaksudkan agar ketika server utama bisa kembali online, basis data pada server
cadangan segera melakukan sinkronisasi agar data pada server utama kembali
utuh. Untuk melakukan replikasi, server utama dan server cadangan harus berada
16
pada jaringan yang sama. Oleh karena itu dibuat sebuah jaringan Virtual Private
Network (VPN) sehingga kedua server dapat berada dalam satu jaringan yang
sama.
Terdapat empat komponen penting dalam melakukan replikasi basis data
yaitu [12]:
Publisher, merupakan basis data yang akan di replikasi setiap kali
terjadi perubahan data.
Subscriber, merupakan basis data yang menjadi target replikasi dari
publisher.
Distribution database, merupakan basis data yang didalamnya
terdapat semua perintah – perintah replikasi. Setiap kali terjadi
perubahan data pada publisher, SQL Server membuat perintah –
perintah replikasi pada distribution database yang kemudian akan
dilanjutkan ke subscriber.
Articles, merupakan tabel pada publisher yang akan direplikasi.
Gambar 2.4. Prinsip kerja dari transactional replication [13]
Gambar 2.4 menunjukkan prinsip kerja dari transactional replication.
Dapat dilihat bahwa terdapat dua buah SQL Agent yang bekerja pada replikasi ini,
17
yaitu Log Reader Agent yang membaca log perubahan data pada publisher lalu
mengirimkannya ke distribution database. Agen yang kedua adalah Distribution
Agent yang akan meneruskan log tersebut ke subscriber.
2.2.3. Komunikasi Socket
Socket merupakan mekanisme komunikasi yang memungkinkan terjadinya
pertukaran data antar program atau proses, baik dalam satu mesin maupun antar
mesin melalui jaringan berbasis TCP/IP. Beberapa contoh aplikasinya adalah
fasilitas- fasilitas yang disediakan oleh mesin unix seperti telnet, rlogin, ssh, ftp,
dan lain lain yang menggunakan socket sebagai sarana komunikasi mereka.
Komunikasi socket diciptakan terutama untuk menjembatani komunikasi antara
dua buah program yang dijalankan pada mesin yang berbeda.
Pemrograman socket merupakan salah satu jenis pemrograman jaringan
komputer yang memiliki model client-server dan menggunakan socket sebagai
cara untuk pertukaran datanya. Untuk menciptakan sebuah komunikasi diantara
dua node, salah satu node harus memulai lebih dulu dan node yang lain harus
menunggu. Dalam pemrograman jaringan komputer node yang bertugas untuk
membangun koneksi disebut dengan client sedangkan node yang menunggu
adanya komunikasi yang masuk disebut server. Pola desain dasar untuk aplikasi
client-server berbasis komunikasi socket digambarkan pada Gambar 2.5.
Gambar 2.5. Pola desain dasar komunikasi socket [8]
18
Penggunaan komunikasi socket berfungsi sebagai jembatan komunikasi
antara modul e-STNK dengan aplikasi TCP server pada komputer server.
Komputer server memiliki public IP serta port 1210 yang dibuka sehingga
SIM908 pada modul e-STNK dapat membangun komunikasi socket dengan
alamat public IP dan port tersebut. Komunikasi socket ini juga dipilih karena
dapat melewatkan data berupa string, sehingga memudahkan pemrosesan paket
data.
2.2.4. Komunikasi GPRS
General Packet Radio Service (GPRS) merupakan sebuah layanan paket
data pada jaringan mobile GSM. GPRS dikembangkan untuk memenuhi tuntutan
perkembangan pesat dari jumlah pemakai internet. Keuntungan dari GPRS adalah
layanan ini menyediakan layanan data menggunakan jaringan radio GSM,
sehingga operator GSM dapat menerapkan layanan ini tanpa mengubah
keseluruhan infrastruktur. Selain itu, GPRS juga memungkinkan operator jaringan
untuk menerapkan arsitektur jaringan berbasis IP untuk aplikasi data mobile secara
wireless. GPRS dapat dikelompokkan menjadi 3 kelas yang memiliki kemampuan
yang berbeda :
Class A, perangkat mobile dapat melakukan / menerima panggilan
secara simultan pada jaringan GSM dan GPRS.
Class B, perangkat mobile dapat melakukan / menerima panggilan pada
jaringan GSM atau GPRS, tetapi tidak simultan.
Class C, perangkat mobile dapat bekerja pada jaringan GPRS atau
GSM yang dipilih secara manual.
GPRS diimplementasikan pada modul e-STNK agar dapat berkomunikasi
dengan server menggunakan metode socket.
2.2.5. Fungsi Hash MD5
Hash merupakan salah satu algoritma kriptografis satu arah yang
digunakan untuk mengubah suatu plaintext (teks jelas) menjadi chipertext (teks
yang tersandi) [14]. Salah satu algoritma hash yang umum digunakan adalah MD5
dimana algoritma ini mengubah sebuah teks jelas ke teks yang jumlahnya tetap.
MD5 menghasilkan 128 bit nilai hash dan direpresentasikan ke dalam
19
heksadesimal sepanjang 32. Pada hash MD5, suatu teks yang telah di-hash dapat
di-dehash dengan precomputed table yaitu tabel yang berisi hasil hash dari banyak
teks yang telah di hash sebelumnya. Selain itu proses dehash juga dilakukan
dengan melakukan brute force atau dictionary attack. Oleh karena itu, fungsi hash
MD5 yang digunakan diperkuat dengan menggunakan salt, yaitu byte acak yang
ditambahkan ke plaintext sebagai tambahan input yang menyebabkan nilai hash
akan berubah jauh dari hash sebelumnya tanpa salt.
Fungsi hash MD5 ini diterapkan pada aplikasi server untuk mengubah nilai
nomor polisi kendaraan yang akan disimpan di kartu tag, serta untuk melakukan
verifikasi kartu tag tersebut. Untuk itu, dibuat sebuah class SimpleHash yang
memanfaatkan library System.Security.Cryptography pada .Net
framework. Contoh penggunaan class SimpleHash yang dibangun dapat dilihat
pada Kode Sumber 2.4.
1 string ComputeHash(string PlainText)
2 {
3 string result = SimpleHash.ComputeHash(PlainText,
4 “MD5”);
5 return result;
6 }
7
8 bool VerifyHash(string PlainText, string HashValue)
9 {
10 bool verify = SimpleHash.VerifyHash(PlainText, “MD5”,
11 HashValue);
12 return verify;
13 }
14
Kode Sumber 2.4. Contoh program penggunaan class SimpleHash
Penjelasan Kode Sumber 2.4 adalah sebagai berikut :
Fungsi ComputeHash pada baris 1 sampai baris 6 merupakan fungsi
yang akan mengubah plaintext menjadi nilai hash MD5 yang telah
dimodifikasi dengan penyisipan salt. Fungsi ini memberikan kembalian
berupa string.
Fungsi VerifyHash pada baris 8 sampai baris 13 merupakan fungsi
yang digunakan untuk melakukan verifikasi apakah nilai hash yang
dicek itu valid atau tidak. Fungsi ini akan memberikan kembalian
berupa boolean “True” jika nilai hash valid, dan “False” jika nilai hash
tidak valid.