• Tidak ada hasil yang ditemukan

Pengembangan Backend Pada Perangkat Lunak Solidare

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengembangan Backend Pada Perangkat Lunak Solidare"

Copied!
44
0
0

Teks penuh

(1)

1

BAB 1

PENDAHULUAN

1.1

Latar Belakang Masalah

Solidare merupakan sebuah perangkat lunak yang bertujuan untuk

membantu anak-anak yang putus sekolah maupun terancam putus sekolah.

Perangkat lunak solidare sebelumnya bernama bantu anak asuh yang dikhususkan

untuk sebuah komunitas yang bernama Gerakan Bantu Seribu Anak Asuh (GBSA).

Laporan tahunan dari

Unesco Institute of Statistics

(UIS) pada Juni 2013

menunjukkan bahwa terdapat 126 juta anak yang tersebar di seluruh dunia

mengalami putus sekolah dan 44,4 juta diantaranya hidup dalam kemiskinan [1].

Berdasarkan data dari laporan tersebut, aplikasi solidare yang sebelumnya

dikhususkan untuk komunitas GBSA berubah konsep menjadi aplikasi portal

donasi yang bertujuan untuk membantu anak-anak putus sekolah di dunia. Dengan

demikian aplikasi solidare ini tidak lagi hanya dikhususkan untuk komunitas GBSA

saja, melainkan dapat bekerja sama dengan lembaga-lembaga amal yang ada di

dunia.

Seiringan dengan perubahan konsep tersebut,

backend

pada aplikasi

solidare yang sedang berjalan saat ini baik dari sisi

database

,

web service

dan

website admin tidak dapat mendukung sistem yang ada pada perangkat lunak

solidare. Selain itu permasalahan lain yang ada saat ini adalah

web service

yang

sedang berjalan saat ini tidak aman, hal itu dikarenakan

web service

yang sedang

berjalan saat ini dapat di akses dengan mudah oleh siapa saja. Maka dari itu perlu

adanya pengembangan pada

backend

aplikasi solidare agar dapat menunjang

aplikasi solidare dengan perubahan konsep tersebut.

Berdasarkan pemamaparan permasalahan tersebut, didapatkan suatu solusi

yaitu dengan mengembangkan

backend

pada aplikasi solidare dengan melakukan

pengembangan pada

database

dan website serta membangun

web service

yang

lebih aman dan dapat menunjang perangkat lunak solidare dengan perubahan

(2)

2

1.2

Perumusan Masalah

Berdasarkan uraian latar belakang masalah yang telah dijelaskan, maka

dapat dirumuskan sebuah masalah yang terdapat dalam penelitian ini yaitu

bagaimana mengembangkan

backend

pada perangkat lunak Solidare.

1.3

Maksud dan Tujuan

Maksud dari penelitian ini adalah mengembangkan

backend

pada perangkat

lunak solidare. Adapun tujuan dari penelitian ini adalah sebagai berikut:

1.

Mengembangkan

database

pada perangkat lunak solidare agar dapat

mendukung sistem yang ada pada aplikasi solidare.

2.

Membangun

web service

baru yang lebih aman dan dapat menunjang sistem

yang ada pada aplikasi solidare.

3.

Mengembangkan menu konfirmasi donasi dan rapot anak asuh serta

menambahkan menu lembaga amal, donatur aktif dan rekomendasi anak asuh

pada website admin solidare agar dapat mendukung sistem pada aplikasi

solidare.

1.4

Batasan Masalah

Adapun batasan masalah yang digunakan dalam penelitian ini adalah

sebagai berikut:

1.

Format pertukaran data yang di bangun pada web service solidare adalah JSON

(

Javascript Object Notation

) sebagai media pertukaran data dengan server.

2.

Pendekatan analisis yang digunakan pada pengembangan perangkat lunak ini

adalah SAD (

Structure Analysis and Design

).

1.5

Metodologi Penelitian

Metodologi penelitian yang digunakan dalam penelitian ini adalah metode

penelitian terapan, di mana metode ini dapat diterapkan atau diimplementasikan

langsung untuk menyelesaikan permasalahan yang terjadi berdasarkan fenomena

(3)

3

menggunakan dua metode, yaitu metode pengumpulan data dan metode

pembangunan perangkat lunak.

1.5.1

Metode Pengumpulan Data

Berikut adalah metode pengumpulan data pada penelitian ini:

1.

Studi Literatur

Studi literatur merupakan teknik pengumpulan data dengan cara

mempelajari, meneliti dan menelaah berbagai literatur dari perpustakaan yang

bersumber dari buku-buku, literatur, jurnal ilmiah, paper, situs internet dan

bacaan-bacaan yang berkaitan dengan penelitian yang dilakukan.

2.

Observasi

Observasi merupakan metode pengumpulan data dengan cara mengamati

objek yang berkaitan dengan penelitian secara langsung.

1.5.2

Metode Pembangunan Perangkat Lunak

Dalam pembangunan aplikasi ini menggunakan

waterfall model

sebagai

tahapan pengembangan perangkat lunaknya [2]. Adapun proses tersebut antara lain:

1.

Requirement Definition

Tahap

requirement definition

adalah tahap di mana pengumpulan kebutuhan

telah terdefinisi secara lengkap kemudian dianalisis dan didefinisikan kebutuhan

yang harus dipenuhi oleh program yang akan di bangun. Fase ini harus dikerjakan

secara lengkap untuk bisa menghasilkan desain yang lengkap.

2.

System and Software Design

Tahap

system and software design

merupakan tahap mendesain perangkat

lunak yang dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.

3.

Implementation and Unit Testing

Tahap

implementation and unit testing

merupakan tahap hasil desain program

diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman

yang sudah ditentukan. Program yang di bangun langsung diuji berdasarkan

(4)

4

4.

Integration and System Testing

Tahap

integration and system testing

merupakan tahap penyatuan unit-unit

program kemudian sistem diuji secara keseluruhan.

5.

Operation and Maintenance

Tahap

operation and maintenance

merupakan tahap mengoperasikan program

dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau

perubahan karena adaptasi dengan situasi yang sebenarnya. Dari berbagai

tahapan-tahapan tersebut, untuk lebih jelasnya bisa dilihat pada Gambar 1.1 di

bawah ini.

Gambar 1.1 Diagram Model Waterfall

1.6

Sistematika Penulisan

Sistematika penulisan penelitian ini disusun untuk memberikan gambaran

umum mengenai penelitian yang dikerjakan. Sistematika penulisan dalam

penelitian ini adalah sebagai berikut:

BAB 1 PENDAHULUAN

Bab 1 akan membahas tentang latar belakang permasalahan, merumuskan

inti permasalahan yang dihadapi, mencari solusi atas masalah tersebut,

mengidentifikasi masalah tersebut, menentukan maksud dan tujuan, kegunaan

penelitian, pembatasan masalah, metodologi penelitian, dan sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab 2 menguraikan bahan-bahan kajian, konsep dasar, dan teori dari para

(5)

5

berguna dari penelitian-penelitian dan sintesis serupa yang pernah dikerjakan

sebelumnya dan menggunakannya sebagai acuan pemecahan masalah pada

penelitian ini.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab 3 menguraikan hasil analisis dari objek penelitian untuk mengetahui

hal atau masalah apa yang timbul dan mencoba memecahkan masalah tersebut

dengan mengaplikasikan perangkat-perangkat dan pemodelan yang digunakan.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab 4 menguraikan tentang perancangan solusi beserta implementasinya

dari masalah-masalah yang telah dianalisis. Pada bagian ini juga akan ditentukan

bagaimana sistem dirancang, di bangun, diuji dan disesuaikan dengan hasil

penelitian.

BAB 5 KESIMPULAN DAN SARAN

Bab 5 berisi kesimpulan dan saran yang merupakan jawaban yang melatar

belakangi masalah pada Bab 1, dan saran untuk perbaikan dan menindaklanjuti

hasil penelitian yang nantinya akan berguna bagi pengembang perangkat lunak ini

