perancangan dan implementasi infrastruktur sistem penerimaan … · 2021. 1. 11. · 1.7.3. bab iii...

60
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

Upload: others

Post on 19-Jun-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 2: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 3: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

iii

[Halaman ini sengaja dikosongkan]

Page 4: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 5: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 6: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 7: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

vii

DAFTAR PUSTAKA 40

BIODATA PENULIS I 42

Page 8: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

viii

[Halaman ini sengaja dikosongkan]

Page 9: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

ix

DAFTAR GAMBAR

Gambar 4.1. Desain Arsitektur Server…....................................15

Page 10: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

x

[Halaman ini sengaja dikosongkan]

Page 11: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

xi

DAFTAR TABEL

Tabel 4.1 Spesifikasi Tiap Server................................................16

Tabel 4.2 Spesifikasi Software Server.........................................18

Tabel 6.1 Hasil Evaluasi Pengujian.............................................35

Page 12: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

xii

[Halaman ini sengaja dikosongkan]

Page 13: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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)

Page 14: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

xiv

[Halaman ini sengaja dikosongkan]

Page 15: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 16: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

xvi

[Halaman ini sengaja dikosongkan]

Page 17: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 18: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

xviii

[Halaman ini sengaja dikosongkan]

Page 19: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 20: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 21: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 22: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 23: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

5

1.7.7. Bab VII Kesimpulan dan Saran Bab ini berisi kesimpulan dan saran yang didapat

dari proses pelaksanaan kerja praktik.

Page 24: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

6

[Halaman ini sengaja dikosongkan]

Page 25: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 26: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

8

[Halaman ini sengaja dikosongkan]

Page 27: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 28: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 29: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 30: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 31: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

13

[Halaman ini sengaja dikosongkan]

Page 32: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 33: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 34: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 35: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 36: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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-

Page 37: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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-

Page 38: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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-

Page 39: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 40: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

22

[Halaman ini sengaja dikosongkan]

Page 41: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

##

Page 42: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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;

##

Page 43: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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$ {

##

Page 44: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 45: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 46: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 47: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 48: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 49: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 50: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 51: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

33

[Halaman ini sengaja dikosongkan]

Page 52: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 53: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 54: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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

Page 55: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

37

[Halaman ini sengaja dikosongkan]

Page 56: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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.

Page 57: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

39

[Halaman ini sengaja dikosongkan]

Page 58: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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].

Page 59: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

41

[Halaman ini sengaja dikosongkan]

Page 60: Perancangan dan Implementasi Infrastruktur Sistem Penerimaan … · 2021. 1. 11. · 1.7.3. Bab III Tinjauan Pustaka 4 1.7.4. Bab IV Analisis dan Perancangan Infrastruktur Sistem

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)