Blog Nur Akhwan

Blog Nur Akhwan - Blog tentang Pemrograman Web dengan Bahasa PHP, Download Gratis Aplikasi Web PHP

Akhirnya, gan. selesai juga tutorial pembuatan website dengan tema website sekolah, dengan menggunakan PHP Framework Codeigniter, dan CSS Framework Codeigniter. Sumpah, ane sulit banget, ngembangin bahasa buat tutorial ini. Maaf, ya gan, pertama-tama emang mau niat buat tutorial yang sangat terstruktur, namun kenyataannya sulit sekali, harus mulai dari mana, dan kemana setelahnya dan setelahnya. Akhirnya, melalui posting ini, langsung saja, ane kasih link download skrip final pembuatan web profil sekolah dengan codeigniter dan twitter bootstraap seperti pada postingan pertama saya yang berjudul Website Profil Sekolah dengan Codeigniter dan Twitter Bootstrap (Bag 1)


Website sekolah dengan codeigniter


Langsung aja, ini link downloadnya, gan, via empat shared dot kom
1. Database : 
http://www.4shared.com/document/4wIGMjwoba/blog_web_sekolah.html

2. Source-code :
http://www.4shared.com/rar/XORbUBEWce/blog_web_sekolah.html

Sekian ya gan, mohon maaf, klo misalnya judul postnya di postingan pertama menipu, ane sadar, ane khilaf, mohon maaf yang sebesar-besarnya.. MERDEKAAAA... !!!! :D :D 



*) PROMOSI JASA 

Jangan lupa klo membutuhkan website profil, website sekolah, sistem informasi, yang ada hubungannya dengan website, hubungi ane saja, gan. Respon cepat hubungi via Whatsapp : 085292747190. 
Posting ini saya buat, semata-mata untuk memberikan pelayanan prima kepada pengunjung setia blog ini, khususnya pada posting Aplikasi Sederhana Manajemen Surat (ASAMURAT) berbasis web.  Halah... pelayanan prima koyo opo wae, bro.. Eh, iya ding, jadi teringat, bahwa ini merupakan salah satu mata diklat di tingkat SMK jurusan Administrasi Perkantoran saya dulu, kalau nggak salah P3 (Prosedur Pelayanan Prima) di SMK Negeri 1 Pengasih

Iya, setelah saya membuat posting tentang Aplikasi ASAMURAT, banyak yang sudah mendownload, banyak yang sudah saya kirimi via email. Dan setelah hampir gak tertangani bagi yang sudah merequest via email, saya sediakan link download via ziddu. Namun anehnya lagi, banyak yang nggak bisa terdownload via ziddu, akhir-akhirnya lagi saya buatkan link via empat-shared dot kom. 

Disamping kesulitan download, ada juga error-error yang ditemui. Ya, memang lingkungan aplikasi di tempat saya menguji program di tempat saya bisa saja sangat berbeda 450 derajat dengan di tempat pendownload. Beberapa di antaranya adalah sebagai berikut :

Berdasarkan dari masukan yang masuk ke saya, sebagian besar error adalah :

ERROR : Not found setelah klik login, solusinya :
Error ini kemungkinan besar disebabkan karena fitur dari Web Server (APACHE) yaitu "REWRITE_MODULE" belum aktif. Dalam aplikasi ASAMURAT ini saya menggunakan skrip HTACCESS untuk pembuatan URL SEO friendly, yang mengharuskan fitur "rewrite_module" apache harus aktif. Untuk mengaktifkannya secara umum (baik  untuk WAMP/XAMPP) adalah dengan membuka file "httpd.conf" dan mengedit isinya. File "httpd.conf" ini biasanya terletak di folder "apache/conf/httpd.conf". Berikut langkah-langkahnya : 

1. pertama, matikan service Apache-nya dulu, lewat Start > Control Panel > Administrative Tools > Services, berikut ini. Cari dari dalam list "Apache_xx" xx biasanya menunjukkan versi, klik dobel, akan muncul seperti priview di bawahnya, dan klik Stop  :

2. Buka file di folder "apache/conf/httpd.conf", kemudian buka dengan editor teks, seperti "Notepad++" berikut ini  : 


3. Shortcut Ctrl+F (Find), ketikkan kata kunci "rewrite_module", enter.

4. Cari kata : 
#LoadModule rewrite_module modules/mod_rewrite.so
5. Dan hilangkan tanda pagar "#" di depan kalimat tersebut, menjadi 

LoadModule rewrite_module modules/mod_rewrite.so

kemudian, jangan lupa tutup file "httpd.conf" tersebut.

6. Terakhir, masuk kembali ke Start > Control Panel > Administrative Tools > Services, pilih Apachexx, kemudian klik 2x, dan klik "Start"

7. Dan akhirnya, refresh kembali halamanya, jika berhasil, maka login akan berhasil dengan lancar tanpa terkendali, jika tidak, maka ya error... ulangi lagi, barangkali ada langkah-langkah yang belum dilaksanakan dengan baik.. :P


Muncul tulisan "<?=$this->session->flashdata...dst" atau tulisan-tulisan kode PHP di tempat yang tidak seharusnya, solusinya :
Assalamu'alaikum warah matullohi wabarakatuh. 

Alhamdulillah, segala puji bagi Alloh, karenaNya masih diberi kenikmatan kesehatan dan kekuatan untuk sampai pada (yang sangat tidak terasa) pertengahan bulan Ramadhan tahun ini. 

Bulan Ramadhan tahun ini merupakan bulan Ramadhan yang sangat spesial. Ada dua even besar yang sangat mengguncang Indonesia, khususnya, yaitu Piala Dunia dan Piala Presiden (eh, maksudnya Pemilu Presiden). Dua peristiwa besar tersebut, malah tidak menambah suasana khusuknya bulan Ramadhan, kan ya gan.. ? (padahal, tidak ada kedua acara tersebut, ane juga nggak menjamin, ane bisa khusyuk, gan.. :D, maklum newbie, urusan agama :D). Sebagai contoh, banyak kampanye-kampanye hitam sebelum Pilpres yang , yang tentunya itu merupakan sebuah perbuatan  dosa, karena menyebarkan keburukan orang lain. Apalagi disebarkan di media sosial, yang jangkauan penerima informasinya sangat luas, otomatis dosanya juga semakin tambah banyak, daripada jika kita ngomongnya sama temen sendiri, kan..? (coro bodon, orang jawa bilang). Terus kalau Piala Dunia, tu ya, rata-rata pas saur, nah kan, ane sering lebih suka nongkrongin TV, daripada nongkrong di masjid buat sholat subuh. Ya to gan. Sebagai warga negara yang baik, pada Pilpres ini, saya tidak golput. Kebetulan di TPS ane, TPS 9, dusun Sumoroto, Desa Sidoharjo, Kecamatan Samigaluh, Kulon Progo, Yogyakarta (lengkap, sesuai KTP), letaknya di pusat balai Desa Sidoharjo, jadi hansip yang ditugaskan di sini lebih banyak. Kalau gak salah, ada sekitar 3 hansip (yang ane temuin), dibantu 2 polisi dari polsek. Setelah mencoblos, ane langsung pulang, gan, takut dikejar awak media, padahal kebetulan tidak diliput media massa, jadi tidak masuk TV, takut riya .. :D. 

Hansip. Sumber : republika.co.id

Ok, skip, dulu gan, pengantarnya, malah ndak nyambung nanti. Ane mau share cerita di balik hingar bingar Pemilu, ada sesosok atau banyak sosok, yang seringkali luput dari perhatian kita. Dia adalah Pak atau Bu Hansip (emansipasi wanita, gan, soalnya banyak juga hansip yang wanita, loh). Sosok gagah pemberani, terdepan mengamankan. Sosok mereka sangat mudah kita kenali dari seragamnya yang khas, baju hijau, celana hijau, pake sepatu boot tentara, topi, dan tentunya juga Pentungan. Sekilas memang tampak serem memang gitu, gan. Tapi ya, namanya tuntutan peran, sebagai penjaga keamanan saat pemilu gitu, ya harus serem. Kalau gak serem namanya mau ngelawak, kali ya.. ? Ya, dunia perlawakan seringkali menampilkan sosok hansip ini, namun dengan gambaran yang kurang lebih “diremehkan”. Di dunia hiburan, sosok hansip sepertinya adalah seorang yang bertugas di pos ronda, tidur-tiduran, main skak, main kartu. Seringkali sebagai obyek kekesalan orang lain, dan lebih tepatnya hampir seperti pesuruh. Kejam sekali dunia hiburan itu menempatkan sosok hansip ini, jauh dari kesan mendidik bagaimana menghargai dan mengetahui lebih lanjut sosok hansip ini. Perannya sangat vital, hampir setiap perhelatan politik, semisal Pemilu Caleg, Pemilu Presiden, Pemilihan Bupati, (di Jogja yang ISTIMEWA, tidak ada pemilihan Gubernur, ya..) dan Pilihan Kepala Desa, sosok HANSIP ini tidak pernah absen, dan wajib ada. Selain itu di acara misalnya ada kunjungan orang penting ke desa, pak/bu HANSIP ini siap mengamankan situasi. Di tingkat dusun, semisal ada acara nikahan, rame-rame, mereka juga sering dimintai bantuan. 

Siangnya sekitar habis dhuhur, saya kembali ke TPS, untuk melihat penghitungan suara. Mereka sibuk, melihat perhitungan suara, saya memilih di luar TPS, tidak tertarik buat masuk, toh nantinya juga diumumkan. Saya memang sudah berniat dari rumah buat menggali lebih banyak informasi seputar hansip ini, atau istilahnya wawancara, gitu. Ada kursi kosong di pos hansip. Kebetulan beberapa hansip, saya sudah kenal baik, secara tetangga gan.. :D. Yang satu bernama Pak Jatun, dan Pak Jimat (duet J), dan satunya lagi Ibu siapa, ane kurang begitu tahu, karena tidak satu dusun. Dilihat dari usianya, sepertinya ketiganya tidak muda lagi, sekitar 50 tahunan. Secara, hampir sulit, pada dekade ini untuk menemui hansip yang masih muda-muda.

Suasana siang yang panas, ditambah bulan puasa, terbukti tidak menyurutkan semangat mereka untuk standby menjaga pelaksanaan pilpres di sini. Dari informasi yang saya gali, mereka bertugas dengan sistem shift, dimulai dari pagi hari, satu hari sebelum hari H pilpres, untuk mendampingi dan mengamankan proses distribusi surat suara. Kebetulan mereka bertiga mendapatkan jatah shif, pada hari H pilpres ini, sampai nanti maghrib. 

Lanjut mengorek informasi dari mereka, mereka rata-rata sudah bertugas menjadi hansip sejak puluhan tahun yang lalu. Bapak Jatun, menjadi hansip dimulai sekitar tahun 1965an. Berarti hampir setengah abad gan, mereka bertugas (muke gilee... ). Sementara Bapak Jimat, dimulai sekitar tahun 80an, atau sekitar 30 tahunan, ya. Dan ibu yang satunya (sumpah ane, belum sempat tanya namanya), dimulai dari tahun 90an. besar. Sepertinya mereka bertiga berbeda generasi. Pak Jatun, berarti bertugas sejak zaman PKI, yang artinya pada saat itu resiko gangguan keamanan lebih tinggi dibandingkan sekarang. Tapi beliau bersyukur, bisa bertahan menjadi hansip sampai saat ini, merupakan bukti bahwa Alloh SWT, masih memberikan rahmat dan kemudahan bagi beliau dalam bertugas menjadi hansip. Mengenai perekrutan menjadi Hansip, Pak Jatun, yang paling senior, mengatakan bahwa dulu, menjadi hansip kalau sekarang prosesnya mirip seperti mendaftar tentara. Harus diseleksi baik dari fisik maupun mental, dan hanya peserta seleksi yang memenuhi syarat, yang dapat menjadi hansip ini. Tesnya adalah dulu di kota kabupaten, yaitu di Wates, Kulon Progo. Kebetulan beliau terpilih menjadi hansip itu sebagai salah satu wakil dari Kecamatan Samigaluh. Ada beberapa temannya juga dari Samigaluh yang lolos saat itu. Nah, di tingkat kecamatan, beliau ini adalah sebagai pembina dari hansip hansip di tingkat desa seperti Pak Jimat dan lain-lain. Istilahnya kalau sekarang adalah seniornya, kalau di pramuka Kakak Pembina, kali ya.. ? Beliau pada saat itu bertugas, memberikan pelatihan-pelatihan seputar per-hansip-an kepada “junior-juniornya” di tingkat kecamatan.

Hansip yang sering kita sebut saat ini, dulu namanya bukan hansip. Banyak versi, namanya. Ada WANRA (Perlawanan Rakyat), kemudian KAMRA (Keamanan Rakyat).Yang Wanra yang membina adalah tentara, dan Kamra yang membina adalah polisi. Kemudian keduanya bersatu menjadi HANSIP seperti yang kita sebut selama ini, yang artinya Pertahanan Sipil, dan yang terbaru saat ini namanya adalah LINMAS (Perlindungan Masyarakat). Nah ini yang mungkin belum pada tahu, jangan sebut mereka Hansip, tapi Linmas.. Semuanya sama, bertugas melindungi masyarakat, di lingkup yang lebih kecil yaitu desa atau dusun. Nah, yang menjadi pertanyaan ane, dimana tugas polisi dan tentara, jika tugas menjaga keamanan dan ketertiban masyarakat di tingkat dusun sudah diambil alih oleh Linmas ini..? Padahal polisi dan tentara yang jelas-jelas sudah diakui oleh negara, dan pastinya digaji rutin oleh negara. 

