## I N F O R M A T I K A
Jurnal Informatika, Manajemen dan Komputer, Vol.11 No.2, Desember 2019 eISSN : 2580-3042 pISSN : 1979-0694

## PENERAPAN KONSEP MVC PADA SISTEM PENJUALAN ONLINE DENGAN SISTEM KEAMANAN MENGGUNAKAN ALGORITMA RIJNDEAL
Saidul Irsyad 1 , Arjon Samuel Sitio 2 1,2 STMIK Pelita Nusantara Medan Jl. St.Iskandar Muda No. 1, Medan, Kode Pos 20154 Email : irsyadkeling@gmail.com 1

## ABSTRAK
Dalam  merancang  sebuah  website  orang  cenderung  tidak  menulis  coding  dari  awal.  Orang umumnya  lebih  memilih  untuk  menggunakan  CMS,  template  engine  atau  framework  untuk  membuat pekerjaan mereka lebih ringan.Salah satu framework yang ringan, cepat dan gratis adalah Codeigniter. Konsep  Model  View  Contoller  atau  biasa  disingkat  dengan  MVC  merupakan  sebuah  arsitektur  dimana proses pada sistem dipisah menjadi tiga bagian dengan tugas-tugas dan tanggung jawab masing-masing. Konsep ini lebih memudahkan  programmer  dalam mengatur  query database, manajemen kode, validasi data  dan  keamanan.  Masalah  keamanan  sering  kali  kurang  mendapat  perhatian  dari  para  pemilik  dan pengelola  toko  online.  Seringkali  masalah  keamanan  berada  di  urutan  kedua,  atau  bahkan  di  urutan terakhir dalam daftar hal-hal yang dianggap penting. Sistem login yang menggunakan database sebagai autentikasi  user  dan  password  sangat  rentan  untuk  diretas  oleh  karena  itu  masih  banyak  pengguna internet yang masih meragukan keamanan sistem penjualan online. Algoritma Rijndael adalah algoritma kriptografi  yang  dapat  melindungi  data  dengan  baik.  dalam  implementasinya  dan  dinobatkan  sebagai Advanced  Encryption  Standard  (AES).  Hasil  dari  penggunaan  Konsep  MVC  dan  Algoritma  ini  agar website lebih terstuktur dan tidak mudah diretas dan lebih aman dari berbagai serangan teknik hacking.
Kata kunci : Algoritma Rijndeal, Konsep MVC, Toko Online

## ABSTRACT
In designing a website people tend not to write coding from the start. People generally prefer to use  CMS,  template  engines  or  frameworks  to  make  their  work  lighter.  One  lightweight,  fast  and  free framework is Codeigniter. The concept of Model View Contoller or commonly abbreviated as MVC is an architecture where the processes in the system are divided into three parts with their respective tasks and responsibilities.  This  concept  makes  it  easier  for  programmers  to  manage  database  queries,  code management, data  validation and  security. Security issues often receive less attention from owners and managers  of  online  stores.  Security  issues  are  often  second,  or  even  last  in  the  list  of  things  that  are considered  important.  Login  systems  that  use  databases  as  user  and  password  authentication  are  very vulnerable to be hacked because there are still many internet users who still doubt the security of online sales  systems.  The  Rijndael  algorithm  is  a  cryptographic  algorithm  that  can  protect  data  well.  in  its implementation and has been named the Advanced Encryption Standard (AES). The results of using this MVC concept and Algorithm to make the website more structured and not easily hacked and safer from various hacking attacks.
Keywords: Rijndeal Algorithm, MVC Concept, Online Store

## 1. PENDAHULUAN
Pada  saat  ini  pengembangan  dalam  ilmu pengetahuan  dan  teknologi  banyak  memberikan kemudahan, khususnya bagi para pelaku bisnis,Toko Online atau yang sering di sebut dengan E-Commerce
adalah salah satu konsep yangg sangat berkembang di dunia internet.
Namun  masalah  keamanan  sistem  sering  kali kurang  mendapat  perhatian.  Sistem  login  yang menggunakan  database  sebagai  autentikasi  user

