TUTORIAL CODEIGNITER : APLIKASI WEBSITE / BLOG (WEBLOG) SEDERHANA DENGAN CODEIGNITER

Oke gan, langsung saja untuk screen shoot contoh aplikasi website, weblog, blog dengan codeigniter yang ane kasi, seperti di bawah ini...

Tutorial HTML

HTML merupakan bahasa dasar pembuatan web. Disebut dasar karena dalam membuat web, jika hanya menggunakan HTML tampilan web terasa hambar. Terdapat banyak bahasa pemograman web yang ditujukan untuk memanipulasi kode HTML, seperti ...

TUTORIAL ORACLE - KONEKSI ORACLE KE JAVA, PHP DAN C# (C-SHARP)

Disitu juga ane kasi contoh aplikasi CRUD nya yang bisa ente download Gratisss :D ...

Tampilkan postingan dengan label PHP. Tampilkan semua postingan
Tampilkan postingan dengan label PHP. Tampilkan semua postingan

Selasa, 06 Agustus 2013

Tutorial Oracle - Koneksi Oracle ke Java, PHP dan C# (C-sharp)

koneksi Oracle Java php C# C sharp
Postingan terakhir hari ini mungkin gak sesuai urutan tutorial blog ini kali ya ?? kalo sebelumnya tentang SQL SERVER, postingan ini ane membahas tentang Oracle lagi.. :D ... bukan tutorial si isinya tapi untuk Optimasi SEOnya saja... hehehee.. kan ada tu postingan-postingan sebelumnya yang membahas tentang Contoh CRUD Oracle - PHP, Contoh CRUD Oracle - Java, Contoh CRUD Oracle - C# (C sharp) ... ternyata keyword ini jarang dipakai... yang sering di pakai apa ?? ya kayak judul yang ane buat di atas itu, yaitu Koneksi Oracle PHP / Oracle PHP Connection String, Oracle Java Connection JDBC, C# Connection to Oracle... ya ente bisa cek lah di google adword dan google trend keyword yang bagus untuk postingan itu apa... :D Besok hari terakhir puasa, kalo hari raya nya hari kamis tapi... semoga aja hari kamis lebarannya.. hehehee... pengen cepet2 lebaran... biar bisa jalan-jalan trus makan2 ... hehehee... maunya si besok nerusin postingan tentang SQL SERVER tapi gak tau  besok bisa apa gak posting di blog ini soalnya kudu siap-siap menyambut idul fitri... harus bersih2 rumah dan bantu-bantu ibu :)

Oke dah, Buat ente yang kesasar di Postingan ini yang mencari bagaimana mengkoneksikan Oracle dengan C# (C sharp) / Oracle dengan PHP / Oracle dengan Java dibawah ini linknya ... tenang aja, gak ane lempar ke blog lain kok, masi di blog ini postingannya :D

Koneksi Oracle dan C# (Oracle C# Conecction String)


Koneksi Oracle dan JAVA (Oracle JAVA Conecction String)


Koneksi Oracle dan PHP (Oracle PHP Conecction String)


Disitu juga ane kasi contoh aplikasi CRUD nya yang bisa ente download Gratisss :D ... Oke, sekian dulu dah untuk postingan Koneksi Oracle ke C# (C sharp) , Java dan PHP ini... semoga bermanfaat :)


Minggu, 28 Juli 2013

Tutorial Oracle - PHP : Contoh Aplikasi CRUD PHP - Oracle (connection)

Yupz... Postingan ke dua di hari ini, setelah sebelumnya postingan-postingan ane membahas tentang database oracle, mulai dari instalasi, membuat tabel, insert - update - delete, dan pembuatan laporan sekarang ane nulis tentang bagaimana mengkoneksikan oracle dengan PHP, :D ... belajar database oracle tidak akan berguna jika tidak bisa mengkoneksikannya dengan bahasa pemrograman... hehehee... mangkanya untuk postingan ini ane kasi cara membuat koneksi antara PHP dan Oracle sekalian nanti ane kasi contoh CRUD (create, read, update, delete) nya... 
Disini untuk web server nya ane pake XAMPP ... seperti yang ente tau, XAMPP identik dengan MySQL sebagai database nya... So, bagaimana cara konfigurasi nya biar bisa konek dengan database oracle kita ?? Simple si, pertama buat dulu satu folder di Htdocs misalkan namanya "oracle-info" kemudian buat satu file php misalkan nama nya "phpinfo.php" kemudian tambahkan kode berikut dalam file tersebut

<?php
phpinfo();
?>
trus ente akses di localhost, kalo mengikuti tulisan ane diatas ya berarti aksesnya http://localhost/oracle-info/phpinfo.php .... kemudian tekan "Control F" untuk mencari status koneksi dengan oracle, ketika "oci 8" dan ente bakal ngeliat tabel berikut : 

Koneksi Oracle - PHP
Koneksi Oracle - PHP

pastikan OCI8 support nya enabled .... kalo gak enabled (disabled) ya gak bisa konek sama oracle berarti.... :D ... so bagaimana cara enable - in ?? hehee.. gampang, masuk ke direcory C:\XAMPP\PHP dan cari file php.ini dan buka file itu...
kalo udah dibukca cari tulisan ini " ;extension=php_oci8.dll " (tanpa petik2)... kemudian hilangkan titik komanya, jadi seperti ini " extension=php_oci8.dll " (tanpa petik2) kemudian simpan dan restart apache nya... kalo perlu restart komputernya :D ...
kalau udah di restart apache atau komputer nya akses kembali php infonya tadi di http://localhost/oracle-info/phpinfo.php ... kemudian pastikan OCI8 Support nya udah enabled ... pasti dah udah enabled :D ...

Sekarang kita coba buat koneksi ke Oracle ya ?? bikin folder baru lagi di Htdocs misalkan folder "oracle-tes" kemudian tambahkan satu file php misalkan koneksi.php kemudian tambahkan kode berikut pada file itu

<?php
echo "<h2>Oracle Connection</h2> < br />";
$username = "rizal"; //sesuaikan dengan username ente
$password = "admin"; //sesuaikan dengan password ente
$host = "localhost/xe"; //sesuaikan dengan host database ente
$koneksi = oci_connect($username,$password,$host) or die('connection failed !');
if(!empty($koneksi)){
echo "koneksi sukses ! < br />";
}else{
echo "koneksi gagal ! < br />";
}
?>
Kemudian akses di browser di http://localhost/oracle-tes/koneksi.php, pastikan koneksi suksess ...

Koneksi Oracle - PHP
Koneksi Oracle - PHP

Kalo belum sukses, periksa username, password dan host ente... :) cuma gitu aja kalo ngonekin PHP ke Oracle ... gak susah kan ya ?? hehee... terus bagaiman untuk memanggil data dan manipulasi datanya ?? hemmbbb... kalo itu ane kasi contoh aplikasi nya aja ya ?? gak ane terangin semua disini, tapi ane kasi penjelasan dah sedikit :D ... ente bisa pakai beberapa function untuk memanipulasi data oracle di PHP diantanya adalah oci_parse() yang berguna untuk menampung query, oci_execute() : function yang berguna untuk mengeksekusi query, oci_fetch_array() : function yang berguna untuk memecah data yang dipanggil dari database menjadi array, kalo di mysql itu mysql_fetch_array itu looo... hampir sama kok :D ... hehehe... oke dah... sampai disini aja dulu tutorial contoh aplikasi CRUD PHP - Oracle nya dan koneksi PHP - Oraclenya... untuk link contoh aplikasinya ada di bawah... oke, semoga bermanfaat .... keep cooding :) ...

Download File (ane minta share - nya ya gan :D)

Perhatian : window downloadnya akan keluar setelah di share jadi, kalau udah dishare windows nya jangan ditutup, windows nya akan menuju halaman github. cari link nya disitu.... ada button text nya "Download ZIP".

Sabtu, 25 Mei 2013

Tutorial Codeigniter : Content Management System (CMS) dengan Codeigniter