Nah, ngomongin soal gaji rutin Bapak dan Ibu Linmas ini, ternyata kalau jaman dulu, menurut penuturan bapak Jatun tadi, tidak pernah digaji secara rutin oleh negara. Mereka hanya menerima bayaran jika mendapatkan tugas tugas seperti even pemilu ini sampai saat ini. Yang mereka dapatkan rutin adalah seragam, beserta perlengkapannya. Itupun kalau dulu, sampai 5 tahun, untuk mendapatkan “dun-dunan” baju dan perlengkapannya ini. Kalau sekarang, hampir setiap tahun selalu mendapatkan baju dan perlengkapannya dari pemerintah kabupaten. Dan juga setiap idul fitri mendapatkan bingkisan hari raya. 

Kesehariannya para hansip ini, mempunyai profesi utama. Nggak mungkin kan, kalau harus hidup dengan mengandalkan penghasilan dari menjadi Linmas ini, yang gajinya tidak tentu. Sama seperti warga desa kami secara umum, ketiganya berprofesi utama sebagai petani, sekaligus peternak dan pekebun. Yah memang banyak profesinya, tapi hasilnya, kalau dibandingkan dengan buruh, lebih sedikit gan. 

Ya, memang begitulah realitanya, gan. Dibalik gemerlapnya gedung DPR beserta anggota-anggota dewannya, ada cerita tentang dedikasi tanpa pamrih, saat proses pemilihan anggota legislatif ini, yang mungkin barangkali mereka tidak tahu, atau tidak pernah memikirkan nasib para LINMAS ini. 

Sekian dari ane, tambahan pengertian dari HANSIP menurut Wikipedia :


HansipDari Wikipedia bahasa Indonesia, ensiklopedia bebasHansip adalah satuan keamanan di Indonesia. Kata hansip sendiri adalah kependekan dari Pertahanan Sipil. Saat ini Hansip berubah menjadi Linmas.Pihak militer memberikan pelatihan bagi Hansip dan memberi mereka persenjataan. Pasukan Hansip dibentuk di setiap desa, anggotanya diangkat dari masyarakat. Sistem pertahanan dan keamanan nasional Indonesia diadasarkan atas prinsip "pertahanan dan keamanan secara menyeluruh" yang berarti bahwa Angkatan Bersenjata dan masyarakat Indonesia secara keseluruhan sama-sama bertanggung jawab dapat menjaga keamanan dan pertahanan negara. Organisasi Pertahanan oleh masyarakat sipil bertanggung jawab atas hal-hal yang terkait dengan keamanan dan keteraturan dan harus membantu rakyat di pedesaan dalam kondisi darurat. Hansip berada di bawah pengawasan Bupati dan Gubernur pemerintah daerah.
Dasar hukum dari pembentukan milisi sipil adalah Undang-undang No. 20/1982 mengenai Pokok-Pokok Keamanan dan Pertahanan Negara, yang mengakui hak setiap warga negara untuk membela negara.
Milisi-milisi bentukan pemerintahDi antara organisasi milisi yang dibentuk oleh pemerintah antara lain:1. Hansip (Pertahanan Sipil), di bawah Departmen Dalam Negeri untuk kepentingan "keamanan total"2. Wanra (Perlawanan Rakyat), di bawah komando militer dan khususnya untuk mengatasi "ancaman eksternal."3. Kamra (Keamanan Rakyat), berada di bawah komando polisi, khusus untuk menangani konflik dalam negeri4. Pam Swakarsa (Milisi beranggotakan masyarakat secara sukarela)5. Kotib (Kota Tertib), Banpol (Bantuan Polisi), dan Potmas (Potensi Masyarakat) yang dinaungi oleh polda Metro Jaya.  

Wassalam..

Assalamu'alaikum warah matullohi wabarakatuh..

Selamat pagi gan. gimana puasanya, lancar jaya ..? Menginjak puasa hari ketiga (yang mulai hari Sabtu), pastinya sudah merasakan suka dukanya berpuasa. Banyak godaan syetan yang terkutuk, mulai dari suntuk, kantuk, perut kemrucuk, senantiasa mendampingi langkah agan-agan semuanya dalam berpuasa. Oleh karena itu, kita wajib bisa menjaga puasa kita, dari hal-hal yang tidak berguna, yang hanya akan menghilangkan pahala dari puasa, menambahkan dosa kita, dan akhirnya kita cuma mendapatkan lapar dan dahaga saja .. hahahaha *latihan kayak abdur*

Anggap aja itu pengantar dan bab satu-nya gan, lanjut ke tinjauan pustaka, eh.. pembahasan masalah saja. (inget puasa tahun lalu, ane masih sibuk nyelesaiin laporan penggunaan dana RT, eh.. sekripsi).

Oke, gan, pada kesempatan kali ini, ane mau membagikan sekaligus mempromosikan salah beberapa potensi wisata di Kabupaten Kulon Progo, salah satu kabupaten di Daerah Istimewa Yogyakarta, yang berada di barat kali Progo (sampai ujung kulon masih Kulon Progo, lho gan... :ngakaks).

Minggu kemarin, 29 Maret 2014, kami sekelompok pemuda dusun Sumoroto, desa Sidoharjo, kecamatan Samigaluh, kabupaten Kulon Progo, merasa penasaran atas salah satu obyek wisata baru di Kecamatan Girimulyo, yaitu Embung Girimulyo, dan Grojogan Sewu. Kami ber-sembilan, satu dusun, berangkat dari rumah sehabis dhuhur gan, biar tenang di perjalanan karena udah shalat dhuhur.. :cool

Karena kami dari Samigaluh, kami menuju tekape, melewati rute jalan Samigaluh-Purworejo. Secara umum rute perjalanan adalah Samigaluh - Plono - Kaligesing - Pasar Pendhem - Tegalsari (Purwosari Girimulyo) - Goa Kiskendho - Pertigaan Jonggrangan - ambil kanan, jalan-satu-satunya ke Embung Girimulyo dan Grojogan Sewu.

Sampai di tekape yang pertama (Embung Girimulyo), lokasi emang masih belum banyak pepohonan, sehingga terkesan gersang. Menurut pengelola embung disana, ke depan embung Girimulyo ini akan dibuat dengan konsep kebuh buah, seperti embung yang sudah terkenal sebelumnya di Gunung Kidul : Embung Nglanggeran. Saat ini, masih dalam tahap penyemaian bibit-bibit pepohonan, yang akan memperindang lokasi kebuh buah. Kesan gersang dan panas, akan terhapus seketika, saat kita naik ke atas ke bibir embungnya. Ya, lokasi parkiran berada di bawah embung, dan kita harus naik ke atas mengitari embung. Subhanalloh, luar biasa. Lokasi embung yang berada di ketinggian, sehingga kita dapat melihat cakrawala nan jauh disana, landscape view dari kota Wates di sebelah selatan, kota Purworejo (klo gak salah) di sebelah barat, dan tentunya kota Yogyakarta di sebelah timur. Dan mungkin, jika waktunya tepat pada saat matahari terbit atau saat matahari terbenam, pasti lebih banyak keindahan ciptaan Gusti Alloh yang dapat kita saksikan. Betewe, kami sampi di lokasi jam 14an. 

Berikut skreenshut foto-foto di lokasi, mohon maaf, karena banyak gambar yang menunjukan kenarsisan manusia disini ..


kumpul dulu
di jalan
di jalan
sampai purwosari
kota jogja view
kota wates
nyampe tekape
foto bersama
nyoba self timer kemdig
nggaya

saya juga bisa nggaya

tampak embung

paling apek tek kiro

hamid

grojogan sewu

adi dan grojogan sewu
jepretane gita

grojogan sewu.
Itu gan, sekilas gambaran perjalanan kami, dalam rangka mengenal lebih jauh potensi wisata kabupaten Kulon Progo, Daerah Istimewa Yogyakarta, dan juga dalam rangka menyemarakkan program "bela beli Kulon Progo". Terima kasih... Wassalam....



Selamat malam pemiarsa. Kembali lagi saya menulis tentang pemrograman PHP lagi, di akhir bulan April 2014 ini. Kasusnya kali ini adalah membuat log akses user, baik dengan media penyimpanan log file .TXT ataupun dengan database. Coretan ini lahir, disebabkan karena pentingnya log user ini, bagi pengembangan sebuah aplikasi, dan disaat nanti ditemui error pada saat user menggunakan program aplikasi yang kita buat. Memang sih, biasanya webserver biasanya telah menyediakan log akses, namun sepanjang yang saya tahu hanya mencatat hal-hal umum, seperti error-error PHP, MySQL ataupun apachenya. Yang kita butuhkan adalah log akses user yang lebih spesifik atau sesuai dengan yang dibutuhkan oleh aplikasi kita. Bayangkan, misalkan aplikasi berbasis web kita disusupi oleh hekel, misalkan ia berhasil mengakses tabel daftar username dan password aplikasi kita, sehingga ia dapat leluasa membuat username baru beserta passwordnya. Kemudian ia login biasa melalui aplikasi yang kita buat. Hal tersebut pasti tidak tercatat di log user yang otomatis terbuat oleh error_log php. 

1. Langsung saja, tanpa cas cis cus, karena saya lebih suka cus cis cas, langkah pertama adalah copy master Codeigniter-nya ke folder webserver saya. Tempat saya di “www” (WAMP-lover, haha).
2. Buat folder baru sejajar folder “application”, dll, dengan nama “capedeh” (ini sebenarnya bebas, tapi agar sinkron dengan tutorial ini, disamain aja dah).
3. Selanjutnya, buat database “lab_”, kemudian buat sebuah tabel dengan nama “pengguna” untuk menyimpan data username dan password untuk login. Cepatnya, kopaskan skrip SQL berikut ini :


CREATE TABLE IF NOT EXISTS `pengguna` (  `id` int(5) NOT NULL AUTO_INCREMENT,  `nama` varchar(50) NOT NULL,  `username` varchar(15) NOT NULL,  `password` varchar(75) NOT NULL,  `tgl_aktif` datetime NOT NULL,  `status` enum('Y','N') NOT NULL,  PRIMARY KEY (`id`)) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

-- Dumping data untuk tabel `pengguna`
INSERT INTO `pengguna` (`id`, `nama`, `username`, `password`, `tgl_aktif`, `status`) VALUES(1, 'Admin Pusat', 'admin', '21232f297a57a5a743894a0e4a801fc3', '2014-04-28 16:58:30', 'Y');
4. Ubah pengaturan di “application/config/config.php”, baris 17, menjadi  :
$config['base_url'] = 'http://localhost/lab/log_akses/';
5. Ubah pengaturan di “application/config/database.php”, baris 51 – 54, menjadi :
$db['default']['hostname'] = 'localhost';$db['default']['username'] = 'root';$db['default']['password'] = '';$db['default']['database'] = 'lab_';
6. Ubah pengaturan di “application/config/routes.php”, baris 41, menjadi : 
$route['default_controller'] = "apps";
7. Masuk ke folder “application/controllers/”, buat controller baru dengan nama “apps”, isinya sebagai berikut, saya copy pastekan ke pastebin aja, (apps.php) :



8. Buat view untuk login (login.php):


9. Buat view template halaman admin (aaa.php) :


10. Buat view halaman utama (d_amain.php) :

11. Buat view halaman daftar log akses (f_log_akses.php) :

12. Buat view untuk halaman ubah password (f_password.php) :


13. Terakhir, buat di folder "application/helper/" dengan nama file "my_helper.php" :


Sedikit penjelasan mengenai alur program yang saya tulis :
  1. untuk desain dalam tutorial ini adalah menggunakan framework CSS Twitter Bootstrap versi 2.3 (kalo gak salah, yang icon-iconnya udah pake font-awesome) dan file bootstrap.css-nya telah saya modifikasi.
  2. walaupun Codeigniter, merupakan framework berbasis MVC, namun dalam tutorial ini (dan juga semua program CI) saya hanya memakai VC-nya, M-nya tidak saya pakai, soalnya ribet, gan.. hahaha #myCode_myStyle :D :D jangan dibully, ya mastah..
  3. saya menggunakan helper "my_helper.php" dalam rangka mempersingkat proses tulis dan buat file log secara otomatis. ada 3 fungsi dalam "my_helper.php", yaitu _tulis_f($data, $file), untuk menuliskan log ke dalam file yang telah ditentukan, _buat_baru($user, $file), untuk membuat file log baru, jika ternyata file log yang ditentukan tidak ditemukan (sekaligus menghindari error Codeigniter), dan terakhir fungsi detect(), yang digunakan untuk mendeteksi nama browser, versi browser, dan operating system dari user yang sedang menggunakan aplikasi. Walupun sebenarnya CI udah menyediakan, tapi agak panjang2 nama variabelnya.

Untuk download script secara lengkap dapat didownload melalui link berikut ini :

Download skrip

Untuk melihat demo dapat dilihat pada link berikut ini :

Demo program 

Terim kasih.. :) #keep_Ngoding

Selamat pagi-siang-sore-malem-dinihari (tergantung suasana hati), pemiarsah. Hehe.. Ane muncul lagi di posting ke-empat pada bulan Januari 2014, seperti resolusi saya di tahun 2014 ini, yaitu minimal 4 postingan setiap hari. Yah, walaupun masih sebatas mentaati resolusi, tapi saya tetap berusaha untuk memposting ke blog ini lebih dari empat. Nah, kalau posting 1-3 gak ada sangkut pautnya sama pemrograman, maka di posting ini saya memposting tentang tips dan trik pemrograman PHP, yang nyatanya memang lebih mudah memposting tentang pemrograman PHP daripada artikel-artikel berjenis lainnya.

Ya, sesuai judulnya, saya akan membagikan sedikit tips dan trik saya seputar manajemen data (CRUD – Create, Read, Update, Delete), khususnya yang edit data. Posting saya kali ini, kasusnya kayak gini :

  1. Saat kita melakukan edit data, setelah klik link “edit”, maka akan dimunculkan form edit data. Kalau input-an yang dipakai adalah jenis “text” (<input type=”text” name=”xxx”>) itu sih masih mudah, hanya tinggal mengisikan value-nya : value=”<?php echo $data->nama; ?>” gitu sudah selesai, tapi bagaimana edit data dengan otomatis terisi pada input-an berjenis <select>, radio button, check box, tanggal dengan <select> ... ?
  2. Rata-rata dalam membuat form inputan “Tambah Data” ataupun “Edit Data” adalah membuat form input sendiri-sendiri, form “Tambah Data” sendiri, dan form “Edit Data” sendiri. Nah dalam postingan saya ini, saya akan berikan tips dan trik membuat form tambah dan edit data dalam 1 form. Jadi 1 form dapat digunakan untuk tambah data maupun edit data, sehingga lebih menghemat jumlah file, memudahkan modifikasi program.
Ok, langsung ke tekape, pertama dan utama adalah membuat database. Buat database dengan nama “lab”. Disini saya memakai 2 tabel, tabel data_kota_asal sebagai tabel referensi, dan data_mahasiswa sebagai data yang akan kita otak-atik. Skripnya :

