3.2.5 DFD Manajemen Pengguna Level 2
Berikut ini adalah DFD level 2 dari proses manajemen atas pengguna lain:
Tambah pertemanan
6.1 sender
receiver
Tbl_nic_list Id pengguna
Id pengguna Status tambah pertemanan
Status tambah pertemanan Id pengguna
Status tambah pertemanan
Gambar 3.6
DFD Manajemen Pengguna Level 2
Dari  gambar  3.6  dapat  dijelaskan  bahwa  proses  menambah  pertemanan  pada NIC  Messenger  yaitu  dengan  user  mengirim  id_pengguna  melalui  halaman  list
pengguna  NIC  Messenger,  kemudian  proses  tambah  pertemanan  akan  menyimpan id_pengguna dan id_user kedalam database.
3.3 Flowchart
Flowchart adalah  penggambaran  dari  urutan-urutan  dan  langkah-langkah  prosedur
pada sebuah program dalam tampilan grafik Setiawan, 2011. Flowchart dibutuhkan bagi  seorang  developer  software  untuk  memudahkan  developer  tersebut  dalam
mengembangkan  aplikasi,  dengan  adanya  flowchart    developer  dapat  menyampaikan gambaran  dasar  dari  rancangan  aplikasi  yang  dibangun  kepada  klien  atau  kepada
anggota  tim  lainnya  yang  ikut  mengembangkan  aplikasi  secara  bersama,  dengan demikian kesalahan komunikasi antar anggota tim dapat dihindari.
Adapun  fungsi  lainnya  dari  flowchart  ini  dibuat  adalah  agar  developer  atau pengembang  aplikasi  perorangan  dapat  melihat  kembali  tahapan-tahapan  yang  akan
dikerjakan jika suatu saat terjadi kesalahan dalam perancangan aplikasi. Berikut in adalah bentuk-bentuk flowchart atau diagram alur yang menjelaskan
alur  proses  NIC  Messenger  dari  awal  hingga  akhir,  termasuk  proses  enkripsi  dari plainteks  menjadi  terenkripsi  menggunakan  algoritma  One  Time  Pad,  dan
mengenkripsi  kunci  One  Time  Pad  yang  digunakan  dengan  algoritma  RSA,  hingga proses dekripsi kembali menjadi pesan semula.
Universitas Sumatera Utara
3.3.1 Flowchart Sistem
Berikut ini adalah flowchart dari sistem NIC Messenger:
Username Password
Fullname Email
Phone number Username
Password
Uji autentikasi login
Apa email terdaftar ?
Password dikirimkan
ke email Masukkan username,
password, fullname, email, phone number
Masukkan username
dan password
Data disimpan kedalam
database Ya
Benar Salah
Ya Tidak
selesai Menampilkan
- halaman login - menu daftar
- menu lupa password
Mulai
Masukkan email
Email Login ?
Lupa password?
Tidak
Ya Registrasi?
Tidak
Ya
Halaman Utama
Tidak
Gambar 3.7 Flowchart Sistem
Universitas Sumatera Utara
Pilih chat dari teman
Ambil pesan dari database
- Id_chat, - Chat
Berdasarkan - Id_sender
- Id_receiver
Kirim pesan baru?
Masukkan pesan
Simpan pesan ke database
- Id_sender - Id_receiver
- Chat_terenkripsi Tampilkan
daftar teman Pilih teman
Id_user, Id_teman
Proses hapus teman
Tampilkan daftar pengguna
Pilih pengguna
Tambah teman?
Id_user, Id_teman
Proses tambah teman
Ya Tidak
Ya Ya
Tidak Ya
Tidak
Selesai Mulai
Menampilkan pilihan
- Chat - Nic
- List
Chat ? Ya
Nic ? Tidak
List ? Tidak
Ya Ya
Tidak
Kirim Pesan?
Hapus Teman? Tidak
Proses Dekripsi
Proses Enkripsi
Gambar 3.8 Flowchart Halaman Utama
Universitas Sumatera Utara
Dari gambar 3.8 dapat dijelaskan bahwa, software memulai dengan mengecek apakah pengguna sudah memiliki akun NIC  Messenger atau belum, jika sudah maka
user diharuskan  untuk  melakukan  proses  login,  jika  belum  maka  user  harus
melakukan proses registrasi pengguna baru. Setelah  itu  user  melakukan  proses  login,  jika  login  diterima  maka  user  akan
ditampilkan  pada  halaman  utama  dengan  tiga  fitur  yaitu:  Chat  yang  berfungsi  untuk menampilkan  daftar  chat  terakhir,  NIC  yang  berfungsi  untuk  menampilkan  daftar
teman  dan  LIST  yang  berfungsi  untuk  menampilkan  daftar  semua  pengguna  NIC Messenger
. Jika login pengguna tidak berhasil, maka user dapat mengulangi kembali menginput kombinasi username dan password atau melakukan proses lupa password.
Jika user melakukan proses lupa password, user harus menginput email dan jika email tersebut  telah  terdaftar,  maka  sistem  akan  mengirim  password  pengguna  ke  email
tersebut. Setelah  berhasil  login,  user  dapat  memilih  untuk  mengakses  halaman  NIC,
LIST atau Chat. Jika mengakses halaman NIC, maka sistem akan menampilkan daftar
teman.  Jika  user  memilih  satu  temannya,  maka  sistem  akan  menampilkan  pilihan untuk teman tersebut yaitu: mengirim pesan dan menghapus pertemanan. Jika memilih
untuk  mengirim  pesan,  maka  sistem  akan  mengalihkan  user  ke  halaman  Chat  dan menjadikan  user  tersebut  sebagai  sender.  Jika  user  memilih  untuk  menghapus
pertemanan,  maka  sistem  akan  menghapus  pertemanan  antara  user  dan  teman berdasarkan id_user dan id_teman.
Pada  halaman  Chat,  sender  dapat  mengirimkan  pesan  kepada  receiver, pertama  sekali  pesan  yang  dikirim  oleh  sender  akan  dienkripsi  terlebih  dahulu  oleh
sistem  kemudian  menyimpannya  kedalam  database,  setelah  itu  sistem  akan mengambil  pesan  terenkripsi  tersebut  dan  mendekripsi  pesan  tersebut  menjadi  pesan
asli  kepada  receiver.  Pada  halaman  chat  user  sender  atau  receiver  juga  dapat menghapus  pesan  secara  keseluruhan.  Jika  user  memilih  untuk  menghapus  pesan,
maka sistem akan menghapus pesan dari database sesuai id_user dan id_receiver. Kemudian  pada  halaman  LIST,  sistem  akan  menampilkan  daftar  semua
pengguna NIC Messenger, jika user ingin menambahkan salah satu pengguna sebagai teman,  maka  sistem  akan  menyimpan  id_user  dan  id_pengguna  tersebut  kedalam
database .
Universitas Sumatera Utara
3.3.2 Flowchart Enkripsi Pesan
Berikut ini adalah flowchart dari proses enkripsi pesan:
Mulai
Enkripsi One Time Pad
Enkripsi RSA 512-Bit
Selesai
Gambar 3.9
Flowchart Proses Enkripsi
Berdasarkan  flowchart  pada  gambar  3.9,  proses  enkripsi  melalui  dua  tahapan yaitu  proses  enkripsi  menggunakan  One  Time  Pad,  dimana  pada  tahapan  ini  sistem
akan mengenkripsi pesan asli, kemudian tahapan kedua adalah enkripsi menggunakan RSA  512-Bit  dimana  sistem  akan  menggunakan  RSA  512-Bit  untuk  mengenkripsi
kunci  One  Time  Pad  yang  digunakan  untuk  mengenkripsi  pesan  asli.  Berikut  ini adalah  gambar  3.10  yang  merupakan  flowchart  dari  enkripsi  One  Time  Pad,  gambar
3.11  merupakan  flowchart  dari  enkripsi  RSA  512-Bit  ,  dan  gambar  3.12  merupakan flowchart dari algoritma Rabin-Miller sebagai pembangkit bilangan prima.
Universitas Sumatera Utara
P =Pesan n = panjang pesan
X = nilai acak sementara
Key = list nilai acak T = waktu dlm milidetik
Apakah i = n
i = 0
X = a  X + c + t M
I += 1 X[i] = X
Benar Salah
P = Pesan Key = kunci
otp K = jumlah
karakter ASCII
i = 0
Apakah i = n
C = P[i] + Key[i] k
I += 1 C[i] = C
Benar Salah
Crypted_text = C
OTPKey = X Mulai
A A
Selesai
Gambar 3.10 Enkripsi One Time Pad
Universitas Sumatera Utara
E = sebuah bilangan acak antara angka 3 sampai Phi-1
apakah GCDe, phi == 1
Salah N = PQ
Phi = P-1 Q-1
Benar Gunakan e dan n
C = P[i]e mod N
i = 0
apakah i = J
i += 1 C[i] = C
Benar Salah
Crypted_OTPKey = C
Selesai d
≡
e-1 mod Phi
B B
Mulai
Uji Bilangan Prima
M = OTPKey J = pjg_pesan
Gambar 3.11 Enkripsi RSA 512-Bit
Universitas Sumatera Utara
n = bilangan acak 256 bit
apakah GCDP-1,
Q-1 == 1 Salah
b = 1 apakah
2b  n-1 == 0
b = b + 1 Salah
a = bilangan acak m = n-1  2b
z = am mod n j = 0
Benar
apakah z == 1
atau z == n-1
N = Prima
z = am mod n apakah
z  0 dan z == 1
N = Bukan Prima
j = j + 1 apakah
j  b dan z = n-1
z = z2 mod n apakah
z == n-1 N = Prima
Z = z2 mod n apakah
z = b dan z = n-1
N = Bukan Prima
Benar Salah
Benar Salah
Salah
Benar
Benar Salah
Benar Salah
Input N
Selesai Benar
Apakah P == Q
P = 0 Q = 0
P = N Q = N
Salah Benar
Selesai
C Salah
C
Salah
Gambar 3.12 Uji Bilangan Prima
Universitas Sumatera Utara
Dari  gambar  3.10  dapat  dijelaskan  sebuah  proses  enkripsi  pesan,  pertama sekali  sistem  akan  menghitung  panjang  pesan  yang  dikirim  sender,  kemudian
melakukan proses pengambilan nilai-nilai acak sebagai kunci enkripsi One Time Pad. Lihat  rumus  Linear  Congruential  Generator  untuk  enkripsi  One  Time  Pad
pada rumus nomor 3. Dimana:
X   = Bilangan acak sementara yang telah didapat untuk dikalkulasikan kembali.
a   = Bilangan pengali
c =
Bilangan pencacah t
= Waktu dalam milidetik
M  = Batas maksimal
Variabel a, c dan m bersifat tetap, variabel ini digunakan untuk menghasilkan nilai  acak  yang  benar-benar  acak  yang  didapat  dari  algoritma  Linear  Congruential
Generators plus Time Schneier, 1996.
Misal dilakukan proses LCG + Time untuk 5 buah nilai acak:   X = 1; a = 105; c = 71; M = 1024; t = milidetik
  Lakukan perulangan sebanyak 5 kali dengan setiap kali perulangan melakukan
kalkulasi X[i+1] = a  X + c + t mod M   X[0] = 105  441 +71 + 891145 mod 1024 = 441
  X[1] = 105  561 +71 + 891145 mod 1024 = 561   X[2] = 105  873 +71 + 891145 mod 1024 = 873
  X[3] = 105  865 +71 + 891145 mod 1024 = 865   X[4] = 105  25 +71 + 891145 mod 1024 = 25
  Jadi nilai acak yang didapat adalah 441, 561, 873, 865, 25   Nilai  acak  ini  digunakan  sebagai  kunci  enkripsi  dan  dekripsi  pada  algoritma
One Time Pad
Setelah sistem mendapatkan kunci Algoritma One Time Pad melalui algoritma LCG  yang  dikombinasikan  dengan  waktu,  selanjutnya  sistem  akan  mengenkripsi
pesan yang akan dikirim menggunakan Algoritma One Time Pad.
Universitas Sumatera Utara
Lihat rumus algoritma One Time Pad pada rumus nomor 10. Dimana:
C  = Array penyimpan ciphertext
P =
Plainteks K  =
Kunci untuk enkripsi One Time Pad yang didapat dari algoritma LCG+Time N  =
Batas banyaknya bilangan ASCII yang digunakan Misal dilakukan proses enkripsi dengan plainteks “DASAR”:
  Ubah plainteks menjadi bilangan ASCII dan dibagi dalam blok-blok P   P1 = D = 68
  P2 = A = 65   P3 = S = 83
  P4 = A = 65   P5 = R = 82
  Kemudian setiap blok dilakukan enkripsi   C1 = 68 + 441 mod 255 = 254
  C2 = 65 + 561 mod 255 = 116   C3 = 83 + 873 mod 255 = 191
  C4 = 65 + 865 mod 255 = 165   C5 = 82 + 25 mod 255 = 107
  Jadi pesan terenkripsi adalah 254 116 191 165 107