download contoh CMS Codeigniter - bootstrap - Metro UI
Sudah mulai sepi ni kampung, hanya terdengar suara jangkrik, ranting2 yang tergoyangkan oleh angin, dan kipas laptop :D ... udara dingin pun mulai datang, untungnya tidak ada nyamuk di kamar ane... hehehehee... ibu nyuruh adek buat pake selimut, :) dan aku masi saja didepan laptop untuk menuntaskan target yang memang harus ane tempuh... "ibu aku berjuang untukmu, keluarga ini adalah tanggung jawabku" :) tak peduli hawa dingin dan selengket apapun mata saat ini, tak dapat membutakan ane pada tanggung jawab ke depan... semoga saja ane selalu disertai pertolongan untuk mendapat cita2 dan membahagiakan ibu juga keluarga ini :)
Hemmmb... seperti pada postingan sebelum nya ane bilang untuk minggu ini paling tidak ane harus nulis 2 postingan diblog ini sebelum weekend berakhir, ya ga papalah... sekalian belajar profesional :D , kalo sebelumnya ane membahas tentang tutorial / contoh aplikasi codeigniter tepat nya membahas membuat aplikasi blog / weblog / website sederhana dengan codeigniter versi 2.1.3, postingan kali ini adalah lanjutannya yang membahas pembuatan content management system (CMS) nya menggunakan Codeigniter, dan untuk fiturnya tentunya di sesuain dengan kebutuhan  aplikasi blog nya to ?? hehehehee kalo untuk tema / template nya ane pake Admin - Aries yang ane ambil sample nya dari theme forest...
Tapi untuk file template nya ane pake yang bajakan :D heheheheee.. tapi ya gak bedalah... wong template nya juga colongan... hehehehe... kalo mau lihat live preview template nya bisa ente lihat disini... template nya make bootstrap, jadi kombinasi antara Codeigniter dan bootstrap selain itu untuk template nya pake konsep metro UI yaitu tampilan windows 8... yang saat ini juga lagi populer.... kao gak pake bootstrap rasa nya sulit kalo mau buat tema metro UI ini... hehehehee... tinggal download saja kemudian di gabungkan dengan Codeigniter, waaah jadi keren dan ganteng tampilannya kayak ane.... wkwkwkwkwkwk
untuk text editor nya ane masi setia dengan CKeditor dan KCfinder biar gampang gan dan gak buat sendiri.. kalo buat sendiri ya lama... :D beberapa fitur dalam Contoh Content Management System (CMS) Codeigniter yang ane upload, diantaranya : 

  • Dashboard
  • Content Editor, List published content, list draft content
  • Setting User
  • Setting Label
  • Statistik
  • dan pengaturan dasar blog seperti judul blog, deskripsi blog, limit content dll...

Ya kurang lebih segitu dah... heheheheee sebenarnya untuk aplikasi nya ane barengin sama aplikasi blog codeigniter, jadi memang sudah ane anggap satu paket.... cuma disini memang ane pengen nambah postingan agar lebih mudah lagi untuk di kenali dengan google, karena orang mengetik kata kunci kan sesuai kebutuhan,, :) ada yang ngetik "contoh aplikasi web codeigniter" ada juga yang ngetik "contoh content management system codeigniter"... ini adalah 2 keyword yang berbeda, kalo ane jadikan dalam satu postingan waaah agak repot seperti nya... :D .. mangkanya di akali pake 2 postingan... :D ...  seperti biasa, sebenarnya ane upload contoh - contoh aplikasi codeigniter ini buat temen2 ane yang pemula atau baru belajar, atau mungkin buat temen2 yang lagi males ngerjain tugas Advance web programming, ni ane kasi contoh aplikasi web dengan framework Codeigniter.. dan  tinggal ngoprek sesuai keinginan saja...open sources kok... wkwkwkwkwkwk
diantara temen2 juga ada yang pengen private belajar framework Codeigniter, tapi seperti nya itu berat sekali buat ane kalo sifat nya tidak ada donasi alias gratisan :(  ... mending ane tinggal belajar yang lain... hehehehee.. ya secara ane kan butuh biaya hidup to ?? kalo harus private ya... wkwkwkwkwk.... gak cuma Codeigniter yang mau mau diajarin, ada juga yang mau belajar C# dan Java, PHP dll .. -_- alternatif untuk ngajarin mereka untuk saat ini adalah blog tapi ane punya pikiran lain untuk membantu temen2 yang request tapi gak harus private si.. yaitu Insya Alloh ane mau bikin video - video tutorial pemrograman dan ane post di blog ini, kata nya si kalo video lebih mudah dipahami... ya.. Next time lah Insya Alloh nanti ane buat kalo pas ada waktu kosong... hehehehee...
Oke dah, untuk screen shoot dari Contoh aplikasi Content Management System Codeigniter nya bisa ente liat dibawah ini gan :

contoh content management system codeigniter
Dashboard Login

contoh CMS Codeigniter free
Dashboard admin

contoh CMS Codeigniter - bootstrap - metro UI themes
List Post
download contoh aplikasi codeigniter
Label Setting
contoh website codeigniter - bootstrap
Setting Blog
contoh aplikasi blog codeigniter
Setting User profile
Keren bukan  tampilannya, Codeigniter dengan Bootstarp dengan tema Metro UI ... hehehehee... padahal itu template nya download gratisan... wkwkwkwkwk... kalo system nya ane yang buat... :D .... bisa ente download gratis gan di github... kalo ente punya akun Github monggo diikuti akun ane disini... Oia untuk mengakses secara cepat halaman adminnya, di browser nya ente akses pake "http://localhost/ci-blog/admin" karena di halaman depan / halaman blog nya gak ane kasi Link masuk ke Dashboard admin / Content Management System nya ... hehehehee... Oke dah sekian dulu untuk postingan Contoh Content Management System dengan Codeigniter kali ini, jaga lupa di like ya ?? :D semoga Bermanfaat ... :)

Download File (ane minta share - nya ya gan :D)

UPDATE : Biar gak terjadi Error lebih baik aktifkan dulu .htaccess apachenya :)


Tutorial Codeigniter : Aplikasi Website / Blog (Weblog) Sederhana dengan Codeigniter

