Menambah Jalur Pendaftaran di Aplikasi PPDB 5 Pro

Aplikasi PPDB 5 Pro memiliki teknik pengkodean OOP yang sederhana sehingga mudah untuk dikembangkan oleh siapapun. Dalam kesempatan kali ini saya ingin menjelaskan tentang bagaimana menambah atau membuat modul baru pada aplikasi ppdb 5 pro khususnya modul untuk manajemen jalur pendaftaran. Jalur Pendaftaran ini nantinya akan menjadi bagian dari komponen pendukung untuk pilihan caln peserta didik

Dalam contoh modul ini, kode nantinya akan terbagi menjadi dua sisi/bagian dimana kita akan mengatur untuk interface administartor untuk proses manajemen data jalur pendaftarannya, lalu jika sudah selesai maka Jalur Pendaftaran tersebut akan tersedia didalam pilihan saaat pertama kali calon peserta didik mendaftar

Berikut ini adalah Menambah Jalur Pendaftaran di Aplikasi PPDB 5 Pro

#CRUD Jalur Pendaftaran Admin

1. Siapkan Database

Silahkan jalankan query berikut pada MySQL/MariaDB Anda

CREATE TABLE `komponen_jalur` (
  `id_jalur` smallint(5) UNSIGNED NOT NULL,
  `nama_jalur` varchar(65) DEFAULT NULL,
  `status_jalur` tinyint(1) NOT NULL DEFAULT 0
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `komponen_jalur`
--

INSERT INTO `komponen_jalur` (`id_jalur`, `nama_jalur`, `status_jalur`) VALUES
(5, 'Gelombang I', 1),
(6, 'Gelombang II', 1),
(7, 'Gelombang III', 1),
(8, 'Reguler', 0);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `komponen_jalur`
--
ALTER TABLE `komponen_jalur`
  ADD PRIMARY KEY (`id_jalur`),
  ADD KEY `id_jalur` (`id_jalur`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `komponen_jalur`
--
ALTER TABLE `komponen_jalur`
  MODIFY `id_jalur` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
COMMIT;



ALTER TABLE `field_siswa` ADD `jalur_pendaftaran` SMALLINT(5) UNSIGNED NULL DEFAULT NULL AFTER `jurusan_kedua`;




ALTER TABLE `field_siswa` ADD INDEX(`jalur_pendaftaran`);



ALTER TABLE `field_siswa` ADD CONSTRAINT `jalur_pendaftaran` FOREIGN KEY (`jalur_pendaftaran`) REFERENCES `komponen_jalur`(`id_jalur`) ON DELETE SET NULL ON UPDATE RESTRICT;



2. Buat File Jalurpendaftaran.php 

Selanjutnya buat file baru misal dengan nama Jalurpendaftaran.php dan simpan didalam folder load seperti berikut


3. Tambahkan ke Autoload

Buka file Splautoload.php lalu tambahkan variabel $jalur dibawah $penghasilan seperti berikut

menambahkan jalur pendaftaran ke spl auto load ppdb 5 pro

4. Kemudian dibawahnya tambahkan juga variabel $jalur nya seperti berikut

menambahkan variabel jalur ke module


5. Kemudian buka file Moduleload.php kemudian tambakan baris seperti berikut

tambahkan module load

6. Tambahkan nilai jalur
Sisanya didalam constructor/dibawah script diatas tambahkan juga nilai jalur nya seperti contoh – contoh yang terdapat dibarisan script disana

7. Tambahkan ke fungsi apprun_admin

Selanjutnya bagian fungsi apprun_admin pada file moduleload.php, panggil modulenya seperti berikut

jalur pendaftaran dipanggil kedalam module


6. Terakhir buka file template.php lalu dibawah komponen tambahkan menunya seperti berikut

menambahkan menu jalur pendaftaran ke admin menu

Jika berhasil nanti Akan ada interface dari administrator untuk menambah/mengelola jalur pendaftaran seperti berikut ini
modul jalur pendaftaran berhasil ditambahkan ke interface admin


# Menampilkan Pilihan Jalur di Pendaftar.

Selanjutnya jika interface untuk mengelola jalur pendaftaran sudah berhasil dibuat, maka kita perlu menampilkan pilihannya pada halaman pendaftaran


  1. Buka file Datasiswa.php, lalu pada function siswa_create tambahkan variabel $jalur dibawah $jur seperti berikut :
    $jur1 = $this->app->post('jurusan_pertama');
    						$jur2 = $this->app->post('jurusan_kedua');
    						$jalur = $this->app->post('jalur_pendaftaran');
  2. Kemudian dibawahnya tepatnya pada fungsi InsertTable, tambahkan baris kolom jalurnya seperti berikut
    if($this->obj->insertTable('field_siswa','uid,no_nik,no_kk,nisn,nama_siswa,jl,tempat_lahir, tanggal_lahir, agama, gol_darah, tinggi_badan, berat_badan, riwayat_penyakit, status_keluarga, ank_ke, jml_saudara, mode_trans, tempat_tinggal, jarak_rumah, titik_koordinat, hobi, prestasi, al_lengkap, al_desa, al_kec, al_kab, al_prov, al_pos, kontak_siswa, kelas, jurusan_pertama, jurusan_kedua, jalur_pendaftaran, tgl_pendaftaran, tgl_masuk, tahun_masuk, no_kks, no_pkh, no_kip, status_pembayaran, kode_pendaftaran',
    
    								':uid,:no_nik,:no_kk,:nisn,:nama_siswa,:jl,:tempat_lahir,:tanggal_lahir,:agama,:gol_darah,:tinggi_badan,:berat_badan,:riwayat_penyakit,:status_keluarga,:ank_ke,:jml_saudara,:mode_trans,:tempat_tinggal,:jarak_rumah,:titik_koordinat,:hobi,:prestasi,:al_lengkap,:al_desa,:al_kec,:al_kab, :al_prov, :al_pos, :kontak_siswa,:kelas, :jurusan_pertama, :jurusan_kedua, :jalur_pendaftaran, :tgl_pendaftaran, :tgl_masuk, :tahun_masuk,:no_kks,:no_pkh,:no_kip, :status_pembayaran, :kode_pendaftaran',
    								array
    								(
    
    									":uid"=>$uid,
    									":no_nik"=>$no_nik,
    									":no_kk"=>$no_kk,
    									":nisn"=>$user['name'],
    									":nama_siswa"=>$nama_siswa,
    									":jl"=>$jl,
    									":tempat_lahir"=>$tempat_lahir, 
    									":tanggal_lahir"=>$tanggal_lahir,
    									":agama"=>$agama,
    									":gol_darah"=>$gol_darah,
    									":tinggi_badan"=>$tinggi_badan,
    									":berat_badan"=>$berat_badan,
    									":riwayat_penyakit"=>$riwayat_penyakit,
    									":status_keluarga"=>$status_keluarga,
    									":ank_ke"=>$anak_ke,
    									":jml_saudara"=>$jml_saudara,
    									":mode_trans"=>$mode_trans,
    									":tempat_tinggal"=>$tempat_tinggal,
    									":jarak_rumah"=>$jarak_rumah,
    									":titik_koordinat"=>$titik_koordinat,
    									":hobi"=>$hobi,
    									":prestasi"=>$prestasi,
    									":al_lengkap"=>$alamat_lengkap,
    									":al_desa"=>$desa,
    									":al_kec"=>$kec,
    									":al_kab"=>$kab,
    									":al_prov"=>$prov,
    									":al_pos"=>$pos,
    									":kontak_siswa"=>$kontak,
    									":kelas"=>$kel,
    									":jurusan_pertama"=>$jur1,
    									":jurusan_kedua"=>$jur2,
    									":jalur_pendaftaran"=>$jalur,
    									":tgl_pendaftaran"=>$tgl_pendaftaran,
    									":tgl_masuk"=>$tgl_masuk,
    									":tahun_masuk"=>$tahun_masuk,							
    									":no_kks"=>$no_kks,
    									":no_pkh"=>$no_pkh,
    									":no_kip"=>$no_kip,
    									":status_pembayaran"=>$status_pembayaran,
    									":kode_pendaftaran"=>$kode_pendaftaran
    									
    								)
    
    								)):
    								$success = $this->app->alert('alert-success','Data Anda berhasil disimpan');
    								$this->app->reload(3,'?page=data pribadi');
    							else:
    
    								$success = $this->app->alert('alert-danger','Terjadi kesalahan. Gagal menambahkan data');
    							endif;
    
  3. Selanjutnya masih pada fungsi yang sama tambahkan html untuk pilih jalur pendaftaranya seperti berikut
    	<div class="row">
    									
    									<div class="col-md-4">
    										<div class="form-group">
    											<label class="control-label mb-10">Jalur Pendaftaran</label>
    												<select class="form-control select2" name="jalur_pendaftaran">
    													<?php
    
    														$jalur = $this->obj->selectTable('komponen_jalur','status_jalur=1','ORDER by id_jalur');
    														$jalur->execute();
    														if($jalur->rowCount() > 0)
    														{
    															while($jalur_daftar = $jalur->fetch(PDO::FETCH_ASSOC))
    															{
    																echo '<option value='.$jalur_daftar['id_jalur'].'>'.$jalur_daftar['nama_jalur'].'</option>';
    															}
    														}
    
    
    													?>							
    												</select>
    										
    										</div>
    									</div>
    									<?php 
    
    										if($this->jurusan['jurusan_status']==1)
    										{
    									?>
    									<div class="col-md-4">
    										<div class="form-group">
    											<label class="control-label mb-10">Pilih jurusan I</label>
    												<select class="form-control select2 txt-dark" name="jurusan_pertama">
    													<?php
    
    														$jurusan = $this->obj->selectTable('field_jurusan_pertama',NULL,'ORDER by id_jurusan');
    														if($jurusan->rowCount() > 0)
    														{
    															while($rowJ = $jurusan->fetch(PDO::FETCH_ASSOC))
    															{
    																echo '<option value='.$rowJ['id_jurusan'].'>'.$rowJ['nama_jurusan'].'</option>';
    															}
    														}
    
    
    													?>							
    												</select>
    										
    										</div>
    									</div>
    									<div class="col-md-4">
    										<div class="form-group">
    											<label class="control-label mb-10">Pilih jurusan II</label>
    												<select class="form-control select2" name="jurusan_kedua">
    													<?php
    
    														$jurusan = $this->obj->selectTable('field_jurusan_kedua',NULL,'ORDER by id_jurusan');
    														if($jurusan->rowCount() > 0)
    														{
    															while($rowJ = $jurusan->fetch(PDO::FETCH_ASSOC))
    															{
    																echo '<option value='.$rowJ['id_jurusan'].'>'.$rowJ['nama_jurusan'].'</option>';
    															}
    														}
    
    
    													?>							
    												</select>
    										
    										</div>
    									</div>
    									<?php 
    										}else{
    									?>
    										<input type="hidden" name="jurusan_pertama" value="">
    										<input type="hidden" name="jurusan_kedua" value="">
    
    									<?php }?>
    								</div>	
  4. Lalu masih pada file yang sama namun function yang berbeda 
  5. Lihat bagian function siswa_data_pribadi($user) 
    <div class="row">
    									
    								
    									<div class="col-md-4">
    										<div class="form-group">
    											<label class="control-label mb-10">Jalur Pendaftaran</label>
    												<fieldset disabled>
    													<input class="form-control" value="<?=$row['nama_jalur']?>">
    												</fieldset>
    										
    										</div>
    									</div>
    									<?php 
    										if($this->jurusan['jurusan_status']==1)
    										{
    									?>
    									<div class="col-md-4">
    										<div class="form-group">
    											<label class="control-label mb-10">Pilih jurusan I</label>
    												<fieldset disabled>
    													<input class="form-control" value="<?=$row['jurusan_pertama']?>">
    												</fieldset>
    										
    										</div>
    									</div>
    									<div class="col-md-4">
    										<div class="form-group">
    											<label class="control-label mb-10">Pilih jurusan II</label>
    												<fieldset disabled>
    													<input class="form-control" value="<?=$row['jurusan_kedua']?>">
    												</fieldset>
    										
    										</div>
    									</div>
    								<?php }?>
    									
    								</div>	
  6. Disana kita disabled pilihannya karena baik jurusan atau jalur pendaftaran hanya bisa dipilih sekali
  7. Selanjutnya buka file Appcostum.php, tambahkan komponen_jalur ke fungsi leftJoin dan leftJoin_printsiswa sehingga menjadi seperti berikut
    public function leftJoin($uid)
    	{
    		try
    		{
    			$sql="SELECT *,field_jurusan_pertama.nama_jurusan AS jurusan_pertama,
    					field_jurusan_kedua.nama_jurusan AS jurusan_kedua FROM field_siswa 		
    			LEFT JOIN user_profile ON field_siswa.uid=user_profile.uid 
    			LEFT JOIN field_jurusan_pertama ON field_jurusan_pertama.id_jurusan=field_siswa.jurusan_pertama
    			LEFT JOIN field_jurusan_kedua  ON field_jurusan_kedua.id_jurusan=field_siswa.jurusan_kedua
    			LEFT JOIN komponen_jalur ON komponen_jalur.id_jalur=field_siswa.jalur_pendaftaran
    			WHERE field_siswa.uid='$uid' ";
    			$stmt = $this->link->prepare($sql);		
    			$stmt->execute();
    			return $stmt;
    		}
    		catch(PDOException $e)
    		{
    			echo $e->getMessage();
    		}
    	}
    	
    	public function leftJoin_printSiswa($uid)
    	{
    		/**$sql="SELECT * FROM field_siswa INNER JOIN user_profile ON field_siswa.uid=user_profile.uid INNER JOIN users ON field_siswa.uid=users.uid WHERE field_siswa.uid='$uid' ";
    			$stmt = $this->link->prepare($sql);		
    			$stmt->execute();
    			return $stmt;**/
    		try
    		{
    			$sql="SELECT *,field_jurusan.nama_jurusan AS jurusan,
    				field_jurusan.id_jurusan AS id_jurusan, field_jurusan.nama_jurusan AS jurusan,field_jurusan_pertama.nama_jurusan AS jurusan_pertama,
    					field_jurusan_kedua.nama_jurusan AS jurusan_kedua, field_kelas.nama_kelas AS nama_kelas FROM field_siswa 		
    			LEFT JOIN user_profile ON field_siswa.uid=user_profile.uid 
    			LEFT JOIN users ON field_siswa.uid=users.uid
    			LEFT JOIN field_jurusan ON field_jurusan.id_jurusan=field_siswa.jurusan
    			LEFT JOIN field_jurusan_pertama ON field_jurusan_pertama.id_jurusan=field_siswa.jurusan_pertama
    			LEFT JOIN field_jurusan_kedua  ON field_jurusan_kedua.id_jurusan=field_siswa.jurusan_kedua
    			LEFT JOIN field_kelas ON field_kelas.id_kelas=field_siswa.kelas
    			LEFT JOIN komponen_jalur ON komponen_jalur.id_jalur=field_siswa.jalur_pendaftaran
    
    			WHERE field_siswa.uid='$uid' ";
    			$stmt = $this->link->prepare($sql);		
    			$stmt->execute();
    			return $stmt;
    		}
    		catch(PDOException $e)
    		{
    			echo $e->getMessage();
    		}
    	}
  8. Sampai disini proses selesai, Nanti jika berhasil akan ada pilihan jalur pendaftaran dan jika sudah dpilih maka nanti form akan disabled seperti berikut

    pilihan jalur pendaftaran berhasil ditampilkan di pendaftar

  9. Jika misal hasil pilihan tersebut ingin ditampilkan pada hasil cetak pdf siswa, maka Anda bisa membuka file Printdata.php lalu pada function print_pdf_siswa_content($data) dan print_pdf_kartu_pendaftaran($data,$qrpath) Anda panggil variabelnya seperti berikut : $data['nama_jalur']

Jadi kurang lebih seperti itu tentang bagaimana Menambah Jalur Pendaftaran di Aplikasi PPDB 5 Pro

0 Response to "Menambah Jalur Pendaftaran di Aplikasi PPDB 5 Pro"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin