Pembimbing
M. KHARIS RIDHO A., S.Kom
KHOLIFUDDIN TRI OVIM E. N., S.Kom
Tuban
2021
LAPORAN TUGAS AKHIR
Pembimbing
M. KHARIS RIDHO A., S.Kom
KHOLIFUDDIN TRI OVIM E. N., S.Kom
Tuban
2021
ii
iii
LEMBAR PERSETUJUAN
1. ………………………….. ( )
2. ………………………….. ( )
iv
LEMBAR PENGESAHAN
Disahkan oleh:
Kepala MA Islamiyah Senori, Ketua Prodistik MA
Islamiyah Senori,
v
PERYATAAN KEASLIAN
Saya menyatakan dengan sesungguhnya bahwa Tugas Akhir
ini adalah asli hasil karya saya sendiri, dan sepanjang pengetahuan
saya tidak terdapat karya atau pendapat yang pernah ditulis atau
dipublikasikan oleh orang lain, kecuali yang secara tertulis disebutkan
sumbernya dalam naskah dan dalam daftar pustaka.
Tuban, ..................................
Yang menyatakan,
vi
KATA PENGANTAR
Syukur alhamdulillah penulis sampaikan keharibaan Illahi
Rabbi atas segala kenikmatan dan kekuatanNya, sehingga penulis
dapat menyelesaikan Laporan Tugas Akhir ini. Sholawat serta salam
penulis sampaikan kepada baginda Rasulullah Muhammad SAW yang
telah menuntun kita dari zaman kebodohan menuju zaman yang penuh
dengan ilmu yang menerangi kehidupan manusia yaitu agama Islam.
Keberhasilan penulisan tidak lepas dari bantuan beberapa pihak,
untuk itu penulis mengucapkan terima kasih yang sebesar- besarnya
kepada :
1. Pengurus Yayasan Madrasah Islamiyah Sunnatunnur Senori
Tuban
2. Bapak Drs. Gatot Utuh Santoso selaku Kepala MA Islamiyah
Senori Tuban
3. Ibu Dr. Ismaini Zain, M. Si, Ketua Program Kerjasama
PRODISTIK-ITS
4. Bapak Narjul Kirom, S. Pd. I, selaku Ketua Program Pendidikan
Terapan Bidang TIK (PRODISTIK) MA Islamiyah Senori Tuban.
5. Bapak M. Kharis Ridho A., S. Kom., selaku pembimbing utama,
6. Bapak Kholifuddin Tri Ovim Edi N, S. Kom., selaku pembimbing
pendamping,
vii
7. Bapak/Ibu Guru dan keluarga besar MA Islamiyah Senori Tuban
yang telah membimbing saya selama di MA Islamiyah Senori
tercinta.
8. Rekan-rekan mahasiswa Prodistik.
9. Semua pihak yang tidak dapat penulis sebutkan satu-persatu,
terima kasih atas bantuannya.
Penulis menyadari akan keterbatasan dan kekurangan dalam
penyusunan laporan tugas akhir ini. Oleh karena itu, segala saran dan
kritik yang membangun dari pembaca sangat penulis harapkan.
Akhirnya semoga tugas akhir ini membawa manfaat bagi semuapihak,
umumnya bagi pembaca dan khusunya bagi penulis.
Tuban, .........................
Penulis
viii
DAFTAR ISI
HALAMAN JUDUL ................................................................. ii
LEMBAR PERSETUJUAN ..................................................... iv
LEMBAR PENGESAHAN ....................................................... v
PERNYATAAN KEASLIAN .................................................. vi
KATA PENGANTAR............................................................. vii
DAFTAR ISI ............................................................................ ix
DAFTAR GAMBAR ............................................................... xi
DAFTAR TABEL .................................................................. xiv
BAB I PENDAHULUAN ......................................................... 1
1.1 Latar Belakang ............................................................. 1
1.2 Rumusan Masalah ........................................................ 2
1.3 Batasan Masalah ........................................................... 3
1.4 Tujuan Penulisan .......................................................... 3
1.5 Manfaat Penulisan ........................................................ 3
xi
DAFTAR GAMBAR
Gambar 2.0 Simbol-simbol dalam flowchart ........................... 23
Gambar 2.1 Tampilan Utama Control Panel XAMPP ............. 24
Gambar 2.2 Tampilan Utama VS Code ................................... 26
Gambar 2.3 Tampilan Explorer VS Code ................................ 28
Gambar 2.4 Tampilan Extensions VS Code ............................. 29
Gambar 3.0 Diagram Dashboard ............................................ 37
Gambar 3.1 Diagram tabel guru ............................................. 38
Gambar 3.2 Diagram menambahkan data guru ...................... 39
Gambar 3.3 Diagram memunculkan detail data guru.............. 41
Gambar 3.4 Diagram menghapus data guru ........................... 42
Gambar 3.5 Diagram mengubah data guru ............................. 44
Gambar 3.6 Diagram index/halaman tabel siswa .................... 46
Gambar 3.7 Diagram menambahkan data siswa ..................... 47
Gambar 3.8 Diagram memunculkan detail data siswa ............ 48
Gambar 3.9 Diagram menghapus data siswa .......................... 50
Gambar 3.10 Diagram mengubah data siswa .......................... 51
Gambar 3.11 Diagram cari data guru ..................................... 54
Gambar 3.12 Diagram cari data siswa .................................... 55
Gambar 4.0 Buat data baru ..................................................... 96
Gambar 4.1 Kirim data baru ................................................... 96
xii
Gambar 4.2 Detail data ........................................................... 97
Gambar 4.3 Hapus data .......................................................... 98
Gambar 4.4 Hapus data .......................................................... 98
Gambar 4.5 Ubah data ............................................................ 99
Gambar 4.6 Ubah data .......................................................... 100
xiii
DAFTAR TABEL
xiv
BAB I
PENDAHULUAN
1. 1. Latar Belakang Masalah
Di zaman modern ini, pengetahuan di bidang
komputer sangatlah dibutuhkan, salah satunya adalah
dalam bidang pengembangan situs web, hingga kini telah
banyak bahasa pemrograman berbasis open source untuk
menunjang proses pengembangan web agar lebih
berkembang dan lebih banyak memberikan manfaat.
Salah satu manfaat web developing yang kini kian
populer adalah untuk membuat aplikasi pengolahan
statistik kependudukan di sekolah berbasis web. Secara
garis besar aplikasi database kependudukan di sekolah
adalah aplikasi yang digunakan untuk mengelola data para
penduduk sekolah yang ada di dalam database.
Dalam pembuatan aplikasi pengolahan data
statistik kependudukan di sekolah berbasis web ini,
penyusun menggunakan beberapa perangkat lunak utama
yaitu XAMPP dan Visual Studio Code serta perangkat
lunak pendukung yaitu Git dan Composer.
Keunggulan dari aplikasi berbasis web adalah bisa
diakses dengan berbagai perangkat (dekstop maupun
mobile), berbeda dengan aplikasi berbasis dekstop yang
1
2
1. 2. Rumusan Masalah
1) Bagaimana cara membuat database kependudukan di
sekolah berbasis web?
2) Bagaimana langkah-langkah membuat aplikasi
pengolahan database kependudukan di sekolah berbasis
web?
3
1. 3. Batasan Masalah
Berdasarkan rumusan masalah yang telah disebutkan
di atas, maka penulisan ini dibatasi pada:
1) Pengerjaan hanya berlaku untuk pembuatan aplikasi
pengolahan database kependudukan di sekolah berbasis
web dan tidak mencakup pembuatan nilai harian maupun
nilai rapot siswa.
2) Pengerjaan tidak mencantumkan rancangan dari aplikasi
pengolahan database berbasis web.
1. 4. Tujuan Penulisan
Adapun penulisan ini bertujuan untuk :
1) Untuk mengetahui cara membuat database
kependudukan di sekolah berbasis web mengunakan
MySQL.
2) Untuk mengetahui cara membuat aplikasi pengolahan
database kependudukan di sekolah berbasis web
mengunakan XAMPP dan Visual Studio Code.
1. 5. Manfaat Penulisan
Adapun manfaat penulisan sebagai berikut ;
1) Bagi Penulis
4
2) Bagi Pembaca
Dapat di jadikan referensi serta menambah
pengetahuan bagi pembaca mengenai cara membuat
aplikasi pengelola database kependudukan di sekolah
menggunakan XAMPP dan Visual Studio Code.
3) Bagi Sekolah
Dapat menambah minat baca serta menambah
khazanah pengetahuan mengenai bagaimana suatu
aplikasi pengelola database kependudukan di sekolah
menggunakan XAMPP dan Visual Studio Code.
BAB II
LANDASAN TEORI
2. 1. Web programming
Web Programming1 terdiri dari dua suku kata yaitu web
dan programming. Programming dapat diartikan sebagai
proses, cara, atau pembuatan suatu program. Sedangkan web
dapat diartikan sebagai jaringan komputer yang terdiri dari
kumpulan situs internet yang menawarkan teks, grafik, suara
dan sumber daya animasi melalui protokol transfer hypertext
(HTTP).
1
Diolah dari pelbagai sumber
5
6
2. 2. HTML
HTML2 adalah singkatan dari Hypertext Markup
Language. HTML memungkinkan seorang user untuk
membuat dan menyusun bagian paragraf, heading, link atau
tautan, dan blockquote untuk halaman web dan aplikasi.
2. 3. CSS
CSS3 adalah singkatan dari Cascading Style Sheets.
Jika diterjemahkan ke bahasa Indonesia secara harfiah, CSS
berarti “lembar penataan menurun”. Namun secarakonteks,
Cascading Style Sheets adalah kumpulan perintah yang
digunakan untuk menjelaskan tampilan sebuah halaman
situs web dalam mark-up language. Mark-up language atau
bahasa markah adalah bahasa pemrograman yang biasanya
digunakan membuat website.
2
https://www.hostinger.co.id/tutorial/apa-itu-html/ [Diakses: 14 September 2020].
3
https://www.dewaweb.com/blog/belajar-css-pengertian-peran-fungsi-dan-macamnya/
[Diakses: 14 September 2020].
7
2. 4. Javascript
Javascript4 adalah bahasa pemrograman script yang
cara kerjanya hanya memerlukan interpreter sehingga tidak
membutuhkan compiler agar bisa menjalankannya. Di dalam
bahasa pemrograman Javascript, tidak terdapat proses
kompilasi lebih dahulu supaya program bisa Anda jalankan.
Selain itu, aplikasi yang dibutuhkan adalah web browser dan
text editor saja. Fitur-fitur yang dimiliki Javascript yaitu
berorientasi objek, client-side, high-level programming, dan
loosely tiped.
2. 5. PHP
PHP5 adalah bahasa pemrograman yang sering
disisipkan ke dalam HTML. PHP sendiri berasal dari kata
Hypertext Preprocessor. Sejarah PHP pada awalnya
merupakan kependekan dari Personal Home Page (Situs
personal). PHP pertama kali dibuat oleh Rasmus Lerdorf
pada tahun 1995. Pada waktu itu PHP masih bernama Form
Interpreted (FI), yang wujudnya berupa sekumpulan skrip
yang digunakan untuk mengolah data formulir dari web.
4
https://idcloudhost.com/mengenal-apa-itu-js-javascript-definisi-keunggulan-dan-cara-
kerjanya/ [Diakses: 14 September 2020].
5
https://www.niagahoster.co.id/blog/pengertian-php/ [Diakses: 14 September 2020]
8
2. 6. Apache
Apache6 adalah software web server yang gratis dan
bersifat open source. Server ini telah menjadi platform bagi
46% website di seluruh dunia. Nama resminya adalah
Apache HTTP Server, dan software ini dikelola dan
dikembangkan oleh Apache Software Foundation.
6
https://www.hostinger.co.id/tutorial/apa-itu-apache/ [Diakses: 14 September 2020]
9
2. 7. Framework
Framework7 adalah sebuah kerangka program yang
digunakan untuk membantu developer untuk
mengembangkan kode secara konsisten.
Dengan adanya framework developer bisa mengurangi
jumlah bug pada aplikasi yang dibuat. Karena, fungsi dan
variabel yang sudah tersedia di dalam komponen framework.
Contoh dari framework sendiri sepertiCodeIgniter, Laravel,
Bootstrap, Symfony, Material, danlain-lain.
2. 8. CodeIgniter
CodeIgniter adalah framework PHP untukmembangun
aplikasi berbasis web yang bersifat open source dan
menggunakan metode MVC (Model, View, Controller).
CodeIgniter bersifat free alias tidak berbayar jika
menggunakannya. Framework CodeIgniter dibuat dengan
tujuan sama seperti framework lainnya yaitu utuk
memudahkan developer atau programmer dalam
membangun sebuah aplikasi berbasis web tanpa harus
membuatnya dari awal.
7
https://www.niagahoster.co.id/blog/apa-itu-framework [Diakses: 14 September 2020].
10
2. 9. Bootstrap
Bootstrap merupakan sebuah library framework CSS
yang telah dibuat khusus uintuk mengembangkan front end
sebuah website. Bootstrap juga dikenal sebagai salah satu
framework CSS, HTML, Javascript yang begitu populer di
kalangan website developer atau pengembang website. Apa
itu bootstrap dan fungsinya? yang pasti bootstrap digunakan
untuk mengembangkan website agar lebih responsive dan
rapi.
2. 10.Composer
Composer adalah tools dependency manager pada PHP,
Dependency (ketergantungan) sendiri diartikan ketika project
PHP yang kamu kerjakan masih membutuhkan atau
memerlukan library dari luar. Composer berfungsi sebagai
penghubung antara project PHP kamu dengan library dari
luar. Dependency manager memungkinkan kamu untuk
membuat dan mengambil library pada project PHP kamu
pada library packagist.org. Packagist.org sendiri
merupakan situs yang menyediakan banyak library yang
bisa kamu gunakan. Dengan bantuan tools tersebut kamu
bisa terhubung pada situs packagist.org dan kamu dapat
mengambil dan mengunggah library.
11
2. 11.Git
Git adalah salah satu sistem pengontrol versi (Version
Control System) pada proyek perangkat lunak yang
diciptakan oleh Linus Torvalds.
Pengontrol versi bertugas mencatat setiap perubahan
pada file proyek yang dikerjakan oleh banyak orang maupun
sendiri.
Git dikenal juga dengan distributed revision control
(VCS terdistribusi), artinya penyimpanan database Git tidak
hanya berada dalam satu tempat saja.
Semua orang yang terlibat dalam pengkodean proyek
akan menyimpan database Git, sehingga akan memudahkan
dalam mengelola proyek baik online maupun offline.
Dalam Git terdapat “merge” untuk menyebut aktifitas
penggabungan kode.
Sedangkan pada VCS (Version Control System) yang
terpusat, database disimpan dalam satu tempat dan setiap
perubahan disimpan ke sana.
VCS terpusat memiliki beberapa kekurangan:
• Semua tim harus terkoneksi ke jaringan untuk
mengakses source-code;
12
2. 12.Database
Basis data (database)8 dapat didefinisikan atau diartikan
sebagai kumpulan data yang disimpan secara sistematis di
dalam komputer yang dapat diolah atau dimanipulasi
menggunakan perangkat lunak (software) program atau
aplikasi untuk menghasilkan informasi. Pendefinisian basis
data meliputi spesifikasi berupa tipedata, struktur data dan
juga batasan-batasan pada data yang kemudian disimpan.
Basis data merupakan aspek yang sangat penting dalam
sistem informasi karena berfungsi sebagai gudang
penyimpanan data untuk diolah lebih lanjut. Basis data
menjadi penting karena dapat mengorganisasi data,
menghidari duplikasi data, menghindari hubungan antar data
yang tidak jelas dan juga update yang rumit.
8
https://www.termasmedia.com/lainnya/software/69-pengertian-database.html[Diakses:
14 November 2020]
13
2. 13.DBMS
DBMS adalah kepanjangan dari Database Management
System, yakni yang didefinisikan sebagai sistem atau
software yang dirancang secara khusus sebagai sistem
pengelolaan database dan dapat juga digunakan untuk
menjalankan proses operasi data yang diminta oleh banyak
pengguna sekaligus.
DBMS juga merupakan sistem perantara yang
digunakan sebagai penghubung yang baik antara pengguna
dengan database. Intinya, dengan adanya sistem DBMS ini,
proses pengelolaan pada sistem komputer, terlebih lagi yang
digunakan dalam skala besar oleh banyak pengguna, tetap
mampu berjalan dengan baik, tanpa adanya masalah atau
kekacauan sedikit pun.
1. Tipe Numerik
Tipe data numerik digunakan untuk menyimpan data
numeric (angka). Ciri utama data numeric adalah suatu data
yang memungkinkan untuk dikenai operasi aritmatika
seperti pertambahan, pengurangan, perkalian dan
pembagian. Berikut ini tipe field (kolom) di MySQL yang
termasuk ke dalam kelompok tipe numerik:
a. TINYINT
▪ Penggunaan : digunakan untuk menyimpan data bilangan
bulat positif dan negatif.
▪ Jangkauan : -128 s/d 127
▪ Ukuran : 1 byte (8 bit)
b. SMALLINT
▪ Penggunaan : digunakan untuk menyimpan data bilangan
bulat positif dan negatif..
▪ Jangkauan : -32.768 s/d 32.767
▪ Ukuran : 2 byte (16 bit).
c. MEDIUMINT
▪ Penggunaan : digunakan untuk menyimpan data bilangan
bulat positif dan negatif.
▪ Jangkauan : -8.388.608 s/d 8.388.607
▪ Ukuran : 3 byte (24 bit)
15
d. INT
▪ Penggunaan : digunakan untuk menyimpan data bilangan
bulat positif dan negatif.
▪ Jangkauan : -2.147.483.648 s/d 2.147.483.647
▪ Ukuran : 4 byte (32 bit).
e. BIGINT
▪ Penggunaan : digunakan untuk menyimpan data bilangan
bulat positif dan negatif.
▪ Jangkauan : ± 9,22 x 1018
▪ Ukuran : 8 byte (64 bit)
f. FLOAT
▪ Penggunaan : digunakan untuk menyimpan data bilangan
pecahan positif dan negatif presisi tunggal.
▪ Jangkauan : 3.402823466E+38 s/d -1.175494351E-38, 0,
dan 1.175494351E-38 s/d 3.402823466E+38.
▪ Ukuran : 4 byte (32 bit).
g. DOUBLE / REAL
▪ Penggunaan : digunakan untuk menyimpan data bilangan
pecahan positif dan negatif presisi ganda.
16
h. DECIMAL / NUMERIC
▪ Penggunaan : digunakan untuk menyimpan data bilangan
pecahan positif dan negatif.
▪ Jangkauan : -1.79…E+308 s/d -2.22…E-308, 0, dan
2.22…E-308 s/d 1.79…E+308.
▪ Ukuran : 8 byte (64 bit).
b. TIME
▪ Penggunaan : digunakan untuk menyimpan data waktu.
▪ Jangkauan : -838:59:59 s/d +838:59:59 (HH:MM:SS)
17
▪ Ukuran : 3 byte.
c. DATETIME
▪ Penggunaan : digunakan untuk menyimpan data tanggal
dan waktu.
▪ Jangkauan : ‘1000-01-01 00:00:00’ s/d ‘9999-12-31
23:59:59’Ukuran : 8 byte.
d. YEAR
▪ Penggunaan : digunakan untuk menyimpan data tahun dari
tanggal.
▪ Jangkauan : 1900 s/d 2155
▪ Ukuran : 1 byte.
f. VARCHAR
▪ Penggunaan : digunakan untuk menyimpan data string
ukuran dinamis.
▪ Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535
(versi 5.0.3)
g. TINYTEXT
▪ Penggunaan : digunakan untuk menyimpan data text.
▪ Jangkauan : 0 s/d 255 karakter (versi 4.1), 0 s/d 65.535
(versi 5.0.3)
h. TEXT
▪ Penggunaan : digunakan untuk menyimpan data text.
▪ Jangkauan : 0 s/d 65.535 (216 – 1) karakter
i. MEDIUMTEXT
▪ Penggunaan : digunakan untuk menyimpan data text.
▪ Jangkauan : 0 s/d 224 – 1 karakter
j. LONGTEXT
▪ Penggunaan : digunakan untuk menyimpan data text.
▪ Jangkauan : 0 s/d 232 – 1 karakter
19
l. TINYBLOB
▪ Penggunaan : digunakan untuk menyimpan data biner.
▪ Jangkauan : 255 byte
m. BLOB
▪ Penggunaan : digunakan untuk menyimpan data biner.
▪ Jangkauan : 216 – 1 byte
n. MEDIUMBLOB
▪ Penggunaan : digunakan untuk menyimpan data biner.
▪ Jangkauan : 224 – 1 byte
20
o. LONGBLOB
▪ Penggunaan : digunakan untuk menyimpan data biner.
▪ Jangkauan : 232 – 1 byte
q. SET
▪ Pengunaan : Combination (himpunan data).
▪ Jangkauan : Sampai dengan 255 string anggota
2. 15.MySQL
MySQL adalah DBMS yang open source dengan dua
bentuk lisensi, yaitu Free Software (perangkat lunak bebas)
dan Shareware (perangkat lunak berpemilik yang
penggunaannya terbatas). Jadi MySQL adalah database
server yang gratis dengan lisensi GNU General Public
21
2. 16.Flow chart
Flowchart adalah adalah suatu bagan dengan simbol-
simbol tertentu yang menggambarkan urutan proses secara
mendetail dan hubungan antara suatu proses (instruksi)
dengan proses lainnya dalam suatu program.
Dalam perancangan flowchart sebenarnya tidak ada
rumus atau patokan yang bersifat mutlak (pasti). Hal ini
didasari oleh flowchart (bagan alir) adalah sebuah
22
2. 17.XAMPP
XAMPP merupakan solusi bagi Anda yang ingin
menjalankan web server dan database di localhost komputer.
Itu artinya kalau Anda sudah punya website online,
XAMPP membantu Anda membuat versi offline dari
24
BAB III
PERANCANGAN
3. 1. Menyiapkan Alat & Bahan
1) Alat
Alat yang penulis gunakan dalam pengerjaan Tugas
Akhir ini adalah laptop dengan perincian sistem sebagai
berikut:
Tipe Processor : Intel®
Processor Onboard : Intel Core i3-6006U
(2.OGHz. Cache 3MB)
Memori Standar : 4GB DDR4 SDRAM
Tipe Video Grafis : Intel HD Graphics
Ukuran Display : 14.0” HD LED
Teknologi Layar : LED Backlight
Tipe Hard Drive : 1TB Serial SATA
Tipe Optical Drive : DVD-RW
TipeInput Device : Touchpad
OS Provided : Windows 10 64-Bit
Ports Provided : 2x USB 3.0
1x USB Type C
1x Combo audio jack
1x HDMI
Multimedia : Webcam Microphone/Speaker
32
2) Bahan
Bahan yang penulis gunakan dalam pengerjaan
Tugas Akhir ini antara lain:
a. Kertas
b. Bolpoin
c. Laptop
3. 3. Timeline pengerjaan
3. 4. Database
1. Tabel database siswa
Auto
Nama Tak
Jenis Value Indeks Increment
Kolom ternilai
(AI)
Id INT 11 PRIMARY TRUE
nisn VARCHAR 15
nis VARCHAR 20
tem_lahir VARCHAR 50
tan_lahir VARCHAR 15
created_at DATETIME
tan_lahir VARCHAR 15
tmt Date
'kepsek','guru','tu','waka_pe
jabatan Enum
nd','waka_sis','waka_hum'
36
'Bahasa Indonesia','Bahasa
Inggris','Matematika
Wajib','Ekonomi','Sejarah','g
eografi','Sosiologi','PKn','Sas
tra
Inggris','Fisika','Kimia','Biolo
gi','Matematika
Peminatan','sbk','PDK','Antr
mapel Enum TRUE
opologi','Pendidikan
Jasmani','Faroid','Tafsir','Ris
alatul Mahidl','Fathul
Qorib','Tarbiyah','Nahwu','I''
rob','SKUA','Ushul
Fiqih','Adab
Islamiyah','Mustholahul
Hadis'
pendidika 'sma_sederajat','ponpes','pe
Enum
n rguruan_tinggi'
lembaga VARCHAR 255
3. 5. Home/Dashboard
4. Jika data tidak ada, set flash message error dan tampilkan
lagi ke halaman tabel siswa dan tampilkan pesan error;
5. Jika data ada, ambil data dari database berdasarkan id
dan kirim ke Controller Siswa;
6. Controller Siswa akan mengirim data ke method “delete”
untuk dihapus dan meng-set flash message bahwa data
berhasil dihapus;
7. Controller Siswa akan menampilkan halaman tabel siswa
dan menampilkan flash message.
Langkah-langkah Pembuatan
========================================
========================================
<div class="card-header">
<span>Data jumlah siswa selama 10
tahun</span>
<div class="card-tools">
<button type="button" class="btn
btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
<div class="chart">
<canvas id="10-years-student"
style="max-width: 100%; display: block; width: 401px;"
width="400" height="250" class="chartjs-render-
monitor"></canvas>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- gender -->
<div class="col-md-6">
<div class="card card-primary">
<div class="card-header">
<span>Data siswa 10 tahun terakhir
berdasarkan jenis kelamin</span>
<div class="card-tools">
<button type="button" class="btn
btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
<div class="chart">
<canvas id="10-years-student-
gender" style="max-width: 100%; display: block; width:
401px;" height="250" class="chartjs-render-
monitor"></canvas>
</div>
</div>
<!-- /.card-body -->
60
</div>
</div>
</div>
<div class="row">
<!-- major -->
<div class="col-md-5">
<div class="card card-success">
<div class="card-header">
<span>Data siswa berdasarkan
jurusan</span>
<div class="card-tools">
<button type="button" class="btn
btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
<div class="chart">
<canvas id="major" style="max-
width: 100%; display: block; width: 401px;"
width="401" height="250" class="chartjs-render-
monitor"></canvas>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
<!-- ekskul -->
<div class="col-md-7">
<div class="card card-info">
<div class="card-header">
<span>Ekstrakurikuler</span>
<div class="card-tools">
<button type="button" class="btn
btn-tool" data-card-widget="collapse">
<i class="fas fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
61
<div class="chart">
<canvas id="ekskul" style="max-
width: 100%; display: block; width: 401px;"
width="401" height="250" class="chartjs-render-
monitor"></canvas>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
</div>
<!-- Default box -->
<div class="card">
<div class="card-body">
<div class="container-fluid">
Lorem, ipsum dolor sit amet consectetur
adipisicing elit. Quidem reiciendis eius quas fuga non
modi, veniam molestiae, aut mollitia nam sapiente
officiis ipsum, magni voluptatibus illum odit vero
omnis? Sapiente?
</div>
</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
</section>
========================================
protected $allowedFields = [
'nama', 'tem_lahir', 'tan_lahir', 'j_kelamin',
'domisili', 'alamat', 'tmt', 'jabatan', 'mapel',
'pendidikan', 'lembaga', 'pic'
];
========================================
2. Buat method
$data = array(
'nama' => $this->request->getVar('nama'),
'tem_lahir' => $this->request-
>getVar('tem_lahir'),
'tan_lahir' => $this->request-
>getVar('tan_lahir'),
'j_kelamin' => $this->request-
>getVar('j_kelamin'),
'domisili' => $this->request->getVar('domisili'),
'alamat' => $this->request-
>getVar('alamat'),
'tmt' => $this->request->getVar('tmt'),
'jabatan' => $this->request-
>getVar('jabatan'),
'mapel' => $this->request->getVar('mapel'),
'pendidikan' => $this-
>request->getVar('pendidikan'),
'lembaga' => $this->request->getVar('lembaga'),
'pic' => $namaFileGuru
);
$this->GuruModel->insert($data);
========================================
3. Buat view
</div>
</div>
<div class="form-group">
<label for="tmt">Tanggal mulai
tugas</label>
<div class="input-group flex-nowrap">
<input type="date" class="form-
control" placeholder="Tanggal mulai tugas" id="tmt"
name="tmt" autocomplete="off" value="<?= old('tmt');
?>">
</div>
</div>
<div class="form-row form-group">
<div class="col">
<label for="jabatan">Jabatan</label>
<select id="jabatan" class="form-
control" name="jabatan">
...
</select>
</div>
<div class="col">
<label for="mapel">Mapel</label>
<select id="mapel" class="form-
control" name="mapel">
...
</select>
</div>
</div>
<div class="form-group">
<label for="jeniskelamin">Jenis
Kelamin</label>
<select id="jeniskelamin" class="form-
control" name="j_kelamin">
...
</select>
</div>
<div class="form-group">
<label
for="pendidikan">Pendidikan</label>
<select id="pendidikan" class="form-
control" name="pendidikan">
...
</select>
65
</div>
<div class="form-group">
<label for="lembaga">Lembaga</label>
<textarea class="form-control"
id="lembaga" rows="2" name="lembaga"><?=
old('lembaga'); ?></textarea>
</div>
<div class="form-group">
<label for="domisili">Domisili</label>
<textarea class="form-control"
id="domisili" rows="2" name="domisili"><?=
old('domisili'); ?></textarea>
</div>
<div class="form-group">
<label for="alamat">Alamat</label>
<textarea class="form-control"
id="alamat" rows="3" name="alamat"><?= old('alamat');
?></textarea>
</div>
<div class="form-group">
<label for="pic">Tambah foto
guru</label>
<input type="file" class="form-control-
file <?= ($valid->hasError('pic')) ? 'is-invalid' :
''; ?>" id="pic" name="pic" onchange="previewFoto()">
<div id="validationServer03Feedback"
class="invalid-feedback">
<?= $valid->getError('pic'); ?>
</div>
</div>
<div class="form-group col d-inline-block
">
<img src="/img/default.png" class="img-
thumbnail img-preview">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-
secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-
success" name="submit">Submit</button>
</div>
</form>
66
========================================
2. Melihat data
1. Buat model
========================================
2. Buat method
========================================
3. Buat view
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">Tempat,
tanggal lahir</label>
</div>
<div class="col-md-8 col-6">
<?= "{$guru['tem_lahir']},
{$guru['tan_lahir']}"; ?>
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">Jenis
Kelamin</label>
</div>
<div class="col-md-8 col-6">
<?= $guru['j_kelamin'] == "laki - laki"
? 'Laki - laki' : 'Perempuan' ?>
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-
weight:bold;">Alamat</label>
</div>
<div class="col-md-8 col-6">
<?= $guru['alamat']; ?>
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-
weight:bold;">Pendidikan</label>
</div>
<div class="col-md-8 col-6">
...
</div>
69
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-
weight:bold;">Lembaga</label>
</div>
<div class="col-md-8 col-6">
<?= $guru['lembaga']; ?>
</div>
</div>
========================================
3. Menghapus data
1. Buat model
========================================
2. Buat method
70
$this->GuruModel->delete($id);
session()->setFlashdata('pesan', 'Data berhasil
dihapus!');
return redirect()->to('/guru');
}
========================================
4. Mengubah data
1. Buat model
========================================
2. Buat method
$data = array(
'nama' => $this->request->getVar('nama'),
'tem_lahir' => $this->request-
>getVar('tem_lahir'),
'tan_lahir' => $this->request-
>getVar('tan_lahir'),
'j_kelamin' => $this->request-
>getVar('j_kelamin'),
'domisili' => $this->request->getVar('domisili'),
'alamat' => $this->request-
>getVar('alamat'),
'tmt' => $this->request->getVar('tmt'),
'jabatan' => $this->request-
>getVar('jabatan'),
'mapel' => $this->request->getVar('mapel'),
'pendidikan' => $this-
>request->getVar('pendidikan'),
'lembaga' => $this->request->getVar('lembaga'),
'pic' => $namaFileGuru
);
$this->GuruModel->update($data);
========================================
3. Buat view
========================================
protected $allowedFields = [
'nama', 'nisn', 'nis', 'tem_lahir',
'tan_lahir', 'kelas', 'jurusan', 'j_kelamin',
'alamat', 'pic'
];
========================================
2. Buat method
76
$data = array(
'nama' => $this->request->getVar('nama'),
'nisn' => $this->request->getVar('nisn'),
'nis' => $this->request->getVar('nis'),
'tem_lahir' => $this->request-
>getVar('tem_lahir'),
'tan_lahir' => $this->request-
>getVar('tan_lahir'),
'kelas' => $this->request->getVar('kelas'),
'jurusan' => $this->request->getVar('jurusan'),
'j_kelamin' => $this->request-
>getVar('j_kelamin'),
'alamat' => $this->request->getVar('alamat'),
'pic' => $namaFileSiswa
);
$this->siswaModel->insert($data);
========================================
3. Buat view
<div class="col">
<label for="nis">NIS</label>
<input type="text" class="form-control <?=
($valid->hasError('nis')) ? 'is-invalid' : ''; ?>"
placeholder="NIS" name="nis" value="<?= old('nis');
?>">
<div id="validationServer03Feedback"
class="invalid-feedback">
<?= $valid->getError('nis'); ?>
</div>
</div>
</div>
78
<div class="col">
<label for="jurusan">Jurusan</label>
<select id="jurusan" class="form-control"
name="jurusan">
…
</select>
79
</div>
</div>
<div class="form-group">
<label for="jeniskelamin">Jenis
Kelamin</label>
<select id="jeniskelamin" class="form-control"
name="j_kelamin">
…
</select>
</div>
<div class="form-group">
<label for="alamat">Alamat</label>
<textarea class="form-control" id="alamat"
rows="3" name="alamat"><?= old('alamat');
?></textarea>
</div>
<div class="form-group">
<label for="pic">Tambah foto siswa</label>
<input type="file" class="form-control-file
<?= ($valid->hasError('pic')) ? 'is-invalid' : '';
?>" id="pic" name="pic" onchange="previewFoto()">
<div id="validationServer03Feedback"
class="invalid-feedback">
<?= $valid->getError('pic'); ?>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-
secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success"
name="submit">Submit</button>
</div>
</form>
========================================
6. Melihat data
1. Buat model
========================================
2. Buat method
3. Buat view
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">NISN</label>
</div>
<div class="col-md-8 col-6">
<?= $siswa['nisn']; ?>
82
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">NIS</label>
</div>
<div class="col-md-8 col-6">
<?= $siswa['nis']; ?>
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">Tempat, tanggal
lahir</label>
</div>
<div class="col-md-8 col-6">
<?= "{$siswa['tem_lahir']},
{$siswa['tan_lahir']}"; ?>
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">Kelas /
Jurusan</label>
</div>
<div class="col-md-8 col-6">
<?= "{$siswa['kelas']} / {$siswa['jurusan']}"; ?>
</div>
</div>
83
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">Jenis
Kelamin</label>
</div>
<div class="col-md-8 col-6">
<?= $siswa['j_kelamin']; ?>
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md col-5">
<label style="font-weight:bold;">Alamat</label>
</div>
<div class="col-md-8 col-6">
<?= $siswa['alamat']; ?>
</div>
</div>
========================================
7. Menghapus data
1. Buat model
========================================
2. Buat method
========================================
8. Mengubah data
85
1. Buat model
========================================
2. Buat method
$data = array(
'nama' => $this->request->getVar('nama'),
'nisn' => $this->request->getVar('nisn'),
'nis' => $this->request->getVar('nis'),
'tem_lahir' => $this->request-
>getVar('tem_lahir'),
'tan_lahir' => $this->request-
>getVar('tan_lahir'),
'kelas' => $this->request->getVar('kelas'),
'jurusan' => $this->request->getVar('jurusan'),
'j_kelamin' => $this->request-
>getVar('j_kelamin'),
'alamat' => $this->request->getVar('alamat'),
'pic' => $namaFileSiswa
);
86
$this->siswaModel->update($data);
========================================
3. Buat view
<div id="validationServer03Feedback"
class="invalid-feedback">
<?= $valid->getError('nisn'); ?>
</div>
</div>
<div class="col">
<label for="nis">NIS</label>
<input type="text" class="form-control <?=
($valid->hasError('nis')) ? 'is-invalid' : ''; ?>"
placeholder="NIS" name="nis" value="<?= old('nis');
?>">
<div id="validationServer03Feedback"
class="invalid-feedback">
<?= $valid->getError('nis'); ?>
</div>
</div>
</div>
</div>
</div>
<div class="col">
<label for="jurusan">Jurusan</label>
<select id="jurusan" class="form-control"
name="jurusan">
…
</select>
</div>
</div>
<div class="form-group">
<label for="jeniskelamin">Jenis
Kelamin</label>
<select id="jeniskelamin" class="form-control"
name="j_kelamin">
…
</select>
</div>
<div class="form-group">
<label for="alamat">Alamat</label>
<textarea class="form-control" id="alamat"
rows="3" name="alamat"><?= old('alamat');
?></textarea>
89
</div>
<div class="form-group">
<label for="pic">Tambah foto siswa</label>
<input type="file" class="form-control-file
<?= ($valid->hasError('pic')) ? 'is-invalid' : '';
?>" id="pic" name="pic" onchange="previewFoto()">
<div id="validationServer03Feedback"
class="invalid-feedback">
<?= $valid->getError('pic'); ?>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-
secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success"
name="submit">Submit</button>
</div>
</form>
========================================
========================================
2. Buat view
<div class="card">
<div class="card-body">
<div class="card-title mb-4">
<div class="d-flex justify-content-start">
<!-- profile pic -->
<div class="image-container">
91
<img src="/assets/img/profile.jpg"
id="imgProfile" style="width: 150px; height: 150px"
class="img-thumbnail" />
</div>
<!-- user data -->
<div class="userData ml-3 mr-4">
<h2 class="d-block mb-3" style="font-size:
1.5rem; font-weight: bold">Khoirul</h2>
<h6 class="d-block">Student at MA Islamiyah
Senori</h6>
<h6 class="d-block">Junior Web Developer</h6>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<ul class="nav nav-tabs mb-4" id="myTab"
role="tablist">
<li class="nav-item">
<a class="nav-link active" id="basicInfo-tab"
data-toggle="tab" href="#basicInfo" role="tab"
aria-controls="basicInfo" aria-
selected="true">Basic Info</a>
</li>
<li class="nav-item">
<a class="nav-link" id="connectedServices-
tab" data-toggle="tab" href="#connectedServices"
role="tab" aria-controls="connectedServices" aria-
selected="false">Connected Services</a>
</li>
</ul>
<div class="row">
<div class="col-sm-3 col-md-3 col">
<label style="font-weight:bold;">National
Student ID</label>
</div>
<div class="col-md-8 col-6">
0035494776
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md-3 col-5">
<label style="font-weight:bold;">Local
Student ID</label>
</div>
<div class="col-md-8 col-6">
131235230022180004
</div>
</div>
<hr />
93
<div class="row">
<div class="col-sm-3 col-md-3 col-5">
<label style="font-weight:bold;">Birth
Date</label>
</div>
<div class="col-md-8 col-6">
January 10, 2003
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md-3 col-5">
<label style="font-weight:bold;">Place of
Birth</label>
</div>
<div class="col-md-8 col-6">
Sidoarjo
</div>
</div>
<hr />
<div class="row">
<div class="col-sm-3 col-md-3 col-5">
<label style="font-
weight:bold;">Sex</label>
</div>
<div class="col-md-8 col-6">
Man
</div>
</div>
<hr />
<div class="row">
94
</div>
<div class="tab-pane fade"
id="connectedServices" role="tabpanel" aria-
labelledby="ConnectedServices-tab">
<ul class="list-group mt-1 mb-4">
<li class="list-group-item align-middle">
See my profile on <br>
<a href="<?= $facebook; ?>" target="blank">
<i class="fab fa-fw fa-facebook fa-lg"></i>
Facebook
</a>
</li>
<li class="list-group-item align-middle">
Contact me at <br>
<a href="<?= $whatsapp; ?>" target="blank">
<i class="fab fa-fw fa-whatsapp fa-lg"></i>
WhatsApp
</a>
</li>
<li class="list-group-item align-middle">
See my project and repository on <br>
<a href="<?= $github; ?>" target="blank">
<i class="fab fa-fw fa-github fa-lg"></i>
Github
</a>
95
</li>
<li class="list-group-item align-middle">
Follow me on <br>
<a href="<?= $instagram; ?>"
target="blank">
<i class="fab fa-fw fa-instagram fa-
lg"></i> Instagram
</a>
</li>
<li class="list-group-item align-middle">
Call me <br>
<i class="fas fa-fw fa-phone"></i> <?=
$phone; ?>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
Pengujian aplikasi
b. Masukkan data
c. Klik “submit”
c. Ganti data
d. Klik “ubah”
100
5. 2. Kritik
5. 3. Saran
Meskipun penulis menginginkan kesempurnaan
dalam penyusunan makalah atau tugas akhir ini, akan
tetapi pada kenyataanya masih banyak kekurangan
yang perlu penulis perbaiki. Oleh karena itu, kritik dan
saran yang membangun dari para pembaca sangat
101
102
DAFTAR PUSTAKA
https://www.youtube.com/channel/UCkXmLjEr95LVtG
uIm3l2dPg
BIODATA PENULIS
Nama : A. MUSAFIR KHOIRUL FATTAH
Tuban, .............................
Penulis,
FOTO
A. MUSAFIR KHOIRUL F.
NIS: 131235230022180004