contoh blog codeigniter
Alhamdulillah.. setelah seminggu gak nulis di blog ini, kali ini masi di beri kesempatan ngupdate di blog ini, kalo minggu kemarin masi sempet nulis satu post yaitu tentang kriptografi implementasi code hill dan vigenere di C# (C sharp), kali ini sebelum weekend berakhir insya Alloh mau nulis 2 post yang bertema tutorial Codeigniter dengan contoh - contoh aplikasi nya menggunakan template bootstrap :) hemm... memang minggu2 kemaren sudah saya siapkan si, tinggal ngupload saja... untuk upload nya mungkin sebelum nya para pengunjung blog ini dapat mendownload  contoh program yang saya upload di 4shared, tapi kali ini agak sedikit ane rubah karena memang untuk download di 4shared.com agak susah, pertama harus jadi member dulu, terus download nya pake nunggu 20 detik, terus kalo click button download nya ada window yang ke buka lagi (-_-") ... susah banget rasanya .... udah ane mintain share kalo download contoh - contoh  program nya masi lagi dibikin sulit sama 4shared... jadi biar gak susah, kali ini sebagian besar ane pindahin link download nya di Github :D ... ente bisa download gratis semua nya dan gak pake nunggu lama... tapi kalo untuk share nya ane tetep minta gan... hehehehee... sedikit sedekah lah buat ane... wkwkwkwkwk....
Codeigniter sebelumnya sudah ane bahas diblog ini mulai dari konfigurasi awal dan contoh crud (create read update delete) nya sudah ane kasi contoh nya... kali ini memang waktu nya ane kasi contoh aplikasi yang sedikit lebih expert dan agak komplex yaitu aplikasi contoh aplikasi website / blog / weblog sederhana yang tentunya dengan Codeigniter... tidak berbeda jauh dengan postingan PHP sebelum nya, pertama ane kasi contoh CRUD nya, setelah itu ane kasi contoh blog dan content management system nya... yang bisa ente download.... memang si setelah belajar CRUD Codeigniter harus nya dilanjutkan lagi membuat aplikasi blog, :D biar lebih kenal lagi dengan Codeigniter, tetapi Khusus untuk Codeigniter ane akan kasi contoh - contoh aplikasi yang agak banyak , karena memang Codeigniter untuk saat ini adalah framework PHP yang paling terkenal dan banyak digunakan, karena itu ane kasi contoh yang agak banyak nanti nya, apa saja ?? ya ditunggu sajalah.. :D hehehehehee
dan insya Alloh akan ane bahas framework - framework PHP lainnya di blog ini dengan contoh CRUD dan aplikasi Blog / Website / weblog dan content management system nya,, ada Framework YII, Framework Cake PHP, Panada dll .. secukup dan sekuat ane ya ?? heheheheee... Aplikasi Website / Weblog / Blog yang ane upload ini untuk fitur nya tidak jauh berbeda dengan contoh blog sederhana dengan PHP yang ane bahas sebelumnya... ane cuma nambahin beberapa fitur disitu.... ya bisa ente lihat nanti lah selengkap nya.... untuk template nya ane ngambil sample dari theme forest, tapi versi gratis nya alias versi colongan nya :D .. kalo download langsung dari theme forest ya berbayar tentunya... :(  untuk preview template yang ane pake ente bisa lihat disini cukup bagus si template nya dan terlihat responsive dan pake bootstrap kalo gak salah, tapi ya tidak semua fitur yang ada di template itu ane kasi di contoh blog codeigniter yang ane kasi nanti, hanya beberapa saja dan yang mungkin bener2 dibutuhkan pada sebuah blog atau website :D .. kalo mau selengkap nya ya boleee si tapi ya ada donasi donk tentunya... hehehehee
Oke gan, langsung saja untuk screen shoot contoh aplikasi website, weblog, blog dengan codeigniter yang ane kasi, seperti di bawah ini...

download aplikasi blog codeigniter
Halaman depan blog
contoh website codeigniter
Halaman Detail post


contoh website codeigniter
Halaman Contact Person
cukup bagus si menurut ane :D , gak tau menurut ente ... heheheee... karena contoh website nya responsive dan menggunakan bootstarp :D jadi kombinasi antara bootstrap dan codeigniter..... untuk file download nya ada di bawah, jangan lupa di like ya ? dan di share kalo mau didownload contoh aplikasi website / blog Codeigniter nya... hitung2 sedekah gan :D ... Oke gan... sekian untuk postingan kali ini, semoga bermanfaat buat ane, ente dan semua pengunjung blog ini :)

Download File (ane minta share - nya ya gan :D)

UPDATE : Biar gak ada error lebih baik aktifkan dulu htaccess apache nya :)


Selasa, 07 Mei 2013

Tutorial Codeigniter : Contoh aplikasi CRUD Codeigniter

belajar contoh aplikasi crud codeigniter
Alhamdulillah pagi ini ane masi sempet nulis di blog ini, kali ini masi tentang PHP, lebih detailnya tentang CRUD Codeigniter (CI), mungkin tulisan semacam ini sudah banyak ditemui diblog lain, tapi ane juga pengen ngeshare Contoh CRUD Codeigniter (CI) :D, mungkin bermanfaat bagi yang lain sekalian menambah postingan blog ini, semakin banyak postingannya semakin banyak juga page view nya ... hehehehehe... Kemaren2 sempat ane bahas di blog ini tentang menginstal Codeigniter dan Konfigurasi awal nya, dan memang sekarang waktunya ane kasi contoh manipulasi, operasi database seputar CRUD (Create - Read - Update - Delete) pada database Mysql. seperti biasa sebenarnya ane nulis ini untuk temen2 ane yang baru ngambil matakuliah Advance Web Programming 1 yang membahas tentang Framework PHP, tanpa belajar atau mengetahui bagaimana melakukan CRUD pada Codeigniter (PHP - Mysql), mungkin untuk membuat aplikasi yang lebih kompleks mungkin agak kesulitan,, hehehehee
Pada matakuliah Advance Web Programming 1 sebenarnya tidak diharuskan memakai Framework Codeigniter (CI), boleh pake Framework Cake PHP,Framework YII,Framework Panada,Framework Obullo dll, (Pokok nya framework) :D bole juga pake framework buatan sendiri yang penting harus berkonsep Model View Controller (MVC) .. hehehehehe intinya semua nya sama kok... ane kasi Contoh nya Codeiniter karena memang yang paling populer saat ini adalah Codeigniter (CI)
Sebelum ente baca postingan yang ini, ada baiknya ente baca dulu postingan sebelumnya membahas tentang konfigurasi awal Codeigniter disini (bagi yang belum baca), Kalo pada postingan kemarin ane kasi contoh konfigurasinya tidak sampai konfigurasi database, kali ini ane coba kasi contoh konfigurasi database sampai pembuatan model di Codeigniter
$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'bukutamu';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

Kode diatas ada pada file database.php, yang directory nya ada di "application >> config" , pada file ini ente bisa lakukan konfigurasi database, sesuaikan dengan host / server yang ente pake, username dan password nya... jangan lupa juga setting nama database nya juga yang akan ente pake. :) ... setelah dari konfigurasi database pada file database.php ini, sekarang kita buat file model nya di directory "application >> models", masi ingetkan apa fungsinya model ?? :D yaitu class untuk menampung Query2 database,
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class My_model extends CI_Model {

public function GetData($where = '')
{
return $this->db->query("select * from guestbook $where;");
}
}
?>
Ada beberapa Aturan yang perlu diperhatikan dalam membuat model Codeigniter, kalo ente perhatikan pada kode diatas nama class model nya adalah "My_model" untuk menyimpan class ini maka nama file nya harus sama dengan nama class nya dan menggunakan huruf kecil semua, jadi kalo untuk model yang ane buat diatas nama file nya adalah "my_model.php" , itu sudah aturan yang ditetapkan oleh para pengembang Codeigniter, jadi untuk nama class nya pada huruf pertama harus menggunakan huruf besar sedangkan untuk nama file nya harus sama dengan nama class tetapi harus menggunakan huruf kecil semua, :D
setelah pembuatan model, sekarang kita beralih pada konfigurasi auto_load pada directory "application >> config" buka file auto_load.php, ada sedikit penambahan konfigurasi auto_load, kalo pada postingan kemarin untuk file auto_load.php ane cuma kasi konfigurasi libraries dan helper saja, kalo ini ada satu tambahan yaitu auto_load model ... selengkapnya seperti ini
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url');
$autoload['model'] = array('my_model');
kalo ente lihat pada kode diatas, untuk auto_load['model'] pada array nya ane tulis my_model karena sesuai dengan file model yang kita buat diatas tadi, jadi disesuaikan...  :) untuk konfigurasi auto_load yang lain sementara biarkan saja dulu, jangan diotak atik jangan dihapus :D .. kapan2 kita akan bahas, kalo untuk melakukan CRUD atau manipulasi database pada codeigniter(CI) konfigurasi seperti yang ane jelasin diatas sudah cukup... hehehehee..
Setelah melakukan konfigurasi diatas, sekarang ente bisa melakukan CRUD dengan Codeigniter pada Mysql... hehehee.. sebenar nya gak sulit2 amat si... banyak temen2 ane yang bilang pake framework itu susah... kalo gak dicoba dan cuma dibayangkan itu akan membuat terasa sulit terus, padahal framework itu diciptakan untuk mempermudah... dari pada menggunakan PHP murni mending pake framework menurut ane si :D ... Untuk Contoh CRUD Codeigniter nya ente bisa download gratis nanti dibawah, tapi ane minta share nya dulu ya gan ?? sebelum download ente bakal diminta share.. hehhehe... ya itung2 sedekah lah gan sama ane... biar ane tambah terkenal gitu... :D sekian dulu untuk postingan ini, semoga bermanfaat buat kita semua.. amiiiin :)

Download File (ane minta share - nya ya gan :D)

Selasa, 23 April 2013

Belajar Codeigniter untuk pemula

