aplikasi inventory berbasis web menggunakan
TRANSCRIPT
1. APLIKASI INVENTORY BERBASIS WEB MENGGUNAKAN
FRAMEWORK CODEIGNITER DENGAN WEB SERVICE REST API
SKRIPSI
Disusun Oleh:
NAMA: VIRDI GUNAWAN
NIM: 20151000083
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS BUDDHI DHARMA
TANGERANG
2019
2. APLIKASI INVENTORY BERBASIS WEB MENGGUNAKAN
FRAMEWORK CODEIGNITER DENGAN WEB SERVICE REST API
Skripsi
Diajukan sebagai salah satu syarat untuk kelengkapan gelar kesarjanaan pada
Program Studi Teknik Informatika
Jenjang Pendidikan Strata 1
Disusun Oleh:
NAMA: VIRDI GUNAWAN
NIM: 20151000083
TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS BUDDHI DHARMA
TANGERANG
2019
3. LEMBAR PERSEMBAHAN
不是每一分努力都能有收获,
但是每一分收获却必须要努力。
Bùshì měi yī fēn nǔlì dōu néng yǒu shōuhuò, dànshì měi yī fēn shōuhuò què bìxū yào nǔlì.
“Tidak setiap kerja keras bisa mendapatkan pencapaian, Namun setiap pencapaian pasti
harus melalui kerja keras.”
Dengan mengucap puji syukur kepada Tuhan Yang Mahaesa, Skripsi ini
kupersembahkan untuk:
a. Bapak Djoni Gunawan dan Ibu Rusniati tercinta yang telah membesarkan aku dan
selalu membimbing, mendukung, memotivasi, memberi apa yang terbaik bagiku serta
selalu mendoakan aku untuk meraih kesuksesanku.
b. Teman-teman yang telah memberikan dukungan semangat serta dorongan yang
senantiasa diberikan.
c. Kelompok belajar, Darwin Tantowi dan Dermawan yang selalu berjuang bersama.
4. LEMBAR PENGESAHAN DEWAN PENGUJI
N I M : 20151000083
Nama : Virdi Gunawan
Fakultas : Sains dan Teknologi
Judul Skripsi : Aplikasi Inventory Berbasis Web Menggunakan Framework
CodeIgniter dengan Web Service REST API
Dinyatakan LULUS setelah mempersembahkan di depan Tim Penguji pada Senin,
20 Januari 2020.
Nama Penguji Tanda Tangan
Ketua Sidang : Rudy Arijanto, M.Kom
0415077105 ………………………………
Penguji 1 : Edy, M.Kom
0328128201 ………………………………
Penguji 2 : Benny Daniawan, M.Kom
0424049006 ………………………………
Mengetahui,
Dekan Fakultas Sains dan Teknologi
Dr. Eng Ir. Amin Suyitno, M.Eng
NIDN. 9906000711
i
KATA PENGANTAR
Dengan mengucapkan Puji Syukur kepada Tuhan Yang Mahaesa, yang telah memberikan
Rahmat dan karunia-Nya kepada penulis sehingga dapat menyusun dan menyelesaikan
Skripsi ini dengan judul “Aplikasi Inventory Berbasis Web Menggunakan Framework
CodeIgniter dengan Web Service REST API”. Tujuan utama dari pembuatan Skripsi ini
adalah sebagai salah satu syarat kelengkapan dalam menyelesaikan program pendidikan
Strata 1 Program Studi Teknik Informatika di Universitas Buddhi Dharma. Dalam
penyusunan skripsi ini penulis banyak menerima bantuan dan dorongan baik moril maupun
materiil dari berbagai pihak, maka pada kesempatan ini penulis menyampaikan rasa terima
kasih yang sebesar-besarnya kepada:
a. Bapak Dr. Sofian Sugioko, M.M., CPMA., sebagai Rektor Universitas Buddhi
Dharma.
b. Bapak Dr. Eng. Ir. Amin Suyitno, M.Eng., Dekan Fakultas Sains dan Teknologi.
c. Bapak Rino, M. Kom. Sebagai Ketua Program Studi Teknik Informatika.
d. Bapak Dicky Surya Dwi Putra, M. Kom. Sebagai pembimbing yang telah membantu
dan memberikan dukungan serta harapan untuk menyelesaikan penulisan Skripsi ini.
e. Orang tua dan keluarga yang selalu memberikan dukungan baik moril dan materiil.
f. Teman-teman yang selalu membantu dan memberikan semangat.
Serta semua pihak yang terlalu banyak untuk disebutkan satu-persatu sehingga terwujudnya
penulisan ini. Penulis menyadari bahwa penulisan skripsi ini masih belum sempurna, untuk
itu penulis mohon kritik dan saran yang bersifat membangun demi kesempurnaan penulisan
di masa yang akan datang. Akhir kata semoga skripsi ini dapat berguna bagi penulis
khususnya dan bagi para pembaca yang berminat pada umumnya.
Tangerang, 20 Januari 2020
Penulis
ii
APLIKASI INVENTORY BERBASIS WEB MENGGUNAKAN FRAMEWORK
CODEIGNITER DENGAN WEB SERVICE REST API
106 + vii halaman/ 12 tabel/ 33 gambar/ 3 lampiran
ABSTRAK
Perkembangan teknologi yang begitu pesat membuat pekerjaan yang dilakukan manusia
dapat diselesaikan dengan lebih cepat. Salah satu alat bantu yang digunakan oleh manusia
adalah teknologi. Pengolahan informasi jadi semakin cepat dengan adanya teknologi.
Pengolahan data dan informasi secara cepat, tepat dan efisien adalah hal penting yang
dibutuhkan bagi setiap perusahaan atau suatu instansi untuk meningkatkan produktifitas
pekerjaan, waktu dan biaya. Penulis berencana membuat sebuah aplikasi inventory yang
dapat mengelola data barang secara digital. Sistem ini dibuat menggunakan bahasa
pemrograman PHP dengan framework CodeIgniter serta web service REST API. Hasil dari
sistem ini adalah dapat memproses informasi berkaitan dengan barang seperti: data barang,
barang masuk dan keluar, data supplier, serta laporan. Aplikasi ini dapat mengelola data
barang dengan baik menggunakan REST API sebagai sarana pertukaran datanya.
Kata kunci: Inventory, Framework CodeIgniter, REST API
iii
WEB-BASED INVENTORY APPLICATIONS USING CODEIGNITER FRAMEWORK
WITH WEB SERVICE REST API
106 pages + vii pages / 12 tabels / 33 pictures / 3 libraries
5. ABSTRACT
The rapid development of technology makes the work done by humans can be completed
more quickly. One of the tools used by humans is technology. Information processing has
become faster with technology. Processing data and information quickly, precisely and
efficiently is an important thing needed for every company or an agency to increase work
productivity, time and cost. The author plans to create an inventory application that can
manage goods data digitally. This system is made using PHP programming language with
CodeIgniter framework and REST API web service. The results of this system are able to
process information related to goods such as: data of goods, goods entering and leaving,
supplier data, and reports. This application can manage goods data properly using the REST
API as a means of exchanging data.
Keyword: Inventory, Framework CodeIgniter, REST API
iv
DAFTAR ISI
LEMBAR JUDUL LUAR
LEMBAR JUDUL DALAM
LEMBAR PERSEMBAHAN
LEMBAR PENYATAAN KEASLIAN SKRIPSI
LEMBAR PERSETUJUAN PUBLIKASI KARYA ILMIAH
LEMBAR PENGESAHAN PEMBIMBING
LEMBAR PENGESAHAN SKRIPSI
LEMBAR PENGESAHAN DEWAN PENGUJI
KATA PENGANTAR ............................................................................................................ i
ABSTRAK ............................................................................................................................ ii
ABSTRACT ........................................................................................................................... iii
DAFTAR ISI ........................................................................................................................ iv
DAFTAR GAMBAR ........................................................................................................... vii
DAFTAR TABEL ................................................................................................................ ix
DAFTAR LAMPIRAN ......................................................................................................... x
BAB I PENDAHULUAN ...................................................................................................... 1
1.1 Latar Belakang Masalah ......................................................................................... 1
1.2 Identifikasi Masalah ................................................................................................ 2
1.3 Rumusan Masalah ................................................................................................... 2
1.4 Tujuan dan Manfaat Penulisan ............................................................................... 3
1.4.1 Tujuan .............................................................................................................. 3
1.4.2 Manfaat ............................................................................................................ 3
1.5 Ruang Lingkup ....................................................................................................... 3
1.6 Metode Penelitian ................................................................................................... 4
1.6.1 Metode Penelitian ............................................................................................ 4
1.6.2 Metode Pengumpulan Data ............................................................................. 5
1.7 Sistematika Penulisan ............................................................................................. 5
BAB II LANDASAN PEMIKIRAN TEORITIS .................................................................. 7
2.1 Teori Umum ............................................................................................................ 7
2.1.1 Data .................................................................................................................. 7
2.1.2 Proses ............................................................................................................... 8
2.1.3 Informasi .......................................................................................................... 8
v
2.1.4 Aplikasi ............................................................................................................ 9
2.1.5 Internet ........................................................................................................... 10
2.1.6 Basis Data ...................................................................................................... 14
2.1.7 Website .......................................................................................................... 15
2.2 Teori Khusus ......................................................................................................... 16
2.2.1 Inventory ........................................................................................................ 16
2.2.2 Waterfall ........................................................................................................ 17
2.2.3 Algoritma ....................................................................................................... 19
2.2.4 JSON (JavaScript Object Notation) .............................................................. 22
2.2.5 Web Service ................................................................................................... 24
2.2.6 Framework .................................................................................................... 30
2.2.7 MVC ............................................................................................................... 31
2.3 Teori Analisa dan Perancangan ............................................................................ 33
2.3.1 XAMPP .......................................................................................................... 33
2.3.2 VSCode .......................................................................................................... 34
2.3.3 HTML ............................................................................................................ 36
2.3.4 CSS ................................................................................................................ 37
2.3.5 PHP ............................................................................................................... 38
2.3.6 JavaScript ...................................................................................................... 41
2.3.7 jQuery ............................................................................................................ 42
2.3.8 MySQL ........................................................................................................... 43
2.3.9 Postman ......................................................................................................... 45
2.3.10 CodeIgniter .................................................................................................... 46
2.3.11 API (Application Programming Interface) .................................................... 51
2.3.12 ERD (Entity Relationship Diagram )............................................................. 51
2.3.13 Flowchart ...................................................................................................... 53
2.3.14 Blackbox Testing ........................................................................................... 58
2.4 Tinjauan Studi ....................................................................................................... 62
2.4.1 Penelitian Muhammad Iqbal Perkasa, Eko Budi Setiawan ........................... 62
2.4.2 Penelitian Penidas Fiodinggo Tanaem, Danny Manogga, Ade Iriani ........... 64
2.4.3 Penelitian Swono Sibagariang ....................................................................... 66
2.4.4 Rangkuman Model Penelitian ....................................................................... 68
2.5 Kerangka Pemikiran ............................................................................................. 70
vi
BAB III PERANCANGAN APLIKASI .............................................................................. 71
3.1 Analisa Kebutuhan ................................................................................................ 71
3.1.1 Analisa Kebutuhan Perangkat ....................................................................... 71
3.1.2 Analisa Kebutuhan Pemakai .......................................................................... 71
3.1.3 Analisa Kebutuhan Aplikasi .......................................................................... 72
3.2 Konstruksi Algoritma dan Metode........................................................................ 73
3.3 Perancangan Layar, Menu dan Database ............................................................. 74
3.3.1 Rancangan Layar dan Menu .......................................................................... 74
3.3.2 Rancangan Database ..................................................................................... 78
3.4 Rancangan Flowchart ........................................................................................... 82
BAB IV PENGUJIAN DAN IMPLEMENTASI ................................................................ 83
4.1 Pembahasan Metode dan Algoritma ..................................................................... 83
4.1.1 CodeIgniter .................................................................................................... 83
4.1.2 REST .............................................................................................................. 85
4.2 Spesifikasi Hardware dan Software ..................................................................... 88
4.2.1 Spesifikasi Hardware .................................................................................... 88
4.2.2 Spesifikasi Software ...................................................................................... 89
4.3 Tampilan Program ................................................................................................ 90
4.3.1 Tampilan Menu Login ................................................................................... 90
4.3.2 Tampilan Menu Dashboard .......................................................................... 90
4.3.3 Tampilan Menu Barang ................................................................................. 91
4.3.4 Tampilan Menu Barang Masuk ..................................................................... 91
4.3.5 Tampilan Menu Barang Keluar ..................................................................... 92
4.3.6 Tampilan Menu Supplier ............................................................................... 92
4.4 Pengujian Blackbox ............................................................................................... 93
BAB V SIMPULAN DAN SARAN .................................................................................. 102
5.1 Simpulan ............................................................................................................. 102
5.2 Saran ................................................................................................................... 102
DAFTAR PUSTAKA ........................................................................................................ 103
LAMPIRAN-LAMPIRAN ................................................................................................ 107
vii
DAFTAR GAMBAR
Gambar 2.1 Uji coba SOAP dan RESTful web service ........................................................ 27
Gambar 2.2 Cara Kerja REST API....................................................................................... 29
Gambar 2.3 Alur kerja MVC secara ringkas ........................................................................ 32
Gambar 2.4 XAMPP ............................................................................................................ 33
Gambar 2.5 VSCode ............................................................................................................ 34
Gambar 2.6 HTML ............................................................................................................... 36
Gambar 2.7 CSS ................................................................................................................... 37
Gambar 2.8 PHP ................................................................................................................. 38
Gambar 2.9 JavaScript ........................................................................................................ 41
Gambar 2.10 jQuery ............................................................................................................ 42
Gambar 2.11 MySQL ........................................................................................................... 43
Gambar 2.12 Postman ......................................................................................................... 45
Gambar 2.13 CodeIgniter .................................................................................................... 46
Gambar 2.14 Simbol Flowchart .......................................................................................... 57
Gambar 3.1 Rancangan Layar Menu Login......................................................................... 74
Gambar 3.2 Rancangan Layar Dashboard .......................................................................... 75
Gambar 3.3 Rancangan Layar Menu Barang dan Supplier ................................................. 76
Gambar 3.4 Rancangan Layar Menu Barang Masuk dan Barang Keluar ........................... 77
Gambar 3.5 Rancangan Database ....................................................................................... 78
Gambar 3.6 Flowchart ......................................................................................................... 82
Gambar 4.1 Alur Aplikasi CodeIgniter ............................................................................... 83
Gambar 4.2 Struktur Folder CodeIgniter ............................................................................ 84
Gambar 4.3 REST Client PHP di framework CodeIgniter bagian Controller .................... 86
Gambar 4.4 REST Client PHP di framework CodeIgniter bagian Config Link REST Server
............................................................................................................................................. 86
Gambar 4.5 REST Server PHP di framework CodeIgniter bagian Controller .................... 87
Gambar 4.6 REST Server PHP di framework CodeIgniter bagian Model .......................... 87
Gambar 4.7 Hasil Data dari REST API PHP ....................................................................... 88
Gambar 4.8 Tampilan Menu Login ..................................................................................... 90
Gambar 4.9 Tampilan Menu Dashboard ............................................................................. 90
Gambar 4.10 Tampilan Menu Barang ................................................................................. 91
Gambar 4.11 Tampilan Menu Barang Masuk ..................................................................... 91
viii
Gambar 4.12 Tampilan Menu Barang Keluar ..................................................................... 92
Gambar 4.13 Tampilan Menu Supplier ............................................................................... 92
ix
DAFTAR TABEL
Tabel 2.1: Penelitian Muhammad Iqbal Perkasa, Eko Budi Setiawan ................................ 62
Tabel 2.2: Penelitian Ninis Insiyah Masyhur, Kasim, Irmawati ......................................... 64
Tabel 2.3: Penelitian Swono Sibagariang ............................................................................ 66
Tabel 2.4: Rangkuman Penelitian ........................................................................................ 68
Tabel 3.1: Identifikasi Kebutuhan Pemakai ........................................................................ 72
Tabel 3.2: Analisa Kebutuhan Pemakai .............................................................................. 72
Tabel 3.3: Tabel Supplier .................................................................................................... 78
Tabel 3.4: Tabel Barang ...................................................................................................... 79
Tabel 3.5: Tabel Barang Keluar Masuk............................................................................... 80
Tabel 3.6: Tabel User .......................................................................................................... 81
Tabel 3.7: Tabel Migration .................................................................................................. 81
Tabel 4.1: Pengujian Blackbox ............................................................................................ 93
x
DAFTAR LAMPIRAN
Lampiran 1 Code Program REST CLIENT………………….………………………..107
Lampiran 2 Code Program REST SERVER...……………….………………………..123
Lampiran 3 Daftar Riwayat Hidup ……….………………………………………….129
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Menurut Nanaban, “Inventory adalah persediaan dalam bahasa Indonesia.
Persediaan, kaitannya dengan aktivitas logistik sebuah perusahaan, merupakan suatu
kegiatan yang menyediakan stok bahan baku atau barang setengah jadi ataupun
barang jadi demi kelancaran proses produksi dan/atau pemenuhan permintaan
pelanggan.”
Murhada dan Yo Ceng Giap mengungkapkan bahwa “Perangkat lunak
aplikasi sejatinya adalah program yang didesain khusus untuk menyelesaikan
masalah spesifik pengguna, seperti melakukan tugas-tugas mengetik dokumen,
manipulasi foto, merancang bangunan” (Murhada dan Yo 2011, 104).
Menurut Yuhefizar, “Website adalah keseluruhan halaman-halaman web
yang terdapat dalam sebuah domain yang mengandung informasi. Sebuah website
biasanya dibangun atas banyak halaman web yang saling berhubungan. Hubungan
antara satu halaman web dengan halaman web yang lainnya disebut dengan
hyperlink, sedangkan teks yang dijadikan media penghubung disebut hypertext”
(Yuhefizar, Mooduto dan Rahmat 2009, 2).
Menurut Wardana, “Framework adalah kumpulan perintah atau fungsi dasar
yang membentuk aturan-aturan tertentu dan asling berinteraksi satu sama lain
sehingga dalam pembuatan aplikasi website, kita harus mengikuti aturan dari
framework tersebut” (Wardana 2010, 3).
Sulistiono mengemukakan, “CodeIgniter adalah aplikasi open source yang
berupa kerangka kerja atau framework untuk membangun website menggunakan
2
bahasa pemrograman PHP. Tujuannya memungkinkan pengembangan projek yang
lebih cepat daripada penulisan kode dasar atau kode terstruktur, dengan menyediakan
banyak library yang biasanya digunakan dalam pengerjaan” (Sulistiono 2018, 7).
Sehubung dengan uraian tersebut di atas, maka dibuatlah penelitian berjudul
“PERANCANGAN APLIKASI INVENTORY BERBASIS WEB
MENGGUNAKAN FRAMEWORK CODEIGNITER DENGAN WEB SERVICE
REST API” sebagai penelitian tentang pembuatan aplikasi inventory berbasis web
dengan web service REST API.
1.2 Identifikasi Masalah
Berdasarkan dari latar belakang yang telah dijelaskan di atas, maka yang menjadi
identifikasi masalah dalam penelitian ini adalah sebagai berikut:
1. Bagaimana menangani proses dalam pendataan barang masuk dan keluar?
2. Bagaimana membangun sistem inventory stok barang yang dapat memberikan
informasi yang cepat, tepat dan akurat dengan web service REST API?
1.3 Rumusan Masalah
Dalam penulisan ini ada rumusan masalah yang diangkat adalah sebagai berikut:
1. Bagaimana perancangan sistem inventory yang dapat membantu pengolahan
data, barang masuk, barang keluar dan laporan?
2. Bagaimana implementasi sistem inventory dengan web service REST API dapat
menyajikan laporan yang cepat dan sesuai dengan data yang telah ada?
3
1.4 Tujuan dan Manfaat Penulisan
1.4.1 Tujuan
Tujuan penulisan ini adalah:
a. Untuk merancang sistem inventory barang agar mempermudah
pengelolaan dan pendataan barang yang masuk dan keluar.
b. Untuk menghasilkan suatu sistem yang memberikan informasi tentang
laporan inventory sehingga mempermudah mendapatkan informasi yang
dibutuhkan.
1.4.2 Manfaat
Manfaat penulisan ini adalah:
a. Menjadi referensi bagi penelitian selanjutnya dalam penggunaan web
service REST API.
b. Menjadi aplikasi berbasis web yang dapat membantu pengguna dalam
pengolahan data, barang masuk, barang keluar dan laporan.
1.5 Ruang Lingkup
Adapun ruang lingkup masalah dalam penelitian ini adalah sebagai berikut:
a. Sistem inventory ini membahas stok barang yang ada, barang masuk, barang
keluar dan laporan yang dibuat dengan basis web.
b. Sistem inventory ini tidak ada klien.
4
1.6 Metode Penelitian
1.6.1 Metode Penelitian
a. Requirement Analisys
Tahap ini pengembang sistem diperlukan komunikasi yang bertujuan
untuk memahami perangkat lunak yang diharapkan oleh pengguna dan
batasan perangkat lunak tersebut. Informasi ini biasanya dapat diperoleh
melalui wawancara, diskusi atau survei langsung. Informasi dianalisis
untuk mendapatkan data yang dibutuhkan oleh pengguna.
b. System Design
Spesifikasi kebutuhan dari tahap sebelumnya akan dipelajari dalam fase
ini dan desain sistem disiapkan. Desain sistem membantu dalam
menentukan perangkat keras (hardware) dan sistem persyaratan dan juga
membantu dalam mendefinisikan arsitektur sistem secara keseluruhan.
c. Implementation
Pada tahap ini, sistem pertama kali dikembangkan di program kecil yang
disebut unit, yang terintegrasi dalam tahap selanjutnya. Setiap
unitdikembangkan dan diuji untuk fungsionalitas yang disebut sebagai
unit testing.
d. Integration & Testing
Seluruh unit yang dikembangkan dalam tahap implementasi
diintegrasikan ke dalam sistem setelah pengujian yang dilakukan
masing-masing unit. Setelah integrasi seluruh sistem diuji untuk
mengecek setiap kegagalan maupun kesalahan.
5
e. Operation & Maintenance
Tahap akhir dalam model waterfall. Perangkat lunak yang sudah jadi,
dijalankan serta dilakukan pemeliharaan. Pemeliharaan termasuk dalam
memperbaiki kesalahan yang tidak ditemukan pada langkah sebelumnya.
Perbaikan implementasi unit sistem dan peningkatan jasa sistem sebagai
kebutuhan baru.
1.6.2 Metode Pengumpulan Data
a. Studi Pustaka
Pengumpulan data dan informasi yang diperlukan untuk digunakan dalam
pembuatan aplikasi yang menggunakan web service REST API.
1.7 Sistematika Penulisan
a. BAB I PENDAHULUAN
Pendahuluan berisi mengenai latar belakang, identifikasi masalah, rumusan
masalah, tujuan dan manfaat penulisan, ruang lingkup masalah, metode
penelitan dan pengumpulan data, sistematika penulisan.
b. BAB II LANDASAN TEORI
Landasan teori mengenai penelitian terdahulu dan rencana penelitian yang
dilakukan oleh penulis. Selain itu juga berisi teori prediksi dengan menggunakan
web service REST API.
c. BAB III ANALISA MASALAH DAN PERANCANGAN APLIKASI
Metodelogi berisi mengenai metodelogi atau langkah-langkah dalam
penyelesaian masalah, meliputi penyusunan formula dan algoritma yang akan
digunakan dalam penelitian.
6
d. BAB IV RANCANGAN SISTEM DAN IMPLEMENTASI
Bab ini menjelaskan analisa sistem yang diusulkan dengan menggunakan
flowchart dari sistem yang diimplementasikan, serta pembahasan secara detail
final elisitasi yang ada di bab sebelumnya, dijabarkan secara satu persatu dengan
menerapkan konsep sesudah adanya sistem yang diusulkan.
e. BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran yang berkaitan dengan analisa dan
optimalisasi sistem berdasarkan yang telah diuraikan pada bab-bab sebelumnya.
7
BAB II
LANDASAN PEMIKIRAN TEORITIS
2.1 Teori Umum
2.1.1 Data
Menurut Helmi, “Data menurut Webster New World Dictionary,
adalah things known or assumed, atau data itu sesuatu yang diketahui atau
dianggap. Diketahui artinya sudah terjadi yang merupakan fakta (bukti). Data
dapat menggambarkan tentang suatu keadaan atau persoalan” (Helmi 2010,
1).
Sedangkan Murhada dan Yo Ceng Giap mengatakan, “Data adalah
representasi dari fakta dunia nyata yang mewakili suatu objek yang sedang
ditinjau (manusia, barang, peristiwa, hewan, konsep, keadaan dan
sebagainya) dan direkam dalam bentuk huruf, kata, angka, simbol, gambar,
bunyi atau kombinasinya” (Murhada dan Yo 2011, 160).
Sedangkan menurut Sugiyono, “Data menurut jenisnya dibagi
menjadi dua yaitu data kualitatif dan kuantitatif” (Sugiyono 2012, 5).
a. Data Kualitatif
Data kualitatif adalah data yang berhubungan dengan kategorisasi,
karakteristik berwujud pernyataan atau berupa kata-kata. Data ini bersifar
subjebtif dan biasanya didapat dari wawancara.
b. Data Kuantitatif
Data kuantitatif adalah data yang berwujud angka-angka. Data ini
diperoleh dari pengukuran langsung maupun dari angka-angka yang
diperoleh dengan mengubah dari data kualitatif menjadi data kuantitatif.
8
2.1.2 Proses
Menurut Purnawanto, “Proses dapat didefinisikan sebagai aktifitas
mentransformasikan input menjadi output” (Purnawanto 2010, 46).
Purnawanto menambahkan dalam bukunya yang berjudul
Manajemen SDM Berbasis Proses, berdasarkan pendapat Michael Hammer:
“Proses adalah kumpulan task yang bekerja secara bersama untuk
menghasilkan value bagi customer. Berdasarkan definisi dari Hammer
tersebut, kita dapatkan tiga kata kunci” (Purnawanto, 2010, hal. 46):
a. Kumpulan task
b. Bekerja secara bersama
c. Menghasilkan value bagi customer
2.1.3 Informasi
Sutabri mengemukakan di dalam buku yang berjudul Analisis Sistem
Informasi bahwa, “Informasi adalah data yang telah diolah atau
diklasifikasikan atau diinterprestasikan untuk digunakan di dalam proses
pengambilan keputusan. Sistem pengolahan informasi akan mengolah data
menjadi informasi atau mengolah data dari bentuk yang tidak berguna
menjadi berguna bagi yang menerimanya. Nilai informasi berhubungan
dengan keputusan, bila tidak ada pilihan atau keputusan maka informasi tidak
diperlukan” (Sutabri 2012, 22).
Penulis lain menambahkan bahwa, “Informasi adalah data yang
diolah menjadi bentuk yang berguna untuk membuat keputusan” (Muslihudin
& Oktafianto 2016, 9).
9
Muslihudin menambahkan bahwa, “Kualitas dari suatu informasi
tergantung dari tiga hal, yaitu” (Muslihudin & Oktafianto 2016, 10):
a. Informasi harus akurat (accurate)
Informasi harus bebas dari kesalahan dan tidak bias atau
menyesatkan. Akurat juga berarti bahwa informasi harus jelas
mencerminkan maksudnya.
b. Tepat waktu
Informasi yang sampai pada si penerima tidak poleh terlambat,
informasi yang sudah usang tidak akan mempunyai nilai lagi. Karena
informasi merupakan landasan di dalam pengambilan keputusan.
c. Relevan
Informasi tersebut mempunyai manfaat untuk pemakainya. Relevansi
untuk setiap orang, satu dengan lainnya adalah berbeda.
2.1.4 Aplikasi
Hendrayudi mendefinisikan bahwa “Aplikasi adalah kumpulan
perintah program yang dibuat untuk melakukan pekerjaan-pekerjaan tertentu
(khusus)” (Hendrayudi 2009, 143).
Murhada dan Yo Ceng Giap mengungkapkan bahwa “Perangkat
lunak aplikasi sejatinya adalah program yang didesain khusus untuk
menyelesaikan masalah spesifik pengguna, seperti melakukan tugas-tugas
mengetik dokumen, manipulasi foto, merancang bangunan” (Murhada & Yo
2011, 104).
Perangkat lunak aplikasi dapat digolongkan menjadi beberapa
golongan, yaitu:
10
a. Perangkat lunak hiburan
Mencangkup berbagai macam program permainan (game), program
untuk memainkan musik, dan program menonton film.
b. Perangkat lunak pendidikan
Berguna untuk mempelajari atau mereferensi suatu pengetahuan, yang
termasuk kategori ini misalkan aplikasi kamus, ensiklopedia, pelajaran
ilmu pengetahuan, pelajaran bahasa asing, dan simulasi.
c. Perangkat lunak bisnis
Digunakan untuk menangani aplikasi bisnis. Misalnya berupa program
untuk menangani persediaan barang (inventory control), pencatatan
pembayaran piutang (account receieable) dan registrasi mahasiswa
(sistem informasi akademik).
d. Perangkat lunak produktivitas kerja
Berguna untuk meningkatkan produktivitas kerja pemakai. Beberapa
golongan perangkat lunak untuk meningkatkan kerja diantaranya word
proccessing, spreadsheet, desktop publishing, presentasi grafik,
komunikasi, personal information manager, dan manajemen data.
2.1.5 Internet
Supardi mengemukakan di buku berjudul Internet untuk Segala
Kebutuhan bahwa, “Internet yang merupakan akronim dari Interconnection
Network adalah jaringan komputer dengan skala dunia. Teknologi internet
memakai protokol TCP/IP yang pertama kali dikenalkan dan diuji coba oleh
US Departement of Defense (US DoD) dalam proyek ARPANET (Advanced
Research Project Agency Network) pada tahun 1969.” (Supardi 2009, 1)
11
Menurut Murhada dan Yo Ceng Giap “Internet adalah jaringan
komputer yang bisa dikatergorikan sebagai WAN, menghubungkan berjuta
komputer di seluruh dunia, di mana setiap orang memiliki komputer dapat
bergabung ke dalam jaringan ini” (Murhada & Yo 2011, 195).
1. Sejarah Internet
Darma, Jarot S., dan Ananda mengungkapkan dalam buku berjudul
Buku Pintar Menguasai Internet bahwa, “Rangkaian pusat yang
membentuk internet diawali pada tahun 1969 oleh ARPA (Advanced
Research Project Agency), sebuah badan yang dibentuk pada tahun 1958
oleh Amerika yang terdiri para peneliti dan teknisi dari universitas dan
laboratorium yang ada di Amerika. Awalnya, badan ini dibentuk untuk
menyaingi Rusia, yang saat itu lebih maju dibidang satelit. Para peneliti
pun bekerja, tidak harus di satu lokasi, untuk membuat penelitian dan
mendedikasikan hasil penelitian tersebut untuk perkembangan teknologi
Amerika Serikat.
Karena mereka bekerja dengan satu tujuan, tentu mereka harus saling
berbagi hasil penelitian sesering mungkin. Namun, karena para peneliti
tersebut bekerja tidak dalam satu lokasi, mereka mengalami kesulitan
dalam hal ini. Akhirnya, ARPA memutuskan untuk membuat sebuah
jaringan komputer pada tahun 1969, yang diberi nama ARPANET.
Dengan adanya ARPANET, para peneliti dari seluruh belahan Amerika
bisa berkomunikasi dan mengakses data-data yang mereka perlukan dari
komputer server yang telah disediakan. Sambungan atau jalur yang
digunakan ARPANET saat itu adalah jalur atau kabel telepon. Namun,
12
pada waktu itu, ARPANET bukanlah untuk semua orang, hanya untuk
kalangan tertentu.
Untuk proses mempercepat transmisi data, ARPANET akhirnya
bekerja sama dengan pihak NOVEL. Mereka menggunakan teknologi
yang dinamakan paket switching. Dengan teknologi setiap paket atau data
yang dikirim, akan dipecah menjadi paket-paket yang kecil, sehingga bisa
mempercepat proses. Saat data sampai ke tempat tujuan, data tersebut
akan disatukan kembali.
Pada waktu itu, teknologi network hub belum ditemukan,
menyebabkan server yang ada di ARPANET (empat buah) harus
dihubungkan secara langsung dari satu server ke server yang lain. Seiring
waktu, akhirnya para peneliti menyadari akan besarnya manfaat yang
diberikan oleh networking. Setelah melalui beberapa penelitian, akhirnya
mereka berhasil mengembangkan teknologi networking, yang
menyebakan jumlah komputer yang terhubung semakin banyak.
Pada tahun 1972, email mulai diperkenalkan. Dengan email, para
peneliti bisa lebih mudah untuk berkirim data dan informasi. Semenjak
saat itu, traffic yang ada dalam networking tersebut menjadi semakin
tinggi. Pada 1 Januari 1973, ARPANET menukar protokol rangkaian
pusatnya, dari NCP ke TCP/IP. Ini merupakan awal dari internet yang
kita kenal hari ini. Pada tahun 1989, ARPANET telah memiliki 100.000
server yang saling berhubungan” (Darma, S., & Ananda 2009, 2).
Darma, Jarot S., Ananda menambahkan bahwa, “Hanya mereka yang
mengerti dan memahami bahasa pemrograman, hafal angka-angka dari
alamat-alamat internet, atau internet address saja yang bisa menggunakan
13
ARPANET. Apalagi masing-masing jenis jenis atau tipe komputer
menggunakan cara yang berbeda untuk mengakses file, networks protocol
yang digunakan pun juga masih berbeda-beda. Pada akhirnya, tahun
1989, diperkenalkan sebuah protokol, yaitu Hypertext Transfer Protocol
atau HTTP. Dengan protokol yang sama, akan memudahkan komputer
untuk saling berhubungan. Dengan HTTP ini, internet tidak lagi menjadi
rumit dan bukan lagi hanya untuk para ilmuwan atau teknisi. Protokol ini
pertama kali dibuat oleh Tim Berners-Lee.
HTTP dapat juga dikatakan sebagai alamat yang digunakan di dalam
internet. Alamat ini menunjukan suatu identitas yang unik. Seperti alamat
rumah, alamat pada masing-masing halaman pada internet pasti berbeda-
beda, sehingga memudahkan pencarian bagi penjelajahnya. Sedangkan
untuk alamat masing-masing komputer yang mengakses internet,
digunakan istilah IP (Internet Protocol) Address. Setiap komputer yang
online mempunyai IP address yang berbeda dengan komputer lainnya.
Tidak ada dua komputer yang memiliki IP address yang sama” (Darma,
S., & Ananda 2009, 2).
2. Layanan Internet
Penulis lain menambahkan bahwa “Layanan-layanan di internet yang
terpopuler adalah” (Supardi 2009, 3):
a. Email: layanan untuk berkirim surat secara elektronik.
b. Browsing: layanan untuk menelusuri situs web.
c. Hosting: layanan untuk meletakan web atau situs yang kita buat
sehingga dapat dilihat di seluruh dunia.
14
d. Chatting: komunikasi dengan teks, foto, video, dan lain-lainnya ke
seluruh penjuruh dunia.
e. Search engine: layanan dan membantu Anda untuk mencari informasi
dari situs tertentu.
2.1.6 Basis Data
Anniss menemukakan bahwa “Basis Data atau lebih dikenal
database, dalam teknologi informasi adalah aplikasi komputer yang
digunakan untuk menyimpan, mengelola, dan mengakses informasi yang
dikenal sebagai data. Terdapat banyak aplikasi basis data, biasa disebut
DBMS (DataBase Management System)” (Anniss 2014, 5)
Sebuah basis data (database) memiliki satu atau banyak entitas
(umumnya menggunakan istilah table), dan masing-masing table tersebut
memiliki satu atau banyak atribut (umumnya menggunakan istilah field atau
column).
Penulis lain menambahkan bahwa “Ada banyak jenis basis data, Anda
dapat mendapatkannya secara gratis ataupun berbayar. Contoh aplikasi basis
data yang bisa Anda kunjungi adalah” (Politwika, 2017, hal. 345):
a. MS Access
b. DBV
c. FoxPro
d. Paradox
e. MySQL
15
2.1.7 Website
Menurut Yuhefizar, “Website adalah keseluruhan halaman-halaman
web yang terdapat dalam sebuah domain yang mengandung informasi.
Sebuah website biasanya dibangun atas banyak halaman web yang saling
berhubungan. Hubungan antara satu halaman web dengan halaman web yang
lainnya disebut dengan hyperlink, sedangkan teks yang dijadikan media
penghubung disebut hypertext” (Yuhefizar, Mooduto dan Rahmat 2009, 2).
Menurut Yudianto (2011, 8), “Pengertian website adalah kumpulan
dari alaman web yang sudah dipublikasikan di jaringan internet dan memiliki
domain/URL (Uniform Resource Locator) yang dapat diakses semua
pengguna internet dengan cara mengetikan alamatnya. Hal ini dimungkinkan
dengan adanya teknologi WorldWideWeb (WWW) fasilitas hypertext guna
menampilkan data berupa teks, gambar, animasi, suara dan multimedia
lainnya. Data tersebut dapat saling terhubung pada web server untuk dapat
diakses melalui jaringan internet. Agar data pada web dapat dibaca kita harus
menggunakan web server terlebih dahulu seperti Mozila Firefox, Internet
Explorer, Opera, Google Chrome, atau yang lainnya.”
Menurut Hidayat (2010, 6), “Website adalah keseluruhan halaman-
halaman web yang terdapat dalam sebuah domain yang mengandung
informasi. Sebuha website biasanya dibangun atas banyak halaman web yang
saling berhubungan satu sama lain. Jadi dapat dikatakan bahwa pengertian
website adalah kumpulan halaman-halaman yang digunakan untuk
menampilkan informasi teks, gambar diam atau bergerak, animasi, suara
dan/atau gabungan dari semuanya, baik yang bersifat dinamis yang
membentuk satu rangkaian bangunan yang saling terkait yang masing-masing
16
dihubungkan dengan jaringan halaman. Hubungan antara satu halaman
website dengan halaman website lainnya disebut dengan hyperlink sedangkan
teks yang dijadikan media disebut hypertext.
2.2 Teori Khusus
2.2.1 Inventory
Menurut Nanaban, “Inventory adalah persediaan dalam bahasa
Indonesia. Persediaan, kaitannya dengan aktivitas logistik sebuah
perusahaan, merupakan suatu kegiatan yang menyediakan stok bahan baku
atau barang setengah jadi ataupun barang jadi demi kelancaran proses
produksi dan/atau pemenuhan permintaan pelanggan.”
Dalam kalimat yang sederhana, persediaan ini hampir menyerupai
sistem persediaan yang dilakukan di keluarga Anda untuk memenuhi
kebutuhan konsumsi rumah tangga.
Contohnya adalah di dalam belanja bulanan kebutuhan rumah tangga
seringkali kita membeli beberapa barang konsumsi tidak hanya satu buah saja
tetapi bisa beberapa buah, misalnya sabun mandi, sabun cuci, sikat gigi, dan
sebagainya.
Tujuannya adalah supaya pada saat kita membutuhkan barang-barang
ini selalu tersedia di rumah, sehingga tidak perlu repot untuk bepergian setiap
kali membutuhkannya.
Secara ringkas manfaat utamanya adalah untuk efisiensi waktu dan
biaya. Ada baiknya kita simak penjelasan lebih lanjut untuk masing-masing
jenis Inventory (Persediaan).
17
Menurut Musifa (2019, 1), jenis-jenis inventory dapat dibagi menjadi 5, yaitu:
a. Persediaan bahan baku (raw material)
b. Komponen rakitan (part/components)
c. Bahan pembantu (supplies)
d. Barang dalam proses (work in process)
e. Barang jadi (finished goods)
Menurut penulis yang sama, fungsi inventory adalah sebagai berikut:
a. Menghilangkan/mengurangi risiko keterlambatan pengiriman bahan
b. Menyesuaikan dengan jadwal produksi
c. menghilangkan/mengurangi risiko kenaikan harga
d. Menjaga persediaan bahan yang dihasilkan secara musiman
e. Mengantisipasi permintaan yang dapat diramalkan
f. Mendapatkan keuntungan dari quantity discount
g. Komitmen terhadap pelanggan
2.2.2 Waterfall
Menurut Bahjar, “Metode air terjun atau yang sering disebut metode
waterfall sering dinamakan siklus hidup klasik (classic life cycle), di mana
hal ini menggambarkan pendekatan yang sistematis dan juga berurutan pada
pengembangan perangkat lunak, dimulai dengan spesifikasi kebutuhan
pengguna lalu berlanjut melalui tahapan-tahapan perencanaan (planning),
permodelan (modeling), konstruksi (construction), serta penyerahan sistem
ke para pelanggan/pengguna (deployment), yang diakhiri dengan dukungan
pada perangkat lunak lengkap yang dihasilkan.”
18
Tahapan Metode Waterfall
Dalam pengembangannya metode waterfall memiliki beberapa tahapan yang
berurut yaitu: requirement (analisis kebutuhan), design system (desain
sistem), coding (pengkodean) & testing (pengujian), Penerapan program,
pemeliharaan. Tahapan tahapan dari metode waterfall adalah sebagai berikut:
a. Requirement Analisis
Tahap ini pengembang sistem diperlukan komunikasi yang
bertujuan untuk memahami perangkat lunak yang diharapkan oleh
pengguna dan batasan perangkat lunak tersebut. Informasi ini
biasanya dapat diperoleh melalui wawancara, diskusi atau survei
langsung. Informasi dianalisis untuk mendapatkan data yang
dibutuhkan oleh pengguna.
b. System Design
Spesifikasi kebutuhan dari tahap sebelumnya akan dipelajari
dalam fase ini dan desain sistem disiapkan. Desain sistem
membantu dalam menentukan perangkat keras (hardware) dan
sistem persyaratan dan juga membantu dalam mendefinisikan
arsitektur sistem secara keseluruhan.
c. Implementation
Pada tahap ini, sistem pertama kali dikembangkan di program
kecil yang disebut unit, yang terintegrasi dalam tahap selanjutnya.
Setiap unitdikembangkan dan diuji untuk fungsionalitas yang
disebut sebagai unit testing.
19
d. Integration & Testing
Seluruh unit yang dikembangkan dalam tahap implementasi
diintegrasikan ke dalam sistem setelah pengujian yang dilakukan
masing-masing unit. Setelah integrasi seluruh sistem diuji untuk
mengecek setiap kegagalan maupun kesalahan.
e. Operation & Maintenance
Tahap akhir dalam model waterfall. Perangkat lunak yang
sudah jadi, dijalankan serta dilakukan pemeliharaan.
Pemeliharaan termasuk dalam memperbaiki kesalahan yang tidak
ditemukan pada langkah sebelumnya. Perbaikan implementasi unit
sistem dan peningkatan jasa sistem sebagai kebutuhan baru.
2.2.3 Algoritma
Menurut Sahyar, “Algoritma adalah langkah-langkah yang sistematis, logis
dan lengkap untuk penyelesaian suatu masalah” (Sahyar 2016, 4).
Sahyar menambahkan, “ada dua cara menyusun algoritma, yaitu:”
(Sahyar 2016, 4).
a. Menggunakan bagan-bagan/simbol-simbol tertentu yang membentuk
bagan alir (flowchart).
b. Menggunakan kata-kata atau kalimat matematis.
Pengertian algoritma menurut Cipta Ramadhani (2015, 1), “algoritma
adalah kumpulan perintah yang saling berkaitan untuk menyelesaikan suatu
masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal
hingga akhir. Diperlukan urutan serta logika agar algoritma yang dihasilkan
20
sesuai dengan yang diharapkan. Beberapa pendapat tentang istilah algoritma
adalah sebagai berikut:”
a. Anonim
Algoritma adalah prosedur tahap demi tahap untuk pemecahan
masalah.
b. Antony Pranata
Algoritma adalah urutan langkah berhingga untuk memecahkan
masalah logika atau matematika.
c. Suarga
Algoritma adalah teknik penyusunan langkah-langkah penyelesaian
masalah dalam bentuk kalimat dengan jumlah kata terbatas, tetapi
tersusun secara logis dan sistematis.
Secara umum algoritma adalah langkah-langkah komputasi yang
mengubah masukan (input) menjadi keluaran (output) yang benar. Algoritma
yang masih berupa logika pemecahan masalah selanjutnya diubah menjadi
program komputer (disebut source code).
Algoritma merupakan bagian yang terpenting dan tidak dapat
dipisahkan dari pemrograman. Meskipun sintaksis dan semantik yang dibuat
benar adanya, namun dengan algoritma yang keliru permasalahan yang ingin
dipecahkan dengan teknik pemrograman tidak akan berhasil. Oleh karena itu,
sebelum membuat suatu program aplikasi, hal pertama yang harus kita
pahami adalah algoritma atau prosedur pemecahannya. Tujuannya agar
program yang telah dibuat dapat sesuai dengan apa yang diharapkan.
Sintaksis dapat diartikan sebagai tata bahasa yang digunakan dalam program,
semantik adalah maksud yang dikandung pada setiap pernyataan di dalam
21
program. Sementara kebenaran logika berhubungan dengan benar-tidaknya
urutan pernyataan serta prosedur yang ada dalam program, atau yang biasa
disebut algoritma.
Menurut Donald E. Knuth, algoritma yang baik memiliki kriteria
sebagai berikut:
a. Input
Suatu algoritma harus memiliki nol atau lebih masukan (input). Artinya,
suatu algoritma itu dimungkinkan tidak memiliki masukan secara
langsung dari pengguna tetapi dapat juga memiliki beberapa masukan.
Algoritma yang tidak memiliki masukan secara langsung dari pengguna,
maka semua data dapat diinisialisasikan atau dibangkitkan dalam
algoritma.
b. Output
Suatu algoritma harus memiliki satu atau lebih algoritma. Suatu
algoritma yang tidak memiliki keluaran (output) adalah suatu algoritma
yang sia-sia, yang tidak perlu dilakukan. Algoritma dibuat untuk tujuan
menghasilkan sesuatu yang diinginkan, yaitu berupa hasil keluaran
(output).
c. Finitenes
Setiap pekerjaan yang dikerjakan pasti berhenti. Algoritma pun sama,
harus dapat dijamin akan berhenti setelah melakukan sejumlah langkah
proses.
d. Definiteness
Tidak menimbulkan makna ganda. Setiap baris aksi/pernyataan dalam
suatu algoritma harus pasti, artinya tidak menimbulkan penafsiran lain
22
bagi setiap pembaca algoritma, sehingga memberikan output yang sesuai
dengan yang diharapkan oleh pengguna. Dan sesuai dengan yang
diinginkan pengguna.
e. Effectiveness
Langkah-langkah algoritma dikerjakan dalam waktu yang wajar. Suatu
algoritma tidak terdapat suatu aksi yang tidak diperlukan. Setiap aksi
akan memberlukan waktu eksekusi, padahal aksi tersebut jelas tidak
berpengaruh atau tidak ada gunanya. Misalnya aksi X<X+0. Aksi ini
jelas tidak ada pengaruh dan tidak ada gunanya karena X+0 akan
menghasilkan bilangan X juga yang berarti tidak berguna. Jadi, tidak
perlu dilakukan karena sia sia.
Pada dasarnya, algoritma merupakan deskripsi pelaksanaan suatu
proses sehingga proses akan dikerjakan sesuai dengan algoritma yang telah
ditulis. Urutan langkah dalam algoritma disusun dalam sederetan aksi.
Prinsip kerja suatu algoritma dapat dilihat dalam suatu masukan (input), yaitu
adanya masukan ke dalam algoritma yang akan diproses dan akan
memberikan hasil yang diinginkan.
2.2.4 JSON (JavaScript Object Notation)
Menurut Deitel (2012, 303), JSON (JavaScript Object Notation)
adalah suatu format pertukaran data computer. Format dari JSON adalah
berbasis teks, dapat terbaca oleh manusia, digunakan untuk
mempresentasikan struktur data sederhana, dan tidak bergantung dengan
bahasa apa pun. Noasamya digunakan pada aplikasi Ajax. Format JSON
sering digunakan untuk mentransmisikan data terstruktur melalui koneksi
23
jaringan. Secara umum, JSON digunakan untuk mentransmisikan data antara
server dan aplikasi web.
Jenis media internet yang resmi untuk JSON adalah aplikasi/json.
Format JSON sering digunakan untuk serialisasi dan mengirimkan data
terstruktur melalui koneksi jaringan, terutama untuk pengiriman data antara
server dan aplikasi web melayani sebagai alternatif ke XML.
Menurut Anton & Subagia (2018, 38), “JSON merupakan format
pertukaran data yang ringan dan tidak tergantung pada bahasa apa pun.
Format JSON menggunakan bahasa yang umum digunakan oleh bahasa
pemrograman C termasuk C#, C++, Java, JavaScript, dll. Karena itu JSON
sangat cocok sebagai bahasa untuk pertukaran data.”
JSON terdiri dari dua struktur, yaitu objek dan array. Objek dalam
JavaScript merupakan kumpulan pasangan nama dan nilai yang diawali
dengan tanda { dan diakhiri dengan tanda } yang demikian kita sebut kurung
kurawal. Sedangkan array merupakan daftar nilai beruntutan yang diawali [
dan diakhiri dengan ] atau yang biasa kita sebut dengan kurung siku. PHP
telah menyediakan fungsi untuk mengubah array menjadi format JSON
sehingga akan memudahkan kita dalam mengirim data dengan format JSON
pada Teknik Ajax. Format JSON sangat cocok digunakan untuk menampilkan
data dari database melalui Ajax.
24
2.2.5 Web Service
Kasman mengemukakan, “Web Service adalah aplikasi yang dibuat
agar dapat dipanggil dan diakses oleh aplikasi lain melalui internet dengan
menggunakan format pertukaran data sebagai format pengiriman pesan”
(Kasman 2015, 10).
Kreger mengatakan, “Web service dapat diartikan sebagai antarmuka
(interface) yang menggambarkan sekumpulan operasi yang dapat diakses
melalui jaringan, misalkan internet dalam bentuk pesan XML (Extensible
Markup Language)” (Kreger (2011, 8).
Hartono dkk, (2012, 5) mengungkapkan, “Weh service menyediakan
standard komunikasi di antara berbagai aplikasi software yang berbeda-beda
dan dapat berjalan di berbagai platform maupun framework. Web service
digunakan sebagai salah satu fasilitas yang disediakan oleh suatu web untuk
menyediakan layanan dalam bentuk informasi kepada sistem lain, sehinggal
sistem lain dapat berinteraksi dengan sistem tersebut melalui layanan service
yang disediakan oleh suatu sistem yang menyediakan web service.”
Web service sebenarnya adalah kumpulan dari fungsi dan method
yang terdapat pada server yang dapat dipanggul oleh klien dari jarak jauh
kemudian untuk memanggil method-method tersebut kita bebas
menggunakan aplikasi yang akan dibuat dengan menggunakan Bahasa
pemrograman apa saja yang dijalankan pada platform apa saja. (Marthasari
2010, 2).
25
a. RESTful
Ada beberapa pendekatan teknologi web service yang dapat
digunakan, yaitu metode SOAP dan REST. Dalam penelitian ini akan
digunakan pendekatan REST. REST merupakan singkatan dari
Representative State Transfer. Pertama kali ditemukan dalam
disertasi seorang program doctor bernama Roy Thomas Fielding pada
tahun 2000 (Rozali 2011, 13). REST adalah sebuah metode dalam
menyampaikan resource melalui media web. Sedangkan resource
sendiri didefinisikan sebagai urutan bit, misalkan sebuah dokumen,
tabel dalam sistem bisnis data, ataupun hasil dari sebuah perhitungan.
REST (Representative State Transfer) adalah model arsitektur
yang pada dasarnya memanfaatkan teknologi protokol yang sudah ada
seperti HTTP (Hypertext Transfer Protocol) dan XML (Extensible
Markup Language)” (Riyandi 2013, 2).
Menurut Masse, “API memaparkan serangkaian data dan
fungsi untuk memfasilitasi interaksi antara program komputer dan
memungkinkan mereka untuk bertukar informasi. Web API adalah
wajah dari layanan web, langsung mendengarkan dan menanggapi
permintaan klien. Adanya REST API otomatis membuat sebuah web
service menjadi 'RESTful.' REST API terdiri dari sekumpulan sumber
daya yang saling terkait” (Masse 2011, 5).
REST adalah salah satu jenis web service yang menerapkan
konsep perpindahan antar state. State di sini dapat digambarkan
seperti jika browser meminta suatu halaman web, maka server akan
mengirimkan state halaman web yang sekarang ke browser.
26
Bernavigasi melalui link-link yang disediakan sama halnya dengan
mengganti state dari halaman web. Begitu pula REST bekerja, dengan
bernavigasi melalui link-link HTTP untuk melakukan aktivitas
tertentu, seakan-akan terjadi perpindahan state satu sama lain.
Perintah HTTP yang bisa digunakan adalah fungsi GET, POST, PUT
atau DELETE. Balasan yang dikirimkan adalah dalam bentuk XML
sederhana tanpa ada protokol pemaketan data, sehingga informasi
yang diterima lebih mudah dibaca dan di-parsing di sisi client. Dalam
pengaplikasiannya, REST lebih banyak digunakan untuk web service
yang berorientasi pada resource. Maksud orientasi pada resource
adalah orientasi yang menyediakan resource-resource sebagai
layanannya dan bukan kumpulan-kumpulan dari aktifitas yang
mengolah resource itu. Selain itu, karena standarnya yang kurang
sehingga tidak begitu cocok diterapkan dalam aplikasi yang
membutuhkan kerjasama antar aplikasi lain, di mana standar yang
baik akan sangat berguna karena berbicara dalam satu bahasa yang
sama. Beberapa contoh web service yang menggunakan REST adalah:
Flickr API (Application Program Interface), YouTube API, Amazon
API.
Dalam penggunaannya, REST API terbukti lebih cepat dalam
transfer data daripada metode lain yang serupa, dalam hal ini SOAP
(Symple Object Access Protocol). Tidak seperti SOAP, tidak ada
notasi standar resmi untuk RESTful API. Hal ini dikarenakan REST
merupakan arsitektur, sedangkan SOAP adalah protokol.
27
Gambar 2.1 Uji coba SOAP dan RESTful web service
(Sumber: Performance & Evaluation of RESTful web service)
Less message size dan response time yang lebih kecil dari
SOAP membuktikan bahwa RESTful menggunakan power yang
rendah dan layanan web service yang cepat, sehingga RESTful lebih
cocok diterapkan pada saat ini.
Dalam perjalanannya, pengembangan untuk mengembangkan
sebuah RESTful API menemui kendala dalam penamaan sebuah objek.
Notasi objek-objek yang ada haruslah memudahkan pengembang
dalam menamainya namun juga harus dikenali oleh komputer. Alasan
inilah yang membuat pengembang menggunakan JSON (JavaScript
Object Notation) sebagai notasi untuk REST Web Service dalam
aplikasi miliknya. Penggunaan JSON untuk menyokong pembuatan
aplikasi mobile berbasis REST API juga dianggap lebih baik
performanya untuk pengguna mobile.
Secara umum, terdapat dua buah konsep dasar tentang REST, yaitu:
28
a. Resource-Based
REST menekankan pada resource atau objek yang akan
dimanipulasi. Ambillah beberapa contoh objek-objek yang dapat
dimanipulasi dalam suatu restoran, misal Menu (buat menu, hapus
menu, edit menu, dsb) dan Utensil/peralatan dapur (dapatkan info
tentang peralatan, ganti peralatan, dsb). Dengan menggunakan
ilustrasi tersebut, yang dimaksud Resource-Based adalah sebagai
berikut:
REST:
a. Menu
b. Utensil
Bukan REST:
a. getMenuInfo
b. getUtensilInfo
Resource pada REST diidentifikasi dengan menggunakan URI
REST:
a. http://myrestfulapp.com/menu/{id}
b. http://myrestfulapp.com/utensil/{id}
Bukan REST:
a. restaurantAPI.getMenuInfo(int id)
b. restaurantAPI.getUtensilInfo(int id)
Bukan REST:
a. http://myrestfulapp.com/getMenuInfo/{id}
b. http://myrestfulapp.com/getUtensilInfo/{id}
29
Gambar 2.2 Cara Kerja REST API
(Sumber: https://blog-tki.universitaspertamina.ac.id/post/12/mengulik_restful_api/)
Jika dilihat, resources/objek-objek tersebut dituliskan dengan
menggunakan kata benda (nouns) bukan kerja (verbs).
a. Representation
Konsep berikutnya adalah mengenai Representation. Bagaimana
REST merepresentasikan sebuah objek? Bagaimana suatu objek
dimanipulasi? Umumnya, REST menggunakan JSON atau XML
dalam merepresentasikan objek.
Contoh sebuah layanan REST adalah sebagai berikut:
b. Resource: Menu (http://myrestfulapp.com/menu/{id})
c. Service: Get menu information (GET)
d. Representation:
1. ID
2. Title
3. Price
30
Contoh penggunaan:
a. request:
(GET) http://myrestfulapp.com/menu/1
b. response:
{ “id” : “1”, “title” : “Egg Benedict”, “price” : “6.50” }
JSON tersebut adalah contoh reprentasi sebuah
resource/objek dalam REST.
Kurang lebih seperti itulah gambaran umum dari konsep
REST. Seperti yang telah disampaikan sebelumnya, untuk
membuat suatu RESTful API, API tersebut harus dibuat dengan
mematuhi constraints yang berlaku. Adapun REST memiliki 6
constraints, yaitu:
a. Uniform Interface
b. Stateless
c. Cacheable
d. Client-Server
e. Layered System
f. Code on Demand (optional)
2.2.6 Framework
Menurut Wardana, “Framework adalah kumpulan perintah atau
fungsi dasar yang membentuk aturan-aturan tertentu dan asling berinteraksi
satu sama lain sehingga dalam pembuatan aplikasi website, kita harus
mengikuti aturan dari framework tersebut” (Wardana 2010, 3).
31
Sedangkan menurut Yudhanto, “Framework adalah kerangka kerja.
Framework juga dapat diartikan sebagai kumpulan script (terutama class dan
function) yang dapat membantu developer/programmer dalam menangani
berbagai masalah-masalah dalam pemrograman, seperti koneksi ke database,
pemanggilan variabel, file dan lain-lain sehingga pekerjaan developer lebih
fokus dan cepat dalam membangun aplikasi. Framework adalah komponen
pemrograman yang siap digunakan ulang kapan saja sehingga programmer
tidak harus membuat script yang sama untuk tugas yang sama” (Yudhanto
2018, 8).
2.2.7 MVC
MVC adalah konsep arsitektur dalam pembangunan aplikasi berbasis
web yang membagi aplikasi web menjadi tiga bagian besar, yang mana setiap
bagian memiliki tugas-tugas serta tanggung jawab masing-masing. Tiga
bagian tersebut adalah: model, view dan controller. Dengan MVC, maka
memungkinkan pemisahan antara layer application-logic dan presentation.
Sehingga, dalam sebuah pengembangan web, seorang programmer bisa
berkonsentrasi pada core-system, sedangkan web designer bisa
berkonsentrasi pada tampilan web. Menariknya, skrip PHP, query MySQL,
JavaScript dan CSS bisa saling terpisah, tidak dibuat dalam satu skrip
berukuran besar yang membutuhkan resource besar pula untuk
mengesekusinya.
32
Penjelasan model-view-controller yaitu:
a. Model
Bertugas untuk mengatur, menyiapkan, memanipulasi dan
mengorganisasikan data (dari database) sesuai dengan instruksi dari
controller.
b. View
Bertugas untuk menyajikan informasi (yang mudah dimengerti)
kepada user sesuai dengan instruksi dari controller.
c. Controller
Bertugas untuk mengatur apa yang harus dilakukan model, dan view
mana yang harus ditampilkan berdasarkan permintaan dari user.
Namun, terkadang permintaan dari user tidak selalu memerlukan
aksi dari model. Misalnya seperti menampilkan halaman form untuk
registrasi user.
Gambar 2.3 Alur kerja MVC secara ringkas
(Sumber: https://jagongoding.com/web/memahami-konsep-mvc/)
33
2.3 Teori Analisa dan Perancangan
2.3.1 XAMPP
Gambar 2.4 XAMPP
(Sumber: https://commons.wikimedia.org/wiki/File:Xampp_logo.svg)
Dadan & Kerendi Developers mengemukakan, “XAMPP adalah salah
satu aplikasi web server apache yang terintegrasi dengan MySQL dan
PHPMyadmin. XAMPP adalah singkatan dari X, Apache Server, MySQL,
PHPMyadmin dan Python. Huruf X di depan menandakan XAMPP dapat
diinstal di berbagai sistem operasi” (Dadan & Kerendi Developers 2015, 28).
Sedangkan menurut Yudhanto, “XAMPP adalah kompilasi program
aplikasi gratis terfavorit di kalangan developer/programmer yang berguna
untuk pengembangan website berbasis PHP dan MySQL” (Yudhanto 2018,
14).
Bagian penting dari XAMPP yang biasa digunakan:
a. Htdoc adalah folder tempat meletakkan berkas-berkas yang akan
dijalankan, seperti berkas PHP, HTML, dan skrip lain.
b. PHPMyadmin merupakan bagian untuk mengelola basis data mysql yang
ada di komputer. Untuk membukanya, buka browser lalu ketikkan alamat
http://localhost/phpmyadmin.
c. Kontrol Panel yang berfungsi untuk mengelola layanan (service)
XAMPP. Seperti menghentikan (stop) layanan, ataupun memulai (start).
34
2.3.2 VSCode
Gambar 2.5 VSCode
(Sumber: https://en.wikipedia.org/wiki/Visual_Studio_Code)
Visual Studio Code (VS Code) ini adalah sebuah teks editor ringan dan
handal yang dibuat oleh Microsoft untuk sistem operasi multiplatform, artinya
tersedia juga untuk versi Linux, Mac, dan Windows. Teks editor ini secara
langsung mendukung bahasa pemrograman JavaScript, Typescript, dan Node
JS, serta bahasa pemrograman lainnya dengan bantuan plugin yang dapat
dipasang via mysql.
Banyak sekali fitur-fitur yang disediakan oleh Visual Studio Code,
diantaranya Intellisense, Git Integration, Debugging, dan fitur ekstensi yang
menambah kemampuan teks editor. Fitur-fitur tersebut akan terus bertambah
seiring dengan bertambahnya versi Visual Studio Code. Pembaruan versi
Visual Studio Code ini juga dilakukan berkala setiap bulan, dan inilah yang
membedakan VS Code dengan teks editor yang lain.
Teks editor VS Code juga bersifat open source, yang mana kode
sumbernya dapat kalian lihat dan kalian dapat berkontribusi untuk
pengembangannya. Kode sumber dari VS Code ini pun dapat dilihat di link
35
Github. Hal ini juga yang membuat VS Code menjadi favorit para
pengembang aplikasi, karena para pengembang aplikasi bisa ikut serta dalam
proses pengembangan VS Code ke depannya.
VS Code dapat digunakan secara langsung tanpa perlu ekstensi selama
alur pemrogramannya sudah didukung langsung. Namun ada beberapa alur
pemrograman yang tidak didukung langsung misalnya penggunaan snippets
code dan kemampuan Intellisense yang masih kurang. Di sini letak kegunaan
ekstensi karena dapat menambah kemampuan dukungan alur pemrograman
yang diinginkan. Ekstensi VS Code ini banyak dibuat oleh pengembang-
pengembang pihak ketiga yang juga menjadi kontributor dari VS Code.
Di dalam Pasar Ekstensi tersebut, pengguna VS Code dapat memilih-
memilih ekstensi yang diinginkan sesuai kebutuhan. Dan mayoritas ekstensi
tersebut bersifat gratis. Pasar Ekstensi VS Code berisi tambahan kemampuan
snippet code untuk bahasa pemrograman tertentu, alur kerja pengembangan,
tambahan kemampuan fitur VS Code, tema warna untuk VS Code, dan masih
banyak lagi. Pemasangan ekstensi di dalam VS Code dapat dilakukan
langsung di dalam VS Code. Yaitu dengan mengakses menu Extensions (Ctrl
+ Shift + X ), kemudian mencari ekstensi dengan mengetikkan nama ekstensi
di kotak pencarian.
36
2.3.3 HTML
Gambar 2.6 HTML
(Sumber: https://www.pngdownload.id/png-hcxtdk/)
Menurut Lavarino, Dio dan Wiyli Yustanti (2016, 74), “Hypertext
Markup Language (HTML) adalah bahasa markup yang umum digunakan
untuk membuat halaman web. Sebenarnya HTML bukanlah sebuah bahasa
pemrograman. Apabila ditinjau dari namanya, HTML merupakan bahasa
markup atau penandaan terhadap sebuah dokumen teks. Tanda tersebut di
gunakan untuk menentukan format atau style dari teks yang di tandai.”
HTML dibuat oleh Tim Berners-Lee ketika masih bekerja untuk
CERN dan dipopulerkan pertama kali oleh browser Mosaic. Selama awal
tahun 1990 HTML mengalami perkembangan yang sangat pesat. Setiap
pengembangan HTML pasti akan menambahkan kemampuan dan fasilitas
yang lebih baik dari versi sebelumnya.
Sebelum suatu HTML disahkan sebagai suatu dokumen HTML
standar, ia harus disetujui dulu oleh W3C untuk dievaluasi secara ketat.
Setiap terjadi perkembangan suatu versi HTML, maka mau tak mau browser
37
pun harus memperbaiki diri agar bisa mendukung kode-kode HTML yang
baru tersebut. Sebab jika tidak, browser tak akan bisa menampilkan HTML
tersebut.
2.3.4 CSS
Gambar 2.7 CSS
(Sumber: https://www.pngdownload.id/png-sz9ser/)
Menurut Pranata, Dana, Hamdani dan Dyna Marisa K (2015, 26), CSS
adalah suatu cara untuk membuat format atau layout halaman web menjadi
lebih menarik dan mudah dikelola. CSS muncul karena sulitnya mengatur
layout tampilan dokumen yang dibuat dengan HTML murni meskipun telah
menggunakan berbagai kombinasi format.
Suryana mengemukakan, “CSS (Cascading Style Sheet) adalah suatu
bahasa stylesheet yang digunakan untuk mengatur tampilan suatu website,
baik tata letaknya, jenis huruf, warna, dan semua yang berhubungan dengan
tampilan. Pada umumnya CSS digunakan untuk menformat halaman web
yang ditulis dengan HTML atau XHTML” (Suryana 2014, 123).
38
2.3.5 PHP
Gambar 2.8 PHP
(Sumber: https://www.pngdownload.id/png-622o3d/)
Menurut Yudhanto, “PHP atau Hyper Preprocessor adalah bahasa
pemrograman script server side yang sengaja dirancang lebuh cenderung
untuk membuat dan mengembangkan web. Bahasa pemrograman ini memang
dirancang untuk para pengembang web agar dapat menciptakan suatu
halaman web yang bersifat dinamis” (Yudhanto 2018, 7).
Menurut Firman, Astria, Hans F. Wowor, Xaverius Najoan, “PHP
atau kependekan dari Hypertext Preprocessor adalah salah satu bahasa
pemrograman open source yang sangat cocok atau dikhususkan untuk
pengembangan web dan dapat ditanamkan pada sebuah skripsi HTML.
Bahasa PHP dapat dikatakan menggambarkan beberapa bahasa
pemrograman seperti C, Java, dan Perl serta mudah untuk dipelajari. PHP
merupakan bahasa scripting server–side, di mana pemrosesan datanya
dilakukan pada sisi server. Sederhananya, serverlah yang akan
39
menerjemahkan skrip program, baru kemudian hasilnya akan dikirim kepada
client yang melakukan permintaan.”
Adapun pengertian lain PHP adalah akronim dari Hypertext
Preprocessor, yaitu suatu bahasa pemrograman berbasiskan kode–kode
(script) yang digunakan untuk mengolah suatu data dan mengirimkannya
kembali ke web browser menjadi kode HTML”.
Menurut Kustiyaningsih (2011, 114), “PHP (atau resminya PHP:
Hypertext Preprocessor) adalah skrip bersifat server–side yang ditambahkan
ke dalam HTML”. Pada prinsipnya server akan bekerja apabila ada
permintaan dari client. Dalam hal ini client menggunakan kode-kode PHP
untuk mengirimkan permintaan ke server. Sistem kerja dari PHP diawali
dengan permintaan yang berasal dari halaman website oleh browser.
Berdasarkan URL atau alamat website dalam jaringan internet, browser akan
menemukan sebuah alamat dari webserver, mengidentifikasi halaman yang
dikehendaki, dan menyampaikan segala informasi yang dibutuhkan oleh
webserver. Selanjutnya webserver akan mencarikan berkas yang diminta dan
menampilkan isinya di browser. Browser yang mendapatkan isinya segera
menerjemahkan kode HTML dan menampilkannya. Lalu bagaimana apabila
yang dipanggil oleh user adalah halaman yang mengandung script PHP? Pada
prinsipnya sama dengan memanggil kode HTML, namun pada saat
permintaan dikirim ke webserver, webserver akan memeriksa tipe file yang
diminta user. Jika tipe file yang diminta adalah PHP, maka akan memeriksa
isi skrip dari halaman PHP tersebut.
40
Apabila dalam file tersebut tidak mengandung script PHP,
permintaan user akan langsung ditampilkan ke browser, namun jika dalam
file tersebut mengandung script PHP, maka proses akan dilanjutkan ke modul
PHP sebagai mesin yang menerjemahkan script-script PHP dan mengolah
script tersebut, sehingga dapat dikonversikan ke kode-kode HTML lalu
ditampilkan ke browser user.
PHP dapat mengirim HTTP header, dapat mengatur cookies,
mengatur authentication dan redirect user. Salah satu keunggulan yang
dimiliki PHP adalah kemampuannya untuk melakukan koneksi ke
berbagai macam software sistem manajemen basis data atau Database
Management Sistem (DBMS), sehingga dapat menciptakan suatu halaman
web dinamis.
PHP mempunyai koneksitas yang baik dengan beberapa DBMS
seperti Oracle, Sybase, mSQL, MySQL, Microsoft SQL Server, Solid,
PostgreSQL, Adabas, FilePro, Velocis, dBase, Unix dbm, dan tidak terkecuali
semua database ber-interface ODBC.
41
2.3.6 JavaScript
Gambar 2.9 JavaScript
(Sumber: https://imgbin.com/png/WcVjdck9/JavaScript-logo-html-comment-blog-png)
Menurut Lavarino, Dio dan Wiyli Yustanti (2016, 74), JavaScript
adalah bahasa yang berbentuk kumpulan skrip berjalan pada suatu dokumen
HTML. Bahasa ini adalah bahasa pemrograman untuk memberikan
kemampuan tambahan terhadap HTML dengan mengizinkan pengeksekusian
perintah-perintah disisi user variabel atau fungsi dengan nama TEST berbeda
dengan variabel dengan nama test dan setiap instruksi diakhiri dengan artinya
disisi browser bukan disisi server web. JavaScript adalah bahasa yang “case
sensitive” artinya memnedakan penamaan variabel dan fungsi yang
menggunakan huruf besar dan huruf kecil, contoh karakter titik koma.
42
2.3.7 jQuery
Gambar 2.10 jQuery
(Sumber: https://www.pngdownload.id/png-z3ui1c/)
Menurut Lavarino, Dio dan Wiyli Yustanti (2016, 74), jQuery adalah
library JavaScript yang dibuat untuk memudahkan pembuatan website
dengan HTML yang berjalan di sisi client. jQuery diluncurkan pada tanggal
26 Januari 2006 di Barcamp NYC oleh John Resig dan berlisensi ganda di
bawah MIT dan GPL. Script jQuery dibuat untuk memudahkan pengaturan
document seperti menyeleksi object dengan elemen DOM dan membuat
aplikasi dengan AJAX. jQuery juga menyediakan layanan atau para developer
untuk membuat plugin di dalam bahasa JavaScript tentunya. Sehingga
memungkinkan para developer website membuat website lebih interaktif
dengan animasi, efek–efek, tema dan widget.
jQuery juga adalah kumpulan kode JavaScript siap pakai.
Keunggulan menggunakan jQuery dibandingkan dengan JavaScript standar,
yaitu menyederhanakan kode JavaScript dengan cara memanggil fungsi-
43
fungsi yang disediakan oleh jQuery. JavaScript sendiri merupakan bahasa
Scripting yang bekerja disisi Client/Browser sehingga website bisa lebih
interaktif
jQuery adalah salah satu JavaScript framework terbaik saat ini.
jQuery dikembangkan oleh John Resig pada tahun 2006 di BarCamp NYC.
Pada awal berkembangannya, jQuery pertama dibuat untuk meringkas
penggunaan CSS Selector dalam suatu pustaka fungsi. jQuery memiliki ciri
khas pada penggunaan perintahnya, prefix untuk jQuery dengan tanda $
kemudian dilanjutkan dengan fungsi atau perintah.
2.3.8 MySQL
Gambar 2.11 MySQL
(Sumber: https://worldvectorlogo.com/logo/mysql)
Menurut Kustiyahningsih (2011, 145), “MySQL adalah sebuah basis
data yang mengandung satu atau jumlah tabel. Tabel terdiri atas sejumlah
44
baris dan setiap baris mengandung satu atau sejumlah tabel. Tabel terdiri atas
sejumlah baris dan setiap baris mengandung satu atau sejumlah tabel.”
MySQL adalah sistem manajemen database open source dengan
client-server model (RDBMS). Sedangkan RDBMS merupakan software
untuk membuat dan mengelola basis data berdasarkan pada model relasional.
Sejarah singkat mengenai MSQL, dibaca MY-ES-KYOO-EL.
Beberapa orang bahkan membaca MySQL seperti menyebutkan “my sequel”.
MySQL AB, Sebuah perusahaan asal Swedia, menjadi yang pertama
mengembangkan MySQL di tahun 1994. Hak kepemilikan MySQL kemudian
diambil secara menyeluruh oleh perusahaan teknologi Amerika Serikat, Sun
Microsystems, ketika mereka membeli MySQL AB pada tahun 2008. Di
tahun 2010, Oracle adalah salah satu perusahaan teknologi terbesar di
Amerika Serikat, mengakuisisi Sun Microsystem. Semenjak itulah, MySQL
sepenuhnya dimiliki oleh Oracle.
Pada awal tahun 1970, seorang ahli komputer, Ted Codd,
mengembangkan SQL dengan IBM berbasis model relasional. Pada tahun
1974, SQL mulai banyak digunakan dan dengan cepat menggantikan posisi
bahasa yang sudah outdated, yakni ISAM dan VISAM. Tugas SQL adalah
untuk memberi tahu server tentang apa yang harus dilakukan terhadap data.
SQL Statement menginstrusikan server untuk menjalankan operasi tertentu:
45
a. Data Query
Meminta informasi yang spesifik dari database yang sudah ada
b. Manipulasi Data
Menambahkan, menghapus, mengubah, menyortir, melakukan operasi
lainnya untuk memodifikasi data, value, atau visual.
c. Identitas Data
Menentukan tipe data, misalnya mengubah data numerik menjadi
integer, juga menentukan skema atau hubungan dari masing masing tabel
yang ada di database
d. Data Access Control
Menyediakan metode keamanan untuk melindungi data, termasuk dalam
menentukan siapa yang boleh melihat atau menggunakan informasi yang
tersimpan di database.
2.3.9 Postman
Gambar 2.12 Postman
(Sumber: https://www.getpostman.com/resources/media-assets/)
Postman adalah sebuah aplikasi (berupa plugin) untuk browser
chrome, fungsinya adalah sebagai REST Client atau istilahnya adalah aplikasi
yang digunakan untuk melakukan uji coba REST API yang telah kita buat.
46
Menurut Rohman (2017), Postman ini merupakan tool wajib bagi
para developer yang berkutat pada pembuatan API, fungsi utama postman ini
adalah sebagai GUI API Caller namun sekarang postman juga menyadiakan
fitur lain yaitu Sharing Collection API for Documentation (free), Testing API
(free), Realtime Collaboration Team (paid), Monitoring API (paid),
Integration (paid).
2.3.10 CodeIgniter
Gambar 2.13 CodeIgniter
(Sumber: https://imgbin.com/png/Uv9X8wLk/logo-orange-s-a-codeigniter-png)
Sulistiono mengemukakan, “CodeIgniter adalah aplikasi open source
yang berupa kerangka kerja atau framework untuk membangun website
menggunakan bahasa pemrograman PHP. Tujuannya memungkinkan
pengembangan projek yang lebih cepat daripada penulisan kode dasar atau
kode terstruktur, dengan menyediakan banyak library yang biasanya
digunakan dalam pengerjaan” (Sulistiono 2018, 7).
47
a. Sejarah Perkembangan CodeIgniter
Selain cepat dan mudah, CodeIgniter juga memiliki dokumentasi
yang super lengkap disertai dengan contoh implementasi kodenya.
Dokumentasi lengkap inilah yang menjadi salah satu alasan kuat
mengapa banyak orang memilih CodeIgniter sebagai framework
pilihannya. Karena kelebihan-kelebihan yang dimiliki oleh CodeIgniter,
pembuat PHP Rasmus Lerdorf memuji CodeIgniter di frOSCon
(Agustus 2008) dengan mengatakan bahwa dia menyukai CodeIgniter
karena “it is faster, lighter and the least like a framework.” CodeIgniter
pertama kali dikembangkan pada tahun 2006 oleh Rick Ellis. Dengan
logo api yang menyala, CodeIgniter dengan cepat “membakar” semangat
para web developer untuk mengembangkan web dinamis dengan cepat
dan mudah menggunakan framework PHP yang satu ini. Pada bulan Juli
2013, EllisLab mengumumkan bahwa mereka mencari pemilik baru
untuk CodeIgniter karena internal mereka sendiri tidak memiliki cukup
fokus untuk terus mengembangkan CodeIgniter. Akhirnya pada bulan
Oktober 2014, kepemilikan CodeIgniter berpindah tangan kepada British
Columbia Institute of Technology, salah satu sekolah tinggi teknologi di
Kanada.
b. Fitur Pada CodeIgniter
Berikut ini adalah fitur-fitur penting yang ada di CodeIgniter:
1. Sistem berbasis Model-View-Controller (MVC)
2. Sangat ringan dan butuh sedikit sumber daya (Memory + CPU)
3. Men-support berbagai macam database dan kaya fitur
4. Mendukung Query Builder untuk mengakses database
48
5. Validasi Form dan Data
6. Mengamankan website dari XSS (Cross Site Scripting)
7. Manajemen Session
c. Keuntungan CodeIgniter
Keuntungan dari CodeIgniter antara lain:
1. Berukuran sangat kecil
File yang di-download hanya berukuran sekitar 2MB dan sudah
termasuk dokumentasinya yang sangat lengkap.
2. Dokumentasi yang bagus
Dokumentasi yang berisi pengantar, tutorial, bagaimana panduan
penggunaan, serta referensi dokumentasi untuk komponen-
komponennya.
3. Kompitabilitas dengan hosting
CodeIgniter mampu berjalan dengan baik pada hamper semua platfom
hosting. CodeIgniter juga mendukung database-database paling
umum, termasuk MySQL.
4. Tidak ada aturan coding yang ketat
Terserah anda jika anda hanya ingin menggunakan Controller, tanpa
View, atau tidak menggunakan Model, atau tidak salah satu keduanya.
Namun dengan menggunakan ketiga komponennya adalah pilihan
lebih bijak.
5. Sangat mudah diintegrasikan
CodeIgniter sangat mengerti tentang pengembangan berbagai library
saat ini. Karenanya CodeIgniter memberikan kemudahan untuk
diintegrasikan dengan library-library yang tersedia saat ini.
49
6. Sedikit Konfigurasi
Konfigurasi CodeIgniter terletak di folder aplication/config.
CodeIgniter tidak membutuhkan konfigurasi yang rumit, bahkan
untuk mencoba menjalankannya, tanpa melakukan konfigurasi
sedikitpun ia sudah bisa berjalan.
7. Mudah dipelajari
Di samping dokementasi yang lengkap, ia juga memiliki berbagai
forum diskusi.
8. URL yang sederhana
Secara default, URL yang dihasilkan CodeIgniter sangat besih dan
Search Engine Friendly (SEF).
9. Extensible
Sistem dapat dikembangkan dengan mudah menggunakan plugin dan
helper, atau dengan menggunakan hooks.
10. Tidak memerlukan template engine
Meskipun CodeIgniter dilengkapi dengan template parser sederhana
yang dapat digunakan, tetapi hal ini tidak mengharuskan kita untuk
menggunakannya.
d. Kelemahan CodeIgniter
Kelemahan dari CodeIgniter antara lain:
1. CodeIgniter tidak ditujukan untuk pembuatan web dengan skala besar.
2. Library yang sangat terbatas. Hal ini dikarenakan sangat sulit mencari
plugin tambahan yang terverifikasi secara resmi, karena pada situsnya
CodeIgniter tidak menyediakan plugin-plugin tambahan untuk
mendukung pengembangan aplikasi dengan CodeIgniter.
50
3. Belum adanya editor khusus CodeIgniter, sehingga dalam melakukan
create project dan modul-modulnya harus berpindah-pindah folder.
e. Versi CodeIgniter
1. CodeIgniter 1
Merupakan versi CodeIgniter yang paling pertama dirilis pada 28
Januari 2006 sebagai versi Beta 1, dan dengan versi 1.7.2 sebagai
terakhir yang dirilis pada 11 September 2009.
2. CodeIgniter 2
CodeIgniter 2 adalah versi terlawas yang bias di-download di situs
resminya. Pertama kali dirilis pada 28 Januari 2011 dan terakhir dirilis
pada Oktober 2015 dengan versi terakhirnya adalah versi 2.2.6.
CodeIgniter 2 pun sudah tidak ada pembaruan lagi jadi versi ini sangat
tidak dianjurkan untuk digunakan.
3. CodeIgniter 3
CodeIgniter 3 adalah versi yang paling banyak digunakan sekarang.
Pertama kali dirilis pada 30 Maret 2015 dan terakhir dirilis pada 19
September 2019 dengan versi terbarunya adalah versi 3.1.11. Versi ini
menggunakan PHP 5.6+, dan masih mendapat pembaruan serta
dukungan dari tim pengembang.
4. CodeIgniter 4
CodeIgniter 4 adalah versi yang sedang dalam pengembangan untuk
menggantikan CodeIgniter 3. Versi yang terbaru adalah versi 4.0.0-
rc3, CodeIgniter ini menggunakan PHP 7.2.
51
2.3.11 API (Application Programming Interface)
Menurut Alper Dincer dan Balkan Uraz “API adalah sebuah teknologi
yang dapat memfasilitasi sebuah pertukaran akses data, layanan, dan
informasi lainnya biasanya digunakan oleh para pengembang aplikasi
(developer)” (Dincer & Uraz, 2013, hal. 3).
Penulis lain juga mengemukakan bahwa “Dalam penggunaan API
secara lengkap dibutuhkan sebuah kerjasama yang bersifat berbayar” (Daniel
2012, 4).
2.3.12 ERD (Entity Relationship Diagram )
Menurut (Aji 2014, 28), mendefinisikan ERD merupakan model
jaringan data yang menekankan pada struktur-struktur dan relationship data.
Sedangkan menurut (Sutanta 2011, 91), Entity Relationship Diagram (ERD)
merupakan suatu model data yang dikembangkan berdasarkan objek. Entity
Relationship Diagram (ERD) digunakan untuk menjelaskan hubungan antar
data dalam basis data kepada pengguna secara logis. Entity Relationship
Diagram (ERD) didasarkan pada suatu persepsi bahwa real world terdiri atas
objek-objek dasar tersebut. Penggunaan Entity Relationship Diagram (ERD)
relatif mudah dipahami, bahkan oleh para pengguna yang awam. Bagi
perancang atau analis sistem, Entity Relationship Diagram (ERD) berguna
untuk memodelkan sistem yang nantinya, basis data akan dikembangkan.
Model ini juga membantu perancang atau analis sistem pada saat melakukan
analis dan perancangan basis data karena model ini dapat menunjukkan
macam data yang dibutuhkan dan kerelasian antar data di dalamnya.
52
Entitas adalah suatu objek dalam dunia nyata yang dapat dibedakan
dari objek lain. Sebagai contoh masing-masing motor adalah entitas dan
konsumen dapat pula diangap sebagai entitas. Entitas digambarkan dalam
basis data dengan kumpulan atribut misalnya atribut kode, nama motor, harga
cash, bisa menggambarkan data. Relasi adalah hubungan antara beberapa
entitas. Sebagai contoh, relasi menghubungkan mahasiswa dengan mata
kuliah yang diambilnya.
Struktur logis skema database dapat ditunjukan secara grafis dengan
diagram ERD yang dibentuk dari komponen-komponen berikut :
Entitas adalah objek riil yang dapat dibedakan satu dengan yang lain.
Entitas digambarkan simbol seperti BOX.
Atribut adalah elemen dari entitas yang berfungsi untuk menerangkan
entitas tersebut.
Line berfungsi untuk menghubungkan atribut dengan entitas dan
entitas dengan relasi.
53
Hubungan sama saja dengan relasi, yaitu hubungan yang terjadi
antara satu entitas atau lebih.
Dari pengertian di atas dapat disimpulkan pengertian Entity
Relationship Diagram (ERD) adalah memodelkan suatu kebutuhan data dari
suatu organisasi yang saling terhubung satu dengan yang lainnya.
2.3.13 Flowchart
Menurut Indrajani “Flowchart (bagan alir) merupakan penggambaran
secara grafik dari langkah-langkah dan urutan prosedur suatu program.
Flowchart bisa mempermudah penyelesaian masalah, khususnya yang perlu
dipelajaridan dievaluasi lagi” (Indrajani 2015, 36).
Bagan alir merupakan langkah awal pembuatan program. Dengan
adanya flowchart urutan proses kegiatan menjadi lebih jelas. Jika ada
penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart
selesai disusun, selanjutnya programmer akan menerjemahkan ke dalam
bentuk program dengan bahasa pemrograman.
Bagan alir (flowchart) memiliki berbagai aturan–aturan dalam
perancangan diagram alirnya, yaitu:
54
a. System flowchart
Disebut juga bagan alir sistem merupakan bagan yang menunjukan
arus pekerjaan secara keseluruhan dari sistem. Bagan ini menjelaskan
urut–urutan dari prosedur–prosedur yang ada di dalam sistem dan apa
yang dikerjakan di sistem.
b. Document flowchart
Disebut juga bagan alir formulir (form flowchart) atau paperwork
flowchart merupakan bagan alir yang menunjukan arus dari laporan
dan formulir termasuk tembusan–tembusannya.
c. Schematic flowchart
Disebut juga bagan alir skematik merupakan bagan alir yang mirip
dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di
dalam sistem. Perbedaannya adalah bagan alir skematik selain
menggunakan simbol–simbol bagan alir sistem, juga mengunakan
gambar–gambar komputer dan peralatan lainnya yang digunakan.
Penggunaan gambar–gambar dimaksudkan untuk memudahkan
komunikasi kepada orang yang kurang paham dengan simbol–simbol
dari bagan alir. Penggunaan gambar memudahkan untuk dipahami
nanun sulit dan lama dalam proses penggambaran dan pengerjaan.
55
d. Program flowchart
Disebut juga bagan alir program merupakan bagan yang menjelaskan
secara rinci langkah–langkah dari proses program. Bagan alir
program dibuat dari derivikasi bagan alir sistem. Bagan alir program
terbagi menjadi dua macam, yaitu bagan alir logika program
(program logic flowchart) dan bagan alir komputer terinci (detail
computer program flowchart). Bagan alir logika program digunakan
untuk menggambarkan tiap–tiap langkah di dalam program komputer
secara logika. Bagan alir logika program dipersiapkan oleh analis
sitem. Sedangkan bagan alir program komputer terinci digunakan
untuk menggambarkan instruksi–instruksi progam komputer secara
terinci. Bagan alir dipersiapkan oleh pemrogram.
e. Process flowchart
Disebut juga bagan alir proses merupakan bagan alir yang digunakan
di teknik industri. Bagan alir proses juga berguna pada analis sitem
untuk menggambarkan proses dalam suatu prosedur.
Dalam pembuatan flowchat tidak ada rumus atau patokan yang
bersifat mutlak digunakan. Karena flowchart merupakan gambaran
hasil pemikiran dalam menganalisa suatu masalah dengan komputer.
Sehingga flowchart yang dihasilkan dapat bervariasi antara saru
pemrogram dengan pemrogram lainnya. Namun secara garis besar
setiap pengiolahan selalu terdiri dari tiga bagian utama yaitu:
56
1. Input;
Berupa masukan bahan mentah.
2. Proses;
Pengolahan bahan mentah.
3. Output;
Berupa hasil jadi.
Pengolahan data dengan komputer, dapat dilakukan dengan
urutan dasar untuk pemecahan suatu masalah, sebagai berikut:
1. START
Berisikan instruksi untuk persiapan peralatan yang diperlukan
sebelum menangani pemecahan masalah.
2. READ;
Berisikan intruksi untuk membaca dara dari suatu peralatan
input.
3. PROCESS;
Berisikan kegiatan yang berkaitan dengan pemecahan masalah
sesuai dengan data yang dibaca.
4. WRITE;
Berisikan instruksi untuk merekam hasil kegiatan ke peralatan
output.
5. END;
Mengakhiri kegiatan pengolahan.
Walaupun tidak ada aturan–aturan yang baku dalam
penyusunan flowchart, namun harus ada beberapa syarat yang
harus ditepati, yaitu:
57
1. Hindari pengulangan proses yang tidak perlu dan logika yang
berbeda sehingga jalannya proses menjadi singkat.
2. Penggambaran flowchart harus simetris dengan arah yang
jelas.
3. Sebuah flowchart harus diawali dari satu titik START dan
diakhiri dengan END.
Tujuan dari flowchart adalah untuk menggambarkan suatu
tahapan penyelesaian masalah secara sederhana, terurai, rapi, dan
jelas dengan menggunakan simbol–simbol standar yang
digunakan.
Dalam penggunaan flowchart tedapat simbol–simbol dasar
yang sering digunakan, yaitu:
Gambar 2.14 Simbol Flowchart
58
2.3.14 Blackbox Testing
Simarmata mengungkapkan bahwa “Blackbox testing merupakan
pendekatan pengujian di mana program dianggap sebagai suatu kotak hitam
program test case berbasiskan spesifikasi test planning dapat dimulai sejak
awal proses pengembangan sistem. Blackbox testing berfokus pada
persyaratan fungsional perangkat lunak. Metode ini memungkinkan software
developer untuk mendapatkan serangkaian kondisi input yang menggunakan
semua persyaratan fungsional program” (Simarmata 2010, 316)
Pengertian blackbox testing menurut Simarmata (2010, 316) adalah
sebagai berikut:
a. Pengujian Fungsional
Pengujian dilakukan dalam bentuk tertulis untuk memeriksa apakah
aplikasi berjalan seperti yang diharapkan. Pengujian fungsional meliputi
seberapa baik sistem melaksanakan fungsinya, termasuk perintah–
perintah pengguna, integrasi, pencarian dan proses bisnis, manipulasi
data, dan pengguna layar.
b. Pengujian Tegangan
Pengujian tegangan berkaitan dengan kualitas aplikasi.
c. Pengujian Beban
Pada pengujian beban, pengujian dilakukan dengan beban berat atau
masukan untuk mengetahui apakah aplikasi atau situs gagal atau
kinerjanya menurun.
59
d. Pengujian Khusus
Jenis pengujian ini dilakukan tanpa penciptaan rencana pengujian
atau kasus pengujian. Salah satu penggunaan terbaik dari pengujian
khusus adalah untuk penemuan. Pengujian ini membaca persyaratan atau
spesifikasi jarang memberikan paduan yang jelas mengenai bagaimana
sebuah program benar-benar bertindak.
e. Pengujian Penyelidikan
Pengujian penyelidikan mirip dengan pengujian khusus dan
dilakukan untuk mempelajari/mencari aplikasi.
f. Pengujian Usability
Proses yang bekerja dengan pengguna akhir secara langsung maupun
tidak langsung untuk menilai bagaimana pengguna merasakan paket
perangkat lunak dan bagaimana mereka berinteraksi dengannya.
g. Pengujian Asap
Pengujian ini dilakukan untuk memeriksa apakah aplikasi tersebut
sudah siap untuk pengujian yang lebih besar dan bekerja dengan baik
tanpa cela sampai tingkat yang paling diharapkan.
h. Pengujian Pemulihan
Dilakukan untuk memeriksa seberapa cepat dan baiknya aplikasi bisa
pulih terhadap semua jenis crash atau kegagalan hardware.
i. Pengujian Volume
Pengujian sebuah sistem untuk serangkaian pengujian dengan volume
data yang diproses.
60
j. Pengujian Domain
Merupakan penjelasan yang paling sering menjelaskan teknik
pengujian.
k. Pengujian Skenario
Pengujian yang realistis, kredibel dan memotivasi skateholder,
tantangan untuk program dan mempermudah penguji melakukan
evaluasi.
l. Pengujian Regresi
Pengujian yang berfokus pada pengujian ulang setelah ada perubahan.
Pada pengujian regresi berorientasi risiko.
m. Penerimaan Pengguna
Pada jenis pengujian ini, pengguna akan diundang ke pusat
pengembangan. Pengguna akan menggunakan aplikasi dan pengembang
mencatat setiap masukan atau tindakan yang dilakukan oleh pengguna.
n. Pengujian Alfa
Pada jenis pengujian ini, pengembang mengamati penggunaan
aplikasi oleh pengguna selanjutnya pengguna mencatat temuan yang
terjadi dari kecacatan aplikasi.
o. Pengujian Beta
Pada jenis pengujian ini, perangkat lunak didistribusikan sebagai
sebuah versi beta dengan pengguna yang menguji aplikasi di situs
mereka.
Penulis lain pun menambahkan bahwa “Tester menggunakan
behavioral test (disebut juga blackbox test), sering digunakan untuk
menemukan bug dalam high level operations, pada tingkatan fitur, profil
61
operasional dan skenario kustomer. Tester dapat membuat pengujian
fungsional blackbox berdasarkan pada apa yang harus sistem lakukan.
Behavioral testing melibatkan pemahaman rinci mengenai domain aplikasi,
masalah bisnis yang bisa dipecahkan oleh sistem dan misi yang dilakukuan
sistem. Behavioral test paling baik dilakukan oleh penguji yang memahami
desain sistem, setidaknya pada tingkat yang tinggi sehingga mereka dapat
secara efektif menemukan bug umum untuk jenis desain.” (Black 2009).
Berdasarkan konsep pengujian blackbox testing mengidentifikasikan
kesalahan yang berhubungan dengan kesalahan fungsionalitas perangkat
lunak yang tampak dalam kesalahan output.
Langkah–langkah dalam black box adalah sebagai berikut:
1. Analisa kebutuhan dan spesifikasi.
2. Pemilihan input.
3. Pemilihan output.
4. Seleksi input.
5. Pengujian.
6. Review hasil.
7. Evaluasi.
Beberapa jenis kesalahan yang dapat diidentifikasikan seperti fungsi
tidak benar atau hilang, kesalahan antarmuka, kesalahan pada struktur data
(pengaksesan basis data), kesalahan inisialisasi dan akhir program, dan
kesalahan performasi.
Keunggulan blackbox adalah bisa memilih subset test secara efektif
dan efisien, dapat menemukan cacat. Sedangkan kelemahan blackbox
62
adalah tester tidak pernah yakin apakah perangkat lunak tersebut benar–
benar lolos uji.
2.4 Tinjauan Studi
2.4.1 Penelitian Muhammad Iqbal Perkasa, Eko Budi Setiawan
Tabel 2.1: Penelitian Muhammad Iqbal Perkasa, Eko Budi Setiawan
No. Data Jurnal/Makalah Keterangan
1 Judul
Pembangunan Web Service Data
Masyarakat Menggunakan REST API
dengan Access Token
2 Jurnal Jurnal Sarjana Teknik Informatika
3 Volume dan halaman Vol. X, No. 1, 19-26
4 Tanggal & Tahun 8 Juni 2018
5 Penulis a. Muhammad Iqbal Perkasa
b. Eko Budi Setiawan
6 Penerbit Universitas Komputer Indonesia
7 Tujuan Penelitian
Mempercepat dalam penulisan atau
pengisian data masyarakat
8
Lokasi dan Subjek
Penelitian
Dinas Ketenagakerjaan dan Transmigrasi
9 Perancangan Sistem a. Bahasa pemrograman PHP
63
b. Database MySQL
10 Hasil Penelitian
a. Data-data yang ditampilkan dalam
aplikasi ini sudah baik yang di mana
ditampilkan berupa grafik dan tabel
b. Kantor-kantor sebagai pengembang
dan masyarakat dapat dimudahkan
dengan adanya web service ini untuk
memudahkan dalam pengambilan
data masyarakat
c. Tampilan dan menu dari aplikasi ini
sudah baik dan mudah digunakan
d. Aplikasi sudah bagus dan
memudahkan untuk melihat data-
datanya, pun dengan tampilan sudah
baik dan tepat
11 Kekuatan Penelitian
a. Administrator data penduduk dapat
dimudahkan dalam memonitor
penggunaan data penduduk dan
mengatur hak akses masing-masing
access token
b. Dari hasil 100 sample percobaan
yang dilakukan dalam satu detik,
empat sample terakhir baru
menunjukkan indikasi server
mengalami beban
64
12 Kelemahan Penelitian
a. Tidak ada fitur cache pada web
service
b. Tidak memberikan statistik data
penggunaan data masyarakat secara
real-time
13 Kesimpulan
Web service ini mampu dan dapat
mempercepat pendaftaran dengan keandalan
server yang baik.
2.4.2 Penelitian Penidas Fiodinggo Tanaem, Danny Manogga, Ade Iriani
Tabel 2.2: Penelitian Ninis Insiyah Masyhur, Kasim, Irmawati
No. Data Jurnal/Makalah Keterangan
1 Judul
RESTful Web Service Untuk Sistem
Pencatatan Transaksi Studi Kasus PT. XYZ
2 Jurnal Jurnal Magister Sistem Informatika
3 Volume dan halaman Volume 2 Nomor 1, 1-10
4 Tanggal & Tahun 1 April 2016
5 Penulis
a. Penidas Fiodinggo Tanaem
b. Danny Manogga
c. Ade Iriani
6 Penerbit Universitas Kristen Satya Wacana Salatiga
65
7 Tujuan Penelitian
Membantu perusahaan menyesuaikan data
antara data pergudangan dan data
perncatatan transaksi, dikarenakan terdapat
beberapa database yang digunakan secara
terpisah dan aplikasi yang berbeda-beda
8
Lokasi dan Subjek
Penelitian
PT. XYZ
9 Perancangan Sistem
a. Bahasa pemrograman JSON Web
Token
b. Database mysql server
10 Hasil Penelitian
a. Merancang aplikasi program
b. Merancang basis data
c. Menerapkan web service RESTful
dengan JSON Web Token
11 Kekuatan Penelitian
Metode yang digunakan menjadi dasar untuk
penelitian selanjutnya
12 Kelemahan Penelitian
Hanya berfokus pada pemanfaatan arsitektur
RESTful WS dan pemanfaatan JWT
13 Kesimpulan
Menghasilkan arsitektur RESTful WS yang
aman bagi PT. XYZ yang memungkinkan
untuk mengintegrasikan sumber daya dari
sistem dengan menggunakan aplikasi yang
66
berbeda dan dapat diintegrasikan dengan
jalur komunikasi yang aman
2.4.3 Penelitian Swono Sibagariang
Tabel 2.3: Penelitian Swono Sibagariang
No. Data Jurnal/Makalah Keterangan
1 Judul Penerapan Web Service pada Perpustakaan
Berbasis Android
2 Jurnal Jurnal Sarjana Sistem Informasi
3 Volume dan halaman Volume 1 Nomor 1, 28-32
4 Tanggal & Tahun 12 Juni 2016
5 Penulis Swono Sibagariang
6 Penerbit Universitas Sari Mutiara Indonesia
7 Tujuan Penelitian Menghubungkan berbagai jenis software
yang memiliki platform dan sistem operasi
yang sama atau berbeda sekalipun
8 Lokasi dan Subjek
Penelitian
Memanfaatkan web service untuk aplikasi
perpustakaan Universitas Katolik Santo
Thomas Sumatera Utara
9 Perancangan Sistem Android
67
10 Hasil Penelitian a. Pencarian buku dapat dilakukan
berdasarkan kriteria yakni: judul,
pengarang dan penerbit
b. Pencarian data tugas akhir dapat
dilakukan berdasarkan kriteria seperti:
judul dan jurusan
11 Kekuatan Penelitian a. Sangat efektif untuk digunakan karena
method atau fungsi dalam web service
dapat langsung digunakan untuk
mengembangkan aplikasi client
sehingga tidak perlu dilakukan
pemrograman aplikasi client dari awal
b. Dapat berjalan di OS Android Versi
2.2
12 Kelemahan Penelitian Tampilan yang hitam-putih
13 Kesimpulan a. Dengan menggunakan web service,
setiap client yang berjalan pada
platform yang berbeda dapat
mengakses data yang sama.
b. Sistem yang telah dibangun
dimaksudkan untuk menunjukkan
implementasi web service dalam
pengembangan aplikasi client dan
integrasi antar web service yang
menggambarkan suatu sistem multi-
tier.
68
2.4.4 Rangkuman Model Penelitian
Tabel 2.4: Rangkuman Penelitian
Peneliti Nama Jurnal Tahun Institusi
Judul dan Metode
yang Digunakan
Kesimpulan
a. Muhammad
Iqbal Perkasa
b. Eko Budi
Setiawan
Jurnal Sarjana
Teknik
Informatika
2018
Universitas
Komputer
Indonesia
Pembangunan Web
Service Data
Masyarakat
Menggunakan REST
API dengan Access
Token
Web service ini mampu dan dapat mempercepat
pendaftaran dengan keandalan server yang baik
a. Penidas
Fiodinggo
Tanaem
b. Danny
Manogga
Jurnal
Magister
Sistem
Informatika
2016
Universitas
Kristen Satya
Wacana
Salatiga
RESTful Web Service
Untuk Sistem
Pencatatan Transaksi
Studi Kasus PT. XYZ
Menghasilkan arsitektur RESTful WS yang aman
bagi PT. XYZ yang memungkinkan untuk
mengintegrasikan sumberdaya dari sistem dengan
menggunakan aplikasi yang berbeda dan dapat
69
c. Ade Iriani diintegrasikan dengan jalur komunikasi yang
aman
Swono Sibagariang
Jurnal Sarjana
Sistem
Informasi
2016
Universitas
Sari Mutiara
Indonesia
Penerapan Web Service
pada Perpustakaan
Berbasis Android
a. Dengan menggunakan web service, setiap
client yang berjalan pada platform yang
berbeda dapat mengakses data yang sama.
b. Sistem yang telah dibangun dimaksudkan
untuk menunjukkan implementasi web
service dalam pengembangan aplikasi
client dan integrasi antar web service yang
menggambarkan suatu sistem multi-tier.
70
2.5 Kerangka Pemikiran
Kerangka pemikiran merupakan alur pikir yang dijadikan sebagai skema
pemikir atau dasar-dasar pemikiran untuk memperkuat indikator yang
melatarbelakangi pembuatan aplikasi ini. Dalam kerangka pemikiran ini, penjelasan
akan dibentuk dalam diagram.
Gambar 2.15 Kerangka Pemikiran
71
BAB III
PERANCANGAN APLIKASI
3.1 Analisa Kebutuhan
3.1.1 Analisa Kebutuhan Perangkat
Berikut ini adalah perangkat yang digunakan untuk membangun aplikasi ini:
a. Laptop Samsung 300E4Z.
b. Sistem Operasi Windows 8.1 Pro (64 Bit).
c. Processor Intel® Celeron® CPU B815 @ 1.60GHz (2 CPUs), ~1.6GHz.
d. RAM 4 GB
e. VS Code
f. CodeIgniter 3.1.11
g. XAMPP
h. Google Chrome
i. Postman
3.1.2 Analisa Kebutuhan Pemakai
Berdasarkan survey yang telah dilakukan kepada responden yang
menginginkan sebuah aplikasi untuk membantu memprediksi penyakit ginjal
kronis, kebutuhan yang responden butuhkan untuk aplikasi ini adalah sebagai
berikut:
72
Tabel 3.1: Identifikasi Kebutuhan Pemakai
No. Kebutuhan Pemakai
1
Dapat menghitung jumlah stok barang keluar, barang
masuk, dan total barang yang tersedia
2
Dapat diakses secara realtime, kapan pun dan di mana
pun
3 Tampilan yang mudah digunakan dan dimengerti
4 Dapat menginput detail barang
5 Harus ada catatan atau histori barang masuk dan keluar
6 Memiliki fitur admin
3.1.3 Analisa Kebutuhan Aplikasi
Berdasarkan tabel analisa kebutuhan pemakai di atas dibuatlah
program aplikasi untuk memenuhi kebutuhan pemakai, yang dijabarkan pada
tabel di bawah ini:
Tabel 3.2: Analisa Kebutuhan Pemakai
No. Kebutuhan Pemakai Keterangan
1
Dapat menghitung jumlah stok barang keluar,
barang masuk, dan total barang yang tersedia
✓
2
Dapat diakses secara realtime, kapan pun dan di
mana pun
✓
3 Tampilan yang mudah digunakan dan dimengerti ✓
73
4
Dapat menginput detail barang seperti berat,
ukuran, warna, jenis produk, kategori produk, dan
sejenisnya
5
Harus ada catatan atau histori barang masuk dan
keluar
✓
6 Memiliki fitur admin ✓
3.2 Konstruksi Algoritma dan Metode
Penerapan arsitektur model-view-controller ini dapat menungkatkan
modularitas dan reusibilitas dari sistem yang akan dibangun. Hal ini dimungkinkan
karena source code menjadi lebih rapi dan pemisah antara logika dan antarmuka
pengguna lebih jelas.
Definisi teknis dan arsitektur MVC dibagi menjadi tiga lapisan:
a. Model
Digunakan untuk mengelola informasi dan memberi tahu pengamat bila ada
perubahan informasi. Hanya model yang mengandung data dan fungsi yang
berhubungan dengan database.
b. View
Digunakan sebagai pemetaan grafis ke sebuah perangkat. View melekat pada
model dan me-render isinya ke permukaan layar.
c. Controller
Menerima masukan (input) dari pengguna dan mengintruksikan model dan view
untuk melakukan aksi berdasarkan masukan tersebut.
Model, view dan controller sangat erat terkait, makanya mereka harus merujuk satu
sama lain.
74
3.3 Perancangan Layar, Menu dan Database
3.3.1 Rancangan Layar dan Menu
a. Rancangan Layar Menu Login
Gambar 3.1 Rancangan Layar Menu Login
Pada rancangan layar menu login ini terdapat sebuah header yang
menunjukkan nama dari aplikasi ini, dua buah form input untuk username
dan password, sebuah tombol login, dan sebuah label yang menunjukkan ini
adalah halaman login.
75
b. Rancangan Layar Dashboard
Gambar 3.2 Rancangan Layar Dashboard
Pada rancangan layar dashboard ini terdapat sebuah header yang
menunjukkan nama dari aplikasi ini, sebuah tombol untuk logout jika sudah
login. Lima buah tombol yang masing-masing adalah tombol beranda,
barang, barang masuk, barang keluar dan supplier di samping kiri. Tiga buah
tombol di tengah yang masing-masing adalah tombol barang, tombol barang
masuk dan tombol barang keluar. Sebuah label di kanan atas yang
menunjukkan halaman yang sedang terbuka. Sebuah label di kanan atas yang
menunjukkan nama aplikasi ini. Dua buah label di kiri dan kanan bawah yang
merupakan footer.
76
c. Rancangan Layar Menu Barang dan Supplier
Gambar 3.3 Rancangan Layar Menu Barang dan Supplier
Pada rancangan layar menu barang, barang masuk, barang keluar, dan
supplier ini terdapat sebuah header yang menunjukkan nama dari aplikasi ini,
sebuah tombol untuk logout jika sudah login. Lima buah tombol yang masing-
masing adalah tombol beranda, barang, barang masuk, barang keluar dan
supplier di samping kiri. Sebuah label di kanan atas yang menunjukkan
halaman yang sedang terbuka. Sebuah label di kanan atas yang menunjukkan
nama aplikasi ini. Dua buah label di kiri dan kanan bawah yang merupakan
footer. Sebuah tabel yang berisi data yang diambil dari database. Sebuah
tombol insert dan cetak report di bawah table. Sebuah tombol edit dan delete
di dalam table untuk masing-masing data yang ada.
77
d. Rancangan Layar Menu Barang dan Barang Keluar
Gambar 3.4 Rancangan Layar Menu Barang Masuk dan Barang
Keluar
Pada rancangan layar menu barang, barang masuk, barang keluar, dan
supplier ini terdapat sebuah header yang menunjukkan nama dari aplikasi ini,
sebuah tombol untuk logout jika sudah login. Lima buah tombol yang masing-
masing adalah tombol beranda, barang, barang masuk, barang keluar dan
supplier di samping kiri. Sebuah label di kanan atas yang menunjukkan
halaman yang sedang terbuka. Sebuah label di kanan atas yang menunjukkan
nama aplikasi ini. Dua buah label di kiri dan kanan bawah yang merupakan
footer. Sebuah tabel yang berisi data yang diambil dari database. Sebuah
tombol insert dan cetak report di bawah table. Sebuah tombol lihat di dalam
table untuk masing-masing data yang ada, untuk melihat detail dari data
dalam tabel tersebut.
78
3.3.2 Rancangan Database
Gambar 3.5 Rancangan Database
1. Tabel supplier
Tabel 3.3: Tabel Supplier
No.
Nama
Kolom
Tipe Data Keterangan
1 id INT(11) Nomor Induk Supplier
2 namasupplier VARCHAR(225) Nama Supplier
3 nomortelepon VARCHAR(15)
Nomor Telepon Supplier
4 alamat TEXT Alamat Supplier
5 created_by INT(11)
Orang yang meng-input data
supplier
6 created_at INT(11)
Waktu dan tanggal meng-input
data supplier dalam bentuk
timestamp
79
7 updated_by INT(11)
Orang yang mengubah data
supplier
8 updated_at INT(11)
Waktu dan tanggal mengubah
data supplier dalam bentuk
timestamp
2. Tabel barang
Tabel 3.4: Tabel Barang
No Nama Kolom Tipe Data Keterangan
1 id INT(11) Nomor Induk Barang
2 namabarang VARCHAR(225) Nama Barang
3 stok INT(11) Jumlah Stok Barang Ada
4 harga INT(11) Harga Barang
5 deskripsi VARCHAR(225) Deskripsi Barang
6 created_by INT(11)
Orang yang menginput data
barang
7 created_at INT(11)
Waktu dan tanggal menginput
data barang dalam bentuk
timestamp
8 updated_by INT(11)
Orang yang mengubah data
barang
80
9 updated_at INT(11)
Waktu dan tanggal mengubah
data barang dalam bentuk
timestamp
3. Tabel barang_keluar_masuk
Tabel 3.5: Tabel Barang Keluar Masuk
No
Nama
Kolom
Tipe Data Keterangan
1 id INT(11)
Nomor Induk Barang Keluar
Masuk
2 barang_id INT(11) Nomor Induk Barnag
3 supplier_id INT(11) Nomor Induk Supplier
4 stok INT(11)
Stok Barang yang Keluar atau
Masuk
5 keterangan VARCHAR(6)
Keterangan Barang Masuk atau
Keluar
6 created_by INT(11)
Orang yang menginput data
barang
7 created_at INT(11)
Waktu dan tanggal menginput
data barang dalam bentuk
timestamp
81
4. Tabel user
Tabel 3.6: Tabel User
No Nama Kolom Tipe Data Keterangan
1 id INT(11) Nomor Induk User
2 password_hash VARCHAR(225)
Password User yang sudah
Di-hash
3 email VARCHAR(225) Email User
4 nama VARCHAR(225) Nama User
5 nomortelepon VARCHAR (15) Nomor Telepon User
6 alamat TEXT Alamat User
7 created_at INT(11)
Waktu dan tanggal meng-
input data barang dalam
bentuk timestamp
8 updated_at INT(11)
Waktu dan tanggal
mengubah data barang
dalam bentuk timestamp
5. Tabel migration
Tabel 3.7: Tabel Migration
No
Nama
Kolom
Tipe Data Keterangan
1 Version BIGINT(20)
Tabel yang otomatis dibuat saat
menggunakan fitur migration di
CodeIgniter
82
3.4 Rancangan Flowchart
Gambar 3.6 Flowchart
83
BAB IV
PENGUJIAN DAN IMPLEMENTASI
4.1 Pembahasan Metode dan Algoritma
4.1.1 CodeIgniter
a. Alur Kerja
Gambar 4.1 Alur Aplikasi CodeIgniter
(Sumber: https://codeigniter-id.github.io/user-
guide/overview/appflow.html)
1. File index.php (kadang disebut entry scripts) berfungsi sebagai front
controller, menginisialisasi resource utama yang dibutuhkan untuk
menjalankan CodeIgniter.
2. Router memeriksa HTTP request untuk menentukan apa yang harus
dilakukan dengan itu.
3. Jika file cache ada, dikirim langsung ke browser, melewati eksekusi
sistem normal.
4. Keamanan. Sebelum controller aplikasi dimuat, HTTP request dan
setiap data pengguna yang di-submit disaring terlebih dahulu untuk
keamanan.
5. Controller memuat model, library utama, helper, dan setiap resource
lainnya yang diperlukan untuk memproses permintaan khusus.
84
6. View di-render kemudian dikirim ke web browser agar dapat dilihat.
Jika caching diaktifkan, view di-cache terlebih dahulu sehingga pada
permintaan berikutnya dapat dilayani.
b. Struktur Folder
Gambar 4.2 Struktur Folder CodeIgniter
Penjelasan struktur folder default CodeIgniter 3.1.11:
a. Application: Tempat aplikasi yang akan dibuat
b. Cache: Tempat menyimpan semua cache
c. Config: Tempat menyimpan file konfigurasi aplikasi yang akan dibuat
d. Controller: Tempat menyimpan semua file controller
85
e. Core: Tempat menyimpan core custom
f. Helper: Tempat menyimpan helper yang bukan berasal dari
CodeIgniter
g. Hooks: Tempat menyimpan hook yang digunakan untuk mengubah
alur fungsi dari core CodeIgniter
h. Language: Tempat menyimpan bahasa-bahasa yang digunakan
i. Libraries: Tempat menyimpan library yang bukan berasal dari
CodeIgniter
j. Logs: Tempat menyimpan semua log
k. Models: Tempat menyimpan semua file model, yang berisi query-
query database
l. Third_party: Tempat menyimpan package yang dibuat sendiri
m. Views: Tampilan aplikasi yang akan dibuat
n. System: Inti (core) dari framework CodeIgniter
o. User_guide: Berisi panduan penggunaan CodeIgniter
4.1.2 REST
REST (Representational State Transfer) adalah suatu arsitektur
metode komunikasi yang sering diterapkan dalam pengembangan sistem/
Arsitektur REST umumnya dijalankan via HTTP (Hypertext Transfer
Protocol), melibatkan proses pembacaan laman web tertentu yang memuat
sebuah file XML atau JSON. File inilah yang mengurai dan memuat konten
yang hendak disajikan. Dalam pembuatan apliikasi ini menerapkan metode
komunikasi tersebut sebagai jembatan antara aplikasi yang dibuat dengan
database yang ada. REST API dibuat dengan menggunakan bahasa
86
pemrograman dan framework CodeIgniter. Berikut ini contoh bagaimana
penerapan sebuah REST API dalam aplikasi ini menggunakan library REST
untuk CodeIgniter.
Gambar 4.3 REST Client PHP di framework CodeIgniter bagian
Controller
Gambar 4.4 REST Client PHP di framework CodeIgniter bagian Config
Link REST Server
Gambar 4.3 line 21 merupakan contoh pemanggilan fungsi REST di
framework CodeIgniter menggunakan library REST dan curl. Alamat link
87
REST server-nya ada di gambar 4.4, yang di-include di gambar 4.3 melalui
fungsi __construct(). Lalu, fungsi REST yang dipanggil adalah “stok”.
Gambar 4.5 REST Server PHP di framework CodeIgniter bagian
Controller
Gambar 4.6 REST Server PHP di framework CodeIgniter bagian Model
Gambar di atas merupakan contoh script PHP yang digunakan untuk
menggambil data jumlah stok barang dari database. Database yang
digunakan adalah MySQL Lalu, untuk mengetahui data yang dihasilkan dari
query di atas, bisa menggunakan aplikasi Postman.
88
Gambar 4.7 Hasil Data dari REST API PHP
(Postman mengembalikan status 200 OK bila fungsinya berjalan dengan baik.)
Pada aplikasi Postman, pertama kita harus memilih metode yang sesuai (GET,
POST, PUT, DELETE, dll). Dalam percobaan gambar 4.5, kita akan
melakukan select data dari database, jadi metode yang kita pakai adalah GET.
Hasil yang didapat lalu dikirimkan dari REST Server ke REST Client dalam
bentuk JSON dalam variabel $tmpData1 di gambar 4.3.
4.2 Spesifikasi Hardware dan Software
4.2.1 Spesifikasi Hardware
Spesifikasi hardware yang diperlukan oleh pengembang dan pengguna
yaitu:
a. Processor: Minimal 1.6 Ghz
b. RAM: 2 GB
c. VGA: 1 GB
d. Harddisk: Ruang kosong minimal 3 GB
e. Mouse: 1 unit
89
f. Keyboard: 1 unit
Sedangkan kebutuhan perangkat keras untuk pengguna:
a. Processor: Minimal 1.6 Ghz
b. RAM: 2 GB
c. VGA: 1 GB
d. Harddisk: Ruang kosong minimal 3 GB
e. Mouse: 1 unit
f. Keyboard: 1 unit
4.2.2 Spesifikasi Software
Spesifikasi software yang diperlukan untuk pengembangan pengguna, yaitu:
a. Operating System: Windows 8.1
b. Web Server: XAMPP
c. Code Editor: VSCode
d. Database & Tools: MySQL
e. Web Browser: Google Chrome
Sedangkan kebutuhan perangkat lunak pada komputer pengguna:
a. Operating System: Windows 7/8/8.1/10
b. Mouse dan Keyboard: Aktif dan berfungsi dengan baik
c. Web Browser: Google Chrome
90
4.3 Tampilan Program
4.3.1 Tampilan Menu Login
Menu ini berfungsi untuk menampilkan halaman login. Berikut
adalah gambar menu login:
Gambar 4.8 Tampilan Menu Login
4.3.2 Tampilan Menu Dashboard
Menu ini berfungsi untuk menampilkan menu-menu utama dari
aplikasi ini yaitu menu barang, barang masuk, dan barang keluar, di mana
setiap menu memiliki sub-menu tambah, edit, delete, dan lihat. Berikut adalah
gambar menu dashboard:
Gambar 4.9 Tampilan Menu Dashboard
91
4.3.3 Tampilan Menu Barang
Menu ini berfungsi untuk menampilkan tabel yang berisi data barang-barang
yang ada, di mana setiap data memiliki tombol edit sendiri. Terdapat tombol
tambahkan untuk menambahkan barang, dan tombol cetak untuk mencetak
semua barang yang sudah terdaftar di database dalam bentuk pdf. Berikut
adalah gambar menu barang:
Gambar 4.10 Tampilan Menu Barang
4.3.4 Tampilan Menu Barang Masuk
Menu ini berfungsi untuk menampilkan tabel yang berisi data stok barang
masuk yang ada, di mana setiap data memiliki tombol lihat sendiri. Terdapat
tombol tambahkan untuk menambahkan stok barang, dan tombol cetak untuk
mencetak semua stok barang yang masuk di database dalam bentuk pdf.
Berikut adalah gambar menu barang masuk:
Gambar 4.11 Tampilan Menu Barang Masuk
92
4.3.5 Tampilan Menu Barang Keluar
Menu ini berfungsi untuk menampilkan tabel yang berisi data stok barang
keluar yang ada, di mana setiap data memiliki tombol lihat sendiri. Terdapat
tombol keluarkan untuk mengeluarkan stok barang, dan tombol cetak untuk
mencetak semua stok barang yang keluar di database dalam bentuk pdf.
Berikut adalah gambar menu barang keluar:
Gambar 4.12 Tampilan Menu Barang Keluar
4.3.6 Tampilan Menu Supplier
Menu ini berfungsi untuk menampilkan tabel yang berisi data supplier-
supplier yang ada, di mana setiap data memiliki tombol edit dan delete
sendiri. Terdapat tombol tambahkan untuk menambahkan supplier, dan
tombol cetak untuk mencetak semua supplier yang sudah terdaftar di
database dalam bentuk pdf. Berikut adalah gambar menu supplier:
Gambar 4.13 Tampilan Menu Supplier
93
4.4 Pengujian Blackbox
Pengujian blackbox dilakukan dengan tes fungsionalitas dari aplikasi atau perangkat
lunak. Tujuan pengujian ini adalah untuk menemukan kesalahan dalam aplikasi.
Berikut adalah tabel hasil pengujian blackbox:
Tabel 4.1: Pengujian Blackbox
No. Scene Pengujian Skenario Hasil yang Diharapkan Keterangan
1 Halaman login
Pengguna
mengisi
username dan
password yang
sesuai di
database
Pengguna dialihkan ke
halaman dashboard dan
menampilkan jumlah
stok barang, stok barang
masuk dan stok barang
keluar
Sesuai
2 Halaman login
Pengguna
mengisi
username dan
password yang
tidak sesuai di
database
Pengguna akan kembali
ke halaman login
Sesuai
3 Halaman login
Pengguna
mengisi
username dan
password yang
tidak sesuai di
database
Menampilkan pesan eror Tidak sesuai
94
4 Halaman utama
Pengguna
mengeklik
tombol barang
Pengguna akan masuk ke
halaman barang dan
tampil tabel barang
Sesuai
5 Halaman utama
Pengguna
mengeklik
tombol barang
masuk
Pengguna akan masuk ke
halaman barang masuk
dan tampil tabel barang
masuk
Sesuai
6 Halaman utama
Pengguna
mengeklik
tombol barang
keluar
Pengguna akan masuk ke
halaman barang keluar
dan tampil tabel barang
keluar
Sesuai
7 Halaman utama
Pengguna
mengeklik
tombol supplier
Pengguna akan masuk ke
halaman supplier dan
tampil tabel suplier
Sesuai
8 Halaman barang
Pengguna
mengeklik
tombol
tambahkan
Pengguna masuk ke
halaman tambahkan
untuk menu barang dan
tampil form
Sesuai
9
Halaman tambahkan
dari menu barang
Pengguna
mengisi form
lalu klik simpan
Pengguna dialihkan ke
halaman barang lalu
muncul pesan berhasil
Sesuai
10
Halaman tambahkan
dari menu barang
Pengguna tidak
mengisi form
lalu klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu barang dan
muncul pesan eror
Sesuai
95
11
Halaman tambahkan
dari menu barang
Pengguna
mengisi form
harga dengan
selain numerik
lalu klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu barang dan
muncul pesan eror
Sesuai
12
Halaman tambahkan
dari menu barang
Pengguna
mengisi form
stok dengan
angka nol (0) lalu
klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu barang dan
muncul pesan eror
Sesuai
13 Halaman barang
Pengguna
mengeklik
tombol edit
Pengguna masuk ke
halaman edit untuk menu
barang dan tampil form
Sesuai
14
Halaman edit dari
menu barang
Pengguna
mengisi form
lalu klik simpan
Pengguna dialihkan ke
halaman barang lalu
muncul pesan berhasil
Sesuai
15
Halaman edit dari
menu barang
Pengguna tidak
mengisi form
lalu klik simpan
Pengguna akan kembali
ke halaman edit dari
menu barang dan muncul
pesan eror
Sesuai
16
Halaman edit dari
menu barang
Pengguna
mengisi form
harga dengan
selain numerik
lalu klik simpan
Pengguna akan kembali
ke halaman edit dari
menu barang dan muncul
pesan eror
Sesuai
96
17
Halaman edit dari
menu barang
Pengguna
mengisi form
harga dengan
angka nol (0) lalu
klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu barang dan
muncul pesan eror
Sesuai
18 Halaman barang
Pengguna
mengeklik
tombol delete
Pengguna akan kembali
ke halaman barang dan
muncul pesan berhasil
Sesuai
19 Halaman barang
Pengguna
mengeklik
tombol cetak
report
Pengguna akan melihat
file pdf di tab baru
browser, atau men-
download file-nya bila di
komputer pengguna
terdapat aplikasi
download manager
Sesuai
20
Halaman barang
masuk
Pengguna
mengeklik
tombol
tambahkan
Pengguna masuk ke
halaman tambahkan
untuk menu barang
masuk dan tampil form
Sesuai
21
Halaman tambahkan
dari menu barang
masuk
Pengguna
mengisi form
lalu klik simpan
Pengguna dialihkan ke
halaman barang masuk
lalu muncul pesan
berhasil
Sesuai
97
22
Halaman tambahkan
dari menu barang
masuk
Pengguna tidak
mengisi form
lalu klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu barang masuk
dan muncul pesan eror
Sesuai
23
Halaman tambahkan
dari menu barang
masuk
Pengguna
mengisi form
stok dengan
selain numerik
lalu klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu barang masuk
dan muncul pesan eror
Sesuai
24
Halaman tambahkan
dari menu barang
masuk
Pengguna
mengisi form
stok dengan
angka nol (0) lalu
klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu barang masuk
dan muncul pesan eror
Tidak sesuai
25
Halaman barang
masuk
Pengguna
mengeklik
tombol lihat
Pengguna dialihkan ke
halaman detail dari
barang masuk lalu
muncul detail barang
yang masuk
Sesuai
26
Halaman barang
masuk
Pengguna
mengeklik
tombol cetak
report
Pengguna akan melihat
file pdf di tab baru
browser, atau men-
download file-nya bila di
komputer pengguna
Sesuai
98
terdapat aplikasi
download manager
27
Halaman barang
keluar
Pengguna
mengeklik
tombol keluarkan
Pengguna masuk ke
halaman keluarkan untuk
menu barang keluar dan
tampil form
Sesuai
28
Halaman keluarkan
dari menu barang
keluar
Pengguna
mengisi form
lalu klik simpan
Pengguna dialihkan ke
halaman barang keluar
lalu muncul pesan
berhasil
Sesuai
29
Halaman keluarkan
dari menu barang
keluar
Pengguna tidak
mengisi form
lalu klik simpan
Pengguna akan kembali
ke halaman keluarkan
dari menu barang keluar
dan muncul pesan eror
Sesuai
30
Halaman keluarkan
dari menu barang
keluar
Pengguna
mengisi form
stok dengan
selain numerik
lalu klik simpan
Pengguna akan kembali
ke halaman keluarkan
dari menu barang keluar
dan muncul pesan eror
Sesuai
31
Halaman keluarkan
dari menu barang
keluar
Pengguna
mengisi form
stok dengan
angka nol (0) lalu
klik simpan
Pengguna akan kembali
ke halaman keluarkan
dari menu barang keluar
dan muncul pesan eror
Tidak sesuai
99
32
Halaman keluarkan
dari menu barang
keluar
Pengguna
mengisi form
stok melebihi
stok yang ada
Pengguna akan kembali
ke halaman keluarkan
dari menu barang keluar
dan muncul pesan eror
Sesuai
33
Halaman barang
keluar
Pengguna
mengeklik
tombol lihat
Pengguna dialihkan ke
halaman detail dari
barang keluar lalu
muncul detail barang
yang masuk
Sesuai
34
Halaman barang
keluar
Pengguna
mengeklik
tombol cetak
report
Pengguna akan melihat
file pdf di tab baru
browser, atau men-
download file-nya bila di
komputer pengguna
terdapat aplikasi
download manager
Sesuai
35 Halaman supplier
Pengguna
mengeklik
tombol
tambahkan
Pengguna masuk ke
halaman tambahkan
untuk menu supplier dan
tampil form
Sesuai
36
Halaman tambahkan
dari menu supplier
Pengguna
mengisi form
lalu klik simpan
Pengguna dialihkan ke
halaman supplier lalu
muncul pesan berhasil
Sesuai
100
37
Halaman tambahkan
dari menu supplier
Pengguna tidak
mengisi form
lalu klik simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu supplier dan
muncul pesan eror
Sesuai
38
Halaman tambahkan
dari menu supplier
Pengguna
mengisi form
nomor telepon
dengan selain
numerik lalu klik
simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu supplier dan
muncul pesan eror
Sesuai
39
Halaman tambahkan
dari menu supplier
Pengguna
mengisi form
nomor telepon
dengan angka nol
(0) lalu klik
simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu supplier dan
muncul pesan eror
Sesuai
40 Halaman supplier
Pengguna
mengeklik
tombol edit
Pengguna masuk ke
halaman edit untuk menu
supplier dan tampil form
Sesuai
41
Halaman edit dari
menu supplier
Pengguna
mengisi form
lalu klik simpan
Pengguna dialihkan ke
halaman supplier lalu
muncul pesan berhasil
Sesuai
42
Halaman edit dari
menu supplier
Pengguna tidak
mengisi form
lalu klik simpan
Pengguna akan kembali
ke halaman edit dari
Sesuai
101
menu supplier dan
muncul pesan eror
Halaman edit dari
menu supplier
Pengguna
mengisi form
nomor telepon
dengan selain
numerik lalu klik
simpan
Pengguna akan kembali
ke halaman edit dari
menu supplier dan
muncul pesan eror
Sesuai
44 Halaman edit dari
menu supplier
Pengguna
mengisi form
nomor telepon
dengan angka nol
(0) lalu klik
simpan
Pengguna akan kembali
ke halaman tambahkan
dari menu supplier dan
muncul pesan eror
Sesuai
45 Halaman supplier
Pengguna
mengeklik
tombol delete
Pengguna akan kembali
ke halaman supplier dan
muncul pesan berhasil
Sesuai
46 Halaman supplier
Pengguna
mengeklik
tombol cetak
report
Pengguna akan melihat
file pdf di tab baru
browser, atau men-
download file-nya bila di
komputer pengguna
terdapat aplikasi
download manager
Sesuai
47 Halaman barang
Pengguna
mengeklik
tombol logout
Pengguna dialihkan ke
halaman login Sesuai
102
BAB V
SIMPULAN DAN SARAN
5.1 Simpulan
Berdasarkan hasil penelitian ini, maka dapat diperoleh kesimpulan sebagai
berikut:
a. Aplikasi ini dapat mengelola data barang dengan baik menggunakan REST API
sebagai sarana pertukaran datanya.
b. Aplikasi ini dapat mencetak laporan master barang, barang masuk dan keluar
yang dibutuhkan
5.2 Saran
Penelitian yang dilakukan, tentunya masih terdapat kelemahan-kelemahan
yang belum teratasi, oleh karena itu, perlu diperhatikan beberapa hal untuk
mengembangkan sistem yang sudah ada. Antara lain:
a. Perbaikan error yang ada serta pesan error yang tidak muncul di halaman login,
barang masuk dan barang keluar.
b. Dapat dijalankan secara online.
Demikian saran yang dapat diberikan. Semoga saran tersebut dapat dijadikan
bahan pembelajaran dan referensi apabila akan ada pengembangan dalam sistem
aplikasi ini ke depannya. Terima kasih.
103
DAFTAR PUSTAKA
Abed, M, H. S., & Hamad. 2010. Performance & Evaluaion for RESTfull Web Service. Arab:
International Arab Journal of e-Technology.
Aji, S.M. 2014. “Journal on Networking and Security.” Rancangan Bangun Sistem
Informasi Disposisi Surat Berbasis Web Volume 3 no 3.
Amalia, Dina. Pengertian dan Fitur pada CodeIgniter.
https://idwebhost.com/blog/pengertian-dan-fitur-pada-CodeIgniter/, diakses 13
Desember 2019.
Anniss, Matt. 2014. What Is a Database and How Do I Use It? New York: Reese.
Anton, & Subagia. 2018. Kolaborasi CodeIgniter dan Ajax dalam Perancangan CMS.
Jakarta: PT. Elex Media Komputindo.
Arief, M., & Yudianto. 2011. Pemrograman Web Dinamis Menggunakan PHP dan MySQL.
Yogyakarta: Andi.
Bahjar. Metode Waterfall: Definisi, Tahapan, Kelebihan dan Kekurangan.
http://bahjah.blogger.mercubuana.ac.id/2017/09/15/metode-waterfall-definisi-
tahapan-kelebihan-dan-kekurangan/, diakses 29 Januari 2020.
Black. 2009. Implementasi dan Pengujian Program. Palembang: Maxikom.
British Columbia Institute of Technology. 2017. Alur Aplikasi. https://CodeIgniter-
id.github.io/user-guide/overview/appflow.html, diakses 13 Desember 2019.
British Columbia Institute of Technology. 2019. Change Log.
https://CodeIgniter.com/user_guide/changelog.html, diakses 19 Desember 2019.
Dadan & Kerendi Developers. 2015. Membuat CMS Multifitur. Jakarta: PT. Elex Media
Komputindo.
Daniel, Jacob. 2012. API's : A Strategy Guide. United State: O'Reilly Media.
Deitel, H., Paul, & Deitel. 2012. Java: How to Program. United Hall: Prentice Hall.
Dincer, Alper, dan Balkan Uraz. 2013. Google Maps JavaScript API Coockbook.
Brimingham: Pack Publishing Ltd.
Firman, Astria, Hans F. Wowor, Xaverius Najoan. 2016. “Sistem Informasi Perpustakaan
Online Bwebasis Web.” UNSRAT 29-36.
H, & Kreger. 2011. Web Service Conseptual (WSCA.1.0). USA: IBM Software Group.
Hartono. 2012. Rancang Bangun Web Service untuk Sistem Informasi Pengisian Kartu
Rencana Studi Berbasis Android. Purwokerto: Universitas Muhammadiah.
Helmi, Syafizal. 2010. Analisis Data. Medan: Usu Press.
104
Hendrayudi. 2009. Pengertian Aplikasi. Yogyakarta: CV. Andi Offset.
Idcloudhost. 2017. Mengetahui Fungsi, Kelebihan dan Kekurangan Framework
CodeIgniter. https://idcloudhost.com/panduan/mengetahui-fungsi-kelebihan-dan-
kekurangan-CodeIgniter/, diakses 19 Desember 2019.
Imam, & Rozali. 2011. Next Generation Mobile Application. Konfrensi Informasi dan
Teknologi untuk Indonesia, 35.
Indrajani. 2015. Database Design. Jakarta: PT. Elex Media Komputindo.
Jubilee Enterprise. 2016. Pengenalan HTML dan CSS. Jakarta: PT. Elex Media Komputindo.
Kasman, Akhmad Dharma. 2015. Trik Kolaborasi ANDROID dengan PHP dan MySQL.
Yogyakarta: Lokomedia.
Lavarino, Dio dan Wiyli Yustanti. 2016. “Rancang Bangun E-Voting Berbasis Website di
Universitas Surabaya”. Universitas Negeri Surabaya 72-81.
Marthasari, Aminudin, G., & Y, M. 2010. Implementasi Web Service untuk Mendukung
Interprobabilitas pada E-Commers. Surabaya: Electronic Enginering Politecnic
Institute.
Masse, Mark. 2011. REST API Design Rulebook: Designing Consistent RESTful Web
Service Interfaces. Sobastopol: O'Reilly Media.
Murhada, dan Ceng Giap Yo. 2011. Pengantar Teknologi Informasi. Jakarta: Mitra Wacana
Media.
Musiafa, Zayid. 2019. Membangun Aplikasi Inventory Multistore dengan Visual Basic dan
MySQL. Banjarmasin: Universitas Islam Kalimantan Muhammad Arsyad Al-Banjary.
Muslihudin, Muhamad, dan Oktafianto. 2016. Analisis dan Perancangan Sistem Informasi
Menggunakan Model Terstruktur dan UML. Yogyakarta: ANDI.
Nanaban, Martin. 2018. Fungsi Distribusi di Dalam Industri. https://mgt-
logistik.com/inventory-adalah-persediaan-barang/, diakses 19 Desember 2019.
Pamungkas, Galang Amanda Dwi. 2019. Mengulik RESTful API. https://blog-
tki.universitaspertamina.ac.id/post/12/mengulik_restful_api/, diakses 13 Desember
2019.
Perkasa, Muhammad Iqbal dan Eko Budi Setiawan. 2018. “Pembangunan Web Service Data
Masyarakat Menggunakan REST API dengan Access Token”. ULTIMA Computing 19-
26.
Politwika. 2017. 60+ Cara Online Menghasilkan Uang Saat Weekend. Jakarta: Gramedia
Widiasarana Indonesia.
Pranata, Dana, Hamdani dan Dyna Marisa K. 2015. “Rancang Bangun Website Jurnal
Ilmiah Bidang Komputer (Studi Kasus: Program Studi Ilmu Komputer Universitas
Mulawarman)”. Universitas Mulawarman 25-29.
105
Purnawanto, Budy. 2010. Manajemen SDM Berbasis Proses. Jakarta: Grasindo.
Raharjo, Budi. 2018. Belajar Otodidak Framework CodeIgniter. Bandung:
INFORMATIKA Bandung.
Rahmad, & Hidayat. 2010. Cara Membangun Web Site Gratis: Pengertian Web Site. Jakarta:
PT. Elex Media Komputindo.
Ramadhani, Cipta. 2015. Dasar Algoritma & Struktur Data dengan Bahasa Jawa.
Yogyakarta: Penerbit Andi
Rohman, Ardani. 2017. Documentation & Testing API dengan Postman part 1.
https://medium.com/skyshidigital/documentation-testing-api-dengan-postman-part-1-
5d33e430dca7, diakses 13 Desember 2019.
Rulloh, Amin, Dewi Erla Mahmudah, Herman Kabetta. 2017. Implementasi REST API pada
Aplikasi Kepaskibraan Berbasis Android
Sahyar. 2016. Alforitma & Pemrograman Menggunakan Matlab (Matrix Laboratory).
Jakarta: Kencana.
Sibagariang, Swono. 2016. “Penerapan Web Service pada Perpustakaan Berbasis Android”
Universitas Sari Mutiara Indonesia 28-32.
Simarmata, Janner. 2010. Rekayasa Perangkat Lunak. Yogyakarta: Andi.
Sutanta, Edhy. 2011. Basis Data dalam Tinjauan Konseptual. Yogyakarta: Andi.
Sugiyono. 2012. Metode Penelitian Kuantitatif dan Kualitatif dan R&D. Bandung: Alfabeta.
Sulistiono, Heru. 2018. Coding Mudah dengan CodeIgniter, jQuery, Bootstrap, dan
Datatable. Jakarta: PT. Elex Media Komputindo.
Supardi, Yaniar. 2009. Internet untuk Segala Kebutuhan. Jakarta: PT. Elex Media
Komputindo.
Suryana, Taryana, dan Koesheryatin. 2014. Aplikasi Internet Menggunakan HTML, CSS,
Java Script. Jakarta: PT. Elex Media Komputindo.
Sutabri, Tata. 2012. Analisis Sistem Informasi. Yogyakarta: CV. Andi Offset.
Tanaem, Penidas Fiodinggo, dkk. 2016. “RESTful Web Service Untuk Sistem Pencatatan
Transaksi Studi Kasus PT. XYZ”. Universitas Kristen Satya Wacana Salatiga 1-10.
Visual Studio Code. 2019. Getting Started. https://code.visualstudio.com/docs, diakses 13
Desember 2019.
Wardana. 2010. Menjadi Master PHP dengan Framework CodeIgniter. Jakarta: PT. Elex
Media Komputindo.
Y. Kustiyahningsih, D. Rosa. 2011. Pemrograman Basis Data Berbasis WEB Menggunakan
PHP dan Mysql. Yogyakarta: Graha Ilmu.
106
Yudhanto, Yudho, dan Helmi Adi Prasetyo. 2018. Panduan Mudah Belajar Framework
Laravel. Jakarta: PT. Elex Media Komputindo.
Yuhefizar, HA Mooduto, Rahmat Hidayat. 2009. Cara Mudah Membangun Website
Interaktif Menggunakan Content Management Sustem Joomla Edisi Revisi. Jakarta:
PT. Elex Media Komputindo.
Zakariyya, Ibnu. 2017. Memahami Konsep MVC (Model-View-Controller).
https://jagongoding.com/blog/post/memahami-konsep-mvc, diakses 19 Desember
2019
107
LAMPIRAN-LAMPIRAN
REST Client
application/config/restapi.php
<?php defined('BASEPATH') OR exit('No direct script access allowed');
$config['api'] = 'http://localhost/stok_restserver/index.php/';
application/controllers/Barang.php
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Barang extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->config('restapi');//link rest api
$this->load->library('curl');
$this->load->helper('images');
$this->API = $this->config->item('api');
if (!$this->sess()) {
redirect('login');
}
}
function sess() {
//ambil session
return $this->session->userdata('admin');
}
108
public function index() {//menampilkan halaman index
$data['session'] = $this->sess();
$data['barang'] = json_decode($this->curl->simple_get($this->API.'barang'));
$this->render->title = 'Stok Barang | Beranda';
$this->render->data('barang/index', $data);
}
public function post() {//menampilkan halaman insert
$data['session'] = $this->sess();
if (isset($_POST['do_post'])) {
$this->do_post();
}
$this->render->title = 'Stok Barang | Tambah Baru';
$this->render->data('barang/tambah_baru', $data);
}
function do_post() {//proses insert
$sess = $this->sess();
$this->load->library('form_validation');
$this->form_validation->set_rules('namabarang', 'Nama Barang',
'trim|required|min_length[1]|max_length[150]', array('required' => 'Nama Barang
tidak boleh kosong.'));
109
$this->form_validation->set_rules('deskripsi', 'Deskripsi',
'trim|required|min_length[3]|max_length[150]', array('required' => 'Deskripsi tidak
boleh kosong.'));
$this->form_validation->set_rules('harga', 'Harga',
'trim|required|numeric|min_length[3]|max_length[7]', array('required' => 'Harga
tidak boleh kosong.'));
if ($this->form_validation->run() == true) {
$namabarang = $this->input->post('namabarang');
$deskripsi = $this->input->post('deskripsi');
$harga = $this->input->post('harga');
$param = array(
'namabarang' => $namabarang,
'deskripsi' => $deskripsi,
'harga' => $harga,
'stok' => 0,
'created_by' => $sess['id'],
'created_at' => time(),
'updated_by' => $sess['id'],
'updated_at' => time()
);
$post = $this->curl->simple_post($this->API.'barang', $param,
array(CURLOPT_BUFFERSIZE => 10));
if ($post) {
$this->session->set_flashdata('msg', "$namabarang berhasil didaftarkan.");
redirect('barang');
110
}
} else {
$this->form_validation->set_error_delimiters('', '<br />');
$this->session->set_flashdata('msg_g', validation_errors());
redirect($_SERVER['HTTP_REFERER']);
}
}
public function edit($id) {//menampilkan halaman edit
$data['session'] = $this->sess();
$arrayId = array('id'=> $id);//$this->uri->segment(3)
$data['barang'] = json_decode($this->curl->simple_get($this->API.'barang',
$arrayId));
if (isset($_POST['do_edit'])) {
$this->do_edit();
}
$this->render->title = 'Stok Barang | Edit Barang';
$this->render->data('barang/edit', $data);
}
function do_edit() {//proses edit
$sess = $this->sess();
$this->load->library('form_validation');
111
$this->form_validation->set_rules('namabarang', 'Nama Barang',
'trim|required|min_length[1]|max_length[150]', array('required' => 'Nama Barang
tidak boleh kosong.'));
$this->form_validation->set_rules('deskripsi','Deskripsi',
'trim|required|min_length[3]|max_length[150]', array('required' => 'Deskripsi tidak
boleh kosong.'));
$this->form_validation->set_rules('harga','Harga',
'trim|required|numeric|min_length[3]|max_length[150]', array('required' => 'Harga
tidak boleh kosong.'));
if ($this->form_validation->run() == true) {
$id = $this->input->post('id');
$namabarang = $this->input->post('namabarang');
$deskripsi = $this->input->post('deskripsi');
$harga = $this->input->post('harga');
$param = array(
'id' => $id,
'namabarang' => $namabarang,
'deskripsi' => $deskripsi,
'harga' => $harga,
'updated_by' => $sess['id'],
'updated_at' => time()
);
$update = $this->curl->simple_put($this->API.'barang', $param,
array(CURLOPT_BUFFERSIZE => 10));
112
if ($update) {
$this->session->set_flashdata('msg', "Perubahan berhasil disimpan.");
redirect('barang');
}
} else {
$this->form_validation->set_error_delimiters('', '<br />');
$this->session->set_flashdata('msg_g', validation_errors());
redirect($_SERVER['HTTP_REFERER']);
}
}
function do_delete($id) {//proses delete
$delete = $this->curl->simple_delete($this->API.'barang', array('id'=> $id),
array(CURLOPT_BUFFERSIZE => 10));
if ($delete) {
$this->session->set_flashdata('msg', "Barang berhasil dihapus.");
redirect('barang');
} else {
$this->session->set_flashdata('msg_g', "Barang gagal dihapus.");
redirect('barang');
}
}
function cetak_report() {//cetak pdf
$this->load->library('pdf');
113
$date = date("d F Y", time());
$pdf = new FPDF('l','mm','A4');
// membuat halaman baru
$pdf->AddPage();
// setting jenis font yang akan digunakan
$pdf->SetFont('Arial','B',16);
// mencetak string
$pdf->Cell(190,7,'Report Stok Barang ' . $date ,0,1,'C');
// Memberikan space ke bawah agar tidak terlalu rapat
$pdf->Cell(10,7,'',0,1);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(10,6,'No.',1,0);
$pdf->Cell(78,6,'Nama Barang',1,0);
$pdf->Cell(27,6,'Stok Saat Ini',1,0);
$pdf->Cell(25,6,'Harga',1,1);
$pdf->SetFont('Arial','',10);
$result = json_decode($this->curl->simple_get($this->API.'barang'));
foreach ($result as $key => $res){
$pdf->Cell(10,6,$key+1,1,0);
$pdf->Cell(78,6,$res->namabarang,1,0);
$pdf->Cell(27,6,$res->stok,1,0);
$pdf->Cell(25,6,$res->harga,1,1);
}
$pdf->Output();
}
114
}
application/views/barang/edit.php
<div class="content-wrapper">
<section class="content-header">
<h1>
Stok Barang
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-dashboard"></i>
Dashboard</a></li>
<li><a href="<?= base_url('barang') ?>">Stok Barang</a></li>
<li class="active">Edit Barang</li>
</ol>
</section>
<section class="content">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">Edit Barang</h3>
</div>
<div class="box-body">
<?php if($this->session->flashdata('msg_g')) : ?>
<div class="alert alert-danger alert-dismissible">
<tombol type="tombol" class="close" data-dismiss="alert" aria-
hidden="true">×</tombol>
115
<h5><i class="icon fa fa-ban"></i> <?= $this->session->flashdata('msg_g')
?></h5>
</div>
<?php elseif($this->session->flashdata('msg')) : ?>
<div class="alert alert-success alert-dismissible">
<tombol type="tombol" class="close" data-dismiss="alert" aria-
hidden="true">×</tombol>
<h5><i class="icon fa fa-check"></i> <?= $this->session->flashdata('msg')
?></h5>
</div>
<?php endif; ?>
<form role="form" class="form-horizontal" enctype="multipart/form-data"
action="<?= base_url('barang/do_edit') ?>" method="POST">
<?php foreach ($barang as $key => $res) : ?>
<div class="row">
<div class="col-xs-1">
<label>ID Barang</label>
<input type="text" class="form-control" id="id" name="id"
value="<?= $res->id ?>" readonly>
</div>
<div class="col-xs-9">
<label>Nama Barang</label>
<input type="text" class="form-control" id="namabarang"
name="namabarang" value="<?= $res->namabarang ?>" autofocus>
</div>
116
<div class="col-xs-2">
<label>Harga</label>
<input type="number" class="form-control" id="harga" name="harga"
min="1" value="<?= $res->harga ?>">
</div>
<div class="col-xs-12">
<label>Deskripsi</label>
<input type="text" class="form-control" id="deskripsi"
name="deskripsi" value="<?= $res->deskripsi ?>">
</div>
</div>
<div class="row">
<div class="col-xs-2">
<tombol type="submit" name="do_edit" class="btn btn-primary btn-
block btn-flat">Simpan</tombol>
</div>
</div>
<?php endforeach; ?>
</form>
</div>
<div class="box-footer">
<a class="btn btn-primary btn-sm" href="<?= base_url('barang') ?>">
<i class="fa fa-arrow-left" aria-hidden="true"></i> Kembali</a>
</div>
</div>
117
</section>
</div>
application/views/barang/index.php
<div class="content-wrapper">
<section class="content-header">
<h1>
Stok Barang
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-dashboard"></i>
Dashboard</a></li>
<li class="active">Master Barang</li>
</ol>
</section>
<section class="content">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">Master Barang</h3>
</div>
<div class="box-body">
<?php if($this->session->flashdata('msg_g')) : ?>
<div class="alert alert-danger alert-dismissible">
<tombol type="tombol" class="close" data-dismiss="alert" aria-
hidden="true">×</tombol>
<h5><i class="icon fa fa-ban"></i> <?= $this->session->flashdata('msg_g')
?></h5>
</div>
118
<?php elseif($this->session->flashdata('msg')) : ?>
<div class="alert alert-success alert-dismissible">
<tombol type="tombol" class="close" data-dismiss="alert" aria-
hidden="true">×</tombol>
<h5><i class="icon fa fa-check"></i> <?= $this->session->flashdata('msg')
?></h5>
</div>
<?php endif; ?>
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th class="col-xs-1">No.</th>
<th class="col-xs-5">Nama Barang (Stok)</th>
<th class="col-xs-1">Harga</th>
<th class="col-xs-3">Deskripsi</th>
<th class="col-xs-2"></th>
</tr>
</thead>
<tbody>
<?php
if ($barang) :
foreach ($barang as $key => $res) :
?>
<tr>
<td><?= $key+1 ?></td>
<td><?= $res->namabarang ?> (<b><?= $res->stok ?></b>)</td>
<td><?= $res->harga ?></td>
<td><?= $res->deskripsi ?></td>
119
<td><a class="btn btn-primary btn-sm" href="<?=
base_url('barang/edit/' . $res->id) ?>">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
Edit</a>
<a class="btn btn-danger btn-sm deletetombol" data-url="<?=
base_url('barang/do_delete/' . $res->id) ?>">
<i class="fa fa-trash-o" aria-hidden="true"></i> Delete</a>
</th>
</tr>
<?php
endforeach;
endif;
?>
</tbody>
</table>
</div>
<div class="box-footer">
<a class="btn btn-primary btn-sm" href="<?= base_url('barang/post/') ?>">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i> Tambah Baru</a>
<a class="btn btn-primary btn-sm" href="<?= base_url('barang/cetak_report/')
?>">
<i class="fa fa-file-pdf-o" aria-hidden="true"></i> Cetak Report</a>
</div>
</div>
</section>
</div>
application/views/barang/tambah_baru.php
<div class="content-wrapper">
120
<section class="content-header">
<h1>
Stok Barang
</h1>
<ol class="breadcrumb">
<li><a href="<?= base_url() ?>"><i class="fa fa-dashboard"></i>
Dashboard</a></li>
<li><a href="<?= base_url('barang') ?>">Stok Barang</a></li>
<li class="active">Tambah Baru</li>
</ol>
</section>
<section class="content">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">Tambah Baru</h3>
</div>
<div class="box-body">
<?php if($this->session->flashdata('msg_g')) : ?>
<div class="alert alert-danger alert-dismissible">
<tombol type="tombol" class="close" data-dismiss="alert" aria-
hidden="true">×</tombol>
<h5><i class="icon fa fa-ban"></i> <?= $this->session->flashdata('msg_g')
?></h5>
</div>
<?php elseif($this->session->flashdata('msg')) : ?>
<div class="alert alert-success alert-dismissible">
<tombol type="tombol" class="close" data-dismiss="alert" aria-
hidden="true">×</tombol>
121
<h5><i class="icon fa fa-check"></i> <?= $this->session->flashdata('msg')
?></h5>
</div>
<?php endif; ?>
<form role="form" class="form-horizontal" enctype="multipart/form-data"
action="<?= base_url('barang/do_post') ?>" method="POST">
<div class="row">
<div class="col-xs-10">
<label>Nama Barang</label>
<input type="text" class="form-control" id="namabarang"
name="namabarang" autofocus>
</div>
<div class="col-xs-2">
<label>Harga</label>
<input type="number" class="form-control" id="harga" name="harga"
min="1">
</div>
<div class="col-xs-12">
<label>Deskripsi</label>
<input type="text" class="form-control" id="deskripsi"
name="deskripsi">
</div>
</div>
<div class="row">
<div class="col-xs-2">
<tombol type="submit" name="do_post" class="btn btn-primary btn-
block btn-flat">Daftarkan</tombol>
</div>
</div>
122
</form>
</div>
<div class="box-footer">
<a class="btn btn-primary btn-sm" href="<?= base_url('barang_masuk') ?>">
<i class="fa fa-arrow-left" aria-hidden="true"></i> Kembali</a>
</div>
</div>
</section>
</div>
123
REST Server
application/controllers/Barang.php
<?php defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';
use Restserver\Libraries\REST_Controller;
class Barang extends REST_Controller {
function __construct($config = 'rest') {
parent::__construct($config);
$this->load->database();
$this->load->model('m_barang');
}
function index_get() {//select, simple_get
$id = $this->get('id');
if ($id == '') {
$result = $this->m_barang->get_all();
} else {
$result = $this->m_barang->get($id);
}
if (!empty($result)) {
$this->set_response($result, REST_Controller::HTTP_OK);
// OK (200) being the HTTP response code
} else {
$this->set_response([
124
'status' => FALSE,
'message' => 'Tidak ada data yang cocok'
], REST_Controller::HTTP_NOT_FOUND);
// NOT_FOUND (404) being the HTTP response code
}
}
function index_put() {//update, simple_put
$id = $this->put('id');
$param = array(
'namabarang' => $this->put('namabarang'),
'harga' => $this->put('harga'),
'deskripsi' => $this->put('deskripsi'),
'updated_by' => $this->put('updated_by'),
'updated_at' => $this->put('updated_at')
);
if ($result = $this->m_barang->update($id, $param)) {
$this->set_response($result, REST_Controller::HTTP_OK);
} else {
$this->set_response([
'status' => FALSE,
'message' => 'Penyuntingan gagal'
], REST_Controller::HTTP_NOT_FOUND);
}
}
function index_post() {//insert, simple_post
125
$param = array(
'namabarang' => $this->post('namabarang'),
'harga' => $this->post('harga'),
'stok' => $this->post('stok'),
'deskripsi' => $this->post('deskripsi'),
'created_by' => $this->post('created_by'),
'created_at' => $this->post('created_at'),
'updated_by' => $this->post('updated_by'),
'updated_at' => $this->post('updated_at')
);
if ($result = $this->m_barang->post($param)) {
$this->set_response($result, REST_Controller::HTTP_OK);
} else {
$this->set_response([
'status' => FALSE,
'message' => 'Penambahan data gagal'
], REST_Controller::HTTP_NOT_FOUND);
}
}
function index_delete() {//delete, simple_delete
$id = $this->delete('id');
if ($result = $this->m_barang->delete($id)) {
$this->set_response($result, REST_Controller::HTTP_OK);
} else {
$this->set_response([
'status' => FALSE,
126
'message' => 'Penghapusan data gagal'
], REST_Controller::HTTP_NOT_FOUND);
}
}
}
application/models/M_barang.php
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class M_barang extends CI_Model {
function __construct() {
parent::__construct();
}
function get_all() {
return $this->db->get('barang')->result_array();
}
function get($id) {
return $this->db->get_where('barang', array('id' => $id))->result_array();
}
function post($param) {
$this->db->trans_start();
$this->db->insert('barang', $param);
127
// $id = $this->db->insert_id();
$this->db->trans_complete();
if ($this->db->trans_status() == FALSE) {
return FALSE;
} else {
return TRUE;
}
}
function update($id, $param) {
$this->db->trans_start();
$this->db->where('id', $id);
$this->db->update('barang', $param);
$this->db->trans_complete();
if ($this->db->trans_status() == FALSE) {
return FALSE;
} else {
return TRUE;
}
}
function delete($id) {
$this->db->trans_start();
$this->db->where('id', $id);
$this->db->delete('barang');
$this->db->trans_complete();
if ($this->db->trans_status() == FALSE) {
128
return FALSE;
} else {
return TRUE;
}
}
}
129
DAFTAR RIWAYAT HIDUP
Biodata Mahasiswa
Nama Lengkap: Virdi Gunawan
Tempat Tanggal Lahir: Simpang Sender, 5 September 1997
Jenis Kelamin: Laki–laki
Alamat Lengkap: Jln. Tegal Sari 3 no. 34 RT 3 RW 11 Kel. Sukasari Kec. Tangerang
Agama: Islam
Nomor Telepon: 0821-2250-4953
E-Mail: [email protected]
Pendidikan Formal
2003 – 2009: SD Negeri 12 Tangerang
2009 – 2012: SMP Negeri 16 Tangerang
2012 – 2015: SMK Negeri 1 Tangerang
2015 – Sekarang: Universitas Buddhi Dharma, Peminatan Jaringan
Tangerang, 20 Desember 2019
Virdi Gunawan
20151000083