## I N F O R M A T I K A
Jurnal Informatika, Manajemen dan Komputer, Vol.11 No.2, Desember 2019 eISSN : 2580-3042 pISSN : 1979-0694
dan  password  sangat  rentan  untuk  diretas  oleh karena  itu  masih  banyak  pengguna  internet  yang masih  meragukan  keamanan  sistem  penjualan online.
Algoritma  Rijndael  adalah  algoritma kriptografi  yang  dapat  melindungi  informasi dengan baik serta efisien dalam implementasinya. Algoritma Rijndel merupakan salah salah  satu algoritma  yang ditentukan oleh National Institute of Standards and Technology (NIST)  sebagai  pemenang  dalam  perlombaan memperebutkan  kandidat  AES  (Advanced Encryption Standard).
Seiring  berkembang  nya  teknologi  dan informasi,  umumnya  dalam  pemograman  bahasa PHP,  dalam  membangun  sebuah  website  orang cenderung tidak menulis coding dari awal. Orang pada  umumnya  menggunakan  CMS,  template engine atau framework untuk membuat pekerjaan mereka  lebih  mudah.  Salah  satu  konsep  yang dibuat oleh pakar pemrograman adalah memecah sebuah aplikasi berbasis web menjadi tiga bagian yaitu  Model  yang  berkaitan dengan operasi pada basis  data,  View  yang  berhubungan  dengan tampilan  website  dan  terakhir  Controller  yang berhubungan dengan logika website dan mengendalikan  alur  data  antara  view  dan controller  konsep  ini  merupakan  pengembangan dari  konsep pemrograman  berorientasi objek dan dalam pemrograman dikenal dengan MVC.

## 2. METODOLOGI PENELITIAN
Metode  Penelitian  adalah  tahapan  atau gambaran  yang  akan  dilakukan  dalam  penelitian untuk  mempermudah  penelitian.  Kerangka  Kerja “Penerapan  Konsep  MVC  (Model  View Controller) pada penjualan online, serta implementasi algoritma Rijndeal untuk keamanan login  dan  database  pada  Toko  Online  dan pengujian menggunakan beberapa teknik hacking dibuat  untuk  memberikan  gambaran  serta kemudahan dalam  melakukan penelitian. Berikut ini  persiapan  yang  dilakukan  sebelum  penulis mulai melakukan penelitian.
Gambar 1. Kerangka kerja penelitian
3. HASIL DAN PEMBAHASAN
a. Analisa Konsep MVC

## Gambar 2. Alur Konsep MVC

## 1) Model
biasanya  berhubungan  dengan  data  dan interaksi  ke  database  atau  webservice.  Model juga merepresentasikan struktur data dari aplikasi yang  bisa  berupa  basis  data  maupun  data  lain, misalnya  dalam  bentuk  file  teks,  file  XML maupun  webservice.  Biasanya  didalam  model akan  berisi  class  dan  fungsi  untuk  mengambil, melakukan  update  dan  menghapus  data  website. Sebuah  aplikasi  web  biasanya  menggunakan basis  data  dalam  menyimpan  data,  maka  pada bagian  Model  biasanya  akan  berhubungan dengan perintah-perintah query SQL.

## I N F O R M A T I K A
Jurnal Informatika, Manajemen dan Komputer, Vol.11 No.2, Desember 2019 eISSN : 2580-3042 pISSN : 1979-0694
2) View merupakan bagian yang menangani presentation  logic.  Pada  suatu  aplikasi  web bagian  ini  biasanya  berupa  file  template  HTML, yang diatur oleh controller. View berfungsi untuk menerima  dan  merepresentasikan  data  hasil  dari model  dan  controller  kepada  user.  View  tidak memiliki akses langsung terhadap bagian model.
3) Controller merupakan bagian yang mengatur hubungan antara  bagian  model  dan  bagian  view.  Pada controller  terdapat  class-clas  dan  fungsi-fungsi yang memproses permintaan dari View ke dalam struktur  data  di  dalam  model.  Controller  juga tidak  boleh  berisi  kode  untuk  mengakses  basis data Karena tugas megakses data telah diserahkan  kepada  model.  Tugas  controller adalah menyediakan berbagai variable yang akan ditampilkan  di  view,  memanggil  model  untuk melakukan  akses  ke  basis  data,  menyediakan penanganan  kesalahn/error,  mengerjakan  proses logika dari aplikasi serta melakukan validasi atau cek terhadap input.

