PEMROGRAMAN PHP DASAR

dokumen-dokumen yang mirip
BERKENALAN DENGAN MODEL CODEIGNITER

Modul 5. Membuat Formulir Pada Template. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

LAPORAN PRAKTIKUM TEKNOLOGI FRAMEWORK PERTEMUAN KE 1

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

MODUL 8 Insert, Update, & delete

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

Membuat Toko Online dengan Teknik OOP, MVC, dan AJAX

Mudafiq R. Pratama

Modul-7 CRUD & Searching. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

MODUL 1 PENGENALAN OOP

Modul II Object Oriented Programming

MODUL 2 Constructor. Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor

Mudafiq R. Pratama

E-trik Ajax. Database MySQL. Dedi Alnas

Modul-5 GET & POST. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

KEAHLIAN PEMROGAMAN JAVA


KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

MODUL 5 GET & POST Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017

MODUL PRAKTIKUM I PEMOGRAMAN BERORIENTASI OBJEK DENGAN PHP

Membuat CRUD Sederhana pada Framework Laravel

MODUL 10 PHP&MYSQL INSERT & DELETE

MODUL 7 CRUD (CREATE, READ, UPDATE,DELETE) dibawah ini adalah fungsi PHP yang akan digunakan untuk pembuatan CRUD

Kapita Selekta (KBKI82127, 2 sks) Materi : Penanganan Form

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface)

STRUKTUR DASAR PHP ASUMSI 02/10/2014

WAP (3) Muhammad Zen S. Hadi, ST. MSc. WAP - The Wireless Application Protocol

MODUL 3 Servlet dan JavaBean

A. Tujuan B. Dasar Teori 1. Pemrosesan Form 2. Konsep Penggunaan Tag <form> pada HTML

MODUL 4 PHP PART 1 (PENGENALAN PHP + VARIABEL)

MODUL GET DAN POST

Oleh: Ahmad Syauqi Ahsan

Fakultas Teknologi Informasi UJIAN AKHIR SEMESTER GENAP TAHUN AJARAN 2011/2013

Konsep dan Teknik Menguasai Modern OOP di PHP. Awan Pribadi Basuki CV. LOKOMEDIA

Mengembangkan Component Joomla Oleh : Garry B.

Advantages. Keunggulan :

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

BAB IV IMPLEMENTASI DAN PENGUJIAN

1. TUJUAN Mahasiswa dapat memahami langkah-langkah koneksi PHP dengan MySQL Mahasiswa dapat memahami pengambilan record dari database

MODUL 11 PHP&MYSQL UPDATE & SEARCHING

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Oleh: Ahmad Syauqi Ahsan

MODUL 1 PHP. (Variabel, Tipe Data, Operator)

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

Menangani Input dari User

Pemrograman Web Week 5. Team Teaching

Diciptakan oleh James Gosling. Resmi diperkenalkan tahun Merupakan bahasa pemrograman berorientasi obyek murni. Pada awalnya hanya mampu

Dasar PHP-MySQL oleh : Prasaja Wikanta

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

SMH2D3 Web Programming. 7 BAB V PHP SESSION & COOKIES. H a l IDENTITAS. Kajian Teknik pemrograman menggunakan PHP

Pemrograman PHP & MySQL

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

BAB III ANALISA DAN DESAIN SISTEM

PRAKTIKUM. Rekayasa Web. Modul 2: CRUD CodeIgniter Part I. Laboratorium Teknik Informatika Universitas Pasundan

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

PHP dan MySQL. Mempelajari koneksi PHP. Fungsi-fungsi aksesnya. Muhammad Zen Samsono Hadi, ST. MSc

BAB III ANALISA DAN DESAIN SISTEM

Bahasa Pemrograman :: Polimorfism and Abstraction

Tag dasar yang akan kita gunakan untuk membuat form di HTML adalah tag form, input, textarea, select dan option.

Mahasiswa dapat memanipuasi database mysql menggunakan actionscript 3 flash.

Diciptakan oleh James Gosling. Resmi diperkenalkan tahun Merupakan bahasa pemrograman berorientasi obyek murni. Pada awalnya hanya mampu

Membuat Database mysql dengan PhpMyAdmin

CODEIGNITER 3. Belajar Mandiri. Zamah Sari

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

Laporan Bengkel Web II Modul 6

Koneksi Client-Server. Ahmad Zainudin

BAB III ANALISA DAN DESAIN SISTEM

Gambar 4.13 STD Layar Menu Project Level Akses 4 dan Level Akses 3. Gambar 4.14 STD Layar Menu Project Level Akses 2 dan Level Akses 1