belajar kode igniter untuk pemula
Yupzzz... kali ini tentang framework PHP yang udah ane tunggu2 buat ane bahas diblog ini :) dan untuk yang pertama ane bahas adalah framework Codeigniter sesuai yang terpopuler saat ini. sebelumnya sedikit ane mau bahas, kenapa kok akhir2 ini banyak di pakai framework php dari pada php murni yang seperti ane contohin di Aplikasi blog dan CMS nya kmaren... jawabannya sederhana... sebenarnya menggunakan framework itu memudahkan untuk memanagement file saja... jadi penempatan file pengontrol, yang menampung query dan yang mengurusi tampilan di sendirikan dalam sebuah directory.. jadi sangat memudahkan dalam pembangunan aplikasi dan memanitenance nya :D ....
Framework PHP kebanyakan menggunakan konsep Model - View - Controller ... model adalah tempatya kita berhubungan dengan database, view tempatnya kita meletakkan file2 PHP yang berisi form HTML dan controller adalah yang mengontrol dari Model dan view... ketika kita membangun Aplikasi web dan ada masalah dengan database... tinggal cek di Model nya ... ketika ada masalah dengan tampilan... tinggal cek di view nya ... konsep nya sangat mudah sebenarnya :D ... hanya saja kita harus bisa memahami konsep ini... intinya ya seperti yang ane bilang tadi... memanagement file saja :)
Setelah ane bahas sedikit tentang framework yang berkonsep MVC sekarang molai kita ke framework nya itu sendiri.. kita coba untuk menggunakan framework codeigniter... sebelumnya ente harus siapkan hal - hal yang dibutuhkan untuk menggunakan framework Code igniter... pertama ente harus siapin web server... kalo ente udah terbiasa dengan pemrograman web pastinya di lapy ente udah ada web server nya, ente bisa pake XAMPP atau WAMPP atau yang lain... kalo ane pake XAMPP... ke dua ente harus siapin text editor kode ente... ente bisa pake Notepad++ atau dreamweaver ... kalo ane pake dream weaver :D.... selanjutnya dan yang terakhir ente harus siapin framework nya yang ente bisa download di web reminya juga... 
setelah ente siapin XAMPP, Dream Weaver dan Codeginiter nya sekarang saat nya bertarung dengan code igniter... kita taklukkan Codeigniter (CI) :D .....
Pertama Extract dulu file rar hasil download Codeigniter ente dan letakkan hasil extract nya di Htdoc (XAMPP)... biasanya hasil extract tadi itu adalah folder nama nya Codeigniter_versi...  untuk folder itu boleh ente rename sesuai selera ente :D .... isi folder Codeigniter itu sperti ini (ane pake yang versi 2.1.3)..

framework codeigniter untuk pemula










folder yang penting dan gak boleh dihapus hanya ada 2 yaitu folder application dan folder system, kalo folder  user_guide itu kalo mau dihapus ya gak apa apa... soalnya isinya cuma documentasi saja :D ... boleh dihapus boleh tidak... kemudian sekarang ente coba jalankan di browser ente code igniter nya... misal folder codeigniter_versi tadi ente kasi name ci_belajar berarti di browser ente manggilnya ya localhost/ci_belajar kemudian tekan enter... maka akan keluar tampilan seperti ini

belajar framework php untuk pemula

kalo dilihat menurut directory nya, codeigniter mempunyai susunan directory seperti berikut :

konfigurasi codeigniter

yang perlu ente perhatikan sementara ini ada 3 dulu, pertama folder controllers, folder models dan folder views... kalo ente buka folder controllers ente akan nemu 2 file yaitu index.html dan welcome.php kalo ente buka folder views ente juga akan nemu 2 file yaitu index.html dan welcome_message.php :) , kalo buka folder models ente bakal nemu 1 file yaitu index.html... folder controllers itu nanti nya akan dijadikan directory tempat controller2 yang ente pakai, begitu juga dengan folder views, disitu tempatnya form2 HTML yang file nya berekstensi .php dan model disitu akan dijadikan tempatnya class yang kita gunakan untuk mengutak atik query database... pada postingan kali ini ane gak akan bahas dulu bagaimana kita menggunakan controller, model atau view... postingan ini hanya akan membahas pengenalan Codeigniter dan konfigurasi awal Codeigniter :D
sekarang coba ente buka folder config (application >> config ) kemudian ente buka file config.php... kalo sudah ente bisa lihat ada array yang index nya adalah "base_url" .. ente bisa setting base url ini untuk root direcory Codeigniter, dalam hal ini karena kita tadi folder codeigniter_versi nya kita ganti jadi ci_belajar jadi untuk base_url nya bisa kita setting menjadi
$config['base_url'] = 'http://localhost/ci_belajar/';
setting ini sangat berguna nanti nya..... diantaranya untuk in bound link, selain itu untuk configurasi directory css, javascript.... ya nanti kita bahas di postingan selanjutnya... kemudian sekarang ente buka file autoload.php.... file ini digunakan untuk setting configurasi library, helper, url, dll yang akan kita gunakan nanti... jika kita melakukan konfigurasi pada file ini, misal konfigurasi database pada file ini maka kita tidak perlu setting ulang pada constructor nya model nanti :D karena  sudah auto load dari setting file ini... gitu .... di file ini juga sudah dicontohkan library apa saja yang biasanya dipakai dan url apa yang biasanya dipakai.. misal untuk library ada database dan pada helper ada url...
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url');
Yupzzz... kalo untuk konfigurasi awal saja, sampai disini sudah cukup... untuk selebihnya (konfigurasi) bisa baca sendiri referensi nya di documentasi nya... tapi kalo secara umum dan yang sering dipakai sudah cukup seperti yang ane terangin diatas tadi :D.. oke... untuk postingan kali ini, cukup dulu... dan postingan selanjutnya ane mau kasi manipulasi database seputar CURD di Codeigniter dengan database Mysql :D ... ditunggu aja ya ? dan semoga postingan ini bermanfaat buat ane, ente dan pengunjung blog ini.... amiiin :)

Senin, 22 April 2013

Contoh aplikasi PHP - Content Management System (CMS) Sederhana

free cms php download
Pada postingan sebelumnya, Aplikasi Blog PHP - MySql udah ane kasi contoh nya, tinggal ngasi CMS (Content Management System) - nya doank yang belom.. kali ini ane mau kasi CMS nya yang tentunya dengan PHP - Mysql... karena halaman blog nya kan kmaren pake PHP, masak halaman Adminnya pake ASP / JSP ?? :D kan gak etis to ?? hehehee... hari ini kuliah masuk agak siangan, sesi 1 yang biasanya jam 08.00 pindah jam tayang pada jam 10.30.. ini dikarenakan ada UN di SMP yang tempatnya juga dikampus... -_-  ya... nasib 2 lembaga yang masih satu yayasan, kadang harus terganggu dengan keadaan satu tempat dengan SMP PGRI ...  mungkin ane nilai ini merugikan, tapi beda lagi bagi mahasiswa yang asal2an buat kuliah, malah keadaan seperti ini akan menguntungkan mereka... ya terserahlah... apa kata mahasiswa itu... bukan urusan ane ngurusin orang yang seperti itu... kita punya urusan sendiri2 dikampus :D ... yang males silahkan males... dan itu tidak akan merugikan ane... yang rugi ya diri dia sendiri dan orang tuanya tentunya... udah bayar kuliah mahal2 tapi gak dapet ape2 wkwkwkwkwkwk... kasian....
Contoh CMS yang ane upload nanti bersifat free / open source... bisa ente download dan modifikasi, bahkan untuk pengumpulan tugas kuliah gak apa - apa... itu free CMS :D ... tapi kalo ente upload ulang ya mbok jangan dihapus copy right nya... yang "programming by Ahmad Rizal Afani" itu looo..hehee.. sebenarnya ane upload aplikasi blog dan cms nya pake PHP ini pengen bantuin temen2 ane yang sekarang lagi ngambil mata kuliah Web programming fundamental yang tugas akhirnya membuat aplikasi blog dan CMS nya... harus ada Array dan function katanya... ya.. udah ane kasi kok di contoh CMS PHP ini, pake array dan function :D ... ente bisa cek nanti kalo udah ente download...