## b. Analisa Algoritma Rijndeal
Algoritma Rijndael mempunyai  3  (tiga) parameter:
1. Plainteks  adalah array yang  berukuran  16- byte , yang berisi data masukan.
2. Cipherteks adalah array yang berukuran 16- byte , yang berisi hasil enkripsi.
3. Kunci adalah array yang berukuran 16- byte , yang berisi kunci cipher (disebutjuga chiper key ). Garis  besar  algoritma Rijndael yang  beroperasi pada  blok  128  bit  dengan  kunci  128  bit  adalah sebagai berikut:
1. AddRoundKey , melakukan XOR antara state awal  (plainteks)  dengan chiper  key .  Tahap ini disebut juga initial round.
2. Putaran  sebanyak Nr –1  kali.  Proses  yang dilakukan pada setiap putaran adalah:
a. SubBytes adalah  substitusi byte dengan menggunakan tabel substitusi ( S-Box ). b. ShiftRows adalah  pergeseran  baris-baris array state secara wrapping.
c. MixColumns adalah  mengacak  data  di masing-masing  kolom array state.
d. AddRoundKey adalah  melakukan XOR antara state sekarang round key.
3. Final round, proses untuk putaran terakhir:
a. SubBytes
b. ShiftRows
c.      AddRoundKey
c. Transformasi SubBytes
Transformasi SubBytes memetakan  setiap byte  dari array  state dengan  menggunakan  tabel substitusi S-Box .  Tidak  seperti  DES  yang mempunyai S-Box berbeda  pada  setiapputaran, Rijndael hanya  mempunyai  satu  buah.  Tabel yang digunakan adalah:
Gambar 3. Tabel S-Box Rijndael
Cara pensubstitusian adalah sebagai berikut: jika  setiap  byte  pada array  state S[r,c]=xy,  xy adalah digit heksa desimal dari nilai S[r,c], maka nilai  substitusinya,  dinyatakan  dengan  S’[r,c], adalah elemen di dalam S-Box yang merupakan perpotongan baris x dengan kolom y.
Gambar 4. Transformasi SubByte dengan S-Box
Gambar 5. Proses SubBytes
Gambar 6. Hasil SubBytes

## I N F O R M A T I K A
Jurnal Informatika, Manajemen dan Komputer, Vol.11 No.2, Desember 2019 eISSN : 2580-3042 pISSN : 1979-0694
d. Transformasi ShiftRows Transformasi ShiftRows melakukan pergeseran  secara wrapping pada  3  (tiga)  baris terakhir  dari  array  state.  Jumlah  pergeseran bergantung  pada  nilai  baris  r.  Baris  r=1  digeser sejauh 1 byte, baris r=2 digeser sejauh 2 byte, dan baris  r=3  digeser  sejauh  3  byte.  Baris  r=0  tidak digeser.
Gambar 7 Transformasi Shiftrows
Geser baris ke-1:
Hasil pergeseran baris ke-1 dan geser baris ke-2:
Hasil pergeseran baris ke-2 dan geser baris ke-3:
Hasil pergeseran baris ke-3 dan geser baris ke-4:
Gambar 8 Proses transformasi Shiftrows

## Gambar 9 Hasil dari ShiftRows
e. Tranformasi MixColumns Transformasi MixColumns mengalikan setiap kolom dari array state dengan polinoma(x)mod(x4+1). Setiap kolom
diperlakukan  sebagai  polinom  4-suku  pada GF(28). Polinom a(x) yang ditetapkan adalah:
a ( x )={03} x 3+{01} x 2+{01} x +{02}
Transformasi  ini  dinyatakan  sebagai  perkalian matriks:
s ’( x )= a ( x ) ⊗ s ( x )
= Gambar 10 Operasi MixColumns
Gambar 11 Hasil keseluruhan MixColumns