CREATE TABLE IF NOT EXISTS `data_kota_asal` (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `nama` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
INSERT INTO `data_kota_asal` (`id`, `nama`) VALUES
(1, 'Yogyakarta'),
(2, 'Kulon Progo'),
(3, 'Bantul'),
(4, 'Sleman'),
(5, 'Gunung Kidul'),
(6, 'Klaten'),
(7, 'Magelang'),
(8, 'Purworejo'),
(9, 'Boyolali'),
(10, 'Kebumen');

CREATE TABLE IF NOT EXISTS `data_mahasiswa` (
  `id` int(2) NOT NULL AUTO_INCREMENT,
  `nama` varchar(30) NOT NULL,
  `jk` enum('Laki-Laki','Perempuan') NOT NULL,
  `tmp_lahir` varchar(30) NOT NULL,
  `tgl_lahir` date NOT NULL,
  `kota_asal` int(2) NOT NULL,
  `agama` enum('Islam','Kristen Katolik','Kristen Protestan','Hindu','Budha','Konghucu','Lainnya') NOT NULL,
  `hobi` varchar(150) NOT NULL,
  `foto` varchar(150) NOT NULL,
  `deskripsi` mediumtext NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

INSERT INTO `data_mahasiswa` (`id`, `nama`, `jk`, `tmp_lahir`, `tgl_lahir`, `kota_asal`, `agama`, `hobi`, `foto`, `deskripsi`) VALUES
(1, 'Nur Akhwan', 'Laki-Laki', 'Kulon Progo', '1990-03-26', 1, 'Islam', 'Futsal-Mancing-Mapala-SMSan-FBan-Twitteran', 'Koala.jpg', 'Nothing special'),
(2, 'Akhwan Nur', 'Laki-Laki', 'Kulon Progo', '1990-03-17', 2, 'Islam', 'Futsal-Mapala-Twitteran', 'Hydrangeas.jpg', 'Ya saya ini seperti saya..');

Pertama, adalah membuat file “koneksi.php” sebagai pengaturan koneksi program dengan database. Skripnya : 


<?php 
$koneksi  = mysql_connect("localhost", "root", "");
$db   = mysql_select_db("lab");
?> 

Tidak usah saya jelaskan, sudah menjadi rahasia umum :P

Kedua, buat file “index.php” untuk menampilkan data mahasiswa, skripnya :


<?php
include "koneksi.php";
$ambil_data  = mysql_query("SELECT data_mahasiswa.*, data_kota_asal.nama AS asal_kota FROM data_mahasiswa JOIN data_kota_asal ON data_mahasiswa.kota_asal = data_kota_asal.id");
?>
<h5>Data Mahasiswa</h5>
<a href="form.php?mode=add">Tambah</a><br>
<table width="100%" border="1">
 <tr>
  <th width="10%">Nama</th>
  <th width="10%">Jenis Kelamin</th>
  <th width="10%">Tempat, Tgl. Lahir</th>
  <th width="10%">Agama</th>
  <th width="10%">Hobi</th>
  <th width="10%">Kota Asal</th>
  <th width="10%">Deskripsi</th>
  <th width="10%">Aksi</th>
 </tr>
 
 <?php
 if (mysql_num_rows($ambil_data) < 1) {
 ?>
 <tr><th colspan="7">Belum ada Data</th></tr>
 <?php
 } else {
  while ($data = mysql_fetch_array($ambil_data)) {
 ?>
  <tr>
   <td><?php echo $data['nama']; ?></td>
   <td><?php echo $data['jk']; ?></td>
   <td><?php echo $data['tmp_lahir'].", ".$data['tgl_lahir']; ?></td>
   <td><?php echo $data['agama']; ?></td>
   <td><?php echo $data['hobi']; ?></td>
   <td><?php echo $data['asal_kota']; ?></td>
   <td><?php echo $data['deskripsi']; ?></td>
   <td><a href="form.php?mode=edit&id=<?php echo $data['id']; ?>">Edit</a></td>
  </tr>
 <?php 
  }
 }
 ?>
</table> 

Tidak akan saya jelaskan, karena umumnya sudah pada tahu, gitu ya..

Ketiga, membuat sebuah form yang kita namai dengan “form.php” yang akan kita gunakan baik untuk “Tambah Data” dan “Edit Data”. Skripnya :

<?php
include "koneksi.php";
// ambil file koneksi.php untuk koneksi database

Penjelasan 3 baris dibawah komentarr 
Array data, untuk pilihan pada inputan berjenis radio <select>, <input type=”radio”> dan <input type=”checkbox”>. Ini trik-nya, dimana biasanya kita kalau memberikan option untuk input type <select>, <input type=”radio”>, dan <input type=”checkbox”> dengan menuliskan satu persatu, dengan ini kita lebih sedikit menuliskan skripnya dan memudahkan jika akan menambahkan pilihannya. $pil_jk, untuk menampung data pilihan jenis kelamin, $pil_agama, untuk menampung pilihan data agama, dan $pil_hobi, untuk menampung pilihan jenis hobi
$pil_jk   = array('Laki-Laki','Perempuan');
$pil_agama  = array('Islam','Kristen Katolik','Kristen Protestan','Hindu','Budha','Konghucu','Lainnya');
$pil_hobi  = array('Futsal','Band','Mancing','Mapala','SMSan','FBan','Twitteran');

Penjelasan 2 baris dibawah komentarr 
Disini merupakan pendeklarasian variabel URL ($_GET) yang akan MENJADI DASAR penggunaan form, apakah untuk “Tambah Data” ataupun untuk “Edit Data”. $mode, adalah menangkap variabel URL ?mode=xxxx dan $id, untuk menangkap variabel &id=xxx Saya menggunakan skrip : isset($_GET[‘mode’]) ? $_GET[‘mode’] : “”; Sebenarnya untuk menanggulangi error “Undefined index ...” pada PHP versi terbaru. $mode = isset($_GET['mode']) ? $_GET['mode'] : "", jika diartikan dalam bahasa manusia adalah : variabel $mode akan terisi bilamana $_GET[‘mode’] sudah terdefinisi, maka akan diisikan dengan $_GET[‘mode’] tersebut, jika belum maka kosong. Ini merupakan penyederhanaan dari penulisan IF .. ELSE ...
$mode   = isset($_GET['mode']) ? $_GET['mode'] : "";
$id   = isset($_GET['id']) ? $_GET['id'] : "";

Penjelasan 14 baris dibawah komentarr
Nah disinilah kuncinya trik satu form untuk dua fungsi tambah dan edit. Prinsipnya adalah setiap inputan di form telah diisikan value-nya, berdasarkan isi variabel $mode yang dideklarasikan di atas. Misalnya inputan <input type=”text” name=”nama”>, akan kita tambahi “value=”<?php echo $nama; ?>”” , dimana variabel $nama akan kita deklarasikan di bawah ini. Untuk $mode yang isinya “add” atau “Tambah data”, maka semua isi variabel di form adalah “” atau kosong.
if ($mode == "add") {
 $id   = "";
 $nama   = "";
 $jk   = "";
 $tmp_lahir  = "";
 $tgl_lahir  = "";
 $tgl_lahir_tgl  = "";
 $tgl_lahir_bln  = "";
 $tgl_lahir_thn  = "";
 $kota_asal  = "";
 $agama  = "";
 $hobi   = "";
 $foto   = "";
 $deskripsi  = "";

Penjelasan 15 baris dibawah komentarr
 Jika variabel $mode berisi “edit”maka variabel value dari setiap inputan diambil dari database, berdasarkan data yang dipilih, yang querynya di skrip : $q_data_edit = mysql_query("SELECT * FROM data_mahasiswa WHERE id = '$id'"); $data_edit = mysql_fetch_array($q_data_edit); Untuk data tanggal lahir, data yang didapatkan adalah berbentuk “YYYY-MM-DD” sehingga karena di form ini menggunakan <select> maka harus dipecah-pecah YYYY, MM dan DD nya.
} else if ($mode == "edit") {
 $q_data_edit = mysql_query("SELECT * FROM data_mahasiswa WHERE id = '$id'");
 $data_edit = mysql_fetch_array($q_data_edit);
 $id  = $data_edit['id'];
 $nama  = $data_edit['nama'];
 $jk  = $data_edit['jk'];
 $tmp_lahir = $data_edit['tmp_lahir'];
 $tgl_lahir = explode("-",$data_edit['tgl_lahir']);
 $tgl_lahir_tgl = intval($tgl_lahir[2]);
 $tgl_lahir_bln = intval($tgl_lahir[1]);
 $tgl_lahir_thn = intval($tgl_lahir[0]);
 $kota_asal = $data_edit['kota_asal'];
 $agama = $data_edit['agama'];
 $hobi  = $data_edit['hobi'];
 $foto  = $data_edit['foto'];
 $deskripsi = $data_edit['deskripsi'];
}
?>


<h5>Form Mahasiswa</h5>
<a href="index.php">Kembali</a><br><br>

Penjelasan 2 baris dibawah komentarr
Action dari form ini adalah ke file “aksi.php” dimana akan ditambahi variabel URL mode, yang akan memberitahukan ke file “aksi.php” apakah aksi untuk edit_data atau aksi untuk tambah data : aksi.php?mode=<?php echo $mode; ?>, $mode didapatkan dari skrip diatas ini. Sedangkan skrip di bawahnya (<input type=”hidden”) adalah untuk memberi input hidden, id_data, untuk tambah data isinya kosong, dan untuk edit_data, isinya merupakan id_data yang dipilih
<form method="post" action="aksi.php?mode=<?php echo $mode; ?>" enctype="multipart/form-data">
<input type="hidden" name="id_data" value="<?php echo $id; ?>">


<table width="50%">

Penjelasan 1 baris dibawah komentarr 
Ini untuk inputan jenis “text” saya kira gampan, karena tinggal menambahkan “value=”<?php echo $nama; ?>”, dimana variabel $nama ada di deklarasi di atas. */
 <tr><td width="30%">Nama</td><td><input type="text" name="nama" autofocus required value="<?php echo $nama; ?>"></td></tr>

Penjelasan baris dibawah komentarr 
Ini untuk inputan jenis “radio”. Kita akan menggunakan variabel : $pil_jk = array('Laki-Laki','Perempuan'); Yang telah dideklarasikan di atas.
 <tr><td>Jenis Kelamin</td><td> 
 <?php 

Penjelasan baris dibawah komentarr 
Perulangan untuk menuliskan <input type=”radio” beserta labelnya, berdasarkan jumlah data dari variabel $pil_jk “sizeof($pil_jk)”.
 for ($a = 0; $a < sizeof($pil_jk); $a++) {
/*

Penjelasan baris dibawah komentarr 
Nah disini skrip untuk otomatis “terpilih” pada radio button. Logikanya jika $jk (terdeklarasi di atas) sama dengan isi dari $pil_jk[$a] (mengambil dari data array), MAKA akan otomatis ada tambahan “checked”.
  if ($jk == $pil_jk[$a]) {
   echo '<label style="width: 25px; display: inline"><input type="radio" name="jk" required value="'.$pil_jk[$a].'" checked> '.$pil_jk[$a].' </label>';
  } else {

Penjelasan baris dibawah komentarr
Ini jika tidak sama isi variabel $jk dengan $pil_jk[$a]
   echo '<label style="width: 25px; display: inline"><input type="radio" name="jk" required value="'.$pil_jk[$a].'"> '.$pil_jk[$a].' </label>';
  }
 }
 ?>
 </td></tr>
 
 <tr><td>Tempat, Tanggal Lahir</td><td>
 <input type="text" name="tmp_lahir" value="<?php echo $tmp_lahir; ?>" required>, &nbsp;

Penjelasan baris dibawah komentarr
Perulangan untuk menampilkan tanggal (sampai 31), bulan (sampai 12) dan tahun (1990 – 1999). Yang dilakukan perulangan adalah <option> atau pilihannya. Nah, akan terisi terseleksi otomatis (selected) jika sama antara value $b (1-31), $c (1-12), $d(1990-1999) dengan variabel yang telah terdefinisi di atas : $tgl_lahir = explode("-",$data_edit['tgl_lahir']); $tgl_lahir_tgl = intval($tgl_lahir[2]); $tgl_lahir_bln = intval($tgl_lahir[1]); $tgl_lahir_thn = intval($tgl_lahir[0]);
<select name="tgl" required><option value="">--</option>
 <?php 
 for ($b = 1; $b <= 31; $b++) {
  if ($b == $tgl_lahir_tgl) {
   echo '<option value="'.$b.'" selected>'.$b.'</option>';
  } else {
   echo '<option value="'.$b.'">'.$b.'</option>';
  }
 }
 ?></select> - <select name="bln" required><option value="">--</option>
 <?php 
 for ($c = 1; $c <= 12; $c++) {
  if ($c == $tgl_lahir_bln) {
   echo '<option value="'.$c.'" selected>'.$c.'</option>';
  } else {
   echo '<option value="'.$c.'">'.$c.'</option>';
  }
 }
 ?></select> - <select name="thn" required><option value="">--</option>
 <?php 
 for ($x = 1990; $x <= 1999; $x++) {
  if ($x == $tgl_lahir_thn) {
   echo '<option value="'.$x.'" selected>'.$x.'</option>';
  } else {
   echo '<option value="'.$x.'">'.$x.'</option>';
  }
 }
 ?></select>
 
 </td></tr>
 
 <tr><td>Kota Asal</td><td>
 <select name="kota_asal" required><option value="">--</option>

Penjelasan baris dibawah komentarr
Ini contoh dari otomatis terseleksi (selected) dari pilihan yang diambil dari database. $q_kota_asal = mysql_query("SELECT * FROM data_kota_asal"), adalah untuk mengambil dari tabel “data_kota_asal”. Akan terseleksi otomatis (selected) jika varabel $kota asal sama dengan $d_kota_asal[‘id’] hasil dari query ambil data kota. Data yang akan kita simpan adalah id_kotanya, bukan nama kotanya. */
 <?php 
 $q_kota_asal = mysql_query("SELECT * FROM data_kota_asal");
 
 while ($d_kota_asal = mysql_fetch_array($q_kota_asal)) {
  if ($kota_asal == $d_kota_asal['id']) {
   echo '<option value="'.$d_kota_asal['id'].'" selected>'.$d_kota_asal['nama'].'</option>';
  } else {
   echo '<option value="'.$d_kota_asal['id'].'">'.$d_kota_asal['nama'].'</option>';
  }
 }
 ?>
 </select>
 </td></tr>
 
 
 <tr><td>Agama</td><td>
 <select name="agama" required><option value="">--</option>
 <?php 

Penjelasan baris dibawah komentarr 
Ini contoh dari otomatis terseleksi (selected) dari pilihan yang diambil dari variabel $pil_agama. Mirip-mirip dengan pilihan jenis kelami di atas, namun ini diterapkan pada inputan jenis “<select>”. Akan terseleksi otomatis (selected) jika varabel $agama (di atas) sama dengan $pil_agama[$d] hasil perulangan array. */
  for ($d = 0; $d < sizeof($pil_agama); $d++) {
  if ($agama == $pil_agama[$d]) {
   echo '<option value="'.$pil_agama[$d].'" selected>'.$pil_agama[$d].'</option>';
  } else {
   echo '<option value="'.$pil_agama[$d].'">'.$pil_agama[$d].'</option>';
  }
 }
 ?>
 </select>
 </td></tr>
 
 <tr><td>Hobi</td><td>

 <?php

(adsbygoogle = window.adsbygoogle || []).push({});
Penjelasan baris dibawah komentarr
Ini contoh untuk inputan berjenis checkbox. Inputan jenis checkbox mempunyai sifat boleh dipilih lebih dari 1. Disini “name” dari inputan saya tambahkan _1, _2, _3 dst.. Variabel $hobi (diambil dari database) berformat “hobi1-hobi2-hobi3”. Sebagai contoh, jika $hobi berisi “Futsal-SMS-Fban”, maka akan dipecah, sehingga menjadi “Futsal”, “SMS”, dan “Fban” yang disimpan dalam variabel array $pc_hoby. Dengan fungsi in_array berfungsi untuk mengecek keberadaan data dalam suatu array, maka inputan akan otomati ter-checked, jika data hobi berada di dalam array $pc_hobi. */
 $pc_hobi = explode("-",$hobi);
 for ($e = 0; $e < sizeof($pil_hobi); $e++) {
  if (in_array($pil_hobi[$e], $pc_hobi)) { 
   echo '<label style="display: inline; width: 200px"><input type="checkbox" value="'.$pil_hobi[$e].'" name="hobi_'.$e.'" checked> '.$pil_hobi[$e].'</label>';
  } else {
   echo '<label style="display: inline; width: 200px"><input type="checkbox" value="'.$pil_hobi[$e].'" name="hobi_'.$e.'"> '.$pil_hobi[$e].'</label>';
  }
 }
  ?>
Penjelasan baris dibawah komentarr 
Ini untuk menyimpan jumlah hobi yang ada di dalam $pil_hoby. 
 <input type="hidden" name="jumlah_cek" value="<?php echo ($e-1); ?>">
 </td></tr>

Penjelasan baris dibawah komentarr
Ini untuk sebenarnya untuk menampilkan foto jika telah diupload data fotonya. Untuk menampilkan gambarnya menggunakan tag <img>. Jika tidak ada maka gambar fotonya akan not found. */
 <tr><td width="30%">Foto</td><td><input type="file" name="foto"><br>
 <img src="foto/<?php echo $foto; ?>" style="width: 150px; height: 130px"></td></tr>

Penjelasan baris dibawah komentarr 
Untuk menampilkan data otomatis pada teksarea. Variabel $deskripsi diletakkan diantara tag <textarea></textarea>, menjadi <textarea><?php echo $deskripsi; ?></textarea>
<tr><td width="30%">Deskripsikan</td><td><textarea name="deskripsi" rows="3" cols="40" required><?php echo $deskripsi; ?></textarea></td></tr>
 <tr><td width="30%"></td><td><input type="submit" value="Simpan"></td></tr>
</table>

</form>

Akan dilanjutkan ke Bagian Kedua


Pertengahan tahun 90'an, warga Jogja pemiarsa setia TVRI stasiun Jogja, pasti sangat familiar dengan acara "Mbangun Deso". Acara yang dikemas mirip-mirip sinetron ini tayang seminggu sekali, tiap hari minggu (kalo nggak salah). Menjadi acara favorit di kalangan masyarakat desa, termasuk di dusun saya Sumoroto, Samigaluh, yang jauh dari hiruk pikuk keramaian kota. Dari anak-anak seperti ane (saat itu) yang gak tahu sama sekali dengan maksud ceritanya, terus sampai orang tua sangat menunggu kehadiran acara ini setiap minggunya. Pernah ingat, TV-ku saat itu TV merk NATIONAL hitam putih, hanya bisa nyaut stasiun jalur VHF, yang kala itu cuma TVRI, pas rusak. Ane nyempat-nyempatin nglurug ke tempat'e Pakde, dan ternyata di sana sudah rame juga pada nonton bareng  (ngalah-ngalahke filem  Habibie, wis pokokmen). 

Sinetron "Mbangun Deso", walaupun saya sebut sebagai sinetron, tapi sangat jauh perbedaannya dengan sinetron sinetron milenium ke-tiga saat ini. "Mbangun Deso" dikemas dalam bentuk sinetron komedi, dan dengan nuansa khas pedesaan yang sangat ndeso, kental dengan karakter-karakter lugu orang desanya (jauh dari sinetron saat di TV swasta saat ini yang sangat mengumbar kemewahan, hidup modern, iri dengki, selingkuh, dll). Settin tempat sinetron ini adalah di sebuah desa kecil di pinggiran kota Yogyakarta (ane belum tahu daerah mana, gak sempat mbaca "thank's to" -nya, haha). Tapi klo gak salah daerah-daerah Sleman. Tidak lupa juga, sesuai dengan nama acaranya "Mbangun Desa", dihadirkan juga para pejabat-pejabat, atau orang yang berkompeten untuk memberikan penyuluhan-penyuluhan kaitannya dengan kemajuan desa, seperti penyuluhan bidang ekonomi, kewirausahaan, kesehatan lingkungan, kebudayaan, dan lain-lain (yang saat itu saya tidak ngerti). 

Tokoh utama dari sinetron "MBangun Deso" ini adalah : 

1. Den Baguse Ngarso yang diperankan oleh Drs. Susilo Nugroho. (nama den Baguse Ngarso, ini yang menjadikan Drs. Susilo Nugroho - nama asli - terkenal dengan nama Den Baguse Ngarso, di jagad kethoprak'an Jogja saat ini). Tokoh Den Baguse Ngarso menggambarkan peran antagoni seorang priyayi, orang terpandang di desanya yang sangat nyebahi , karena keras kepala, sok IYESSS, sok iso, sok sumugih, keminter, gila hormat, adigang adigung adiguno (opo maneh iki, rareti artine, hehe.). Pokokmen, nyebahi sekali. 

2. Terus yang kedua adalah Pak Bina yang diperankan oleh Heru Kesawa Murti (sudah meninggal, beliau). Tokoh ini merupakan tokoh sang pencerah, yang sangat bijaksana, berpendidikan, berfikir rasional, dan pastinya menjadi panutan masyarakat desa, dan penyuluh juga bagi masyarakat. Tokoh ini sering berseberang pendapat dengan den Baguse Ngarso. Tokoh ini juga merupakan sutradara Mbangun Desa ini. 
3. Terus yang ketiga yaitu tokoh Kuriman (Sepnu Heriyanto, saya juga gak tahu ini). Tokoh ini kental dengan karakter orang desa biasa, tapi ngeyelan, atos, grusah-grusuh, kadang juga ngamukan (gampang Emosi).
4. Keluarga "Sronto", yaitu Kang Sronto (Sudiharjo) dan Yu Sronto (Muji Rahayu). Sepasang suami istri yang merupakan orang desa biasa, mempunyai karakter nrimo opo anane, tidak neko-neko, gampang diperintah, dan kadang sering diakal-akali. 

Tokoh-tokoh di atas sangat kental dan relevan sekali dengan kehidupan perdesaan, sampai saat ini. Tema yang diambil dalam setiap serinya, mengangkat  persoalan sehari-hari yang dihadapi oleh masyarakat desa dan diakhiri oleh pencerahan-pencerahan oleh para pamengku praja (pejabat). Tokoh-tokohnya, ada seorang orang yang mriyayi, yang gila hormat, dan ingin selalu kajen. Ada tokoh bijaksana, yang tulus untuk memajukan desanya, sangat saya rasakan sekali keberadaannya di dalam  lingkungan dusun saya sendiri. 

Ada baiknya TVRI Jogjakarta, mengangkat kembali acara-acara seperti ini, sebagai diversifikasi acara TV, yang pada saat ini sangat jauh keluar dari kesan "menyuluh dan mencerahkan masyarkat". TVRI Jogja, yang pangsa pemiarsanya mayoritas merupakan orang tua, dewasa, dan wilayah jogja (yang sebagian besar merupakan masyarakat desa) perlu jeli untuk melihat kerinduan dan kenangan pemiarsanya akan acara-acara "class of 90'an" ini. TVRI yang merupakan TV pemerintah, ada baiknya bekerja sama dengan lembaga-lembaga pemerintah dalam upaya mensosialisasikan program-program pemerintah untuk kemajuan masyarakat melalui acara-acara seperti ini. Tercatat, sekarang hanya "Obrolan Angkring" sebagai acara-acara "class of 90" (yang juga diselingi dengan pencerahan dan penyuluhan oleh pejabat2 yang berwenang) yang masih tersisa, itupun kadang-kadang tampil, dan kadang juga hilang beberapa minggu. 

Enggih, nopo mboten, Pak Bina...?

Sumoroto, 6 Desember 2013, 17.30 WIB