untuk template nya ane download di free css template, nama template admin nya adah mos admin, bikinan orang indonesia, dengan tampilan yang sangat sederhana tapi cukup bagus... ente bisa lihat preview nya disini... untuk tex editor dan file manager nya ane pake plugin java script yaitu CKeditor dan KCfinder yang ente bisa download di web resminya gratis.... dan disana juga disediakan documentasinya untuk pembelajaran cara memakainya... disini ane gak akan bahas bagaimana untuk mengintegrasikan CKeditor dan KCfinder karena itu sudah banyak dibahas dan sangat mudah sekali menurut saya untuk dipelajari, kalo pemakaian CKeditornya, ente cukup pasang nama class nya pada atribut textarea HTML aja.. atau dari yang via javascript.. kalo KCfinder nya ente tinggal konfigurasi saja... kalo mau belajar integrasi KCfinder dan CKeditor ente bisa lihat disini :) .... ni ane kasi script konfigurasi Kcfinder ke CKeditor...
CKEDITOR.editorConfig = function(config) {
config.filebrowserBrowseUrl = 'js/kcfinder/browse.php?type=files';
config.filebrowserImageBrowseUrl = 'js/kcfinder/browse.php?type=images';
config.filebrowserFlashBrowseUrl = 'js/kcfinder/browse.php?type=flash';
config.filebrowserUploadUrl = 'js/kcfinder/upload.php?type=files';
config.filebrowserImageUploadUrl = 'js/kcfinder/upload.php?type=images';
config.filebrowserFlashUploadUrl = 'js/kcfinder/upload.php?type=flash';
};
oke... kalo agan2 mau download contoh CMS PHP nya ente bisa download disini... kalo mau download aplikasi blog nya atau halaman index nya ente bisa baca disini gan.... dan kalo pengen tau preview CMS nya, seperti dibawah ini gan :D 

contoh content management system php

contoh penggunaan kcfinder ckeditor


contoh CMS php

setelah ane upload aplikasi blog dan cms nya menggunakan PHP murni (bukan framework), besok2 saat nya membahas PHP framework.. seperti yang ente tau framework banyak macam nya tapi yang paling terkenal dan populer saat ini adalah Code Igniter (CI) .. dan  insya Alloh akan ane bahas dipostingan selanjutnya... ini yang ane tunggu2.. membahas framework PHP di blog ini... hehee... dan seperti biasa ane sediain contoh2 aplikasinya yang bisa ente download free... :D dan mungkin ada yang mau ngasi sedikit donasi ya gapapa... wkwkwkwk... mangkanya tongkrongin blog ini terus dan tunggu update2 terbarunya :D ... sekian dulu untuk postingan Aplikasi admin CMS dengan PHP ini... semoga bermanfaat dan happy cooding :)

Download Aplikasi CMS PHP (minta share nya ya gan :D )

Sabtu, 13 April 2013

Contoh Aplikasi Blog Sederhana PHP

contoh aplikasi web - blog php
Setelah memberikan beberapa contoh aplikasi C#, Java dan PHP dan juga tutorial2 nya, kali ini giliran PHP yang kembali ane kasi Contoh Aplikasi nya, kali ini adalah Contoh Aplikasi blog sederhana dengan PHP, Aplikasi yang sangat2 sederhana, tetapi hampir sedikit seperti Blogspot dan wordpress. Intinya ada postingan, kategori, pagination.. kan seperti itu to blog ? :D.. Contoh Aplikasi ini tidak menggunakan Framework PHP tetapi menggunakan PHP murni... bagi anda yang baru belajar PHP lebih baik anda pelajari dulu postingan - postingan saya sebelumnya yang membahas PHP dasar dan PHP OOP untuk membantu anda memahami Aplikasi Blog dengan PHP ini...
bagi anda yang sudah mempelajari PHP, dalam aplikasi ini saya tidak menggunakan OOP, jadi masi banyak kode program yang ditulis berulang kali, sebenar nya tidak efisien tapi postingan kali ini sebenarnya saya tulis buat temen saya yang sedang mempelajari Web programming fundamental, yang tugas besar nya adalah membuat aplikasi blog sederhana yang tentunya menggunakan PHP, tidak dituntut menggunakan OOP apalagi Framework tetapi hanya sekedar paham dengan cara membuat aplikasi PHP. :D
Oia, nama nya aplikasi blog tentunya tidak hanya aplikasi depan saja / aplikasi yang dikunjungi oleh pengguna internet, tetapi harusnya disertakan CMS (Content Management System) nya juga.. hemm tapi kali ini ane kasi dulu contoh aplikasi index nya dulu saja ya ? :D untuk aplikasi web admin / CMS nya Insya Alloh pada postingan - postingan selanjutnya.. di tunggu saja ya gan.. gak lama kok, mungkin 2 tahun... wkwkwkwkw...
Tentang fitur dari aplikasi ini adalah seperti yang ane jelaskan tadi yaitu :
  • List posting menurut waktu upload
  • List posting menurut kategori
  • List posting menurut pencarian
  • Full posting page
  • Pagination
Sebenarnya pengen melengkapi dengan beberapa fitur, seperti ajax.. tapi mungkin akan ane bahas pada postingan - postingan selanjutnya.. dan ane akan jelasin kekurangan dan kelebihan dari ajax.. tidak semua aplikasi web baik untuk dilengkapi dengan ajax... tapi ada sebagian yang harus tidak menggunakan ajax... :D
Oke gan, untuk template yang ane gunakan ini ane download dari templatemo.com , disana template nya bagus - bagus walaupun tampilannya sederhana.. bisa ente cek nanti lah...
Oke dah gan, untuk yang mau download aplikasi blog sederhana dengan PHP ente bisa download Disini dan bagi ente yang pengen tau screen shoot aplikasi nya, seperti ini

contoh aplikasi web blog php

Download file nya Disini gan (minta share nya ya gan) :D ... semoga bermanfaat, jangan lupa di like kalo gak sempet comment :)

Kamis, 11 April 2013

Pattern Mediator di Java, C# dan PHP

Setelah update tentang pattern observer, langsung ane terusin update juga design pattern yang ane bahas terakhir yaitu tentang pattern mediator dan implementasinya di Java, C# dan PHP (mengejar target gan) :D ... pattern mediator ini sama seperti observer yang berkategori design pattern behaviour.  Fungsi dari pattern ini adalah memungkinkan interaksi antara object sehingga ketika object berinteraksi dengan object lainnya sama2 dapat memberi informasi baru ke dalam object tersebut ... contoh kasus nya seperti aplikasi chating, jika ada 2 client lagi chatingan maka ke dua nya sangat mungkin untuk bertukar informasi saat chating ??
ya kan ?? :D kalo gak bisa bertukar informasi ya berarti bukan chating...  wkwkwkwkwkwk... dan 2 client tadi kita ibaratkan seperti object yang saling berinteraksi... biar lebih paham akan ane coba implementasinya di Java, C# dan PHP...

Java
package Mediator;

public class MainClass {
public static void main(String[] args) {
MediatorConcrete mediator = new MediatorConcrete();

Friend1 friend1 = new Friend1(mediator);
Friend2 friend2 = new Friend2(mediator);

mediator.SetFriend1(friend1);
mediator.SetFriend2(friend2);

friend1.Send("I love U");
friend2.Send("I Love U too");
}
}

abstract class Mediator{
public abstract void Send(Friend friend,String message);
}

class MediatorConcrete extends Mediator{
private Friend1 friend1;
private Friend2 friend2;

public void SetFriend1(Friend1 friend1){
this.friend1 = friend1;
}

public void SetFriend2(Friend2 friend2){
this.friend2 = friend2;
}

@Override
public void Send(Friend friend, String message) {
if(friend == friend1){
friend2.Notify(message);
}else{
friend1.Notify(message);
}
}
}

abstract class Friend{
public Friend(Mediator mediator) {
this.mediator = mediator;
}
protected Mediator mediator;
}