## 4. Transformasi AddRoundKey
Transformasi  ini  melakukan  operasi  XOR terhadap sebuah round key dengan arraystate, dan hasilnya disimpan di array state.
Gambar 12 Transformasi AddRoundKey

## I N F O R M A T I K A
Jurnal Informatika, Manajemen dan Komputer, Vol.11 No.2, Desember 2019 eISSN : 2580-3042 pISSN : 1979-0694
Gambar 13 Hasil AddRoundKey
f. Ekspansi Kunci
Algoritma Rijndael melaksanakan cipherkey dan  membuat  suatu  ekspansi  kunci  untuk menghasilkan  suatu key    schedule .  Jika  ekspansi kunci      yang  diperlukan Rijndael Nb  (Nr+1) word,  sehingga  bisa  digunakan  AES  128      bit, maka 4(10+1) = 40 word = 44 x 32 bit = 1408 bit subkey .  Ekspansi  dari  128  menjadi  1408  bit subkey ,  proses  ini  disebut  dengan key  schedule . Subkey ini  diperlukan  karena  setiap round merupakan  suatu  inisial  dari  Nb  word  untuk Nr=0 dan Nb untuk Nr=1,3 untuk Nr=2,....,11 Nb untuk  Nr=10,  dari  operasi  ini  akan  didapatkan schedule kunci    yang  berisi array linier  4  byte word (wi),0 = i (Nr+1).
Gambar 14 Proses ekspansi kunci

## Gambar 15 Proses Algoritma Rijndeal
g. Perancangan Sistem
1 .     Use Case Diagram
Use  Case  adalah  gambaran  fungsioalitas dari  suatu  sistem,  sehingga  pengguna  sistem paham  dan  mengerti  mengenai  kegunaan  sistem yang  akan  di  bangun  .  Aktor-aktor  yang melakukan  prosedur  dalam  sistem  dan  respon yang  ditanggapi  oleh  sistem  terhadap  prosedur yang  di  lakukan  oleh  aktor  di  jelaskan  dalam skenario use case diagram pada gambar berikut :

## I N F O R M A T I K A
Jurnal Informatika, Manajemen dan Komputer, Vol.11 No.2, Desember 2019 eISSN : 2580-3042 pISSN : 1979-0694

## 2.  Activity Diagram
Activity  Diagram  menggambarkan  berbagai alir  aktivitas  dalam  sistem  yang  sedang dirancang, bagaimana masing-masing alir berawal,  decision  yang  mungkin  terjadi,  dan bagaimana  mereka  berakhir.  Activity  diagram juga  dapat  menggambarkan  proses  paralel  yang mungkin terjadi pada beberapa eksekusi.

## Gambar 17 Activity Diagram

## 3 Sequence Diagram
Sequence  Diagram  adalah  suatu  diagram yang  menggambarkan  interaksi  antar  obyek  dan mengindikasikan  komunikasi  diantara  obyek- obyek  tersebut.  Berikut  sequence  diagram  pada website Toko Online.

## Gambar 18 Sequence Diagram