Setelah mendapatkan pesan terenkripsi, sistem mengenkripsi kunci One Time Pad yang didapat sebelumnya menggunakan algoritma RSA.
Lihat rumus algoritma enkripsi RSA pada rumus nomor 1. Dimana:
C  = Array penyimpan kunci terenkripsi
P =
Kunci asli E  =
Kunci publik RSA N  =
Kunci publik RSA
Universitas Sumatera Utara
Berdasarkan  gambar  3.11  pertama  sekali  sistem  akan  membangkitkan  kunci RSA sebagai berikut:
  Ambil dua bilangan prima sebagai nilai P dan Q   Misal nilai P = 38183 dan Q = 48017, kemudian dilakukan pengujian bilangan
prima dengan Algoritma Rabin-Miller sesuai gambar 3.10   Kemudian lakukan pengujian apakah kondisi dari GCDP-1, Q-1 = 1, jika Ya
maka  lanjutkan,  jika  Tidak  maka  lakukan  pengambilan  dua  bilangan  prima untuk P dan Q kembali
  Hitung nilai N = PQ = 1833433111   nilai
ɸn = P-1Q-1 = 1833346912   Kemudian sistem akan mencari nilai acak yang memenuhi PBBe,
ɸn = 1, maka didapat E = 23
  Kemudian sistem akan mencari nilai untuk D.   Dengan rumus:
D
Ξ
E
-1
mod ɸn
12   D
Ξ
23
-1
mod 1833346912   D = 1036239559
Setelah  sistem  mendapatkan  kunci  publik  dan  rahasia  dari    Algoritma  RSA, dilakukan  proses  enkripsi  pada  kunci  yang  digunakan  Algoritma  One  Time  Pad
sebelumnya yaitu 441 561 873 865 25 , sebagaimana berikut:   Ubah kunci One Time Pad yang telah didapat kedalam bentuk blok-blok P
  P1 = 441   P2 = 561
  P3 = 873   P4 = 865
  P5 = 25
Universitas Sumatera Utara
Kemudian enkripsi setiap blok-blok M menggunakan RSA   C1 = 441
23
mod 1833433111 = 1182022997   C2 = 561
23
mod 1833433111 = 1499756931   C3 = 873
23
mod 1833433111 = 1604525808   C4 = 865
23
mod 1833433111 = 496575193   C5 = 25
23
mod 1833433111 = 1788289593   Maka  kunci  One  Time  Pad  terenkripsi  adalah  1182022997  1499756931
1604525808 496575193 1788289593   Kemudian  simpan  pesan  terenkripsi,  kunci  One  Time  Pad  terenkripsi  dan
kunci RSA kedalam database berdasarkan id_chat
3.3.3 Flowchart Dekripsi Pesan
Berikut ini adalah flowchart dari proses dekripsi pada pesan :
Mulai
Dekripsi RSA 512-Bit
Dekripsi One Time Pad
Selesai
Gambar 3.13
Flowchart Proses Dekripsi
Universitas Sumatera Utara
Berdasarkan gambar 3.13 dapat dijelaskan bahwasanya, proses dekripsi dalam sistem terdapat dua tahapan yaitu, proses dekripsi kunci OTP menggunakan RSA 512-
Bit kemudian dekripsi pesan asli menggunakan  One Time Pad.
Berikut  ini  adalah  flowchart  dari  proses  dekripsi  kunci  OTP  yang  digunakan dalam mengenkripsi pesan asli menggunakan RSA 512-Bit.
P = C[i]d mod N i = 0
apakah i = J
i += 1 P[i] = P
Benar Salah
C = Crypted_OPKey J = Panjang_OTPKey
d dan n = RSAKey
OTPKey = P Mulai
Selesai
Gambar 3.14 Dekripsi RSA 512-Bit
Universitas Sumatera Utara
Berikut ini adalah flowchart proses dekripsi menggunakan One Time Pad.
i = 0
apakah i = N
P = C[i] - Key[i]  k i += 1
P[i] = P Benar
Salah C = crypted_text
N = panjang pesan K = jumlah karakter
ASCII Key = OTPKey
P = Pesan asli
Selesai Mulai
Gambar 3.15
Dekripsi One Time Pad
Dari  gambar  3.14  dapat  dijelaskan  langkah-langkah  proses  dekripsi  pesan, pertama  sekali  sistem  akan  mengambil  pesan  terenkripsi,  kunci  algoritma  One  Time
Pad yang terenkripsi dan kunci algoritma RSA dari database berdasarkan id_chat.
Adapun proses dekripsi pesan adalah sebagai berikut:   Sistem melakukan perulangan sebanyak panjang karakter pesan
  Setiap perulangan melakukan kalkulasi dekripsi RSA   Lihat rumus dekripsi algoritma RSA pada rumus nomor 2.
  Kemudian  ubah  kunci  One  Time  Pad  terenkripsi  1182022997  1499756931