(6)
(7)

7

BAB 2

TINJAUAN PUSTAKA

2.1

Struktur Analisis dan Desain

Struktur analisis dan desain adalah sebuah metodologi yang di gunakan

pada rekayasa perangkat lunak untuk mendeskripsikan sistem kearah fungsional.

Pendekatan ini memecahkan masalah-masalah dalam aktifitas bisnis menjadi

bagian-bagian kecil yang dapat disatukan kembali menjadi satu kesatuan yang utuh

untuk memecahkan masalah [3].

Tools

yang dapat digunakan pada pendekatan analisis pengembangan sistem

secara terstruktur adalah:

1.

ERD (

Entity Relationship Diagram

) adalah satu model jaringan yang

menggunakan susunan data yang disimpan dalam sistem. ERD merupakan

model jaringan data yang menekankan pada struktur dan hubungan antar data

[4].

2.

Diagram Konteks adalah diagram yang menggambarkan sebuah sistem secara

menyeluruh yang selanjutnya akan lebih didetailkan oleh DFD. Konteks

diagram juga biasa disebut sebagai DFD level 0.

3.

Data Flow Diagram atau biasa di singkat DFD merupakan serangkaian diagram

yang menggambarkan kegiatan-kegiatan yang ada dalam satu sistem. Teknik

pembangunan DFD dimulai dengan menggambarkan sistem secara global dan

dilanjutkan dengan analisis masing-masing bagian. Pada awalnya digambarkan

konteks diagram yang menggambarkan sebuah sistem secara menyeluruh yang

akan diinvestigasi. Konteks diagram tersebut dapat dikatakan sebagai DFD

level 0. Analisis sistem yang lebih detail selanjutnya dapat dilakukan dengan

menggambarkan DFD level 1,2 dan seterusnya.

4.

Spesifikasi Proses merupakan tabel yang berisi keterangan deskripsi dari

semua proses yang terdapat di DFD. Logika proses harus dituliskan secara jelas

(8)

8

5.

Kamus Data (

Data Dictionary

) merupakan fakta tentang data dan

kebutuhan-kebutuhan informasi dari sistem informasi. Dengan menggunakan

data

dictionary

, analis sistem dapat mendefinisikan data yang mengalir dalam

sistem dengan lengkap [5].

2.2

Web Service

Web Service adalah sekumpulan

application logic

beserta objek-objek dan

metode-metode yang dimilikinya yang terletak di satu server yang terhubung ke

internet [6]. Tujuan dari teknologi ini adalah untuk memudahkan beberapa aplikasi

atau komponennya untuk saling berhubungan dengan aplikasi lain dalam sebuah

organisasi maupun diluar organisasi menggunakan standar yang tidak terikat

platform (

platform-neutral

) dan tidak terikat akan bahasa pemrograman yang

digunakan (

language-neutral

). Hal tersebut dapat terjadi karena penggunaan XML

standar yang didukung oleh banyak perusahaan besar di dunia, yang digunakan

untuk bertukar data. Selain XML, terdapat pula format pertukaran data lain yaitu

JSON.

2.3

JSON

JSON (

JavaScript Object Notation

) adalah format pertukaran data yang

ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan

dibuat (

generate

) oleh komputer [7]. Format ini dibuat berdasarkan bagian dari

Bahasa Pemrograman JavaScript, Standar ECMA-262 Edisi ke-3

Desember 1999.

JSON merupakan format teks yang tidak bergantung pada bahasa pemrograman

apapun karena menggunakan gaya bahasa yang umum digunakan oleh

programmer

keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena

sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. JSON

terbuat dari dua struktur [8]:

1.

Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan

(9)

9

2.

Daftar nilai terurutkan (

an ordered list of values

). Pada kebanyakan bahasa,

hal ini dinyatakan sebagai larik (

array

), vektor (

vector

), daftar (

list

), atau

urutan (

sequence

).

Struktur-stuktur data ini disebut sebagai struktur data universal. Pada

dasarnya, semua bahasa pemrograman moderen mendukung struktur data ini dalam

bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format

data mudah dipertukarkan dengan bahasa-bahasa pemrograman yang juga

berdasarkan pada struktur data ini. JSON menggunakan bentuk sebagai berikut:

a.

Objek

Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai

dengan { (kurung kurawal buka) dan diakhiri dengan } (kurung kurawal tutup).

Setiap nama diikuti dengan : (titik dua) dan setiap pasangan nama/nilai

dipisahkan oleh , (koma).

[image:9.595.214.479.597.664.2]

Gambar 2.1 Objek JSON

b.

Larik

Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [ (kurung

siku buka) dan diakhiri dengan ] (kurung siku tutup). Setiap nilai dipisahkan

oleh , (koma).

(10)

10

c.

Nilai

Nilai (

value

) dapat berupa sebuah string dalam tanda kutip ganda, atau angka,

atau

true

atau

false

atau

null

, atau sebuah objek atau sebuah larik.

Struktur-struktur tersebut dapat disusun bertingkat.

[image:10.595.170.440.224.361.2]

Gambar 2.3 Nilai JSON

d.

String

String

adalah kumpulan dari nol atau lebih karakter

Unicode

, yang dibungkus

dengan tanda kutip ganda. Di dalam

string

dapat digunakan

backslash

escapes

\

” untuk mem

bentuk karakter khusus. Sebuah karakter mewakili karakter

tunggal pada

string

.

String

sangat mirip dengan

string

C atau Java.

[image:10.595.175.449.511.680.2]
(11)

11

e.

Angka

Angka adalah sangat mirip dengan angka di C atau Java, kecuali format oktal

dan heksadesimal tidak digunakan.

[image:11.595.198.476.180.312.2]

Gambar 2.5 String JSON

2.4

Kriptografi

Kriptografi didefinisikan sebagai ilmu dan pelajaran untuk tulisan rahasia

dengan pertimbangan bahwa komunikasi dan data dapat dikodekan untuk

mencegah dari mata-mata atau orang lain yang ingin mengetahui isinya, dengan

menggunakan kode-kode dan aturan-aturan tertentu dan metode lainnya sehingga

hanya orang yang berhak yang dapat mengetahui isi pesan sebenarnya. Kriptografi

memiliki dua jenis cara dalam melakukan enkripsi dan dekripsi yaitu

symmetric

dan

asymmetric

. Algoritma

symmetric

disebut dengan algoritma klasik, karena

memakai kunci yang sama untuk kegiatan enkripsi dan dekripsinya. Sedangkan

algoritma

asymmetric

sering juga disebut dengan algoritma kunci publik, dengan

arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsinya berbeda

[9].

Pada penelitian ini jenis algoritma kriptografi yang digunakan adalah

algoritma kriptografi simetrik dengan algoritma yang digunakan adalah AES

(

Advance Encryption Standard

). Algoritma AES sendiri memiliki tiga jenis dengan

panjang kunci yang berbeda, diantaranya AES-128, AES-192, dan AES-256 [10].

(12)
[image:12.595.180.462.112.348.2]

12

Gambar 2.6 Kriptografi pada Algoritma AES

2.5

Object Relational Mapping

Object Relational Mapping

(ORM) adalah suatu teknik pemrograman yang

digunakan untuk menghubungkan kode objek dengan database relasional. Kode

objek ditulis dalam bahasa berorientasi objek pemrograman (OOP) seperti Java atau

C#. Konsep ORM adalah melakukan pemetaan dari tabel menjadi objek. Kolom

kolom yang ada pada tabel nantinya akan menjadi variabel-variabel dalam objek

tersebut. Satu objek mewakili satu baris. Karena merupakan objek, untuk

mengakses beberapa baris sekaligus dapat disamakan dengan mengakses array dari

objek tersebut. ORM memiliki kemampuan untuk menciptakan objek database

virtual, yaitu suatu model database yang direpresentasikan ke dalam sebuah objek

pada bahasa pemrograman OOP. Adapun kelebihan yang dimiliki oleh ORM adalah

mempercepat pengembangan program. Contohnya yaitu mengurangi perulangan