## 4. Class Diagram
Class  Diagram  adalah  diagram  yang digunakan  untuk  menampilkan  beberapa  class yang  ada  dalam  sistem  perangkat  lunak  yang  di kembangkan. Class Diagram menunjukkan hubungan  antar class dalam  sistem  yang  sedang dibangun dan bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan.
User Id Username Group Password Gmail Verifikasi Login() Admin Username Add() Edit() Delete() Validation() User_Detail User_Detail_Id User_Id Nama_Depan Nama_Belakang Jenis_Kelamin Tempat_Lahir Tanggal_Lahir Handphone Alamat Kota Kecamatan Provinsi Kode_Pos Profil_Pictures Transaction_Detail Detail_id Transaction_id Product_id Name Option Quantity Price Sub_Total Simpan() Delete() Edit() Konfirmasi Confirm_id Confirm_Status Confirm_Session Nama_lengkap Email No_hp Confirm_time Total Transaksi_id Tujuan Dari_rek_bank Dari_rek_no Dari_rek_atas_nama Tampil_Hasil_Order() Pengiriman Tarif_id Kode_Lengkap Kota_Kabupaten Kecamatan Kode Reg Estimasi_Reg Oke Estimasi_Oke Pilih () Simpan() Batal() Shipping Shipping_id User_id Transaction_id Nama_Lengkap Alamat Provinsi Kota Kecamatan No_telephone No_Handphone Email Transaction Transaction_id Transaction_status User_id Transaction_time Total Random Tax Total_tax all_total Tax_type Transfer_Destination Tracking_Number
Gambar 19  Class Diagram.
Perancangan  antarmuka  digambarkan  dengan HIPO ( Hierarchy Plus Input-Process-Output) .
Gambar 20 HIPO Diagram
h. Implementasi Sistem
Gambar 21 Halaman Utama Website

## I N F O R M A T I K A
Jurnal Informatika, Manajemen dan Komputer, Vol.11 No.2, Desember 2019 eISSN : 2580-3042 pISSN : 1979-0694

## Gambar 22. Halaman Admin setelah login
Pengujian Keamanan Dengan Serangan SQL- Injection
Terdapat beberapa cara yang dapat digunakan  untuk  melakukan  pengujian  terhadap kemanan website .  Salah  satunya  adalah  dengan melakukan SQL Injection.
Pada  Website  akan  dimasukan  sintaks  –  sintaks sql  pada  form  login.  Contoh  sintaks  yang digunakan  adalah  “or”,  “1=1”,  “0=0”.  Berikut beberapa  skenario  yang  akan  diuji  dalam penelitian ini.
Pada  pengujian  ini  sebagai  contoh  website skyplus-travels.com akan  di  uji  menggunakan sql-injection.
Gambar 23 Website login website yang diuji dengan sql-injection
Gambar 24 Tampilan website yang berhasil di retas
Sedangkan website yang menggunakan algoritma rijndeal tidak berhasil di retas dengan menggunakan sql-injection.

## Gambar 25 Tampilan web gagal di retas

## 4. KESIMPULAN
Berdasarkan  hasil  penelitian  dalam  Penerapan Konsep  MVC  Pada  Penjualan  Online  Dengan Sistem  Keamanan  Menggunakan  Algoritma Rijndeal, dapat disimpulkan beberapa hal sebagai berikut:
1.   Konsep Model  View  Controller (MVC)  lebih memudahkan programmer dalam  mengatur query  database ,  manajemen  kode,  validasi data dan keamanan.
2.   Coding yang dihasilkan dengan menggunakan Konsep  MVC  menjadi  lebih  terstruktur, efisien dan mudah di lakukan pengembangan.
3.   Berdasarkan hasil pengujian Algoritma Rijndeal  dapat  digunakan  pada  login  untuk memproteksi  serangan  hacking  seperti  SQL- Injection.

## 5. REFERENSI
Pastima Simanjuntak, Arwin Kasnady, Desember (2016) Analisis  Model  View  Controller
(MVC)  Pada  Bahasa  PHP :  Jurnal  ISD Vol.2 No.2 e-ISSN : 2582-5114.
Kartika  Imam  Santoso,  Wahyu  Priyoatmoko,
(2016) Pengamanan Data My SQL Pada E- commerce  dengan  Algoritma  AES  256 . Jurnal  Sistem  Informasi  Indonesia,  1 Nopember 2016 Niria  Laila1,  Anita  Sindar  RMS,  Implementasi Steganografi LSB Dengan Enkripsi Vigenere  Cipher  Pada  Citra,  ScientiCO  : Computer  Science  Informatics  Journal  Vol. 1, No. 2, hal, 47-5, 2018. Sugeng  Murdowo, Mengenal Proses Perhitungan Enkripsi Menggunakan Algoritma Kriptografi  Advance  Encription  Standard (AES) Rijndeal :  INFOKAM Nomor 1/ Th. X/Maret/2014.