perancangan dan implementasi infrastruktur sistem penerimaan … · 2021. 1. 11. · 1.7.3. bab iii...
TRANSCRIPT
i
KERJA PRAKTIK – IF184801
Perancangan dan Implementasi Infrastruktur Sistem
Penerimaan Peserta Didik Baru (PPDB) SMA Negeri Jawa
Timur
Dinas Pendidikan Pemerintah Provinsi Jawa Timur
Jl. Gentengkali No.33, Genteng, Kec. Genteng, Kota Surabaya, Jawa Timur 60275 Periode: 4 Maret 2020 - 1 Juli 2020
Oleh:
Adzra Zaky Haura 05111740000037 Aurelia Fairuz Rachmadi 05111740000141
Pembimbing Jurusan Ary Mazharuddin S.Kom., M.Comp.Sc. Pembimbing Lapangan Yudhi Purwananto, S.Kom., M.Kom.
DEPARTEMEN TEKNIK INFORMATIKA Fakultas Teknologi Elektro dan Informatika Cerdas Institut Teknologi Sepuluh Nopember Surabaya 2020
ii
Oleh:
Adzra Zaky Haura 05111740000037
Aurelia Fairuz Rachmadi 05111740000141
Pembimbing Jurusan Ary Mazharuddin S.Kom., M.Comp.Sc.
Pembimbing Lapangan Yudhi Purwananto, S.Kom., M.Kom.
DEPARTEMEN TEKNIK INFORMATIKA Fakultas Teknologi Elektro dan Informatika Cerdas Institut Teknologi Sepuluh Nopember Surabaya 2020
KERJA PRAKTIK – IF184801
Perancangan dan Implementasi Infrastruktur Sistem
Penerimaan Peserta Didik Baru (PPDB) SMA Negeri Jawa
Timur
Dinas Pendidikan Pemerintah Provinsi Jawa Timur
Jl. Gentengkali No.33, Genteng, Kec. Genteng, Kota Surabaya, Jawa
Timur 60275 Periode: 4 Maret 2020 - 1 Juli 2020
iii
[Halaman ini sengaja dikosongkan]
iv
DAFTAR ISI
DAFTAR ISI iv
DAFTAR GAMBAR ix
DAFTAR TABEL xi
LEMBAR PENGESAHAN xiii
KATA PENGANTAR xvii
BAB I PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Tujuan 2
1.3. Manfaat 2
1.4. Rumusan Masalah 2
1.5. Lokasi dan Waktu Kerja Praktik 2
1.6. Metodologi Kerja Praktik 3
1.6.1. Perumusan Masalah 3
1.6.2. Studi Literatur 3
1.6.3. Analisis dan Perancangan Sistem 3
1.6.4. Implementasi Sistem 3
1.6.5. Pengujian dan Evaluasi 4
1.6.6. Kesimpulan dan Saran 4
1.7. Sistematika Laporan 4
1.7.1. Bab I Pendahuluan 4
1.7.2. Bab II Profil Perusahaan 4
v
1.7.3. Bab III Tinjauan Pustaka 4
1.7.4. Bab IV Analisis dan Perancangan Infrastruktur
Sistem 4
1.7.5. Bab V Implementasi Sistem 4
1.7.6. Bab VI Pengujian dan Evaluasi 4
1.7.7. Bab VII Kesimpulan dan Saran 5
BAB II PROFIL PERUSAHAAN 7
2.1. Profil Dinas Pendidikan Provinsi Jawa Timur 7
2.2. Lokasi 7
BAB III TINJAUAN PUSTAKA 9
3.1. Pemrograman Web 9
3.2. HTML 9
3.3. Javascript 10
3.4. CodeIgniter 10
3.5. MariaDB 10
3.6. Web Server (Nginx) 11
3.7. HAProxy 11
BAB IV ANALISIS DAN PERANCANGAN
INFRASTRUKTUR SISTEM 14
4.1. Analisis Sistem 14
4.1.1. Definisi Umum Aplikasi 14
4.2. Perancangan Infrastruktur Sistem 14
4.2.1. Desain Sistem 14
BAB V IMPLEMENTASI SISTEM 23
vi
5.1. Implementasi Load Balancing PHP 23
5.1.1. Konfigurasi NGINX 23
Kode Sumber 5.1. Konfigurasi pada nginx.conf 24
Kode Sumber 5.2. Konfigurasi website ppdbjatim.net di
NGINX 26
5.1.2. Konfigurasi php-fpm 26
Kode Sumber 5.3. Konfigurasi php-fpm ppdbjatim.net 27
5.2. Implementasi Load Balancing Database Hasil
Ranking 28
5.2.1. Konfigurasi HAProxy 28
Kode Sumber 5.4. Konfigurasi HAProxy 29
5.2.2. Konfigurasi Database Hasil Ranking 29
Kode Sumber 5.5. Konfigurasi 50-client.cnf pada server
database hasil ranking 29
Kode Sumber 5.6. Konfigurasi my.cnf pada server database
utama 32
BAB VI PENGUJIAN DAN EVALUASI 34
6.1. Tujuan Pengujian 34
6.2. Kriteria Pengujian 34
6.3. Skenario Pengujian 35
6.4. Evaluasi Pengujian 35
BAB VII KESIMPULAN DAN SARAN 38
7.1. Kesimpulan 38
7.2. Saran 38
vii
DAFTAR PUSTAKA 40
BIODATA PENULIS I 42
viii
[Halaman ini sengaja dikosongkan]
ix
DAFTAR GAMBAR
Gambar 4.1. Desain Arsitektur Server…....................................15
x
[Halaman ini sengaja dikosongkan]
xi
DAFTAR TABEL
Tabel 4.1 Spesifikasi Tiap Server................................................16
Tabel 4.2 Spesifikasi Software Server.........................................18
Tabel 6.1 Hasil Evaluasi Pengujian.............................................35
xii
[Halaman ini sengaja dikosongkan]
xiii
LEMBAR PENGESAHAN KERJA PRAKTIK
Perancangan dan Implementasi Infrastruktur Sistem
Penerimaan Peserta Didik Baru (PPDB) SMA Negeri
Jawa Timur
Oleh:
Adzra Zaky Haura
Aurelia Fairuz Rachmadi
05111740000037
05111740000141
Disetujui oleh Pembimbing Kerja Praktik:
1. Ary Mazharuddin S.Kom.,
M.Comp.Sc.
NIP. 198106202005011003
(Pembimbing Departemen)
2. Yudhi Purwananto, S.Kom.,
M.Kom. NIP. 197007141997031002
(Pembimbing Lapangan)
xiv
[Halaman ini sengaja dikosongkan]
xv
Perancangan dan Implementasi Infrastruktur Sistem
Penerimaan Peserta Didik Baru (PPDB) SMA Negeri
Jawa Timur
Nama Mahasiswa : Adzra Zaky Haura
NRP : 05111740000037
Nama Mahasiswa : Aurelia Fairuz Rachmadi
NRP : 05111740000141
Departemen : Teknik Informatika FTEIC-ITS
Pembimbing Departemen : Ary Mazharuddin S.Kom.,
M.Comp.Sc. Pembimbing Lapangan : Yudhi Purwananto, S.Kom.,M.Kom.
ABSTRAK
Dinas Pendidikan Pemerintah Provinsi Jawa Timur
merupakan instansi pemerintah yang bertanggung jawab atas
semua hal yang berkaitan dengan pendidikan menengah atas di
Jawa Timur. Produk yang kami kerjakan saat melakukan Kerja
Praktik adalah PPDB, yaitu sistem penerimaan siswa baru yang
membantu calon peserta didik baru untuk memilih SMA tujuan.
Pengguna utama aplikasi yang kami kembangkan adalah calon
peserta didik baru yang akan mendaftar ke SMA negeri di provinsi
Jawa Timur.
Aplikasi dibuat dengan menggunakan framework
CodeIgniter dan memiliki beberapa fitur, beberapa diantaranya
adalah pendaftaran peserta didik, informasi pelaksanaan PPDB,
dan perangkingan. Kami diminta untuk menyiapkan arsitektur
yang tepat agar sistem dapat diakses oleh masyarakat dengan
kendala seminimal mungkin. Sistem ini menggunakan metode load
balancing dengan bantuan webserver NGINX, HAProxy, dan
database MariaDB.
Kata Kunci : Website, PPDB, NGINX, HAProxy
xvi
[Halaman ini sengaja dikosongkan]
xvii
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Allah SWT atas
penyertaan dan karunia-Nya sehingga penulis dapat menyelesaikan
salah satu kewajiban penulis sebagai mahasiswa Departemen
Teknik Informatika ITS yaitu Kerja Praktik yang berjudul:
Perancangan dan Implementasi Infrastruktur Sistem Penerimaan
Peserta Didik Baru (PPDB) SMA Negeri Jawa Timur.
Penulis menyadari bahwa masih banyak kekurangan baik
dalam melaksanakan kerja praktik maupun penyusunan buku
laporan kerja praktik ini. Namun penulis berharap buku laporan ini
dapat menambah wawasan pembaca dan dapat menjadi sumber
referensi.
Melalui buku laporan ini penulis juga ingin menyampaikan
rasa terima kasih kepada orang-orang yang telah membantu
menyusun laporan kerja praktik baik secara langsung maupun tidak
langsung antara lain:
1. Kedua orang tua penulis.
2. Bapak Ary Mazharuddin S.Kom., M.Comp.Sc. selaku
dosen pembimbing kerja praktik sekaligus koordinator
kerja praktik.
3. Bapak Yudhi Purwananto, S.Kom., M.Kom. selaku
pembimbing lapangan selama kerja praktik berlangsung.
4. Teman-teman penulis yang senantiasa memberikan
semangat ketika penulis melaksanakan KP.
Surabaya, 26 September 2020
Adzra Zaky Haura dan Aurelia Fairuz Rachmadi
xviii
[Halaman ini sengaja dikosongkan]
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Saat ini dunia telah berkembang menjadi era
digital. Semua layanan dapat disajikan secara online
dengan adanya teknologi yang dapat dimanfaatkan untuk
mempermudah manusia dalam melakukan layanan tersebut. Bila dibandingkan dengan yang dulu, kita
membaca koran atau majalah dengan membeli fisik koran
atau majalah. Kini, untuk membaca koran kita dapat membuka website atau aplikasi penyedia koran untuk
membacanya. Website atau aplikasi tidak hanya terbatas
untuk membaca koran. Dengan website atau aplikasi manusia seakan-akan dapat melakukan segala hal dalam
satu tempat. Banyak sekali fungsi dari website atau
aplikasi, sebagai contohnya pembayaran pajak, e-banking,
pembelajaran, dan lain lain. Setiap setahun sekali suatu daerah mengadakan
penerimaan peserta didik baru (PPDB) untuk sekolah dari
SD, SMP, dan SMA. Salah satu daerah yang mengadakan penerimaan peserta didik baru adalah Provinsi Jawa
Timur. Sekolah di Jawa Timur sangatlah banyak dan jarak
pendaftar untuk menuju tempat pendaftaran berbeda-beda. Ada yang jauh ada juga yang dekat. Oleh karena itu,
dibutuhkan suatu sistem untuk mengelola penerimaan
peserta didik baru tersebut. Terutama dalam kondisi
pandemi seperti sekarang ini, semua proses yang biasanya masih dapat dilakukan secara tatap muka harus dilakukan
secara online. Penerimaan peserta didik baru yang kami
kelola adalah untuk jenjang SMA. Pada saat KP, kami diberi kesempatan untuk merancang dan
mengimplementasikan infrastruktur dari sistem
penerimaan peserta didik baru tersebut.
2
1.2. Tujuan
Tujuan kerja praktik ini adalah menyelesaikan
kewajiban nilai kerja praktik sebesar 2 sks dan membantu
dinas pendidikan pemerintah provinsi Jawa Timur untuk
menyelesaikan permasalahan penerimaan peserta didik baru dalam bentuk website.
1.3. Manfaat
Manfaat yang diperoleh dengan adanya website
penerimaan peserta didik baru antara lain adalah
mempermudah pendaftar untuk melakukan pendaftaran
dan melihat hasil pengumuman secara online. Jadi tidak perlu pergi ke tempat pendaftaran atau ke tempat hasil
pengumuman. Cukup mengakses website penerimaan
peserta didik baru Jawa Timur.
1.4. Rumusan Masalah
Rumusan masalah dari kerja praktik ini adalah
sebagai berikut: 1. Bagaimana arsitektur server yang dapat memberikan
layanan aplikasi web Penerimaan Peserta Didik Baru SMA
se-Jawa Timur tahun 2020? 2. Bagaimana rekayasa yang dapat dilakukan agar server
aplikasi web PPDB SMA se-Jawa Timur tahun 2020 dapat
menangani request dalam jumlah besar?
1.5. Lokasi dan Waktu Kerja Praktik
Sehubungan dengan adanya pandemi dan
diberlakukannya Work From Home, pengerjaan kerja praktik ini lakukan secara remote.
Adapun kerja praktik dimulai pada tanggal 4 Maret
2020 hingga 1 Juli 2020.
3
1.6. Metodologi Kerja Praktik
Metodologi dalam pembuatan buku kerja praktik meliputi :
1.6.1. Perumusan Masalah Untuk mengetahui kebutuhan dari website, kami
mengikuti rapat bersama tim developer. Sebelum rapat, Pak Yudhi dan Pak Dwi bertemu dengan client, Dinas
Pendidikan Provinsi Jawa Timur, yang memiliki
permintaan untuk pembuatan website penerimaan peserta didik baru. Pada saat rapat kami dijelaskan
bagaimana konsep dan proses penerimaan peserta didik
baru. Setelah dijelaskan, pemimpin tim developer merumuskan fitur - fitur apa saja yang akan diterapkan
pada website yang akan dibuat. Dibahas juga perkiraan
jumlah pengakses website untuk merencanakan
arsitektur yang sebaiknya digunakan. 1.6.2. Studi Literatur
Setelah mendapat gambaran bagaimana sistem
tersebut berjalan, kami diberitahu tinjauan apa saja yang akan diimplementasikan untuk membuat website
beroperasi. Tinjauan yang dipakai meliputi
CodeIgniter, NGINX, HAProxy, MariaDB, dan lain-lain. Selain itu, kami dijelaskan aturan-aturan dalam
menuliskan konfigurasi agar konfigurasi dapat mudah
dipahami oleh pengembang yang lain.
1.6.3. Analisis dan Perancangan Sistem Setelah tinjauan yang dipakai telah diberitahu,
untuk merancang sistem yang baik perlu adanya sebuah
desain arsitektur sistem. Pada website ini tim developer setuju menggunakan arsitektur desain MVC (Model -
View - Controller).
1.6.4. Implementasi Sistem Implementasi merupakan realisasi dari tahap
perancangan. Pada tahap ini kami Melakukan
deployment pada aplikasi yang telah dibuat oleh tim
developer.
4
1.6.5. Pengujian dan Evaluasi Setelah website yang telah direncanakan telah jadi,
perlu adanya evaluasi untuk menguji apakah website
sesuai dengan harapan client. Jika masih belum sesuai
atau perlu menambah fitur, rapat akan dilakukan lagi untuk mem-floor-kan fitur - fitur apa saja yang perlu
diperbaiki atau ditambah.
1.6.6. Kesimpulan dan Saran Pengujian yang dilakukan ini telah memenuhi
syarat yang diinginkan, dan berjalan dengan baik dan
lancar.
1.7. Sistematika Laporan 1.7.1. Bab I Pendahuluan
Bab ini berisi latar belakang, tujuan, manfaat,
rumusan masalah, lokasi dan waktu kerja praktik, metodologi, dan sistematika laporan.
1.7.2. Bab II Profil Perusahaan Bab ini berisi gambaran umum Dinas Pendidikan
Provinsi Jawa Timur mulai dari profil, lokasi
perusahaan.
1.7.3. Bab III Tinjauan Pustaka Bab ini berisi dasar teori dari teknologi yang
digunakan dalam menyelesaikan proyek kerja praktik.
1.7.4. Bab IV Analisis dan Perancangan Infrastruktur
Sistem Bab ini berisi mengenai tahap analisis sistem
aplikasi dalam menyelesaikan proyek kerja praktik.
1.7.5. Bab V Implementasi Sistem Bab ini berisi uraian tahap - tahap yang
dilakukan untuk proses implementasi aplikasi. 1.7.6. Bab VI Pengujian dan Evaluasi
Bab ini berisi hasil uji coba dan evaluasi dari
aplikasi yang telah dikembangkan selama pelaksanaan
kerja praktik.
5
1.7.7. Bab VII Kesimpulan dan Saran Bab ini berisi kesimpulan dan saran yang didapat
dari proses pelaksanaan kerja praktik.
6
[Halaman ini sengaja dikosongkan]
7
BAB II
PROFIL PERUSAHAAN
2.1. Profil Dinas Pendidikan Provinsi Jawa Timur
Dinas Pendidikan Provinsi Jawa Timur
merupakan instansi pemerintah yang bertanggung jawab
tentang semua hal yang berkaitan dengan pendidikan di Jawa Timur. Bertugas melaksanakan urusan pemerintahan
Provinsi Jawa Timur bidang pendidikan berdasarkan asas
otonomi dan tugas pembantuan, serta melaksanakan tugas-tugas lain berkaitan dengan pendidikan yang diberikan
oleh Gubernur sesuai dengan bidang tugasnya.
2.2. Lokasi
Jl. Gentengkali No.33, Genteng, Kec. Genteng,
Kota Surabaya, Jawa Timur 60275
8
[Halaman ini sengaja dikosongkan]
9
BAB III
TINJAUAN PUSTAKA
3.1. Pemrograman Web
Web atau World Wide Web adalah ruang
informasi yang berisi dokumen dan resource web lainnya
yang dapat diidentifikasi melalui sebuah URL (Uniform
Resource Locators, contohnya www.google.com) dan diakses ketika terkoneksi dengan internet. Halaman
penyedia dokumen di dalam web dapat disebut sebagai
website yang dapat terkoneksi satu dengan lainnya (hyperlink).
Pemrograman web adalah proses pembuatan
halaman tersebut agar bisa diakses oleh semua orang. Dalam pembuatan website, diperlukan sebuah standar
pada website agar semua orang dapat membaca informasi
dalam keadaan yang berbeda. Standar tersebut adalah
HTML (Hypertext Markup Language). Jadi pemrograman web memiliki tugas untuk menciptakan suatu halaman
sesuai standar HTML agar semua orang memiliki akses
pada informasi di dalam halaman tersebut.
3.2. HTML
Bahasa standar internasional yang digunakan
untuk membuat halaman web. HTML menggambarkan struktur dan isi semantik dari sebuah dokumen. HTML
biasanya digabungkan dengan css dan javascript. css untuk
memperindah tampilan dan javascript untuk client side scripting language.
10
3.3. Javascript
Javascript adalah sebuah bahasa tingkat tinggi
yang dinamis. Javascript memiliki banyak sekali
fungsionalitas seperti web application, backend, desktop
application, internet of things (IoT), dan lain - lain. Pada buku kerja praktik ini javascript digunakan untuk client
side scripting language yang tertanam pada HTML sebuah
website. Javascript juga memiliki banyak library yang dapat digunakan contohnya nodejs, axiosjs, bluebirdjs,
vuejs, angularjs, reactjs, animatejs, dan lain - lain.
3.4. CodeIgniter
CodeIgniter adalah sebuah web application
network yang bersifat open source yang digunakan untuk
membangun aplikasi php dinamis. CodeIgniter menjadi sebuah framework PHP dengan model MVC (Model,
View, Controller) untuk membangun website dinamis
dengan menggunakan PHP yang dapat mempercepat pengembang untuk membuat sebuah aplikasi web. Selain
ringan dan cepat, CodeIgniter juga memiliki dokumentasi
yang super lengkap disertai dengan contoh implementasi
kodenya. Dokumentasi yang lengkap inilah yang menjadi salah satu alasan kuat mengapa banyak orang memilih
CodeIgniter sebagai framework pilihannya.
3.5. MariaDB
Merupakan salah satu sistem manajemen
relasional basis data SQL yang bersifat open source.
MariaDB digunakan untuk menyimpan data - data yang dapat saling berelasi dengan data yang lain. Untuk
melakukan operasi CRUD (Create, Read, Update, Delete)
memerlukan query, lalu query tersebut dikirim ke dalam database MariaDB. Pada saat query tersebut sampai pada
11
database, database akan mengolah query tersebut dan
diterapkan sesuai perintah query.
3.6. Web Server (Nginx)
Salah satu komponen penting di dalam website
adalah web server. Web server berfungsi sebagai penerima
request dari browser yang kemudian memberikan tanggap
dengan mengirimkan halaman situs web dalam bentuk dokumen HTML. Nginx adalah web server yang cukup
populer saat ini. Selain memberikan performa yang andal,
Nginx juga mempunyai beberapa fitur canggih lain yang mudah dikonfigurasi. Jadi tentu saja akan membuat
website Anda lebih powerful dan canggih.
Nginx menawarkan penggunaan konkurensi tinggi yang dapat menangani ribuan koneksi secara bersamaan
dengan penggunaan memori yang rendah. Nginx
menggunakan proses asynchronous (mengeksekusi kode
sebelum perintah sebelumnya selesai dijalankan) daripada membuat proses baru untuk setiap eksekusi baris kode
yang ada. Tidak hanya menambahkan proses
asynchronous, Nginx juga melakukan pendekatan event-driven. Pendekatan event-driven menangani request
(permintaan atau proses) di dalam satu thread saja. Jadi
Nginx tidak membuat proses baru ketika ada permintaan
(web request), tapi ditangani di dalam satu thread (asynchronous dan pendekatan event-driven). Melalui
berbagai macam teknologi ini Nginx merevolusi
bagaimana web server bekerja dan berhasil menjadi web server paling populer sampai dengan saat ini.
3.7. HAProxy
HAProxy adalah sebuah software open source
yang menyediakan load balancer dengan ketersediaan
12
tinggi dan proxy server untuk aplikasi berbasis TCP dan
HTTP yang tersebar pada banyak server. HAProxy membantu membagi beban request database ke beberapa
server berbeda untuk menghindari terjadinya kelebihan
request pada database.
13
[Halaman ini sengaja dikosongkan]
14
BAB IV
ANALISIS DAN PERANCANGAN INFRASTRUKTUR
SISTEM
4.1. Analisis Sistem
Pada bab ini akan dijelaskan mengenai tahapan dalam
membangun infrastruktur aplikasi sistem penerimaan peserta didik baru yaitu analisis dari infrastruktur sistem
yang akan dibangun. Hal tersebut dijelaskan ke dalam dua
bagian, definisi umum aplikasi dan analisis kebutuhan.
4.1.1. Definisi Umum Aplikasi Secara umum, aplikasi PPDB merupakan sistem
penerimaan peserta didik baru berbasis website yang digunakan mendaftarkan calon peserta didik baru.
Sistem ini memiliki dua view dari dua sisi user yaitu
input calon siswa (aplikasi umum) dan admin (aplikasi kantor dan rapor).
4.2. Perancangan Infrastruktur Sistem 4.2.1. Desain Sistem
Desain arsitektur pada Sistem Informasi PPDB
SMA Jatim ini dilakukan pembagian beban untuk web
server load balancing dengan NGINX, yaitu menggunakan satu server sebagai server gateway load
balancing, 20 server sebagai web server aplikasi
(umum, kantor, dan rapor) dimana beberapa server dalam cluster ini selain berperan sebagai server worker
juga berperan sebagai server backup DB, DB Session,
DB ranking, serta DB output, satu server sebagai server
generator bukti pendaftaran dan file static, satu server sebagai database utama, dan satu server sebagai server
Development Environment. Desain server clustering
tersebut dapat dilihat pada Gambar 1.
15
Gambar 1. Desain Arsitektur Server
Gambar 1 merupakan desain arsitektur server clustering yang digunakan pada Sistem Informasi
PPDB SMA Jawa Timur 2020. Satu server (NOC) yang
terinstall HAProxy sebagai gateway load balancing bertugas membagi beban request PHP ke web aplikasi
baik aplikasi umum, aplikasi kantor, maupun aplikasi
rapor kepada 20 server worker. Selain itu server NOC ini juga bertugas sebagai load balancer DB Output yang
membagi beban request hasil ranking dari user kepada
tiga server DB output.
Pada semua 20 server worker (server Apel-01 sampai Apel-10 dan server Melon-01 sampai Melon-
10) terinstall NGINX sebagai web server. Ada beberapa
server worker yang memiliki tugas lain selain sebagai server PHP aplikasi. Server Apel-01 selain digunakan
untuk worker PHP, juga digunakan sebagai server DB
tes perankingan. Lalu pada server Melon-01 digunakan juga sebagai server backup DB utama yang di dump
setiap 6 jam, dan Melon-02 sebagai server backup DB
16
utama yang di dump setiap jam. Sedangkan pada server
Melon-06, digunakan juga sebagai server yang menyimpan DB session serta hasil dari algoritma
perankingan yang kemudian databasenya di copy ke
DB output secara berkala untuk memberi hasil perankingan secara live. Sedangkan pada Melon-08,
Melon-09, dan Melon-10 digunakan juga sebagai server
DB output yang diakses oleh user untuk melihat hasil
perankingan. Semua server worker terhubung ke satu server Data Base utama (DB baru) yang menggunakan
MariaDB.
Berikut spesifikasi tiap server dapat dilihat pada
tabel 1.
Tabel 1. Spesifikasi tiap Server
No Nama Server Fungsi Spesifikasi Server
1. NOC Web Server, Load Balancer PHP, Load Balancer DB output
6 VCPU, 16 GB RAM, 25 GB DISK
2. Generator Generator bukti pendaftaran, penyimpanan static
16 VCPU, 32GB RAM , 225GB DISK
3. Apel-01 Worker PHP, DB test algoritma perankingan
4 VCPU, 8GB RAM, 50GB DISK
4. Apel-02 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
5. Apel-03 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
6. Apel-04 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
7. Apel-05 Worker PHP 4 VCPU, 8GB RAM, 50GB
17
DISK
8. Apel-06 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
9. Apel-07 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
10. Apel-08 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
11. Apel-09 Worker PHP 4 VCPU, 8GB RAM, 50GB
DISK
12. Apel-10 Worker PHP 4 VCPU, 8GB RAM, 50GB
DISK
13. Melon-01 Worker PHP, backup DB (Menyimpan Dump setiap 6 jam)
4 VCPU, 8GB RAM, 50GB DISK
14. Melon-02 Worker PHP, backup DB (Menyimpan Dump setiap jam)
4 VCPU, 8GB RAM, 50GB DISK
15. Melon-03 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
16. Melon-04 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
17. Melon-05 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
18. Melon-06 Worker PHP, DB session, DB ranking
4 VCPU, 8GB RAM, 50GB DISK
19. Melon-07 Worker PHP 4 VCPU, 8GB RAM, 50GB DISK
20. Melon-08 Worker PHP, DB output 4 VCPU, 8GB RAM, 50GB DISK
18
21. Melon-09 Worker PHP, DB output 4 VCPU, 8GB RAM, 50GB DISK
22. Melon-10 Worker PHP, DB output 4 VCPU, 8GB RAM, 50GB DISK
23. Baru Database Utama 16 VCPU, 32GB RAM (CPU Optimized)
24. DevJatim Development environment
(Web server, PHP, DB)
1 VCPU, 2GB RAM, 50GB
DISK
Spesifikasi teknis kebutuhan software tiap server
dapat dilihat pada tabel 2.
Tabel 2. Spesifikasi Software Server
No Nama Server Fungsi Spesifikasi Software
1. NOC Web Server, Load Balancer PHP, Load
Balancer DB output
NGINX, PHP, HAProxy
2. Generator Generator bukti
pendaftaran, penyimpanan static
php7.2-fpm, NGINX
3. Apel-01 Worker PHP, DB test algoritma perankingan
NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm, MariaDB
4. Apel-02 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
5. Apel-03 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-
19
curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
6. Apel-04 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-
curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
7. Apel-05 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
8. Apel-06 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
9. Apel-07 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring,
php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
10. Apel-08 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
11. Apel-09 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
12. Apel-10 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring,
php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
13. Melon-01 Worker PHP, backup DB (Dump setiap 6 jam)
NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-
20
pspell, php7.2-xml, php7.2-fpm, MariaDB
14. Melon-02 Worker PHP, backup DB (Dump setiap jam)
NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring,
php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm, MariaDB
15. Melon-03 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
16. Melon-04 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
17. Melon-05 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring,
php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
18. Melon-06 Worker PHP, DB session, DB ranking
NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm, MariaDB
19. Melon-07 Worker PHP NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm
20. Melon-08 Worker PHP, DB output NGINX, php7.2-cli, php7.2-cgi, php7.2-
curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm, MariaDB
21. Melon-09 Worker PHP, DB output NGINX, php7.2-cli, php7.2-cgi, php7.2-
21
curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm,
MariaDB
22. Melon-10 Worker PHP, DB output NGINX, php7.2-cli, php7.2-cgi, php7.2-curl, php7.2-gd, php7.2-mbstring, php7.2-mcrypt, php7.2-mysql, php7.2-pspell, php7.2-xml, php7.2-fpm, MariaDB
23. Baru Database Utama mariaDB
24. DevJatim Development environment (Web server, PHP, DB)
php7.2-fpm, mysql
22
[Halaman ini sengaja dikosongkan]
23
BAB V
IMPLEMENTASI SISTEM
Bab ini membahas tentang implementasi dari sistem yang
kami buat. Implementasi ini akan dibagi ke dalam beberapa bagian, yaitu bagian implementasi load balancing PHP, implementasi load
balancing database, dan implementasi database utama.
5.1. Implementasi Load Balancing PHP
Implementasi load balancing php ini berfokus
pada pembagian beban request situs web pada server-
server php. Adapun implementasi load balancing php sebagai berikut :
5.1.1. Konfigurasi NGINX Pada implementasi load balancing php ini,
NGINX berlaku sebagai web server dan load balancer.
Konfigurasi NGINX untuk situs web ppdbjatim.net
akan ditampilkan pada Kode Sumber 5.1 dan 5.2 berikut:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
worker_rlimit_nofile 100000;
events {
worker_connections 20000;
}
http {
##
# Basic Settings
##
24
##
# SSL Settings
##
##
# Logging Settings
##
##
# Gzip Settings
##
##
# Virtual Host Configs
##
}
Kode Sumber 5.1. Konfigurasi pada nginx.conf
Konfigurasi lengkap nginx.conf dapat dilihat pada
Lampiran 1.
# Default server configuration
#
upstream ppdb-jatim {
least_conn; # Metode load balancing yang dipilih
##
# IP dari worker-worker php
##
}
##
# Konfigurasi cache
##
server {
listen 80;
##
25
# Seluruh servername untuk ppdbjatim.net
##
access_log off;
return 301 https://$host$request_uri;
}
server {
##
# Konfigurasi SSL
##
root /var/www/ppdb-jatim-2020/public;
index index.php index.html index.htm index.nginx-
debian.html;
##
# Seluruh servername untuk ppdbjatim.net
##
# Konfigurasi untuk keseluruhan website
location / {
#auth_basic "Mohon tunggu sejenak";
#auth_basic_user_file /etc/nginx/.htpasswd;
proxy_read_timeout 180;
try_files $uri $uri/ /index.php;
location = / {
access_log off;
}
location ~ \.(ttf|otf|gif|svg|js|css|ico)$ {
access_log off;
error_log off;
}
}
##
# Konfigurasi halaman-halaman khusus pada ppdbjatim.net
##
location ~ \.php$ {
##
26
# Konfigurasi php-fpm
##
##
# Konfigurasi cache untuk halaman-halaman
tertentu
##
}
client_max_body_size 50M;
}
Kode Sumber 5.2. Konfigurasi website ppdbjatim.net di NGINX
Konfigurasi lengkap website ppdbjatim.net di
NGINX dapat dilihat pada Lampiran 2.
5.1.2. Konfigurasi php-fpm Konfigurasi php-fpm ini dilakukan pada setiap
worker php dari situs web ppdbjatim.net. Konfigurasi
tersebut akan ditampilkan pada Kode Sumber 5.3
berikut:
; Start a new pool named 'www'.
; the variable $pool can be used in any directive and will be
replaced by the
; pool name ('www' here)
[www]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the
default user's group
; will be used.
user = www-data
27
group = www-data
; The address on which to accept FastCGI requests.
listen = 9000
; Set permissions for unix socket, if one is used. In Linux,
read/write
; permissions must be set in order to allow connections from a
web server.
listen.owner = www-data
listen.group = www-data
; Choose how the process manager will control the number of
child processes.
pm = dynamic
; This value sets the limit on the number of simultaneous
requests that will be
pm.max_children = 256
; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers -
min_spare_servers) / 2
pm.start_servers = 128
; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 8
; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 128
Kode Sumber 5.3. Konfigurasi php-fpm ppdbjatim.net
Konfigurasi lengkap website ppdbjatim.net di
NGINX dapat dilihat pada Lampiran 3.
28
5.2. Implementasi Load Balancing Database Hasil
Ranking
Implementasi load balancing database ini berfokus pada pembagian beban request hasil ranking pada tiga
server database dengan bantuan HAProxy. Adapun
implementasi load balancing database hasil ranking sebagai berikut:
5.2.1. Konfigurasi HAProxy Pada implementasi load balancing database ini, HAProxy berlaku sebagai load balancer. Konfigurasi
HAProxyuntuk situs web ppdbjatim.net akan
ditampilkan pada Kode Sumber 5.4 berikut:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
defaults
maxconn 20000
listen mysql-cluster
bind :3306
mode tcp
balance leastconn
timeout client 60s
timeout server 60s
timeout connect 60s
server melon8 10.130.104.45:3306
server melon9 10.130.104.169:3306
server melon10 10.130.97.175:3306
29
Kode Sumber 5.4. Konfigurasi HAProxy
5.2.2. Konfigurasi Database Hasil Ranking Konfigurasi database MariaDB ini berada di server
Melon-08 sampai dengan Melon-10 sebagai server
database hasil perankingan. Detail konfigurasinya akan
ditampilkan pada Kode Sumber 5.5 berikut:
#
# This group is read by the client library
# Use it for options that affect all clients, but not the server
#
[client]
# Default is Latin1, if you need UTF-8 set this (also in server
section)
default-character-set = utf8mb4
# socket location
socket = /var/run/mysqld/mysqld.sock
# Example of client certificate usage
# ssl-cert=/etc/mysql/client-cert.pem
# ssl-key=/etc/mysql/client-key.pem
#
# Allow only TLS encrypted connections
# ssl-verify-server-cert=on
# This group is *never* read by mysql client library, though
this
# /etc/mysql/mariadb.cnf.d/client.cnf file is not read by Oracle
MySQL
# client anyway.
# If you use the same .cnf file for MySQL and MariaDB,
# use it for MariaDB-only client options
[client-mariadb]
Kode Sumber 5.5. Konfigurasi 50-client.cnf pada server database hasil
ranking
30
5.3. Implementasi Database Utama
Implementasi database ini berfokus pada konfigurasi satu database agar mampu menerima banyak
request read dan write dalam satu waktu. Adapun detail
konfigurasi database utama ppdbjatim.net akan ditampilkan pada Kode Sumber 5.6 berikut:
# MariaDB database server configuration file.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
skip-name-resolve
#
# * Fine Tuning
#
#
# * MyISAM Configuration
#
# This replaces the startup script and checks MyISAM tables if
needed
# the first time they are touched. On error, make copy and try a
repair.
#
# * Query Cache Configuration
#
# Cache only tiny result sets, so we can fit more in the query
cache.
31
#
# * Logging and Replication
#
# Error logging goes to syslog due to
/etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# we do want to know about network errors and such
log_warnings = 2
#
# Enable the slow query log to see queries with especially long
duration
# The following can be used as easy to replay backup logs or for
replication.
#
# * InnoDB Configuration
#
[mariadb]
log_bin = /var/log/mysql/mysql-bin.log
server_id=1
log-basename=master1
binlog-format=mixed
binlog_do_db=jatim2020
[mysqldump]
quick
quote-names
max_allowed_packet = 64M
[mysql]
#no-auto-rehash # faster start of mysql but no tab completion
[isamchk]
key_buffer = 16M
#
# * IMPORTANT: Additional settings that can override those from
this file!
# The files must end with '.cnf', otherwise they'll be
32
ignored.
#
!include /etc/mysql/mariadb.cnf
!includedir /etc/mysql/conf.d/
Kode Sumber 5.6. Konfigurasi my.cnf pada server database utama
Konfigurasi lengkap website ppdbjatim.net di
NGINX dapat dilihat pada Lampiran 4.
33
[Halaman ini sengaja dikosongkan]
34
BAB VI
PENGUJIAN DAN EVALUASI
Bab ini menjelaskan tahap uji coba terhadap Aplikasi
Sistem Penerimaan Peserta Didik Baru (PPDB) SMA Negeri Provinsi Jawa Timur. Pengujian dilakukan untuk memastikan
fungsionalitas dan kesesuaian hasil implementasi arsitektur dengan
analisis dan perancangan arsitektur.
6.1. Tujuan Pengujian
Pengujian dilakukan terhadap Aplikasi Sistem
Penerimaan Peserta Didik Baru (PPDB) SMA Negeri Provinsi Jawa Timur guna menguji kemampuan arsitektur
dalam melayani permintaan sistem aplikasi.
6.2. Kriteria Pengujian
Penilaian atas pencapaian tujuan pengujian
didapatkan dengan memperhatikan beberapa hasil yang diharapkan berikut :
a. Kemampuan arsitektur untuk melayani tampilan
aplikasi. b. Kemampuan arsitektur untuk melayani query data
dari aplikasi ke database.
c. Kemampuan arsitektur untuk menyimpan data
yang diinput melalui aplikasi. d. Kemampuan arsitektur untuk melayani upload file
dari aplikasi.
e. Kemampuan arsitektur untuk melakukan perankingan.
f. Dapat diakses oleh 1000 users dalam waktu yang
bersamaan
35
6.3. Skenario Pengujian
Skenario pengujian dilakukan dengan melakukan
peran sebagai user yang akan menjalankan fitur-fitur.
Langkah-langkah untuk setiap kebutuhan fungsionalitas
yaitu sebagai berikut : 1. Calon Peserta Didik Baru dapat membuka aplikasi
PPDB.
2. Calon Peserta Didik Baru dapat memeriksa data diri.
3. Calon Peserta Didik dapat melakukan pendaftaran
ke SMA. 4. Calon Peserta Didik Baru dapat melihat hasil
perangkingan setelah form pendaftaran di-submit.
5. Calon Peserta Didik Baru dapat melihat jadwal,
pagu, dan informasi penting terkait PPDB.
6.4. Evaluasi Pengujian
Hasil pengujian dilakukan terhadap pengamatan
mengenai perilaku sistem aplikasi PPDB terhadap kasus skenario uji coba. Tabel 6.1 di bawah ini menjelaskan hasil
uji coba terhadap aplikasi yang telah dibuat.
Tabel 6.1. Hasil Evaluasi Pengujian
Kriteria Pengujian Hasil Pengujian
Server dapat melayani tampilan aplikasi
Terpenuhi
Server dapat menyediakan data
yang diminta aplikasi dari database
Terpenuhi
36
Server dapat menyimpan data
yang di-input user ke database
Terpenuhi
Server dapat menyimpan file
yang di-upload user
Terpenuhi
Server dapat menangani 1000
request per detik
Terpenuhi
Server mampu melakukan perangkingan secara realtime
setiap 15 menit
Terpenuhi
37
[Halaman ini sengaja dikosongkan]
38
BAB VII
KESIMPULAN DAN SARAN
7.1. Kesimpulan
Kesimpulan yang didapat setelah melakukan
perancangan arsitektur sistem aplikasi PPDB pada
kegiatan kerja praktek di Dinas Pendidikan Provinsi Jawa
Timur adalah sebagai berikut : a. Arsitektur sistem yang dibangun telah sesuai
dengan permintaan.
b. Dengan adanya aplikasi PPDB, Dinas Pendidikan Provinsi Jawa Timur dapat dengan mudah
memonitoring dan mengelola data untuk
memaksimalkan potensi SMA Negeri di Jawa Timur.
7.2. Saran
Saran untuk perancangan arsitektur sistem aplikasi PPDB adalah sebagai berikut :
a. Pada halaman-halaman bersifat publik yang sering
diakses dan memberatkan database sebaiknya dilakukan mekanisme caching.
b. Lakukan indexing pada kolom-kolom yang sering
digunakan sebagai parameter where untuk
menaikkan performa query.
39
[Halaman ini sengaja dikosongkan]
40
DAFTAR PUSTAKA
[1] J. Enterprise, HTML 5 MANUAL BOOK, Jakarta: PT Elex
Media Komputindo, 2014.
[2] D. Bartholomew, <<MariaDB vs. MySQL,>> Dostopano, 2014,2012.
[3] IDCloudHost. 2020. Mengenal Apa itu Framework
CodeIgniter | IDCloudHost. [ONLINE] Available at: https://idcloudhost.com/panduan/mengenal-apa-itu-
framework-codeigniter/. [Diakses September 2020].
[4] Niagahoster Blog. 2020. Apa Itu Nginx dan Cara Kerjanya - Niagahoster Blog. [ONLINE] Available at:
https://www.niagahoster.co.id/blog/nginx-adalah/. [Diakses
September 2020].
[5] HAProxy - The Reliable, High Performance TCP/HTTP Load Balancer. 2020. HAProxy - The Reliable, High Performance
TCP/HTTP Load Balancer. [ONLINE] Available at:
http://www.haproxy.org/. [Accessed 22 December 2020].
41
[Halaman ini sengaja dikosongkan]
42
BIODATA PENULIS I
Nama : Adzra Zaky Haura
Tempat, Tanggal Lahir : Surabaya, 18 April 1999
Jenis Kelamin : Perempuan
Telepon : +628113434999 Email : [email protected]
AKADEMIS Kuliah : Departemen Teknik Informatika –
FTEIC , ITS
Angkatan : 2017 Semester : 7 (Tujuh)
BIODATA PENULIS II Nama : Aurelia Fairuz Rachmadi
Tempat, Tanggal Lahir : Surabaya, 03 Juni 1999 Jenis Kelamin : Perempuan
Telepon : +6281358786513
Email : [email protected]
AKADEMIS
Kuliah : Departemen Teknik Informatika – FTEIC , ITS
Angkatan : 2017
Semester : 7 (Tujuh)