kode query, dan memudahkan pemakaian karena tabel yang ada sudah tersusun

dalam bentuk objek. Singkatnya ORM ini adalah sebuah konsep untuk

menggabungkan metode pemrograman database dengan konsep Object Oriented

(13)

13

2.6

Pengujian

Black Box

Metode pengujian

blackbox

berfokus pada kebutuhan fungsional pada

software

, berdasarkan pada spesifikasi kebutuhan

software

. Pengujian dengan

menggunakan metode

blackbox

berusaha untuk menemukan kesalahan dalam

beberapa kategori, diantaranya:

1.

Fungsi-fungsi yang salah atau hilang

2.

Kesalahan interface

3.

Kesalahan dalam struktur data atau akses database eksternal

4.

Kesalahan performa

5.

kesalahan inisialisasi dan terminasi

Blackbox memiliki banyak teknik pengujian diantaranya

Equivalence

Partitioning, Boundary Value Analysis/Limit Testing, Comparison Testing, Sample

Testing, Robustness Testing, Behavior Testing, Requirement Testing, Performance

Testing, Endurance Testing, Cause-Effect Relationship Testing

. Salah satu teknik

yang akan di bahas adalah

Equivalence Partitioning

.

Equivalence Partitioning

merupakan metode black box testing yang

membagi domain masukan dari suatu program menjadi beberapa kelas data dari

(14)
(15)

119

BAB 5

KESIMPULAN DAN SARAN

5.1

Kesimpulan

Berdasarkan hasil pengembangan dan pengujian yang telah dilakukan

terhadap

backend

pada perangkat lunak solidare, maka diperoleh kesimpulan

sebagai berikut:

1.

Database

yang telah dikembangkan sudah dapat mendukung sistem yang ada

pada perangkat lunak solidare.

2.

Web service

yang telah di bangun sudah lebih aman dengan telah

diimplementasikannya algoritma kriptografi AES-128 dan

web service

yang

telah di bangun sudah dapat mendukung sistem yang ada pada perangkat lunak

solidare.

3.

Menu konfirmasi donasi dan rapot anak asuh sudah dikembangkan dengan

melakukan perubahan UI (

user interface

) dan penambahan fungsional. Menu

lembaga amal, donatur aktif dan rekomendasi anak asuh sudah ditambahkan

pada website solidare. Semua menu yang sudah dikembangkan dan

ditambahkan sudah dapat mendukung sistem yang ada pada perangkat lunak

solidare dan telah berjalan sesuai dengan yang diharapkan.

5.2

Saran

Saran untuk pengembangan selanjutnya dari

backend

pada perangkat lunak

solidare ini agar dapat menjadi lebih baik lagi adalah sebagai berikut:

1.

Meningkatkan performansi pada website solidare dengan memperhatikan

resource

agar dapat lebih optimal dan lebih cepat pada saat pengaksesannya.

2.

Mengembangkan

security

pada website admin solidare agar menjadi lebih

(16)

Boby Indra Pratama

Address

: Jl. Sekeloa Selatan No 16 RT 03 RW 15

Kelurahan Lebak Gede Kecamatan

Coblong Bandung 40132

Phone

: +6285263910111

Email

: boby.indr@gmail.com

Personal Information

Place & D.O.B

: Pangkalan, August 01

st

1993

Marital Status

: Single

Religion

: Islam

Languages Known

: Minang, Indonesian, English

Formal Education

Indonesia Computer University

Majoring Informatics Engineering

2011

2015

SMAN 1 Akabiluru

2008

2011

SMPN 4 Payakumbuh

2005

2008

SDN 02 Akabiluru

1998

2005

TK Tunas Harapan Piladang

1996

1998

Organization Experiences

Coordinator Research and Business Analyst CodeLabs Unikom

2014

2015

HMIF

2012

2014

Secretary of OSIS SMAN 1 Kec. Akabiluru

2008

2010

MPK of SMPN 4 Payakumbuh

2005

2006

Professional Experiences

Present

-

Freelancer Web Developer

-

Freelancer Android Developer

-

Freelancer iOS Developer

Mart 2014

Present, member of Unikom CodeLabs

(17)

Projects Experience

DESKTOP APPLICATIONS

Codelabs Smart Apps using C#

Aplikasi Pengelolaan Data Pasien using C#

Aplikasi Game Edukasi Typing Speed using C#

Program Perhitungan integral satu dan integral ganda using Matlab

Aplikasi Pengelolaan data Inventaris Rumah Sakit using C#

Aplikasi Reservasi Hotel using C#

WEB APPLICATION

Sistem Informasi Inventory Control

Crimezone

Solidare (Bantu Anak Asuh)

Web News : oNews

Personal Website

MOBILE APPLICATION

Unikom Apps using Java Android

Bantu Anak Asuh Apps using Java Android

Server Autoreload Gratika (SAG) using Java Android

Skills

Operating System

: Microsoft Windows XP

Microsoft Windows 7/8/10

Linux Ubuntu 10

Mac OS X 10.9/10.10

Integrated Development Environment

: Adobe DreamWeaver CS5

Adobe Photoshop CS5

Adobe Premiere CS5

Adobe Premiere 6

Adobe Audition CS5.5

Corel Draw X6 (Beginer)

Corel Photo-Paint X6 (Beginer)

Corel Ulead Studio X4

Eclipse Juno

Microsoft Visual Studio 2013

Microsoft Office 2003/2007/2010/2013

Matlab 2010/2012

(18)

Text Editor

: Notepad++

Notepad

Ultra Edit

Sublime Text

Programming Language

: HTML

CSS

Javascript

PHP

Java

Java Android

C / C++ / C#

Swift (iOS)

Matlab

Pascal

Achievement

2011

Film Documenter Contest Province

Sumatera Barat

2

nd

Winner

2014

INNAICTA 2014

Nominator/Finalist Category Digital

Interactive Media

2014

Motekar UNPAD 2014

Favorite Winner

2015

Microsoft Imagine Cup Indonesia

2015

National Winner Category World

Citizenship

2015

Microsoft Imagine Cup World Wide

2015

Semifinalist World Wide Category World

Citizenship

2015

Microsoft Imagine Cup World Wide

2015 in Seattle, Washington, U.S.A

(19)

PENGEMBANGAN BACKEND PADA

PERANGKAT LUNAK SOLIDARE

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

BOBY INDRA PRATAMA

10111548

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(20)

v

DAFTAR ISI

ABSTRAK ... i

ABSTRACT

... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... xi

DAFTAR SIMBOL ... xv

DAFTAR LAMPIRAN ... xvii

BAB 1 PENDAHULUAN ... 1

1.1

Latar Belakang Masalah ... 1

1.2

Perumusan Masalah ... 2

1.3

Maksud dan Tujuan ... 2

1.4

Batasan Masalah ... 2

1.5

Metodologi Penelitian ... 2

1.5.1

Metode Pengumpulan Data ... 3

1.5.2

Metode Pembangunan Perangkat Lunak ... 3

1.6

Sistematika Penulisan ... 4

BAB 2 TINJAUAN PUSTAKA ... 7

2.1

Structure and Analysis ... 7

2.2

Web Service ... 8

2.3

JSON ... 8

2.4

Kriptografi ... 11

(21)

vi

2.6

Pengujian

Black Box

... 13

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 15

3.1

Analisis Sistem ... 15

3.1.1

Analisis Masalah ... 15

3.1.2

Analisis Arsitekur Sistem ... 16

3.1.3

Analisis Algoritma Kriptografi ... 17

3.1.4

Spesifikasi Kebutuhan Perangkat Lunak ... 37

3.1.5

Analisis Kebutuhan Non Fungsional ... 38

3.1.5.1 Analisis Kebutuhan Perangkat Lunak ... 39

3.1.5.2 Analisis Kebutuhan Perangkat Keras ... 40

3.1.5.3 Analisis Kebutuhan Perangkat Pikir ... 41

3.1.6

Analisis Data ... 42

3.1.7

Analisis Kebutuhan Fungsional ... 45

3.2

Perancangan Sistem ... 72

3.2.1

Perancangan Data ... 72

3.2.2

Perancangan Web Service ... 78

3.2.3

Perancangan Arsitektural Menu ... 81

3.2.4

Perancangan Antarmuka ... 83

3.2.5

Perancangan Pesan ... 95

3.2.6

Jaringan Semantik ... 97

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 99

4.1

Implementasi Sistem ... 99

4.1.1

Lingkungan Implementasi ... 99

4.1.2

Implementasi Data ... 100

(22)

vii

4.2

Pengujian Sistem ... 109

4.2.1

Rencana Pengujian ... 109

4.2.2

Skenario Pengujian... 109

4.2.3

Hasil Pengujian ... 110

4.2.4

Evaluasi Pengujian ... 117

BAB 5 KESIMPULAN DAN SARAN ... 119

5.1

Kesimpulan ... 119

5.2

Saran ... 119

(23)

120

DAFTAR PUSTAKA

[1] UNESCO INSTITUTE FOR STATISTICS, Fixing The Broken Promise Of

Education For All, UNICEF, 2014.

[2] I. Sommerville, Software Engineering, Eight Edition penyunt., Addison

Wesley, 2007.

[3] H. J. R. Gary Shelly, Systems Analysis and Design, Boston: Course

technology cengange learning, 2010.

[4] H. Fatta, Rekayasa Sistem Pengenalan Wajah, Yogyakarta: Andi, 2009.

[5] T. H. P. H. Marimin, Sistem Infromasi Manajemen : Sumber Daya Manusia,

Bogor: Grasindo, 2006.

[6] J. Simarmata, Rekayasa Web, Yogyakarta: ANDI, 2010.

[7]

j. org, “json org,” [

Online]. Available: http://json.org/json-id. [Diakses 25

April 2014].

[8]

C. Janssen, “Standart Object Modeling Language,” [Online]. Available:

http://www.techopedia.com/definition/24200/object-relational-mapping--orm. [Diakses 26 5 2015].

[9] B. Schneier, Applied Cryptography, India: Wiley, 2007.

[10] W. Stalling, Cryptography and Network Security Principles and Practice,

Pearson, 2014.

(24)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

PENGEMBANGAN BACKEND PADA

PERANGKAT LUNAK SOLIDARE

Adam Mukharil Bachtiar

1

, Boby Indra Pratama

2

1

Teknik Informatika

Universitas Komputer Indonesia

Jl. Dipatiukur 112-114 Bandung

2

Teknik Informatika – Universitas Komputer Indonesia

Jl. Dipatiukur 112-114 Bandung

E-mail : adammb@outlook.com

1

, boby.indr@gmail.com

2

ABSTRAK

Solidare merupakan aplikasi yang bertujuan untuk membantu anak-anak putus sekolah yang sebelumnya dikhususkan untuk komunitas sosial yang bernama Gerakan Bantu Seribu Anak Asuh (GBSA). Laporan tahunan dari Unesco Institute of Statistics (UIS) pada Juni 2013 menunjukkan bahwa terdapat 126 juta anak diseluruh dunia mengalami putus sekolah dan 44,4 juta diantaranya hidup dalam kemiskinan. Berdasarkan data dari laporan tersebut, solidare yang sebelumnya hanya dikhususkan pada komunitas GBSA saja, berubah konsep menjadi portal donasi secara global yang dapat bekerja sama dengan lembaga amal di dunia. Namun seiringan dengan perubahan konsep tersebut, sistem backend yang ada pada aplikasi solidare saat ini tidak dapat mendukung sistem dengan konsep baru tersebut. Selain itu tidak terdapatnya keamaan pada web service solidare yang sedang berjalan saat ini.

Oleh karena itu, solusi yang diusulkan adalah dengan mengembangkan backend pada perangkat lunak solidare agar dapat menunjang sistem dengan perubahan konsep tersebut serta membangun web service yang lebih aman pada perangkat lunak solidare. Metodologi penelitian yang digunakan adalah metode penelitian terapan. Pengembangan yang dilakukan pada backend meliputi database, web service dan website admin. Pada web service dilakukan penerapan algoritma kriptografi AES (Advance Encryption Standard)-128 dan pada website admin dilakukan pengembangan pada menu konfirmasi donasi dan rapot anak asuh, serta penambahan menu baru berupa menu lembaga amal, donartur aktif dan rekomendasi anak asuh.

Setelah dilakukan pengembangan dan pengujian dengan metode black box dapat disimpulkan bahwa sistem backend yang dikembangkan dari sisi database, web service dan website admin telah dapat mendukung sistem yang ada pada perangkat lunak solidare dengan konsep barunya yaitu sebagai portal donasi, serta web service yang telah di bangun sudah lebih aman

dengan diterapkannya algoritma kriptografi AES-128 ke dalam web service yang di bangun.

Kata kunci : Solidare, donasi, web service,

kriptografi, Advance Encryption Standard (AES)-128.

1.

PENDAHULUAN

Pada bagian ini akan dipaparkan mengenai latar belakang masalah, maksud dan tujuan, serta landasan teori.

1.1 Latar Belakang Masalah

Solidare merupakan sebuah perangkat lunak yang bertujuan untuk membantu anak-anak yang putus sekolah maupun terancam putus sekolah. Perangkat lunak solidare sebelumnya bernama bantu anak asuh yang dikhususkan untuk sebuah komunitas yang bernama Gerakan Bantu Seribu Anak Asuh (GBSA).

Laporan tahunan dari Unesco Institute of Statistics (UIS) pada Juni 2013 menunjukkan bahwa terdapat 126 juta anak yang tersebar di seluruh dunia mengalami putus sekolah dan 44,4 juta diantaranya hidup dalam kemiskinan [1]. Berdasarkan data dari laporan tersebut, aplikasi solidare yang sebelumnya dikhususkan untuk komunitas GBSA berubah konsep menjadi aplikasi portal donasi yang bertujuan untuk membantu anak-anak putus sekolah di dunia. Dengan demikian aplikasi solidare ini tidak lagi hanya dikhususkan untuk komunitas GBSA saja, melainkan dapat bekerja sama dengan lembaga-lembaga amal yang ada di dunia.

(25)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

backend aplikasi solidare agar dapat menunjang aplikasi solidare dengan perubahan konsep tersebut.

Berdasarkan pemamaparan permasalahan tersebut, didapatkan suatu solusi yaitu dengan mengembangkan backend pada aplikasi solidare dengan melakukan pengembangan pada database dan website serta membangun web service yang lebih aman dan dapat menunjang perangkat lunak solidare dengan perubahan konsep tersebut.

1.2 Maksud dan Tujuan

Maksud dari penelitian ini adalah mengembangkan backend pada perangkat lunak solidare. Adapun tujuan dari penelitian ini adalah sebagai berikut:

1. Mengembangkan database pada perangkat lunak solidare agar dapat mendukung sistem yang ada pada aplikasi solidare.

2. Membangun web service baru yang lebih aman dan dapat menunjang sistem yang ada pada aplikasi solidare.

3. Mengembangkan menu konfirmasi donasi dan rapot anak asuh serta menambahkan menu lembaga amal, donatur aktif dan rekomendasi anak asuh pada website admin solidare agar dapat mendukung sistem pada aplikasi solidare.

1.3 Web Service

Web Service adalah sekumpulan application logic beserta objek-objek dan metode-metode yang dimilikinya yang terletak di satu server yang terhubung ke internet [2]. Tujuan dari teknologi ini adalah untuk memudahkan beberapa aplikasi atau komponennya untuk saling berhubungan dengan aplikasi lain dalam sebuah organisasi maupun diluar organisasi menggunakan standar yang tidak terikat platform (platform-neutral) dan tidak terikat akan bahasa pemrograman yang digunakan (language-neutral). Hal tersebut dapat terjadi karena penggunaan XML standar yang didukung oleh banyak perusahaan besar di dunia, yang digunakan untuk bertukar data. Selain XML, terdapat pula format pertukaran data lain yaitu JSON.

1.4 JSON

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemrograman JavaScript, Standar ECMA-262 Edisi ke-3 – Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemrograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data [3].

1.5 Kriptografi

Kriptografi didefinisikan sebagai ilmu dan pelajaran untuk tulisan rahasia dengan pertimbangan bahwa komunikasi dan data dapat dikodekan untuk mencegah dari mata-mata atau orang lain yang ingin mengetahui isinya, dengan menggunakan kode-kode dan aturan-aturan tertentu dan metode lainnya sehingga hanya orang yang berhak yang dapat mengetahui isi pesan sebenarnya. Kriptografi memiliki dua jenis cara dalam melakukan enkripsi dan dekripsi yaitu symmetric dan asymmetric. Algoritma symmetric disebut dengan algoritma klasik, karena memakai kunci yang sama untuk kegiatan enkripsi dan dekripsinya. Sedangkan algoritma asymmetric sering juga disebut dengan algoritma kunci publik, dengan arti kata kunci yang digunakan untuk melakukan enkripsi dan dekripsinya berbeda [4].

[image:25.595.312.526.399.579.2]

Pada penelitian ini jenis algoritma kriptografi yang digunakan adalah algoritma kriptografi simetrik dengan algoritma yang digunakan adalah AES (Advance Encryption Standard). Algoritma AES sendiri memiliki tiga jenis dengan panjang kunci yang berbeda, diantaranya 128, AES-192, dan AES-256 [5]. Proses enkripsi dan dekripsi pada algoritma AES dapat dilihat pada Gambar 1.

Gambar 1 Kriptografi pada Algoritma AES

1.6 Pengujian Blackbox

Metode pengujian blackbox berfokus pada kebutuhan fungsional pada software, berdasarkan pada spesifikasi kebutuhan software. Pengujian dengan menggunakan metode blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya:

1. Fungsi-fungsi yang salah atau hilang 2. Kesalahan interface

3. Kesalahan dalam struktur data atau akses database eksternal

4. Kesalahan performa

(26)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

Blackbox memiliki banyak teknik pengujian diantaranya Equivalence Partitioning, Boundary Value Analysis/Limit Testing, Comparison Testing, Sample Testing, Robustness Testing, Behavior Testing, Requirement Testing, Performance Testing, Endurance Testing, Cause-Effect Relationship Testing. Salah satu teknik yang akan di bahas adalah Equivalence Partitioning.

Equivalence Partitioning merupakan metode black box testing yang membagi domain masukan dari suatu program menjadi beberapa kelas data dari kasus uji coba yang dihasilkan [6].

2.

ISI PENELITIAN

2.1 Analisis dan Perancangan Sistem

Berikut akan dipaparkan mengenai analisis dan perancangan dari sistem yang dikembangkan.

2.1.1 Analisis Masalah

Solidare merupakan perangkat lunak yang bertujuan untuk membantu anak-anak yang putus sekolah maupun terancam putus sekolah. Solidare sebelumnya hanya dikhususkan untuk sebuah komunitas gerakan seribu anak asuh (GBSA). Saat ini solidare berubah konsep menjadi lebih global, yaitu sebagai portal donasi yang dapat bekerja sama dengan lembaga-lembaga amal yang ada di dunia. Seiringan dengan perubahan konsep tersebut, terdapat masalah-masalah yang ada pada perangkat lunak solidare. Masalah-masalah tersebut diantaranya:

1. Database pada perangkat lunak solidare yang sedang berjalan saat ini belum optimal untuk mendukung sistem pada aplikasi solidare. 2. Web service yang sedang berjalan pada

perangkat lunak solidare saat ini tidak dapat menunjang sistem yang ada pada aplikasi solidare, serta tidak terdapatnya keamanan pada web service solidare saat ini.

3. Menu konfirmasi dan laporan yang ada pada website solidare yang sedang berjalan saat ini belum optimal untuk mendukung sistem solidare, serta perlunya penambahan menu pengelolaan lembaga amal, donatur aktif dan rekomendasi anak asuh pada website solidare agar dapat mendukung sistem pada aplikasi solidare sebagai aplikasi portal donasi yang lebih global.

2.1.2 Analisis Algoritma Kriptografi

Analisis algoritma kriptografi menjelaskan bagaimana algoritma kriptografi diimplementasikan kedalam sistem yang ada pada perangkat lunak solidare. Algoritma kriptografi yang digunakan dalam perangkat lunak ini adalah algoritma kriptografi AES (Advance Ecryption Standart) – 128. Di dalam algoritma kriptografi yang digunakan terdapat dua proses yaitu proses enkripsi dan proses dekripsi.

1. Enkripsi

Proses enkripsi teks yang diimplementasikan ke dalam sistem dapat dilihat pada Gambar 2.

Gambar 2 Flowchart Enkripsi Teks

Penjelasan mengenai proses enkripsi yang ada pada Gambar 2 adalah sebagai berikut:

1. Pengubahan teks menjadi notasi hexadecimal Proses ini merupakan standarisasi sebagai tahap awal sebelum teks dienkripsi oleh sistem dimana teks akan di konversi terlebih dahulu ke dalam bentuk notasi hexadecimal.

2. Pembentukan block-block array state dan key sepanjang 128 bit

Teks yang telah mengalami transformasi ke dalam bentuk hexadecimal selanjutnya akan dibentuk menjadi block-block sepanjang 128 bit dan dimasukkan ke dalam suatu array yang bernama array state.

(27)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

panjang kunci 16 byte dengan perhitungan 128/8 = 16. Kunci tersebut akan ditransformasikan ke dalam notasi hexadecimal seperti teks pada tahap sebelumnya.

3. Pembentukan Add Round Key

Tahap ini merupakan state awal atau initial state proses XOR antara array state dengan key. Maksudnya adalah dengan meng-XOR kolom pertama pada array state dengan kolom pertama key hingga N-kali sepanjang teks tersebut habis dibentuk ke dalam array state.

4. Pembentukan Substitute Bytes

Proses ini bertujuan untuk memetakan atau menukar setiap byte dari array state dengan menggunakan tabel substitusi S-Box.

5. Pembentukan Shift Rows

Proses ini bertujuan untuk menggeser pada tiga baris terakhir pada array state. Baris yang bergeser adalah baris ke r=1 sebanyak 1 byte, baris ke r=2 sebanyak 2 byte¸ dan baris ke r=3 sebanyak 3 byte. 6. Pembentukan Mix Columns

Proses ini bertujuan untuk mengalikan setiap kolom dari array state dengan polinom a(x) mod (x4+1). Transformasi ini dinyatakan sebagai

perkalian matriks:

[

�′ �

�′ �

�′ �

]

=

[

]

. [

� , �

� , �

� , �

� , �

]

7. Pembentukan Add Round key

Sebelum melakukan proses Add Round Key ini, maka selanjutnya adalah melakukan ekspansi kunci atau membentuk kunci baru untuk proses Add Round Key. Setelah mendapatkan kunci ekspansi, maka langkah selanjutnya adalah melakukan perhitungan Add Round Key.

8. Pembentukan Substitute Bytes

Proses ini akan memetakan kembali hasil dari Add Round Key dengan tabel S-Box.

9. Pembentukan Shift Rows

Proses Shift Rows ini kembali akan menggeser baris terakhir pada array state. r=1 akan bergeser 1 byte, r=2 akan bergeser 2 byte, dan r=3 akan bergeser 3 byte.

10.Pembentukan Add Round key

Proses Add Round Key ini adalah tahap terakhir atau putaran ke-10 dari proses enkripsi satu array state sepanjang 128 bit, maka selanjutnya adalah melakukan ekspansi kunci atau membentuk kunci baru untuk proses Add Round Key. Setelah kunci ekspansi didapatkan, maka selanjutnya adalah perhitungan Add Round Key.

Setelah proses enkripsi dilakukan, teks masih ada pada block array state. Maka oleh sistem akan ditransformasikan kembali untuk menjadi teks yang terenkripsi.

2. Dekripsi

Proses dekripsi teks yang diimplementasikan ke dalam sistem dapat dilihat pada Gambar 3.

Gambar 3 Flowchart Dekripsi Teks

Penjelasan mengenai proses dekripsi yang ada pada Gambar 3 adalah sebagai berikut:

1. Pengubahan teks menjadi notasi hexadecimal Teks yang akan didekripsi akan di konversi terlebih dahulu ke dalam bentuk notasi hexadecimal oleh sistem.

2. Pembentukan block-block array state dan key sepanjang 128 bit

(28)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

3. Pembentukan Add Round Key

Setelah proses Add Round Key selesai, maka akan menghasilkan array state yang nilainya sama dengan proses Shift Rows. Artinya, proses ini bertujuan untuk mengembalikan nilai dengan cara XOR atau rollback.

4. Pembentukan Inverse Shift Rows

Proses ini bertujuan untuk meggeser kembali baris akhir pada array state ke posisi awal.

5. Pembentukan Inverse Subtitute Bytes

Proses Inverse Substitute Bytes akan memetakan kembali array state hasil dari proses Inverse Shift Rows dengan tabel S-Box.

6. Pembentukan Add Round Key

Proses Add Round Key ini akan mengembalikan nilai array state dengan cara melakukan proses XOR terhadap hasil Inverse Substitute Bytes dengan key yang telah di ekspansi sebelumnya.

7. Pembentukan Inverse Mix Columns

Proses ini bertujuan untuk mengembalikan hasil perkalian setiap kolom dari array state yang telah dilakukan pada proses mix column pada saat enkripsi.

8. Pembentukan Inverse Shift Rows

Proses Inverse Shift Rows akan kembali menggeser 1 byte pada baris akhir di array state. 9. Pembentukan Inverse Subtitute Bytes

Proses Inverse Substitute Bytes akan kembali memetakan setiap nilai array state dengan tabel S-Box untuk mengembalikan setiap nilai yang ada di dalam array state ke dalam kondisi awal sebelum masuk proses Add Round Key putaran pertama saat enkripsi.

10.Pembentukan Add Round Key

Proses Add Round Key ini adalah proses terakhir dari rangkaian langkah proses dekripsi dari teks. Tahap ini akan dilakukan proses XOR antara ekspansi key putaran pertama enkripsi ketika proses Add Round Key dengan hasil proses Inverse Substitute Bytes. Setelah proses Add Round Key tersebut selesai, maka data akan kembali pada kondisi awal sesuai dengan teks sebelum melalui proses enkripsi dilakukan. Namun teks tersebut harus di transformasikan terlebih dahulu karena hasil dari dekripsi ini masih dalam bentuk notasi hexadecimal. Sebelum ditransformasikan, notasi hexadecimal tersebut dibentuk kedalam blok-blok array state sebanyak 128bit sampai array state terakhir pada posisi ke-N. Setelah proses ini selesai, baru dilakukan transformasi oleh sistem untuk dikembalikan menjadi teks semula atau teks aslinya.

2.1.3 Analisis Data

[image:28.595.311.525.99.238.2]

Analisis data yang menjadi acuan dalam pengembangan perangkat lunak ini adalah dokumen-dokumen yang berhubungan dengan perangkat lunak solidare serta objek-objek lain yang terkait. Entity relational diagram (ERD) dan kardinalitasnya dapat dilihat pada Gambar 4.

Gambar 4 ERD dan Kardinalitas

Konsep analisis data lain yang digunakan dalam penelitian ini adalah konsep Obejct Relational Mapping (ORM). Object relational mapping melakukan pemetaan terhadap tabel-tabel pada basis data relasional dengan suatu class entitas yang ada pada bahasa pemrograman berorientasi objek.

Pemetaan yang dilakukan ORM akan membutuhkan suatu jembatan sebagai media pertukaran datanya. Konsep pertukaran data yang digunakan pada penelitian ini berupa format data JSON yang dapat menghubungkan ORM dengan database fisik yang ada pada server. Struktur format data JSON yang digunakan pada penelitian ini terbagi menjadi tiga yaitu data objek, data array dan data null.

1. Data Objek

[image:28.595.309.526.476.568.2]

Format data ketika data yang diterima dari server merupakan data tunggal atau berupa satu objek dapat dilihat pada Tabel 1.

Tabel 1 Struktur Data Objek Struktur Data Objek

{

“key” : “value”, “key” : “value”, “key” : “value” }

2. Data Array

Format data ketika data yang diterima dari server merupakan data array dapat dilihat pada Tabel 2.

Tabel 2 Struktur Data Array Struktur Data Array