INHERITANCE AND POLIMORPHISM PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM

Gambar 1: Hirarki class

Membuat Aplikasi Tampil, Entri, Edit, Delete Mahasiswa

BAB III ANALISA DAN DESAIN SISTEM

Materi 2 E-Commerce Lanjut (CodeIgniter) 3 SKS Semester 7 S1 Sistem Informasi UNIKOM 2015 Nizar Rabbi Radliya

CHAPTER 6. Sebelum membuat starter data, kita perlu meng-create collections terlebih dahulu. Buat folder lib pada folder aplikasi.

MODUL 2 SELECTION & LOOPING PADA FORM

Tahap Instalasi PostgreSQL di Windows

MODUL 3. Inheritance, Abstract Class, Interface TUJUAN PRAKTIKUM LANDASAN TEORI. A. Inheritance

BAB II ANALISIS DAN PERANCANGAN. pendekatan perancangan sistem berorientasi objek. Perancangan sistem

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. dilakukan dengan menggunakan teknologi yang berbeda beda. Selain itu terdapat

BAB III ANALISA DAN DESAIN SISTEM

Membuat CRUD Sederhana Menggunakan PHP Dengan Mysqli Extension

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

Script PHP dan MySQL J A M K E E M P A T

Inheritance (Pewarisan) Pengertian dasar inheritance

Bab 2 Tinjauan Pustaka

BAB VII Database MYSQL

CodeIgniter.

BAB III ANALISA DAN DESAIN SISTEM

Pemrograman Berorientasi Objek Dengan PHP5

PHP dan MySQL. Mempelajari koneksi PHP dengan database MySQL dan Fungsi-fungsi aksesnya. Muhammad Zen S. Hadi, ST. MSc.

MODUL 1. KONEKTIVITAS PHP DENGAN MySQL. Digunakan untuk melakukan uji dan koneksi kepada server database MySQL.

Pertemuan 07 Struktur Dasar PHP

Pengenalan OOP. Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program.

Pengenalan JavaScript

Otodidak. MySQL untuk Pemula

Transkripsi:

2016 PEMROGRAMAN PHP DASAR Eka Dyar Wahyuni Sistem Informasi UPN Veteran Jawa Timur 1/6/2016

Contents 1. Mengambil Nilai Parameter... 2 2. Menyimpan ke Database... 5 3. Menampilkan Hasil dari Database dan Menghapus Record dari Database... 7 4. Object Oriented Programming dalam PHP... 9 5. MVC... 20 6. DB MVC... 25 Sistem Informasi UPN Veteran JawaTimur 1

1. Mengambil Nilai Parameter Langkah-langkahnya : 1. Buat satu file html dengan listing kode seperti berikut Sistem Informasi UPN Veteran JawaTimur 2

Listing kode diatas akan memberikan tampilan pada browser seperti gambar berikut : 2. Untuk menangkap parameter, amati bahwa setiap inputan (entah itu berupa textfield, combobox, radio button, checkbok dst) memiliki atribut name. Nilai dari atribut name ini nanti yang akan kita pakai untuk mengambil parameter dari inputan tersebut. 3. Amati method yang dipergunakan dalam formnya, apakah itu get atau post, jika dalam form tidak ada atribut method= post atau method= get maka secara default, method yang dipakai adalah get. 4. Dari listing kode yang ada pada no 1 diatas, ketika kita klik tombol simpan, proses selanjutnya akan dilarikan ke halaman proses.php (ditunjukkan oleh nilai dari atribut action yang ada pada form) 5. Di halaman proses.php Sistem Informasi UPN Veteran JawaTimur 3

Buat variabel. Variabel dalam php diawali dengan $ dan diikuti dengan nama variabelnya tanpa spasi, kita tidak perlu menyebutkan apakah variabel tersebut bertipe string, integer atau yang lain Contoh : $nama variabel dengan nama nama $jk variabel dengan nama jk 6. Isi variabel tersebut dari inputan yang ada di form Pada langkah 6 ini, kita harus tahu nilai dari atribut method pada form (langkah 3) dan nilai dari atribut name pada inputan (langkah 2) Form yang ada diatas, seperti yang ditampilkan pada langkah no 1, ada 5 macam inputan, yaitu nama, npm, jurusan, jenis kelamin, hobi. Oleh karena itu kita perlu 5 variabel untuk menyimpan nilainya 7. Lalu cetak isi dari inputan, perintah cetak pada php adalah echo + (variabel/ string ) Sistem Informasi UPN Veteran JawaTimur 4

2. Menyimpan ke Database Modul ini akan menyimpan inputan dari user kedalam database, melanjutkan dari modul 1 yang hanya menampilkan inputan user ke browser. Langkah-langkahnya : 1. Buat tabel dengan mha dengan properti npm varchar(10), nama varchar(50), jurusan integer(11), j_kelamin integer(11), hobi varchar(50) 2. Di dalam halaman proses.php, kita sudah membuat variabel $nama, $npm,$jur dan $jk. Kita juga sudah bisa menampilkan isi dari keempat variabel tersebut ke layar browser dengan mempergunakan perintah echo. Untuk selanjutnya, perintah echo bisa kita hapus atau kita jadikan sebagai comment dengan mempergunakan // atau pasangan /* dan */ 3. Tuliskan listing code seperti dibawah Halaman ini berfungsi membangun koneksi ke database, nama databasenya adalah tes menjalankan query insert ke tabel mha, setelah query selesai dijalankan, membuka halaman tampil.php Fungsi implode(,,$_post[ hobby ]) digunakan untuk menggabungkan isi dari array [ hobby ] menjadi satu string dengan mempergunakan pemisah, untuk masing-masing elemen array. Tampilan dari fungsi implode() ketika dijalankan sendiri sebagai berikut : menghasilkan tampilan berikut Sistem Informasi UPN Veteran JawaTimur 5

Penjelasan fungsi mysql yang dipergunakan diatas sebagai berikut : mysql_connect() untuk membangun koneksi ke database dengan parameter nama komputer, username db dan password db seperti yang tampak pada gambar diatas. mysql_select_db() untuk memilih database mana yang akan kita pakai dengan parameter nama database dan variabel yang dipergunakan untuk membangun koneksi ke database mysql_query() untuk menjalankan query dengan parameter variabel yang menyimpan string query dan variabel yang dipergunakan untuk membangun koneksi ke database. Sistem Informasi UPN Veteran JawaTimur 6

3. Menampilkan Hasil dari Database dan Menghapus Record dari Database Modul ini akan menampilkan record dari database yang sebelumnya sudah diisi pada modul 2. Langkah-langkahnya : 1. Tuliskan listing code seperti dibawah Halaman ini bernama tampil.php. Halaman ini berfungsi membangun koneksi ke database, menjalankan query select dari tabel mha, dan menampilkan hasil kueri dalam bentuk tabel 2. Berikut tampilan web setelah dijalankan Sistem Informasi UPN Veteran JawaTimur 7

3. Dari gambar diatas, jika diklik link hapus, maka akan membuka halaman hapus.php, menjalankan kueri delete dan akan membuka halaman tampil.php, berikut listing code nya 4. Berikut tampilan web setelah record dihapus Tugas modul : Lanjutkan studi kasus diatas dengan membuat halaman untuk mengedit record yang ada pada database Sistem Informasi UPN Veteran JawaTimur 8

4. Object Oriented Programming dalam PHP Syarat dalam modul ini anda harus memahami function, variable, conditionals (if..else..) dan loop 1. Buat dua file php class_lib.php oop2.php Pada intinya, oop membuat agar listing kode kita bersifat modular, jadi listing kode kita nanti akan kita masukkan ke dalam beberapa file dan akan kita masukkan ke php utama kita dengan mempergunakan php include. Dalam kasus kali ini, oo php akan kita tuliskan kedalam : class_lib.php 2. Buat class dengan mempergunakan keyword class diikuti dengan nama class yang ingin kita buat 3. Tambahkan variabel ke dalam class kita 4. Tambahkan function / method ke dalam class kita Method dipergunakan untuk memanipulasi data/properti dari kelas itu sendiri Sistem Informasi UPN Veteran JawaTimur 9

5. Fungsi getter dan setter Kita sudah membuat function get_name() dan set_name(). Method/function ini mengikuti aturan umum dari OOP seperti di bahasa pemrograman lainnya (java, ruby dll) dimana kita membuat method untuk menge- set dan menge- get properti (atribut) dari class. Aturan umum lainnya adalah, nama getter dan setter harus sesuai dengan nama dari properti. Sehingga, ketika programmer lain ingin memakai object kita, mereka akan tahu jika kita memiliki function/method set_name() pasti ada properti bernama name. 6. Variabel $this Pada listing berikut $this->name = $new_name; $this adalah variabel built-in(ada pada semua object), yang menunjuk kepada object saat ini. Dengan kata lain $this adalah special self referencing variabel. Kita mempergunakan $this untuk mengakses properti dan memanggil method lain dari class. 7. Include class kita kedalam php utama Kita tidak akan menuliskan class php langsung kedalam halaman php utama kita. Tujuan dari oop tidak akan tercapai. Langkah yang baik adalah membuat halaman php lain yang hanya berisi class-class kita lalu kita akses class-class tersebut dengan mempergunakan include atau require 8. Instantiate/ buat object Sistem Informasi UPN Veteran JawaTimur 10

Class adalah blueprint/template/cetakan dari object. Class tidak akan menjadi object kalau tidak kita instantiate. Ketika kita meng-instantiate kita membuat instance dari object kedalam memori 9. Keyword new Untuk membuat object dari class kita mempergunakan keyword new. Ketika membuat object, kita bisa memberi kurung setelah nama class bisa juga tidak, seperti pada contoh dibawah 10. Set properti dari object Kita mempergunakan method setter. Harap diingat bahwa meskipun $stefan dan $jimmy dibuat dari class person keduanya adalah OBJECT yang BERBEDA 11. Mengakses data dari object Sistem Informasi UPN Veteran JawaTimur 11

Kita mempergunakan getter untuk mengakses data yang tersimpan di object kita sebenarnya adalah data yang sama dengan yang kita masukkan dengan mempergunakan setter. Ketika mengakses properti dan method dari class, kita mempergunakan operator ->. 12. Constructor Semua object bisa memiliki method built in yang bernama constructor. Dengan constructor kita dapat menginisialisasi properti dari object kita (memberi nilai kedalam properti) ketika kita meng-instantiate object. Note : Ketika kita membuat construct (membuat method ini bersifat opsional), php akan memanggil method construct()secara otomatis ketika kita meng-instantiate object. Method construct diawali dengan dua underscore ( ) dan kata construct diikuti dengan daftar argument (seperti function) Sistem Informasi UPN Veteran JawaTimur 12

13. Membuat object dengan construtor Kita bisa membuat object baru dengan constructor sekaligus memberi nilai ke propertinya, dalam artian kita tidak lagi memerlukan method setter 14. Membatasi akses ke properti dengan mempergunakan access modifiers Salah satu prinsip fundamental OOP adalah enkapsulasi. Idenya adalah, kita membuat kode yang lebih baik dengan membatasi akses ke struktur data pada object kita (properti) Ada 3 access modifier, yaitu : Public Private Sistem Informasi UPN Veteran JawaTimur 13

Protected Public adalah default modifier.ketika kita mendefine variabel dengan keyword var, variabel tersebut dianggap public 15. Membatasi akses ke properti dengan mempergunakan access modifiers : bag 2 Ketika kita mendeclare properti menjadi private, hanya class yang sama yang dapat mengakses properti tersebut. Ketika properti dideclare protected, hanya class yang sama dan class turunannya saja yang dapat mengakses properti tersebut. Properti yang dideclare public tidak memiliki batasan akses, berarti semua orang bisa mengaksesnya Coba listing kode dibawah Sistem Informasi UPN Veteran JawaTimur 14

16. Membatasi akses ke method Sama dengan properti. Dapat dibatasi dengan mempergunakan 3 modifier yaitu : Public Private Protected Karena method get_pinn_number() dideclare private, satu-satunya tempat kita bisa mempergunakan method ini adalah pada class yang sama dengan kata lain di method yang lain pada class yang sama. Jika kita ingin memanggil atau mempergunakan method ini secara langsung maka pergunakan modifier public. 17. Inheritance Kita bisa mempergunakan class sebagai dasar bagi class lain Kenapa? Agar kita dapat mempergunakan kembali kode yang sebelumnya pernah kita buat Kita ingin membuat class employee, karena employee adalah jenis dari orang, akan memiliki properti dan method yang secara umum sama. Sistem Informasi UPN Veteran JawaTimur 15

Dalam situasi demikian, inheritance dapat membuat kode kita lebih ringan, karena kita mempergunakan kode yang sama di dua class yang berbeda. 18. Reusing code dengan inheritance : part 2 Karena class employee dasarnya adalah class person, employee secara otomatis akan memiliki semua properti dan method public serta private dari class person. 19. Reusing code dengan inheritance : part 3 Kita dapat memanggil method get_name pada object employee kita seperti tampak pada listing kode dibawah Sistem Informasi UPN Veteran JawaTimur 16