class Friend1 extends Friend{
public Friend1(Mediator mediator) {
super(mediator);
}

public void Send(String message){
mediator.Send(this, message);
}

public void Notify(String message){
System.out.println("Friend 1 menerima pesan "+message);
}
}

class Friend2 extends Friend{
public Friend2(Mediator mediator) {
super(mediator);
}

public void Send(String messages){
mediator.Send(this, messages);
}

public void Notify(String message){
System.out.println("Friend 2 menerima pesan "+message);
}
}


C#
using System;

namespace Mediator
{
class Program
{
public static void Main(string[] args)
{
MediatorConcrete mediator = new MediatorConcrete();

Friend1 friend1 = new Friend1(mediator);
Friend2 friend2 = new Friend2(mediator);

mediator.Friend1 = friend1;
mediator.Friend2 = friend2;

friend1.Send("I love U");
friend2.Send("I Love U too");

Console.ReadKey(true);
}
}

abstract class Mediator{
public abstract void Send(Friend friend,string message);
}

class MediatorConcrete : Mediator{
private Friend1 friend1;
private Friend2 friend2;

public Friend1 Friend1 {
get { return friend1; }
set { friend1 = value; }
}

public Friend2 Friend2 {
get { return friend2; }
set { friend2 = value; }
}

public override void Send(Friend friend, string message) {
if(friend == friend1){
friend2.Notify(message);
}else{
friend1.Notify(message);
}
}
}

abstract class Friend{
public Friend(Mediator mediator) {
this.mediator = mediator;
}
protected Mediator mediator;
}

class Friend1 : Friend{
public Friend1(Mediator mediator):base(mediator) {
}

public void Send(string message){
mediator.Send(this, message);
}

public void Notify(string message){
Console.WriteLine("Friend 1 menerima pesan "+message);
}
}

class Friend2 : Friend{
public Friend2(Mediator mediator):base(mediator){
}

public void Send(string messages){
mediator.Send(this, messages);
}

public void Notify(string message){
Console.WriteLine("Friend 2 menerima pesan "+message);
}
}
}


PHP
<?php
abstract class Mediator{
public abstract function Send($friend,$message);
}

class MediatorConcrete extends Mediator{
private $friend1;
private $friend2;

function SetFriend1($friend1){
$this->friend1 = $friend1;
}

function SetFriend2($friend2){
$this->friend2 = $friend2;
}

function Send($friend,$message) {
if($friend == $this->friend1){
$this->friend2->Notify($message);
}else{
$this->friend1->Notify($message);
}
}
}

abstract class Friend{
function __construct($mediator) {
$this->mediator = $mediator;
}
protected $mediator;
}

class Friend1 extends Friend{
function __construct($mediator) {
parent::__construct($mediator);
}

function Send($message){
$this->mediator->Send($this, $message);
}

function Notify($message){
echo("Friend 1 menerima pesan ".$message."< br />");
}
}

class Friend2 extends Friend{
function __construct($mediator) {
parent::__construct($mediator);
}

function Send($messages){
$this->mediator->Send($this,$messages);
}

function Notify($message){
echo("Friend 2 menerima pesan ".$message."< br />");
}
}

$mediator = new MediatorConcrete();

$friend1 = new Friend1($mediator);
$friend2 = new Friend2($mediator);

$mediator->SetFriend1($friend1);
$mediator->SetFriend2($friend2);

$friend1->Send("I love U");
$friend2->Send("I Love U too");
?>

Biar lebih paham lagi, coba ente analisa lagi program diatas, dan tentunya seperti itulah interaksi antar object yang memungkinkan untuk saling memberikan informasi dengan menggunakan mediator tentunya :D hehee.. sekian dulu ya ? dengan berakhirnya postingan ini, berakhir juga pembahasan ane tentang design pattern dan penerapannya di Java, C# dan PHP... semoga bermanfaat bagi ane, ente dan pengunjung blog ini :) ... happy cooding

Pattern Observer di Java, C# dan PHP

Setelah jumatan ada kuliah... waktu nya tidur siang si sebenarna.. tapi karena memang sudah kewajiban untuk mengikuti mata kuliah ke PGRI-an..  ya diikuti ajalah, skalian ane juga mau update lagi tentag design pattern yang rencana nya ane akhiri semua pembahasan design pattern hari ini.. semoga aja bisa... hehehee.. oke kali ini tentang pattern observer yang akan ane bahas dan penerapannya di Java,C# dan PHP .. pattern ini termasuk dalam kategori behaviour  yang menangani kelakuan sebuah program... dan juga termasuk sering dipakai, dan juga sering kita temui...
Contoh real nya yaitu seperti notifikasi di facebook... konsep kerja pattern ini adalah melaporkan secara otomatis ke server jika ada sebuah data/proses baru dan si server melaporkan ke semua client yang telah didaftarkan sebelumnya... sekarang ane akan mencoba untuk mengimplementasikannya di Java, C# dan PHP

Java
package ObServer;

import java.util.*;

public class MainClass {
public static void main(String[] args) {
SubjectConcrete subject = new SubjectConcrete();

subject.Add(new User(subject, "Rizal"));
subject.Add(new User(subject, "Afani"));

subject.SetSubjectStatus("Selamat Pagi");
subject.Notivy();
}
}

interface Subject{
public void Add(ObServer observer);
public void Remove(ObServer observer);
public void Notivy();
}

interface ObServer{
public void DoUpdate();
}

class SubjectConcrete implements Subject{
private List<ObServer> list_observer = new ArrayList<ObServer>();
private String SubjectStatus;
public void SetSubjectStatus(String status){
this.SubjectStatus = status;
}
public String GetSubjectStatus(){
return this.SubjectStatus;
}
@Override
public void Add(ObServer observer) {
list_observer.add(observer);
}

@Override
public void Remove(ObServer observer) {
list_observer.remove(observer);
}

@Override
public void Notivy() {
for(ObServer list : list_observer){
list.DoUpdate();
}
}
}

class User implements ObServer{
private String name;
private SubjectConcrete subject;
public User(SubjectConcrete subject,String name) {
this.subject = subject;
this.name = name;
}

public void SetName(String name){
this.name = name;
}

public String GetName(){
return this.name;
}

public void SetSubject(SubjectConcrete subject){
this.subject = subject;
}

public SubjectConcrete GetSubject(){
return this.subject;
}

@Override
public void DoUpdate() {
System.out.println(this.name+" membaca status Baru '"+this.subject.GetSubjectStatus()+"'");
}
}


C#
using System;
using System.Collections.Generic;

namespace Observer
{
class Program
{
public static void Main(string[] args)
{
SubjectConcrete subject = new SubjectConcrete();

subject.Add(new User(subject, "Rizal"));
subject.Add(new User(subject, "Afani"));

subject.SetSubjectStatus("Selamat Pagi");
subject.Notivy();

Console.ReadKey(true);
}
}

interface Subject{
void Add(ObServer observer);
void Remove(ObServer observer);
void Notivy();
}

interface ObServer{
void DoUpdate();
}

class SubjectConcrete : Subject{
private List<ObServer> list_observer = new List<ObServer>();
private string SubjectStatus;
public void SetSubjectStatus(string status){
this.SubjectStatus = status;
}
public string GetSubjectStatus(){
return this.SubjectStatus;
}

public void Add(ObServer observer) {
list_observer.Add(observer);
}


public void Remove(ObServer observer) {
list_observer.Remove(observer);
}


public void Notivy() {
foreach(ObServer list in list_observer){
list.DoUpdate();
}
}
}

class User : ObServer{
private string name;
private SubjectConcrete subject;
public User(SubjectConcrete subject,string name) {
this.subject = subject;
this.name = name;
}

public void SetName(string name){
this.name = name;
}

public string GetName(){
return this.name;
}

public void SetSubject(SubjectConcrete subject){
this.subject = subject;
}

public SubjectConcrete GetSubject(){
return this.subject;
}


public void DoUpdate() {
Console.WriteLine(this.name+" membaca status Baru '"+this.subject.GetSubjectStatus()+"'");
}
}
}


PHP
<?php
interface Subject{
function Add($index,$observer);
function Remove($index);
function Notivy();
}