1604525808 496575193 1788289593 kedalam bentuk blok-blok C
Universitas Sumatera Utara
  C1 = 1182022997   C2 = 1499756931
  C3 = 1604525808   C4 = 496575193
  C5 = 1788289593   Kemudian dekripsi setiap blok-blok P dengan rumus dekripsi RSA
  P1 = 1182022997
1036239559
mod 1833433111 = 441   P2 = 1499756931
1036239559
mod 1833433111 = 561   P3 = 1604525808
1036239559
mod 1833433111 = 873   P4 = 496575193
1036239559
mod 1833433111 = 865   P5 = 1788289593
1036239559
mod 1833433111 = 25   Maka kunci One Time Pad yang berhasil didekripsi adalah 441 561 873 865
25
Setelah  sistem  mendapatkan  kunci  algoritma  One  Time  Pad,  selanjutnya sistem akan mendekripsi pesan terenkripsi menggunakan kunci tersebut sebagaimana
dapat dilihat pada gambar 3.15, sebagai berikut:   Ubah pesan terenkripsi 254 116 191 165 107 kedalam blok-blok M
  M1 = 254   M2 = 116
  M3 = 191   M4 = 165
  M5 = 107   Kemudian sistem melakukan perulangan sebanyak panjang karakter pesan
  Setiap perulangan, sistem melakukan kalkulasi dekripsi.   Lihat rumus dekripsi algoritma One Time Pad pada rumus nomor 11.
  P1 = 254
– 441 mod 255 = 68   P2 = 116
– 561 mod 255 = 65   P3 = 191
– 873 mod 255 = 83   P4 = 165
– 865 mod 255 = 65   P5 = 107
– 25 mod 255 = 82
Universitas Sumatera Utara
  Kemudian ubah blok-blok P kedalam bentuk abjad   P1 = 68 = D
  P2 = 65 = A   P3 = 83 = S
  P4 = 65 = A   P5 = 82 = R
Setelah  sistem  berhasil  mendapatkan  pesan  asli  hasil  dari  proses  dekripsi, pesan asli tersebut  akan ditampilkan oleh sistem secara otomatis kedalaman halaman
chat pada penerima pesan.
3.4 Perancangan Sistem