20. Overriding method Kadang kala ketika memakai inheritance, kita perlu merubah operasi yang dijalankan oleh suatu method, sehingga method tersebut menjalankan operasi yang berbeda dengan method yang bernama sama yang ada pada parentnya (class yang di extend) Misal, method set_name() pada class employee melakukan hal yang berbeda dengan method set_name() yang ada pada class person. Kita meng-override set_name versi class person dengan cara mendeklarasikan method yang sama di class employee. 21. Overriding method : part 2 Kadang kala, kita ingin mengakses method class parent kita dari class anak kita. Dalam kasus diatas, mengakses method set_name() versi class person dari method yang ada pada class employee. Kode yang dipergunakan adalah : person::set_name($new_name); Sistem Informasi UPN Veteran JawaTimur 17

22. Overriding method : part 3 Dengan mempergunakan :: kita bisa menyebutkan nama class yang akan diakses php untuk menjalankan suatu method person::set_name() memerintahkan php untuk mencari method set_name() pada class person. Cara lain untuk melakukan hal ini adalah dengan mempergunakan keyword parent Sistem Informasi UPN Veteran JawaTimur 18

Tugas : Buat class buku dengan properti id_buku, judul_buku, pengarang, penerbit dan tahun terbit buatkan getternya dan (pilih salah satu) setter/constructor Sistem Informasi UPN Veteran JawaTimur 19

5. MVC 1. Buat 3 folder didalam project anda. Ketiga folder tersebut adalah (model, view dan controller). Susunan direktori seperti berikut Pola pengembangan MVC memisahkan aplikasi kedalam 3 modul yaitu model, view dan controller. Model bertugas mengelola data. Model menyimpan dan mengambil entiti yang dipakai dalam aplikasi, biasanya nilai dari entiti ini berasal dari database View (presentasi) bertugas untuk menampilkan data yang dikirimkan oleh model dengan format tertentu (pada aplikasi web data yang ditampilkan sebagai html output ) Controller bertugas menerima request dari client, menjalankan model agar melakukan operasi yang diminta dan mengirimkan data yang dihasilkan model ke layer view CONTROLLER 2. Controller adalah yang pertama kali menerima request, memparsing, meng-inisialisasi (membuat) dan meng-invoke model dan mengambil response dari model lalu mengirimkan response tersebut ke layer view. Dalam modul ini, controller hanya diimplementasikan kedalam satu class dengan nama controller. Halaman pertama kali yang diakses (entry point) adalah index.php. index php akan mendelegasikan semua request kedalam controller. 3. Class controller kita hanya memiliki satu function/method dan memiliki satu constructor. Didalam constructor yang dilakukan adalah meng-instantiate class orang (membuat object orang) dan ketika request berakhir, controler yang menentukan data apa yang dikirimkan ke layer model dan memilih file apa yang akan dibuka pada layer view. alur proses tersebut dapat dijelaskan dalam gambar berikut Sistem Informasi UPN Veteran JawaTimur 20

Sistem Informasi UPN Veteran JawaTimur 21

Sistem Informasi UPN Veteran JawaTimur 22

MODEL 4. Class orang adalah entity. Class ini bertujuan untuk menyimpan data. Listingnya sebagai berikut VIEW (layer presentasi) 5. View bertugas untuk memformat tampilan data yang diterima dari model dalam suatu form yang dapat diakses oleh user. Controller mendelegasikan data dari model ke elemen-elemen tertentu dari view. Layer view dalam modul ini berisi dua file yaitu input.html yang berfungsi membuat tampilan untuk menginputkan data (dalam hal ini data nama orang) dan cetak.php yang berfungsi menampilkan nama yang telah diinputkan oleh user input.html Sistem Informasi UPN Veteran JawaTimur 23

cetak.php Sistem Informasi UPN Veteran JawaTimur 24

6. DB MVC 1. Buat database dengan nama mhs dan tabel dengan nama mahasiswa dengan atribut id integer(2) PK NOT NULL AUTO INCREMENT, nama varchar(50), alamat varchar(75), telp varchar (10). 2. Buat 3 folder didalam project anda. Ketiga folder tersebut adalah (model, view dan controller). Susunan direktori seperti berikut 3. index.php 4. config.php Sistem Informasi UPN Veteran JawaTimur 25

CONTROLLER 5. Controller.php Sistem Informasi UPN Veteran JawaTimur 26

MODEL 6. Class orang adalah entity. Class ini bertujuan untuk menyimpan data. Listingnya sebagai berikut 7. Class dao_orang dipergunakan untuk memasukkan semua query yang dilakukan yang terkait dengan entity orang. Dalam hal ini querynya adalah insert dan select * Sistem Informasi UPN Veteran JawaTimur 27

8. Class db.php dipergunakan untk membuat koneksi ke database VIEW (layer presentasi) 9. input.html Sistem Informasi UPN Veteran JawaTimur 28

10. cetak.php Sistem Informasi UPN Veteran JawaTimur 29