{

“result” : “value”, “item” : [ {

“key” : “value”, “key” : “value”, “key” : “value” },

{

“key” : “value”, “key” : “value”, “key” : “value” }

[image:28.595.311.525.606.772.2]
(29)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

3. Data Null

Format data ketika data yang diterima dari server merupakan null dapat dilihat pada Tabel 3.

Tabel 3 Struktur Data Null Struktur Data Null

{

“result” : “value”, “message” : “value”, “status_code” : “value” }

2.1.4 Analisis Kebutuhan Fungsional

Berikut adalah Diagram konteks dari pengembangan perangkat lunak ini yang dapat dilihat padaGambar 5.

Gambar 5 Diagram Konteks

[image:29.595.305.530.280.434.2]

Berikut adalah DFD level 1 dari pengembangan perangkat lunak ini yang dapat dilihat pada Gambar 6.

Gambar 6 DFD Level 1

2.2 Implementasi dan Pengujian Sistem

Berikut akan dipaparkan mengenai implementasi dan pengujian sistem dari perangkat lunak yang dikembangkan.

2.2.1 Lingkungan Implementasi

Lingkungan implementasi merupakan spesifikasi hardware dan software dimana sistem ini akan dipasang dan diakses. Berikut adalah lingkungan implementasinya:

1. Lingkungan Hardware

Berikut adalah spesifikasi hardware dalam pembangunan perangkat lunak ini.

Tabel 4 Lingkungan Hardware Pengembangan Perangkat Lunak

No Item Spesifikasi

1 Processor Intel(R) Core i7-2640M @2.80Ghz 2 Harddisk 750 GB

3 Memory 4 GB

4 VGA Intel HD Graphics 3000 5 Monitor 13.3 inch

6 Mouse Optical Logitech 7 Keyboard Qwerty Sony S Series 8 USB Port 3 buah

9 Koneksi Internet Ada

2. Lingkungan Software

Perangkat lunak yang digunakan dalam pembangunan perangkat lunak ini adalah:

a. Sistem Operasi Windows 8.1 Professional 64-bit.

b. Bahasa Pemrograman PHP. c. DBMS : MySql 5.6.14.

d. Web Browser : Google Chrome 43.0.2357.130 m dan Mozilla Firefox 38.5.

e. Code Editor menggunakan Sublime text. f. Web Server : XAMPP.

g. Pertukaran data yang dilakukan menggunakan JSON.

2.2.2 Implementasi Antarmuka

[image:29.595.70.286.424.716.2]

Berikut adalah implementasi antarmuka dari website yang dikembangkan:

[image:29.595.314.526.599.692.2]
(30)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

[image:30.595.310.526.77.313.2]

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

[image:30.595.70.287.82.245.2]

Gambar 8 Detail Konfirmasi Donasi

[image:30.595.71.283.367.464.2]

Gambar 9 Management Rapot Anak Asuh

Gambar 10 Management Lembaga Amal

Gambar 11 Detail Lembaga Amal

Gambar 12 Detail Rekomendasi

2.2.3 Pengujian

Pengujian sistem ini terdiri dari dua tahap yakni pengujian alpha dan pengujian beta. Metode yang digunakan dalam pengujian sistem ini adalah dengan menggunakan metode pengujian black box dimana pengujian ini berfokus pada persyaratan fungsional perangkat lunak.

1. Rencana Pengujian

Rencana pengujian yang akan dilakukan pada backend perangkat lunak solidare adalah pengujian fungsional dengan jenis pengujian black box.

2. Skenario Pengujian

[image:30.595.70.286.487.703.2]

Skenario pengujian fungsional yang dilakukan adalah dengan menguji website solidare dengan skenario urutan pengujian yang dapat dilihat pada Tabel 5.

Tabel 5 Tabel Skenario Pengujian Website Admin Solidare

No Kelas Uji Poin Pengujian Jenis Pengujian

1 Pencarian data rapot anak asuh

Mengisi kata kunci pencarian

Equivalence Partitioning 2 Menambahkan

data rapot anak asuh Mengisi data rapot Equivalence Partitioning Validasi field rapot Equivalence Partitioning Menekan tombol save data Equivalence Partitioning 3 Pencarian data

lembaga amal

Mengisi kata kunci pencarian

Equivalence Partitioning 4 Menambahkan

data lembaga amal Mengisi data lembaga amal Equivalence Partitioning Validasi field lembaga amal Equivalence Partitioning Menekan tombol save data Equivalence Partitioning 5 Pencarian data

akun bank lembaga amal Mengisi kata kunci pencarian Equivalence Partitioning

[image:30.595.314.524.555.770.2]
(31)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

No Kelas Uji Poin Pengujian Jenis Pengujian

data akun bank lembaga amal bank lembaga amal Partitioning Validasi field akun bank lembaga amal Equivalence Partitioning Menekan tombol save data Equivalence Partitioning 7 Menambahkan

data program lembaga amal Mengisi data program lembaga amal Equivalence Partitioning Validasi field program lembaga amal Equivalence Partitioning Menekan tombol save data Equivalence Partitioning 8 Pencarian data

donatur aktif

Mengisi kata kunci pencarian

Equivalence Partitioning 9 Percarian data

rekomendasi anak asuh Mengisi kata kunci pencarian Equivalence Partitioning

10 Pencarian data validasi rekomendasi anak asuh Mengisi kata kunci pencarian Equivalence Partitioning

3. Evaluasi Pengujian

Berdasarkan hasil pengujian fungsional yang telah dilakukan maka dapat disimpulkan bahwa website yang telah dikembangkan sudah berjalan sesuai dengan yang diharapkan, baik itu dari segi validasi maupun proses penanganan kesalahan.

3.

PENUTUP

Kesimpulan dari pengembangan backend pada perangkat lunak solidare ini adalah:

1. Database yang telah dikembangkan sudah dapat mendukung sistem yang ada pada perangkat lunak solidare.

2. Web service yang telah di bangun sudah lebih aman dengan telah diimplementasikannya algoritma kriptografi AES-128 dan web service yang telah di bangun sudah dapat mendukung sistem yang ada pada perangkat lunak solidare. 3. Menu konfirmasi donasi dan rapot anak asuh

sudah dikembangkan dengan melakukan perubahan UI (user interface) dan penambahan fungsional. Menu lembaga amal, donatur aktif dan rekomendasi anak asuh sudah ditambahkan pada website solidare. Semua menu yang sudah dikembangkan dan ditambahkan sudah dapat mendukung sistem yang ada pada perangkat lunak solidare dan telah berjalan sesuai dengan yang diharapkan.

DAFTAR PUSTAKA

[1] UNESCO INSTITUTE FOR STATISTICS, Fixing The Broken Promise Of Education For All, UNICEF, 2014.

[2] J. Simarmata, Rekayasa Web, Yogyakarta: ANDI, 2010.

[3] j. org, “json org,” [Online]. Available: http://json.org/json-id. [Diakses 25 April 2014]. [4] B. Schneier, Applied Cryptography, India:

Wiley, 2007.

[5] W. Stalling, Cryptography and Network Security Principles and Practice, Pearson, 2014.

[6] M. E. Khan dan F. Khan, “A Comparative Study of White Box, Black Box and Grey Box Testing

(32)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

DEVELOPMENT OF BACKEND

ON SOLIDARE SOFTWARE

Adam Mukharil Bachtiar

1

, Boby Indra Pratama

2

1

Teknik Informatika

Universitas Komputer Indonesia

Jl. Dipatiukur 112-114 Bandung

2

Teknik Informatika – Universitas Komputer Indonesia

Jl. Dipatiukur 112-114 Bandung

E-mail : adammb@outlook.com

1

, boby.indr@gmail.com

2

ABSTRACT

Solidare is an application that aims to help children dropout of school, previously this aplication devoted to the social community called “Gerakan Bantu Seribu Anak Asuh (GBSA)”. The annual report of UNESCO Institute of Statistics (UIS) in June 2013 showed that there are 126 million children around the world are dropout of school and 44,4 milion of them live in poverty. Based on data from this report, solidare is previously only devote at GBSA community, turned the concept into a global donation portal that can work together with charities in the world. However based on change this concept, backed system at solidare aplication can not support with new concept. Beside that there is no security at web service solidare currently running.

Therefore, the proposed solution is to develop the software backend solidare to support the system with the concept of change and build a more secure web service at software solidare. The research methodology used is the method applied research. Development is done on the backend include databases, web services and admin website. On the web service performed cryptographic algorithm AES (Advanced Encryption Standard)-128 and the website admin to do development on donation confirmation menu and report foster children. And additional new menu such a charity,donors and recomendation foster children.

After the development and testing of the black box method can be concluded that the backend system developed from the database, web service and website administrators have been able to support the existing system software solidare with the new concept asa donation portal. And web service which had been built already safer with the implementation of a cryptographic algorithm AES-128 into a web service that is built.

Keywords : Solidare, donation, web service,

crypthography, Advance Encryption Standard (AES)-128.

1.

INTRODUCTION

In this section will explain about main of problem, goals and objectives, and the basic of theory.

1.1 Background Problem

Solidare is a software that aims to help children who are dropping out of school. Software solidare previously named ”bantu anak asuh” devoted to a community called “Gerakan Bantu Seribu Anak Asuh (GBSA)”.

The annual report of UNESCO Institute of Statistics (UIS) in June 2013 showed that there are 126 million children around the world are dropout of school and 44,4 milion of them live in poverty [1]. Based on data from this report, solidare turned the concept into a global donation portal that can work together with charities in the world. Therefore Solidare is not only reserved for GBSA, but it can work together with charities in the world. And backend at solidare aplication can not support the existing system software solidare. Another problem is web service is not secure, That is because web service can be accessed easily by everyone. Therefore, it is need for development at the backend application to support the application solidare solidare in the changes concept.

Based on that problem, obtained a backend solution is to develop the application solidare by the database and website development and build a more secure web service and can be support software solidare to change the concept.

1.2 Purpose and objectives

The intent of this research is to develop the software backend solidare. The purpose of this study are as below:

1. Develop a database on software solidare order to support the existing system on the application solidare.

(33)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

3. Develop a confirmation menu donation and report foster children and adding charities menu,donors and recomendation foster children on the admin website solidare to support the system in solidare application.

1.3 Web Service

Web Service is a set of application logic, objects and methods of its located on one server connected to the Internet [2]. The purpose of this technology is to facilitate aplications or components to interact with another aplications within an organization and outside the organization using platform-neutral and language-neutral. This is because the use of the XML standard that is supported by many large companies in the world, which is used to exchange data. Beside XML, there are also other data exchange format that is JSON.

1.4 JSON

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write It is easy for machines to parse and generate [3]. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.

1.5 Cryptography

Cryptography is defined as the science and writing lessons for confidential consideration that communication and data can be encoded to prevent spies or others who want to know its contents, dengan menggunakan kode-kode using codes and certain rules and other methods so that only people who are entitled to be able to know the actual message content. Cryptography has two types of ways to perform encryption and decryption are symmetric and asymmetric. Algorithm symmetric called classical algorithms, because it uses the same key for encryption and decryption activities. whereas asymmetric algorithm often also called public key algorithm, meaning the keywords that are used to perform different encryption and decryption [4].

[image:33.595.312.528.76.269.2]

In this research the type of cryptographic algorithm used is symmetric cryptographic algorithm with the algorithm used is AES (Advance Encryption Standard). AES algorithm itself has three types with different key lengths, including AES-128, AES-192 and AES-256 [5]. Encryption and decryption in AES algorithm can be seen in Figure 1.

Figure 1 Cryptography on AES Algorithm

1.6 Blackbox Testing

Blackbox testing methods focus on the functional needs of the software, based on software requirements specification. Tests using blackbox trying to find fault in several categories, including:

1. The functions are incorrect or missing 2. Errors interface

3. Errors in data structures or external database access

4. Errors performance

5. The initialization and termination errors Blackbox has a lot of testing techniques including Equivalence Partitioning, Boundary Value Analysis/Limit Testing, Comparison Testing, Sample Testing, Robustness Testing, Behavior Testing, Requirement Testing, Performance Testing, Endurance Testing, Cause-Effect Relationship Testing. One of the techniques that will be discussed is the Equivalence Partitioning. Equivalence Partitioning are black box testing method that divides the input domain of a program into several classes datadari generated test cases [5].

2.

Research Contents

2.1 Analysis and Design System

The following will be presented regarding the analysis and design of the system being developed. 2.1.1 Problem Analyze

Solidare is an application that aims to help children dropout of school, previously this aplication devoted to the social community called “Gerakan Bantu Seribu Anak Asuh (GBSA)”. solidare turned the concept into a global donation portal that can work together with charities in the world due to changes in the concept, there are problems on solidare software. these problems are:

(34)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

2. Web service that is running on the software solidare not currently able to support the existing system on solidare applicationsand there are no security on web service solidare.

3. The menu confirmation and reports that exist on the website solidare current operation is not optimal to support the system solidare, as well as the need for the addition of menu management of charitable institutions, active donors and recommendations on the website solidare foster care in order to support the system in the application as an application portal solidare more global donation.

2.1.2 Cryptographic Algorithm Analysis

Analysis of cryptographic algorithms to explain how the cryptographic algorithm implemented into the existing system software solidare. Cryptographic algorithms used in this software is a cryptographic algorithm AES (Advanced Ecryption Standart) - 128. In the cryptographic algorithms used, there are two processes, processes of encryption and decryption process.

1. Encryption

Text encryption process that is implemented into the system can be seen in Figure 2.

Figure 2 Flowchart of Encryption Text

Explanation of the existing encryption process in Figure 2:

1. Changing the text into hexadecimal notation This Process is standardized as an initial stage before text is encrypted by system where the text will be converted first into hexadecimal notation. 2. Formation of the blocks array of state and along

the 128-bit key

The text that has been transformed into hexadecimal form will then be formed into the blocks along the 128-bit and put in an array called arraystate.

(35)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

3. Formation Add Round Key

This stage is the initial state XOR process between the key state array. The point is to XOR the first column in an array of key state with the first column of up to N times throughout the text is discharged is formed into an array of state.

4. Formation SubstituteBytes

This process aims to map or swap each byte of the state array using the substitution table S-Box. 5. Formation Shift Rows

This process aims to shift the last three lines in an array of state. Shifting line is the line to r = 1 by 1 byte, row r = 2 by 2 bytes and lines to r = 3 by 3 bytes.

6. Formation Mix Columns

This process aims to multiply each column of the array of state with a polynomial a (x) mod (x4+1). This transformation is expressed as a matrix multiplication:

[

�′ �

�′ �

�′ �

]

=

[

] . [

� , �

� , �

� , �

� , �

]

7. Formation Add Round key

Before performing this process Add Round Key, the next step is to expand the key or form a new key to the process of getting key Add Round Key.Setelah expansion, then the next step is to perform calculations Add Round Key.

8. Formation SubstituteBytes

This process will map the results back from Add Round Key to the table S-Box

.

9. Formation Shift Rows

Rows Shift process will once again shift the last line on the array of state. r = 1 will be shifted 1 byte, r = 2 will be shifted 2 bytes, and r = 3 will be shifted 3 bytes.

10.Formation Add Round key

Add Round Key process is the last stage or the 10th round of the encryption process an array of state along the 128 bit, then the next key is to expand or establish new key for the Add Round Key. After the expansion key is obtained, the next step is the calculation Add Round Key. After the encryption process is done, the text still exists on blockarray state. Then the system will be transformed back to be encrypted text.

2. Decryption

[image:35.595.358.472.88.525.2]

Text decryption processes are implemented into the system can be seen in Figure 3.

Figure 3 Flowchart of Decryption Text

Explanation of existing decryption process in Figure 3 is as follows:

1. Changing the text into hexadecimal notation The text will be decrypted to be converted first into hexadecimal notation by the system.

2. The formation of the blocks array of state and along the 128-bit key

Of the process that has been carried out the previous stage, it will then be reshaped into blocks along the 128-bit and put into an array of state. Cipherkey used was the same with the encryption key when the text on the final lap encryption process.

3. Formation Add Round Key

(36)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

4. Formation Inverse Shift Rows

This process aims to slide back end of the array state row to the starting position.

5. Formation Inverse Subtitute Bytes

Substitute Bytes Inverse process will be remapped array of state results from the Inverse Shift Rows with tables S-Box.

6. Formation Add Round Key

Add Round Key process will restore the value of the array state by conducting the process XOR the results of Inverse Substitute Bytes with a key that has been in previous expansions.

7. Formation Inverse Mix Columns

This process aims to restore the result of the multiplication of each column of the array state that has been done in the mix column at the time of encryption

.

8. Formation Inverse Shift Rows

Inverse Shift Rows process will again shifted one byte at the end of the line in an array of state. 9. Formation Inverse Subtitute Bytes

Substitute Bytes Inverse process will be re-charted every state array value with the S-Box table to return any value in the state array into the initial conditions before entering the Add Round Key first round when encryption.

10.Formation Add Round Key

Add Round Key process is the final process of a series of steps the decryption process of the text. This phase will be conducted between the expansion process XOR encryption key first round when the Add Round Key to the results of the Inverse Substitute Bytes. Add Round Key Once the

Gambar

Gambar 2.1 Objek JSON
Gambar 2.4 String JSON
Gambar 2.5 String JSON
Gambar 2.6 Kriptografi pada Algoritma AES
+7

Referensi

Dokumen terkait

Seperti dalam kegiatan gotong-royong menjaga kebersihan, setelah ada ekowisata masyarakat semakin kompak karena adanya kesadaran yang lebih untuk menjaga kebersihan,

Proses mewarnai dengan teknik pointilis telah cukup dipahami oleh siswa di kelas X MIA 3 SMA NEG 9 GOWA baik dari sisi penempatan gambar stilasi yang tepat atau pun

(1) Pengolahan sebagaimana dimaksud dalam Pasal 5 huruf d dilakukan dengan mengubah karakteristik, komposisi, dan jumlah sampah yang dilaksanakan di TPS/TPST clan cli

Menyatakan kesanggupan untuk melaksanakan kegiatan perluasan areal hortikultura sesuai dengan pedoman teknis, petunjuk pelaksanaan dan petunjuk teknis yang ditetapkan

berisi tentang Pemaparan Data Praktek Kegiatan Saprah Amal di Mendawai Kota Palangka Raya Provinsi Kalimantan Tengah, dan Reaktualisasi Praktek Kegiatan Saprah

Puji syukur saya ucapkan kepada Tuhan Yang Esa atas segala rahmat dan karuniaNya, sehingga dapat menyelesaikan Tugas Akhir dengan judul “Pengendalian Kualitas

Pada skenario 3 ini, disimulasikan kapal KM Suryajaya yang dicurigai sebagai kapal Pada skenario 3 ini, disimulasikan kapal KM Suryajaya yang dicurigai sebagai kapal yang

Penelitian ini termasuk jenis penelitian deskriptif kuantitatif dengan penarikan kesimpulan melalui analisis statistik. Populasi dalam penelitian ini adalah