Pembangunan Back – End Untuk Meningkatkan Fungsionalitas
Buku Sekolah Elektronik (BSE) Tematik 8 Menggunakan
Application Programming Interface (API)
Laporan Tugas Akhir
Diajukan Untuk Memenuhi Persyaratan Guna Meraih Gelar Sarjana Informatika Universitas Muhammadiyah Malang
Ferdi Rahmansyah (201410370311257)
Rekayasa Perangkat Lunak (RPL)
PROGRAM STUDI INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2021
i
LEMBAR PERSETUJUAN
Pembangunan Back End Untuk Meningkatkan Fungsionalitas Buku
Sekolah Elektronik (BSE) Tematik 8 Menggunakan Application
Programming Interface (API)
LAPORAN TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Informatika Universitas Muhammadiyah Malang
Disusun oleh: FERDI RAHMANSYAH 201410370311257 Menyetujui, Malang, 10 Juli 2021 Pembimbing I Pembimbing II
Ilyas Nuryasin,S.Kom, M.Kom Hariyady, S.Kom., M.T.
ii
LEMBAR PENGESAHAN
Pembangunan Back End Untuk Meningkatkan Fungsionalitas Buku
Sekolah Elektronik (BSE) Tematik 8 Menggunakan Application
Programming Interface (API)
LAPORAN TUGAS AKHIR
Sebagai Persyaratan Guna Meraih Gelar Sarjana Strata 1 Informatika Universitas Muhammadiyah Malang
Disusun oleh:
FERDI RAHMANSYAH NIM. 201410370311257
Tugas Akhir ini Telah Diuji dan Dinyatakan Lulus Melalui Sidang Majelis Penguji Pada Tanggal 26 Juli 2021
Menyetujui,
Penguji I
Gita Indah Marthasari, ST., M.Kom NIP. 108.0611.0422
Penguji II
Yufis Azhar, S.Kom., M.Kom NIP. 108.1410.0544
Mengetahui, Ketua Prodi Informatika
Gita Indah Marthasari, ST., M.Kom NIP. 108.0611.0422
iii
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini:
Nama : Ferdi Rahmansyah
Tempat, Tanggal Lahir : Malang, 15 Oktober 1995 NIM : 201410370311257
Fakultas / Jurusan : Teknik / Informatika
Dengan ini saya menyatakan bahwa Tugas Akhir dengan judul “Pembangunan
Back – End Untuk Meningkatkan Fungsionalitas Buku Sekolah Elektronik (BSE) Tematik 8 Menggunakan Application Programming Interface (API)” beserta
seluruh isinya adalah karya saya sendiri dan bukan merupakan karya tulis orang lain, baik sebagian maupun keseluruhan, kecuali dalam bentuk kutipan yang telah disebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya saya ini atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya siap menanggung segala bentuk resiko / sanksi yang berlaku.
Malang, 09 Juli 2021 Yang Membuat Pernyataan
Ferdi Rahmansyah
Mengetahui,
Pembimbing I Pembimbing II
Ilyas Nuryasin, S.Kom., M.Kom. Hariyady, S.Kom., M.T.
iv
ABSTRAK
Buku Sekolah Elektronik (BSE) merupakan salah satu upaya dalam peningkatan mutu pendidikan di indonesia,dengan adanya modul pembelajaran yang memiliki banyak metode pembelajaran untuk siswa kelas 1 sekolah dasar diharapkan untuk kedepannya dapat memberikan pemerataan nilai pendidikan menyeluruh ke seluruh wilayah tanpa terkendala harga buku yang mahal dan dapat dijangkau oleh seluruh lapisan masyarakat luas. Masalah yang sering ditemui adalah BSE belum dapat efektif dalam penerapannya karena terkendala media maupun pembelajaran oleh guru kepada siswa karena di buku tersebut hanya berupa text dan gambar yang tidak bergerak serta kurangnya siswa untuk turut aktif dalam pembelajaran. Dari permasalahan ini kemajuan dalam dunia teknologi dan informasi dapat menjadi sebuah solusi untuk memaksimalkan potensi dari BSE tersebut untuk pembelajaran siswa sekolah dasar.
v
ABSTRACT
The Electronic School Book (BSE) is one of the efforts to improve the quality of education in Indonesia, with the learning modules that have many learning methods for elementary School 1st graders are expected to provide equitable education for all areas without the expensive book price that can be reached by all over the community. The most common problem is that BSE has not been able to be effective in its application due to media constraints as well as learning by teachers to students because in the book it is only text and images that are not moving and lack of students to be active in learning. From this issue advances in technology and information can be a solution to maximize the potential of BSE for elementary school students.
vi
LEMBAR PERSEMBAHAN
Puji dan Syukur ke hadirat Allah Subhanau Wa Ta’ala karena berkat Rahmat dan Hidayahnya pengerjaan Tugas Akhir ini dapat diselesaikan berkat bantuan dari berbagai pihak yang turut serta memberi dukungan dan doa. Untuk itu, saya persembahkan skripsi ini dan ucapan terimakasih kepada:
1. Ucapan terima kasih yang sesungguhnya saya persembahkan kepada dosen pembimbing saya Bapak Hariyady dan Bapak Ilyas Nuryasin, yang telah membimbing dan memberi masukan – masukan yang sangat berharga bagi saya. Tanpa jasa beliau yang tulus dan sabar memberikan waktu untuk bertukar pikiran, menampung dan menjawab pertanyaan saya, dan memberi semangat kepada saya bahkan sering mengingatkan saya untuk melakukan bimbingan.
2. Selanjutnya ucapan terima kasih yang sedalam - dalamnya juga saya tunjukkan kepada kedua orang tua saya Bapak Ir. Bambang Budi Cahyono dan Ibunda Ulumin Kristiana S.Pd, yang selalu mendoakan saya.
3. Terima kasih sebesar – besarnya kepada istri saya Alifatul Firda Aulia yang telah menyemangati dan setia untuk menemani saya dari sempro 2018 hingga sudah menikah di tahun 2021 yang tidak henti – hentinya memberikan motivasi . Serta kedua Ayah dan Ibu Mertua saya Drs H.Shokheh & Ibunda H. Kusnul Kotimah S.E yang selalu memberikan support kepada saya. 4. Terima kasih yang sebesar – besarnya saya berikan kepada rekan kontrakan
Fir , Jors dan Yoga yang telah memberikan fasilitas dan bantuan untuk memberikan petunjuk yang terdapat dalam pengerjaan tugas akhir ini.
5. Terakhir , namun sangat berarti, terima kasih yang sangat tulus saya ucapkan kepada PT. Jasamarga Tollroad Operator yang selama 2 Tahun telah memberikan ruang untuk saya berkembang, berkompeten dan menjadi pribadi yang siap bersaing di dunia kerja ketika saya lulus nanti.
Malang, 10 Juli 2021
vii
KATA PENGANTAR
Segala puji bagi Allah SWT, yang telah memberi Rahmat serta Karunianya, sehingga penulis dapat menyelesaikan skripsi yang berjudul:
“PEMBANGUNAN BACK – END UNTUK MENINGKATKAN
FUNGSIONALITAS BUKU SEKOLAH ELEKTRONIK (BSE) TEMATIK 8 MENGGUNAKAN APPLICATION PROGRAMMING INTERFACE (API)”
Skripsi ini merupakan salah satu syarat studi yang harus ditempuh oleh seluruh mahasiswa Universitas Muhammadiyah Malang, guna menyelesaikan akhir studi pada jenjang program Strata 1.
Peneliti menyadari masih banyak kekurangan dan keterbatasan dalam penulisan tugas akhir ini. Untuk itu, penulis sangat mengharapkan saran yang membangun agar tulisan ini dapat berguna untuk perkembangan ilmu pengetahuan kedepan.
Malang, 10 Juli 2021 Penulis
viii
DAFTAR ISI
ABSTRAK ... iv
LEMBAR PERSEMBAHAN ... vi
KATA PENGANTAR ... vii
DAFTAR ISI ... viii
DAFTAR GAMBAR ... xi
DAFTAR TABEL ... xiii
BAB I PENDAHULUAN ... 1 1.1 LataraBelakang ... 1 1.2 Rumusan Masalah ... 2 1.3 Tujuan Penelitian ... 2 1.4 Batasan Masalah... 3 1.5 Manfaat Penelitian ... 3
1.6 Susunan Penulisan Buku ... 3
BAB II LANDASAN TEORI ... 5
2.1 Buku Sekolah Elektronik ... 5
2.2 Pengembangan Android ... 7
2.3 Back End ... 7
2.4 Application Programming Interface (API) ... 8
2.5 Web Service ... 9
2.6 MVC ( Model View Controller ) ... 11
2.7 UML (Unified Modelling Language) ... 12
2.8 Javascript ... 12
2.9 Tinjauan Pustaka ... 13
2.10 Metode Pengujian ... 14
2.11 Black Box Testing ... 14
BAB III METODOLOGI PENELITIAN... 17
3.1 Identifikasi Masalah ... 15
3.2 Studi Literatur ... 25
3.3 Perancangan Sistem ... 25
3.2 Design Uniform Resource Identifier (URI) ... 35
BAB IV HASIL DAN PEMBAHASAN ... 37
ix
4.1.1 Spesifikasi Perangkat Keras (Hardware) ... 37
4.1.2 Spesifikasi Perangkat Lunak (Software) ... 37
4.2 Implementasi Kebutuhan Sistem... 38
4.2.1 Tampilan Halaman Login (Login Page) ... 38
4.2.2 Tampilan Halamhan Utama (Home Page) Admin ... 39
4.2.3 Tampilan Halaman Kelola Akun ... 39
4.2.4 Tampilan Halaman Detail Profil Siswa... 40
4.2.5 Tampilan Halaman Detail Profil Guru ... 41
4.2.6 Tampilan Rekapan Siswa ... 41
4.2.7 Tampilan Guru ... 42
4.2.8 Tampilan Materi ... 42
4.2.9 Tampilan Detail Materi ... 43
4.2.10 Tampilan Halaman Utama (Homepage) Guru ... 43
4.2.11 Tampilan Rekap Nilai ... 44
4.2.12 Tampilan Tugas ... 44
4.2.12 Tampilan Hasil Input Nilai ... 45
4.3 Implementasi API... 46 4.4. Pengujian Sistem ... 49 4.4.1 Pengujian Blackbox ... 49 4.4.4.1 Admin ... 50 4.4.4.2 Guru ... 51 4.4.2 Pengujian Postman ... 52 4.4.2.1 Profil Guru ... 52 4.4.2.2 Profil Siswa ... 53 4.4.2.3 Registrasi Siswa ... 53
4.4.2.4 Hapus Guru dan Siswa ... 54
4.4.2.5 Cari Nama Sekolah ... 54
4.4.2.6 Menampilkan Data Kelas... 55
4.4.2.7 Menampilkan Detail Nilai Siswa ... 55
4.4.2.8 Menampilkan Profil Sekolah ... 56
4.4.2.9 Menampilkan Data Kecamatan ... 56
4.4.2.10 Hasil Kesimpulan Pengujian POSTMAN... 57
BAB V ... 59
x
5.1 Kesimpulan ... 59 5.2 Saran ... 60 DAFTAR PUSTAKA ... 61
xi
DAFTAR GAMBAR
Gambar 2.1 Alur dari Application Programming Interface ... 8
Gambar 2.2 Tahapan dari Web Service. ... 9
Gambar 2.3 Konsep hubungan MVC (Model View Controller ) ... 12
Gambar 3.1 Metodologi Penelitian ... 17
Gambar 3.2 Alur Sistem Pembelajaran BSE ... 20
Gambar 3.3 Use Case Diagram ... 23
Gambar 3.4 Arsitektur Web Service ... 25
Gambar 3.5 Activity Diagram Menu Login ... 27
Gambar 3.6 Activity Diagram Kelola Akun ... 27
Gambar 3.7 Activity Diagram Materi... 28
Gambar 3.8 Activity Diagram Rekapan Siswa ... 28
Gambar 3.9 Activity Diagram Input Tugas ... 29
Gambar 3.10 Activity Diagram Update Nilai ... 29
Gambar 3.11 Sequence Diagram Login Admin ... 30
Gambar 3.12 Sequence Diagram Kelola Akun ... 31
Gambar 3.13 Sequence Diagram Materi ... 31
Gambar 3.14 Sequence Diagram Rekapan Siswa ... 32
Gambar 3.15 Sequence Diagram Update Nilai ... 32
Gambar 3.16 Sequence Diagram Update Tugas ... 33
Gambar 3.17 Class Diagram sistem Back-End BSE ... 34
Gambar 4.1 Tampilan Halaman Login ... 38
Gambar 4.2 Tampilan Halaman Utama Admin ... 39
Gambar 4.3 Tampilan Kelola Akun siswa ... 39
Gambar 4.4 Tampilan Kelola Akun Guru ... 40
Gambar 4.5 Tampilan Detail Profil Siswa ... 40
Gambar 4.6 Tampilan Detail Profil Guru ... 41
Gambar 4.7 Tampilan Rekapan Siswa ... 41
Gambar 4.8 Tampilan Guru ... 42
Gambar 4.9 Tampilan Materi ... 42
Gambar 4.10 Tampilan Detail Materi... 43
xii
Gambar 4.12 Tampilan Halaman Rekap Nilai ... 44
Gambar 4.13 Tampilan Halaman Tugas ... 44
Gambar 4.14 Tampilan Input Nilai... 45
Gambar 4.15 Tampilan Detail Nilai ... 45
Gambar 4.16 Tampilan Hasil Nilai Siswa ... 46
Gambar 4.17 Tampilan Implementasi API Registrasi ... 46
Gambar 4.18 Tampilan Implementasi API Login ... 47
Gambar 4.19 Tampilan Implementasi API Materi ... 47
Gambar 4.20 Tampilan Implementasi API Getdata Admin ... 47
Gambar 4.21 Tampilan Implementasi API Getdata Guru ... 49
Gambar 4.22 Pengujian Profil Guru ... 52
Gambar 4.23 Pengujian Profil Siswa ... 53
Gambar 4.24 Pengujian Registrasi Siswa ... 53
Gambar 4.25 Pengujian Delete Guru ... 54
Gambar 4.26 Pengujian Delete Siswa ... 54
Gambar 4.27 Pengujian Cari Sekolah... 54
Gambar 4.28 Pengujian Cari Sekolah... 55
Gambar 4.29 Pengujian Detail Nilai Siswa ... 55
Gambar 4.30 Pengujian Profil Sekolah ... 56
xiii
DAFTAR TABEL
Tabel 3.1 Alur Sistem Aplikasi Buku Sekolah Elektronik (BSE) ... 20
Tabel 3.2 Kebutuhan Fungsional Guru ... 21
Tabel 3.3 Kebutuhan Fungsional Admin ... 21
Tabel 3.4 Kebutuhan Non Fungsional ... 22
Tabel 3.5 Aktor dalam sistem Back-End BSE ... 23
Tabel 3.6 Definisi Use Case pada Admin ... 24
Tabel 3.6 Definisi Use Case pada Guru ... 24
Tabel 3.7 Design Uniform Resource Identifier Class Akun ... 35
Tabel 3.8 Design Uniform Resource Identifier Class Getdata ... 36
Tabel 3.9 Design Uniform Resource Identifier Class Materi ... 36
Tabel 4.1 Spesifikasi Perangkat Hardware dalam Pengembangan ... 37
Tabel 4.2 Spesifikasi Perangkat Software dalam Pengembangan ... 38
Tabel 4.3 Pengujian Fungsionalitas Kelola Akun ... 50
Tabel 4.4 Pengujian Fungsionalitas Materi ... 50
Tabel 4.5 Pengujian Fungsionalitas Guru ... 50
Tabel 4.6 Pengujian Fungsionalitas Rekapan Siswa ... 51
Tabel 4.7 Pengujian Fungsionalitas Rekap Nilai ... 51
Tabel 4.8 Rekapitulasi Hasil Pengujian Blackbox ... 51
TA-010
UNIVERSITAS MUHAMMADIYAH MALANG
FAKULTAS TEKNIK
PROGRAM STUDI TEKNIK INFORMATIKA
Jl. Raya Tlogomas 246 Malang 65144 Telp. 0341 - 464318 Ext. 247, Fax. 0341 - 460782
FORM CEK PLAGIARISME LAPORAN TUGAS AKHIR
Nama Mahasiswa : FERDI RAHMANSYAH NIM : 201410370311257
Judul TA : PEMBANGUNAN BACK – END UNTUK MENINGKATKAN
FUNGSIONALITAS BUKU SEKOLAH ELEKTRONIK (BSE) TEMATIK 8 MENGGUNAKAN APPLICATION PROGRAMMING INTERFACE (API) Hasil Cek Plagiarisme dengan Turnitin
No. Komponen Pengecekan Nilai Maksimal
Plagiarisme (%)
Hasil Cek Plagiarisme (%) *
1. Bab 1 – Pendahuluan 10 % 9 %
2. Bab 2 – Daftar Pustaka 25 % 17 % 3. Bab 3 – Analisis dan Perancangan 25 % 11 % 4. Bab 4 – Implementasi dan Pengujian 15 % 2 % 5. Bab 5 – Kesimpulan dan Saran 5 % 4 %
6. Makalah Tugas Akhir 20% 12 %
Mengetahui, Dosen Pembimbing
( Hariyady, S.Kom., M.T. ) NIDN. 0717067307
61
DAFTAR PUSTAKA
[1] B. Dan, S. Di, and W. A. Indhaka, “PENERAPAN BUKU SEKOLAH ELEKTRONIK BERBASIS ANDROID DALAM MATERI AJAR BESARAN DAN SATUAN DI SMK MUHAMMADIYAH SALATIGA,” 2016.
[2] A. Kurniawan, A. Rahmatulloh, and H. Sulastri, “Calendar Sebagai Reminder Informasi Kegiatan Pondok Pesantren,” J. Sains dan Teknol., vol. 8, no. 1, 2019.
[3] D. Waskito, “Media Pembelajaran Interaktif Matematika Bagi Sekolah Dasar Kelas 6 Berbasis Multimedia,” Speed - Sentra Penelit. Eng. dan Edukasi, vol. 9, no. 1, pp. 20–26, 2017.
[4] H. Rizal, A. Satrio, and P. W. Wirawan, “PERANCANGAN DAN PEMBUATAN MOBILE LEARNING INTERAKTIF BERBASIS ANDROID DENGAN METODE PERSONAL EXTREME PROGRAMMING,” pp. 1–7, 2013.
[5] M. N. Dwipayana and I. K. Ari Mogi, “Pengembangan Back End Aplikasi Keluhan Pelanggan PDAM Tirta Amertha Jati Kabupaten Jembrana,” JELIKU
(Jurnal Elektron. Ilmu Komput. Udayana), vol. 7, no. 4, p. 231, 2019, doi:
10.24843/jlk.2019.v07.i04.p03.
[6] M. I. Perkasa and E. B. Setiawan, “Pembangunan Web Service Data Masyarakat Menggunakan REST API dengan Access Token,” J. Ultim.
Comput., vol. 10, no. 1, pp. 19–26, 2018, doi: 10.31937/sk.v10i1.838.
[7] D. Sondakh and S. R. Pungus, “Implementasi Teknologi Web Services Pada Aplikasi Pencarian Taksi,” no. June, 2016.
[8] S. Nugroho, A. Primadewi, T. Informatika, and U. M. Magelang, “Penerapan Web Service untuk Integrasi Data Simperpus dan SIAK,” vol. 4, no. 2, pp. 71–81, 2021.
[9] M. Destiningrum and Q. J. Adrian, “Sistem Informasi Penjadwalan Dokter Berbassis Web Dengan Menggunakan Framework Codeigniter (Studi Kasus: Rumah Sakit Yukum Medical Centre),” J. Teknoinfo, vol. 11, no. 2, p. 30, 2017, doi: 10.33365/jti.v11i2.24.
62
[10] M. Mukhlis, D. Danuri, and B. Syahputra, “Aplikasi Android Peta Sekolah Bengkalis Menggunakan Google Map API,” INOVTEK Polbeng - Seri
Inform., vol. 2, no. 1, p. 48, 2017, doi: 10.35314/isi.v2i1.116.
[11] a Fajarullah and D. F. Kusuma, “Pengembangan Buku Sekolah Elektronik (Bse) Dilengkapi Dengan Media Picture and Picture Dalam Pembelajaran Pada Buku …,” Osf.Io, pp. 1–7, [Online]. Available: https://osf.io/rn982/download.
[12] R. Pangestika and R. T. Dirgahayu, “Pengembangan Back-end Sistem Informasi Komunitas Pendar Foundation Yogyakarta,” Automata, 2020, [Online]. Available: https://journal.uii.ac.id/AUTOMATA/article/view/15548. [13] M. Agus, A. Teknik, S. T. T. Terpadu, and N. Fikri, “Analisis dan Perancangan Representational State Transfer (REST) Web Service Sistem Informasi Akademik STT Terpadu Nurul Fikri Menggunakan YII Framework,” J. Teknol. Terpadu, vol. 2, no. 2, pp. 1–8, 2016.
[14] Z. Irawan, M. Sari, and M. Setyoningrum, “Analisis Implementasi Kebijakan Buku Sekolah Elektronik (Bse) Kementerian Pendidikan Nasionaldi Sekolah Menengah,” Pelita-Jurnal Penelit., pp. 1–13, 2011, [Online]. Available: http://journal.uny.ac.id/index.php/pelita/article/view/4298.
[15] D. W. Nugraha, “Software Requirement Dalam Membangun,” Nugraha, D.
W. (n.d.). Softw. Requir. DALAM MEMBANGUN.Nugraha, D. W. (n.d.). Softw. Requir. DALAM MEMBANGUN. Nugraha, D. W. (N.d.). Softw. Requir. DALAM MEMBANGUN., Nugraha, D., no. Faktor utama yang menjadi
penghambat dalam pelayanan publik yang baik dapat dianalisa dari dua sisi, yakni birokrasi dan standar pelayanan publik. Sudah menjadi rahasia umum bahwa dalam tubuh pemerintahan negara Indonesia pada semua jenjang dan jenisnya m, p. 11, 2011.
[16] S. P. Utomo, N. H. Alfiyah, Z. A. Sani, M. Hanafi, and A. Primadewi, “Informasi Terintegrasi Menggunakan FrameWork CodeIgniter,” Semin. Nas.
63
LAMPIRAN
I. Source Code API Getdata.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed'); require APPPATH . '/libraries/REST_Controller.php';
use Restserver\Libraries\REST_Controller; class Getdata extends REST_Controller { function __construct($config = 'rest') { parent::__construct($config);
$this->load->database(); }
//Menampilkan data kontak function sekolah_get() { $kontak = $this->db->query(' SELECT t_sekolah.id_sekolah, t_sekolah.nama, t_sekolah.kecamatan FROM t_sekolah ORDER BY t_sekolah.nama ASC ')->result(); $this->response($kontak, 200); } function kecamatan_get() { $kontak = $this->db->query(' SELECT t_sekolah.kecamatan FROM t_sekolah GROUP BY t_sekolah.kecamatan ORDER BY t_sekolah.kecamatan ASC ')->result(); $this->response($kontak, 200); }
64 function index_post(){ $idsiswa = "SIS".date('YmdHis'); $idlogin = "LGNSIS".date('YmdHis'); $nis = $this->post('nis'); $nama = $this->post('nama'); $alamat = $this->post('alamat'); $kelas = $this->post('kelas'); $jk = $this->post('jk'); $tgllahir = $this->post('tgllahir'); $sekolah = $this->post('sekolah'); $username = $this->post('username'); $password = $this->post('password'); $level = 'siswa'; $data = array( 'id_siswa' =>$idsiswa, 'id_login' =>$idlogin, 'nis' =>$nis, 'nama' =>$nama, 'alamat' =>$alamat, 'kelas' =>$kelas, 'gender' =>$jk, 'tgllahir' =>$tgllahir, 'id_sekolah' =>$sekolah, 'status' =>'AKTIF' ); $this->db->insert('t_siswa',$data); $login = array( 'id_login' =>$idlogin, 'nama_lengkap' =>$nama, 'username' =>$username, 'password' =>$password, 'level' =>$level, ); $this->db->insert('t_login',$login); $this->db->where('id_login',$idlogin); $get_login = $this->db->get('t_login')->row(); if ($get_login!=null) { $this->response($get_login, 200); } else { $this->response(array('status' => 'fail', 502)); } }
65 function guru_post(){ $idguru = "GR".date('YmdHis'); $idlogin = "LGNGR".date('YmdHis'); $sekolah = $this->post('sekolah'); $nip = $this->post('nip'); $nama = $this->post('nama'); $alamat = $this->post('alamat'); $jk = $this->post('jk'); $tgllahir = $this->post('tgllahir'); $notelp = $this->post('notelp'); $kelas = $this->post('kelas'); $username = $this->post('username'); $password = $this->post('password'); $level = 'guru'; $data = array( 'id_guru' =>$idguru, 'id_login' =>$idlogin, 'id_sekolah' =>$sekolah, 'nip' =>$nip, 'nama' =>$nama, 'alamat' =>$alamat, 'gender' =>$jk, 'no_telp' =>$notelp, 'kelas' =>$kelas, 'tgllahir' =>$tgllahir, 'status' =>'AKTIF' ); $this->db->insert('t_guru',$data); $login = array( 'id_login' =>$idlogin, 'nama_lengkap' =>$nama, 'username' =>$username, 'password' =>$password, 'level' =>$level, ); $this->db->insert('t_login',$login); $this->db->where('id_login',$idlogin); $get_login = $this->db->get('t_login')->row(); if ($get_login!=null) { $this->response($get_login, 200); } else { $this->response(array('status' => 'fail', 502)); }
66
}
public function detailguru_get(){ $id_guru = $this->get('id_guru'); $get_guru = $this->db->query(' SELECT t_guru.id_guru, t_guru.id_login, t_guru.id_sekolah, t_guru.nama, t_guru.alamat, t_guru.gender, t_guru.no_telp, t_guru.tgllahir, t_guru.nip, t_guru.kelas, t_guru.`status`, t_login.nama_lengkap, t_login.username, t_login.`password`, t_login.`level`, t_sekolah.nama AS nama_sekolah FROM t_guru
INNER JOIN t_login ON t_guru.id_login = t_login.id_login
INNER JOIN t_sekolah ON t_guru.id_sekolah = t_sekolah.id_sekolah WHERE
t_guru.id_guru = "'.$id_guru.'" ')->row();
$this->response($get_guru, 200); }
//Masukan function selanjutnya disini }
67 II. Source Code API Akun.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed'); require APPPATH . '/libraries/REST_Controller.php';
use Restserver\Libraries\REST_Controller; class Akun extends REST_Controller { function __construct($config = 'rest') { parent::__construct($config);
$this->load->database(); }
//Menampilkan data kontak function guru_get() { $kontak = $this->db->query(' SELECT t_guru.id_guru, t_guru.id_login, t_guru.id_sekolah, t_guru.nama, t_guru.alamat, t_guru.gender, t_guru.no_telp, t_guru.tgllahir, t_guru.nip, t_guru.kelas, t_guru.`status`, t_login.nama_lengkap, t_login.username, t_login.`password`, t_login.`level`, t_sekolah.nama AS nama_sekolah FROM t_guru
INNER JOIN t_login ON t_guru.id_login = t_login.id_login
INNER JOIN t_sekolah ON t_guru.id_sekolah = t_sekolah.id_sekolah ORDER BY t_sekolah.nama ASC, t_guru.nama ASC ')->result(); $this->response($kontak, 200); } function siswa_get() { $kontak = $this->db->query('
68 SELECT t_login.nama_lengkap, t_login.username, t_login.`password`, t_login.`level`, t_siswa.id_siswa, t_siswa.id_login, t_siswa.nis, t_siswa.nama, t_siswa.alamat, t_siswa.gender, t_siswa.id_sekolah, t_siswa.kelas, t_siswa.`status`, t_sekolah.nama AS nama_sekolah FROM t_login
INNER JOIN t_siswa ON t_siswa.id_login = t_login.id_login
INNER JOIN t_sekolah ON t_siswa.id_sekolah = t_sekolah.id_sekolah ORDER BY t_sekolah.nama ASC, t_siswa.nama ASC ')->result(); $this->response($kontak, 200); } function index_post(){ $idsiswa = "SIS".date('YmdHis'); $idlogin = "LGNSIS".date('YmdHis'); $nis = $this->post('nis'); $nama = $this->post('nama'); $alamat = $this->post('alamat'); $kelas = $this->post('kelas'); $jk = $this->post('jk'); $tgllahir = $this->post('tgllahir'); $sekolah = $this->post('sekolah'); $username = $this->post('username'); $password = $this->post('password'); $level = 'siswa'; $data = array( 'id_siswa' =>$idsiswa, 'id_login' =>$idlogin, 'nis' =>$nis, 'nama' =>$nama, 'alamat' =>$alamat, 'kelas' =>$kelas, 'gender' =>$jk, 'tgllahir' =>$tgllahir,
69 'id_sekolah' =>$sekolah, 'status' =>'AKTIF' ); $this->db->insert('t_siswa',$data); $login = array( 'id_login' =>$idlogin, 'nama_lengkap' =>$nama, 'username' =>$username, 'password' =>$password, 'level' =>$level, ); $this->db->insert('t_login',$login); $this->db->where('id_login',$idlogin); $get_login = $this->db->get('t_login')->row(); if ($get_login!=null) { $this->response($get_login, 200); } else { $this->response(array('status' => 'fail', 502)); } } function guru_post(){ $idguru = "GR".date('YmdHis'); $idlogin = "LGNGR".date('YmdHis'); $sekolah = $this->post('sekolah'); $nip = $this->post('nip'); $nama = $this->post('nama'); $alamat = $this->post('alamat'); $jk = $this->post('jk'); $tgllahir = $this->post('tgllahir'); $notelp = $this->post('notelp'); $kelas = $this->post('kelas'); $username = $this->post('username'); $password = $this->post('password'); $level = 'guru'; $data = array( 'id_guru' =>$idguru, 'id_login' =>$idlogin, 'id_sekolah' =>$sekolah, 'nip' =>$nip, 'nama' =>$nama, 'alamat' =>$alamat, 'gender' =>$jk, 'no_telp' =>$notelp,
70 'kelas' =>$kelas, 'tgllahir' =>$tgllahir, 'status' =>'AKTIF' ); $this->db->insert('t_guru',$data); $login = array( 'id_login' =>$idlogin, 'nama_lengkap' =>$nama, 'username' =>$username, 'password' =>$password, 'level' =>$level, ); $this->db->insert('t_login',$login); $this->db->where('id_login',$idlogin); $get_login = $this->db->get('t_login')->row(); if ($get_login!=null) { $this->response($get_login, 200); } else { $this->response(array('status' => 'fail', 502)); } } function searchguru_post(){ $sekolah = $this->post('sekolah'); $kecamatan = $this->post('kecamatan'); $gender = $this->post('gender'); if($gender!=""){
$ifgender = "OR t_guru.gender = '".$gender."'"; }else{ $ifgender = ""; } $getguru = $this->db->query(" SELECT t_guru.id_guru, t_guru.id_login, t_guru.id_sekolah, t_guru.nama, t_guru.alamat, t_guru.gender, t_guru.no_telp, t_guru.tgllahir, t_guru.nip,
71 t_guru.kelas, t_guru.`status`, t_sekolah.nama AS nama_sekolah, t_sekolah.alamat AS alamat_sekolah, t_sekolah.kecamatan, t_sekolah.no_telp, t_sekolah.`status` FROM t_guru
INNER JOIN t_sekolah ON t_guru.id_sekolah = t_sekolah.id_sekolah WHERE (t_sekolah.nama = '".$sekolah."' OR t_sekolah.kecamatan = '".$kecamatan."') ".$ifgender." ORDER BY t_sekolah.kecamatan ASC, t_guru.nama ASC ")->result(); $this->response($getguru, 200); } function gurudelete_delete(){ $id_login = $this->delete('id_login'); $this->db->where('id_login', $id_login); $delete = $this->db->delete('t_login'); $this->db->where('id_login', $id_login); $delete1 = $this->db->delete('t_guru'); if ($delete1&&$delete) { $this->response(array('status' => 'success'), 201); } else { $this->response(array('status' => 'fail', 502)); } } function siswadelete_delete(){ $id_login = $this->delete('id_login'); $this->db->where('id_login', $id_login); $delete = $this->db->delete('t_login'); $this->db->where('id_login', $id_login); $delete1 = $this->db->delete('t_siswa'); if ($delete1&&$delete) { $this->response(array('status' => 'success'), 201); } else { $this->response(array('status' => 'fail', 502)); }
72 } function searchsekolah_post(){ $sekolah = $this->post('sekolah'); $kecamatan = $this->post('kecamatan'); $sql = $this->db->query(' SELECT
count( t_siswa.id_siswa ) AS jumlah_siswa,
COUNT( IF ( gender = "P", gender, NULL ) ) AS jmlh_gender_p, COUNT( IF ( gender = "L", gender, NULL ) ) AS jmlh_gender_l, t_siswa.gender, t_siswa.id_sekolah, t_siswa.kelas, t_siswa.`status`, t_sekolah.nama, t_sekolah.alamat, t_sekolah.kecamatan, t_sekolah.no_telp, t_sekolah.`status` FROM t_siswa
INNER JOIN t_sekolah ON t_siswa.id_sekolah = t_sekolah.id_sekolah WHERE
t_sekolah.nama LIKE "%'.$sekolah.'" AND t_sekolah.kecamatan LIKE "%'.$kecamatan.'" GROUP BY t_siswa.id_sekolah ORDER BY t_sekolah.kecamatan ASC, t_sekolah.nama ASC ')->result(); if ($sql) {
$this->response( array('status' => 'success','hasil'=>$sql, 200)); } else { $this->response(array('status' => 'fail','hasil'=>array(), 502)); } } function detail_kelas_get(){ $id_sekolah = $this->get('id_sekolah'); $get_kelas = $this->db->query(' SELECT t_siswa.id_siswa, t_siswa.kelas, t_siswa.`status`,
73 t_siswa.id_sekolah, t_siswa.id_login, t_sekolah.nama FROM t_siswa INNER JOIN
t_sekolah ON t_siswa.id_sekolah = t_sekolah.id_sekolah WHERE
t_siswa.id_sekolah = "'.$id_sekolah.'" GROUP BY
t_siswa.kelas ')->result();
$this->response( array('status' => 'success','hasil'=>$get_kelas, 200)); } function detail_siswa_get(){ $id_sekolah = $this->get('id_sekolah'); $kelas = $this->get('kelas'); $get_kelas = $this->db->query(' SELECT t_siswa.id_siswa, t_siswa.id_login, t_siswa.nis, t_siswa.nama, t_siswa.alamat, t_siswa.gender, t_siswa.id_sekolah, t_siswa.kelas, t_siswa.`status`, t_siswa.tgllahir,
ROUND( SUM( t_nilai.nilai ) / Count( t_nilai.id_nilai ) ) AS prosentase FROM
t_siswa
LEFT JOIN t_nilai ON t_siswa.id_siswa = t_nilai.id_siswa WHERE
t_siswa.id_sekolah = "'.$id_sekolah.'" AND t_siswa.kelas = "'.$kelas.'" GROUP BY
t_siswa.id_siswa ORDER BY
t_siswa.nama ASC ')->result();
$this->response( array('status' => 'success','hasil'=>$get_kelas, 200)); }
74 $id_siswa = $this->get('id_siswa'); $bab1 = $this->db->query(' SELECT t_nilai.id_nilai, t_nilai.id_siswa, t_nilai.id_materi, t_nilai.id_guru, t_nilai.nilai, t_materi.bab, t_materi.sub_bab, t_materi.soal FROM t_nilai INNER JOIN
t_materi ON t_nilai.id_materi = t_materi.id_materi INNER JOIN
t_siswa ON t_nilai.id_siswa = t_siswa.id_siswa WHERE t_materi.bab = "1" AND t_siswa.id_siswa = "'.$id_siswa.'" ')->result(); $bab2 = $this->db->query(' SELECT t_nilai.id_nilai, t_nilai.id_siswa, t_nilai.id_materi, t_nilai.id_guru, t_nilai.nilai, t_materi.bab, t_materi.sub_bab, t_materi.soal, t_siswa.nis, t_siswa.nama, t_siswa.alamat, t_siswa.gender, t_siswa.id_sekolah, t_siswa.kelas, t_siswa.`status`, t_siswa.tgllahir FROM t_nilai INNER JOIN
t_materi ON t_nilai.id_materi = t_materi.id_materi INNER JOIN
t_siswa ON t_nilai.id_siswa = t_siswa.id_siswa WHERE
75 t_siswa.id_siswa = "'.$id_siswa.'" ')->result(); $bab3 = $this->db->query(' SELECT t_nilai.id_nilai, t_nilai.id_siswa, t_nilai.id_materi, t_nilai.id_guru, t_nilai.nilai, t_materi.bab, t_materi.sub_bab, t_materi.soal FROM t_nilai INNER JOIN
t_materi ON t_nilai.id_materi = t_materi.id_materi INNER JOIN
t_siswa ON t_nilai.id_siswa = t_siswa.id_siswa WHERE t_materi.bab = "3" AND t_siswa.id_siswa = "'.$id_siswa.'" ')->result(); $bab4 = $this->db->query(' SELECT t_nilai.id_nilai, t_nilai.id_siswa, t_nilai.id_materi, t_nilai.id_guru, t_nilai.nilai, t_materi.bab, t_materi.sub_bab, t_materi.soal FROM t_nilai INNER JOIN
t_materi ON t_nilai.id_materi = t_materi.id_materi INNER JOIN
t_siswa ON t_nilai.id_siswa = t_siswa.id_siswa WHERE t_materi.bab = "4" AND t_siswa.id_siswa = "'.$id_siswa.'" ')->result(); // $bab = array( // "bab1"=>$bab1, // "bab2"=>$bab2, // "bab3"=>$bab3, // "bab4"=>$bab4,
76
// );
$this->response( array('status' =>
'success','bab1'=>$bab1,'bab2'=>$bab2,'bab3'=>$bab3,'bab4'=>$bab4, 200)); }
public function detailprofilsiswa_get(){ $id_siswa = $this->get('id_siswa'); $profilsiswa = $this->db->query(' SELECT t_siswa.id_siswa, t_siswa.id_login, t_siswa.nis, t_siswa.nama, t_siswa.alamat, t_siswa.gender, t_siswa.id_sekolah, t_siswa.kelas, t_siswa.`status`, t_siswa.tgllahir FROM t_siswa WHERE t_siswa.id_siswa = "'.$id_siswa.'" ')->row();
$this->response( array('status' => 'success','hasil'=>$profilsiswa, 200)); }
//Masukan function selanjutnya disini }