interface ObServer{
function DoUpdate();
}

class SubjectConcrete implements Subject{
private $list_observer = Array();
private $SubjectStatus;
function SetSubjectStatus($status){
$this->SubjectStatus = $status;
}
function GetSubjectStatus(){
return $this->SubjectStatus;
}

function Add($index,$observer) {
$this->list_observer[$index] = $observer;
}

function Remove($index) {
unset($this->list_observer[$index]);
}

function Notivy() {
foreach($this->list_observer as $list){
$list->DoUpdate();
}
}
}

class User implements ObServer{
private $name;
private $subject;
function __construct($subject,$name) {
$this->subject = $subject;
$this->name = $name;
}

function SetName($name){
$this->name = $name;
}

function GetName(){
return $this->name;
}

function SetSubject($subject){
$this->subject = $subject;
}

function GetSubject(){
return $this->subject;
}

function DoUpdate() {
echo($this->name." membaca status Baru '".$this->subject->GetSubjectStatus()."'< br />");
}
}

$subject = new SubjectConcrete();

$subject->Add('Rizal',new User($subject, "Rizal"));
$subject->Add('Afani',new User($subject, "Afani"));

$subject->SetSubjectStatus("Selamat Pagi");
$subject->Notivy();
?>

Pattern Bridge di Java, C# dan PHP

hari yang tidak terlalu cerah tapi juga tidak terlalu mendung, disambut dengan menulis design pattern di blog ini agar cepet terlunasi target ane selama 2 minggu ini :D... kali ini giliran pattern bridge yang ane bahas dan ane terapin di Java, C# dan PHP... secara bahasa arti dari bridge ini adalah penghubung/jembatan... fungsinya adalah untuk memisahkan antara abstraksi dan implementasinya... disini ane akan coba implementassinya menggunakan sebuah kartu pengenal (kartu KTP dan kartu mahasiswa) yang pembentukan object instance nya dipisahkan dengan interface nya...
Beginilah implementasinya di Java, C# dan PHP

Java
package Bridge;

public class MainClass {
public static void main(String[] args) {
RunController run = new RunController();

run.SetBiodata(new KTP("Ahmad Rizal Afani","Kertosari","Jomblo"));
run.DisplayText();
System.out.println("--------------------------------------------------------");
run.SetBiodata(new KTM("1110100601", "Ahmad Rizal Afani", "Jln. Ikan Hiu 30 Kertosari, Banyuwangi"));
run.DisplayText();
}
}

interface Biodata{
public void DisplayText();
}

abstract class Controler{
protected Biodata biodata;
public void SetBiodata(Biodata biodata){
this.biodata = biodata;
}
public void DisplayText(){
biodata.DisplayText();
}
}

class RunController extends Controler{}

class KTP implements Biodata{
public KTP(String name,String alamat,String status_hubungan) {
this.name = name;
this.alamat = alamat;
this.status_hubungan = status_hubungan;
}

private String name,alamat,status_hubungan;

@Override
public void DisplayText() {
System.out.println("Class KTP implementasi dari interface Biodata\n");
System.out.println("Nama \t: "+name);
System.out.println("Alamat \t: "+alamat);
System.out.println("Status \t: "+status_hubungan);
System.out.println();
}
}

class KTM implements Biodata{
public KTM(String nim,String nama,String alamat) {
this.nim = nim;
this.nama = nama;
this.alamat = alamat;
}

private String nim,nama,alamat;

@Override
public void DisplayText() {
System.out.println("Class KTM implementasi dari interface Biodata\n\n");
System.out.println("No. Induk \t: "+nim);
System.out.println("Nama \t\t: "+nama);
System.out.println("Alamat \t\t: "+alamat);
System.out.println();
}
}


C#
/*
* Created by SharpDevelop.
* User: FaiQ
* Date: 31/03/2013
* Time: 17:32
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;

namespace Bridge
{
class Program
{
public static void Main(string[] args)
{
RunController run = new RunController();

run.SetBiodata(new KTP("Ahmad Rizal Afani","Kertosari","Jomblo"));
run.DisplayText();
Console.WriteLine("--------------------------------------------------------");
run.SetBiodata(new KTM("1110100601", "Ahmad Rizal Afani", "Jln. Ikan Hiu 30 Kertosari, Banyuwangi"));
run.DisplayText();

Console.ReadKey(true);
}
}

interface Biodata{
void DisplayText();
}

abstract class Controler{
protected Biodata biodata;
public void SetBiodata(Biodata biodata){
this.biodata = biodata;
}
public void DisplayText(){
biodata.DisplayText();
}
}

class RunController : Controler{}

class KTP : Biodata{
public KTP(string name,string alamat,string status_hubungan) {
this.name = name;
this.alamat = alamat;
this.status_hubungan = status_hubungan;
}

private string name,alamat,status_hubungan;

public void DisplayText() {
Console.WriteLine("Class KTP implementasi dari interface Biodata\n");
Console.WriteLine("Nama \t: "+name);
Console.WriteLine("Alamat \t: "+alamat);
Console.WriteLine("Status \t: "+status_hubungan);
Console.WriteLine();
}
}

class KTM : Biodata{
public KTM(string nim,string nama,string alamat) {
this.nim = nim;
this.nama = nama;
this.alamat = alamat;
}

private string nim,nama,alamat;

public void DisplayText() {
Console.WriteLine("Class KTM implementasi dari interface Biodata\n\n");
Console.WriteLine("No. Induk \t: "+nim);
Console.WriteLine("Nama \t\t: "+nama);
Console.WriteLine("Alamat \t\t: "+alamat);
Console.WriteLine();
}
}
}


PHP
<?php
interface Biodata{
function DisplayText();
}

abstract class Controler{
protected $biodata;
function SetBiodata($biodata){
$this->biodata = $biodata;
}
function DisplayText(){
$this->biodata->DisplayText();
}
}

class RunController extends Controler{}

class KTP implements Biodata{
function __construct($name,$alamat,$status_hubungan) {
$this->name = $name;
$this->alamat = $alamat;
$this->status_hubungan = $status_hubungan;
}

private $name,$alamat,$status_hubungan;


function DisplayText() {
echo("<b>Class KTP implementasi dari interface Biodata</b>< br />< br />");
echo("Nama \t: ".$this->name.'< br />');
echo("Alamat \t: ".$this->alamat.'< br />');
echo("Status \t: ".$this->status_hubungan.'< br />');
}
}

class KTM implements Biodata{
function __construct($nim,$nama,$alamat) {
$this->nim = $nim;
$this->nama = $nama;
$this->alamat = $alamat;
}

private $nim,$nama,$alamat;


function DisplayText() {
echo("<b>Class KTM implementasi dari interface Biodata</b><br /><br />");
echo("No-> Induk \t: ".$this->nim.'< br />');
echo("Nama \t\t: ".$this->nama.'< br />');
echo("Alamat \t\t: ".$this->alamat.'< br />');
}
}

$run = new RunController();

$run->SetBiodata(new KTP("Ahmad Rizal Afani","Kertosari","Jomblo"));
$run->DisplayText();
echo("--------------------------------------------------------< br />");
$run->SetBiodata(new KTM("1110100601", "Ahmad Rizal Afani", "Jln-> Ikan Hiu 30 Kertosari, Banyuwangi"));
$run->DisplayText();
?>
pemisahan abstraksi dan implementasinya bisa ente lihat waktu class runController diakses dan kemudian memanggil method yang diwariskan dari parrent class nya... kemudian juga bisa ente lihat waktu method setBiodata diakses dan di isikan dengan object instance class implementasi dari interface biodata :) .. bingung ?? kalo bingung coba ente analisa lagi... ulangi lagi... sampek akhirnya ente paham :D ... sekian dulu untuk postingan kali ini, semoga bermanfaat..

Pattern Chain Of Responsibility di Java, C# dan PHP

Design pattern masi menjadi bahasan di postingan kali ini, sekarang giliran pattern Chain of responsibility untuk ane posting dan contoh implementasinya di Java, C# dan PHP... sebenarnya pattern ini rencananya ane posting tadi pagi... berhubung tadi gak sempet jadi baru ane posting sekarang.. hari sudah sore dan ane pun belum pulang dari kampus... temen2 yang lain juga udah pada pulang, duduk ditemani dengan adik angkatan yang gak ane kenal :D ...
ya gapapalah... hidup itu butuh perjuangan dan pengorbanan.... chain of responsibility arti secara bahasa adalah rantai tanggung jawab.. sesuai namanya, pattern ini mempunyai konsep kerja seperti rantai yang mengolah beberapa proses yang tersambung... jadi pattern ini memungkinkan untuk membuat hubungan terikat antar object... object - object itu berisi sebuah proses, jika sebuah proses gagal menangani permasalahan maka akan dilanjutkan ke proses selanjutnya yang terikat dengan proses tersebut... begitu seterusnya... jika sebuah object berhasil menangani permasalahan maka tidak perlu melanjutkan ke proses selanjutnya... begitulah konsep kerja dari pattern ini yang berkategori design pattern behaviour..
sekarang saatnya ane implementasikan ke dalam program tentunya dengan Java, C# dan PHP :D

Java
package ChainOfResponsibility;

public class MainClass {
public static void main(String[] args) {
PlanetHandler planet = CiptakanSambunganRantai();
planet.SambungRantai(Planet.Jupiter);
planet.SambungRantai(Planet.Mars);
}

private static PlanetHandler CiptakanSambunganRantai(){
PlanetHandler merkurius = new MerkuriusHandler();
PlanetHandler bumi = new BumiHandler();
PlanetHandler mars = new MarsHandler();

merkurius.SetSuccessor(bumi);
bumi.SetSuccessor(mars);

return merkurius;
}
}

abstract class PlanetHandler{
PlanetHandler successor;
public void SetSuccessor(PlanetHandler successor){
this.successor = successor;
}

public abstract void SambungRantai(Planet planet);
}

enum Planet{
Merkurius,Venus,Bumi,Mars,Jupiter,Uranus,Neptunus,Pluto;
}

class MerkuriusHandler extends PlanetHandler{
@Override
public void SambungRantai(Planet planet) {
if(planet == Planet.Merkurius){
System.out.println("Merkurius handler menghandle "+planet);
System.out.println("Merkurius adalah planet terdekat dengan matahari");
}else{
System.out.println("Merkurius handler tidak menghandle "+planet);
if(successor != null){
successor.SambungRantai(planet);
}
}
}
}

class BumiHandler extends PlanetHandler{
@Override
public void SambungRantai(Planet planet) {
if(planet == Planet.Bumi){
System.out.println("Bumi handler menghandle "+planet);
System.out.println("Bumi adalah tempat tinggal manusia");
}else{
System.out.println("Bumi handler tidak menghandle "+planet);
if(successor != null){
successor.SambungRantai(planet);
}
}
}
}

class MarsHandler extends PlanetHandler{
@Override
public void SambungRantai(Planet planet) {
if(planet == Planet.Mars){
System.out.println("Mars handler menghandle "+planet);
System.out.println("Mars adalah tempat tinggal alien");
}else{
System.out.println("Mars handler tidak menghandle "+planet);
if(successor != null){
successor.SambungRantai(planet);
}
}
}
}


C#
using System;

namespace Chain
{
class Program
{
public static void Main(string[] args)
{
PlanetHandler planet = CiptakanSambunganRantai();
planet.SambungRantai(Planet_.Planet.Jupiter);
planet.SambungRantai(Planet_.Planet.Mars);
Console.ReadKey(true);
}

private static PlanetHandler CiptakanSambunganRantai(){
PlanetHandler merkurius = new MerkuriusHandler();
PlanetHandler bumi = new BumiHandler();
PlanetHandler mars = new MarsHandler();

merkurius.SetSuccessor(bumi);
bumi.SetSuccessor(mars);

return merkurius;
}
}

abstract class PlanetHandler{
protected PlanetHandler successor;
public void SetSuccessor(PlanetHandler successor){
this.successor = successor;
}

public abstract void SambungRantai(Planet_.Planet planet);
}

class Planet_{
public enum Planet{
Merkurius,Venus,Bumi,Mars,Jupiter,Uranus,Neptunus,Pluto
}
}

class MerkuriusHandler : PlanetHandler{

public override void SambungRantai(Planet_.Planet planet) {
if(planet == Planet_.Planet.Merkurius){
Console.WriteLine("Merkurius handler menghandle "+planet);
Console.WriteLine("Merkurius adalah planet terdekat dengan matahari");
}else{
Console.WriteLine("Merkurius handler tidak menghandle "+planet);
if(successor != null){
successor.SambungRantai(planet);
}
}
}
}

class BumiHandler : PlanetHandler{

public override void SambungRantai(Planet_.Planet planet) {
if(planet == Planet_.Planet.Bumi){
Console.WriteLine("Bumi handler menghandle "+planet);
Console.WriteLine("Bumi adalah tempat tinggal manusia");
}else{
Console.WriteLine("Bumi handler tidak menghandle "+planet);
if(successor != null){
successor.SambungRantai(planet);
}
}
}
}

class MarsHandler : PlanetHandler{

public override void SambungRantai(Planet_.Planet planet) {
if(planet == Planet_.Planet.Mars){
Console.WriteLine("Mars handler menghandle "+planet);
Console.WriteLine("Mars adalah tempat tinggal alien");
}else{
Console.WriteLine("Mars handler tidak menghandle "+planet);
if(successor != null){
successor.SambungRantai(planet);
}
}
}
}
}


PHP
<?php
class EnumPlanet{
static $planet = array(
'Merkurius' => 'Merkurius',
'Venus' => 'Venus',
'Bumi' => 'Bumi',
'Mars' => 'Mars',
'Jupiter' => 'Jupiter',
'Uranus' => 'Uranus',
'Neptunus' => 'Neptunus',
'Pluto' => 'Pluto'
);
}

abstract class PlanetHandler{
protected $successor;
function SetSuccessor($successor){
$this->successor = $successor;
}
abstract function SambungRantai($planet);
}

class MerkuriusHandler extends PlanetHandler{
function SambungRantai($planet) {
if($planet == EnumPlanet::$planet['Merkurius']){
echo("Merkurius handler menghandle ".$planet.'< br />');
echo("Merkurius adalah planet terdekat dengan matahari< br />");
}else{
echo("Merkurius handler tidak menghandle ".$planet.'< br />');
if($this->successor != null){
$this->successor->SambungRantai($planet);
}
}
}
}

class BumiHandler extends PlanetHandler{
function SambungRantai($planet) {
if($planet == EnumPlanet::$planet['Bumi']){
echo("Bumi handler menghandle ".$planet.'<br />');
echo("Bumi adalah tempat tinggal manusia< br />");
}else{
echo("Bumi handler tidak menghandle ".$planet.'< br />');
if($this->successor != null){
$this->successor->SambungRantai($planet);
}
}
}
}

class MarsHandler extends PlanetHandler{
function SambungRantai($planet) {
if($planet == EnumPlanet::$planet['Mars']){
echo("Mars handler menghandle ".$planet.'< br />');
echo("Mars adalah tempat tinggal alien< br />");
}else{
echo("Mars handler tidak menghandle ".$planet.'< br />');
if($this->successor != null){
$this->successor->SambungRantai($planet);
}
}
}
}

function CiptakanSambunganRantai(){
$merkurius = new MerkuriusHandler();
$bumi = new BumiHandler();
$mars = new MarsHandler();

$merkurius->SetSuccessor($bumi);
$bumi->SetSuccessor($mars);

return $merkurius;
}

$planet = CiptakanSambunganRantai();
$planet->SambungRantai(EnumPlanet::$planet['Jupiter']);
$planet->SambungRantai(EnumPlanet::$planet['Mars']);
?>
Hemmb... beginilah ceritanya design pattern responsibility... :) saling berkesinambungan antar prosesnya, ente tentunya bisa analisa sendiri ya ?? soalnya ini sudah sore dan ane mau pulang :D... cukup dulu yak ?? semoga bermanfaat.. keep cooding :)