Archive

Archive for the ‘Programming’ Category

Tutorial-Doctrine (Part-2-Schema)

November 3rd, 2010
Comments Off

Skema/Schema, merupakan definisi database yang akan digunakan dalam sistem yang kita kembangkan. Skema ini harus disimpan di dalam folder ./root/schema.

Untuk mempermudah dalam melakukan pemeliharaan sistem, maka skema database yang akan dibuat disimpan dan didefinisikan dalam format YAML. Adapun aturan/syntax penulisannya adalah sebagai berikut:

schema

Catatan :

  • Gunakan spasi untuk mengganti karakter TAB.
  • Tambahkan spasi setelah tanda titik dua (“:”).
  • Penamaan identifier hanya boleh mengandung huruf dan under score (_)

Type data yang bisa digunakan:

Type Data

Keterangan

integer(n) Bilangan bulat, n = nilai maksimal
string(n) Teks/Karakter, n=panjang karakter
boolean Hanya bernilai TRUE/FALSE
timestamp Tanggal dan Waktu dengan format : “YYYY-MM-DD H:M:S”
date Tanggan dengan format : “YYYY-MM-DD”
time Waktu dengan format: “H:M:S”
float Bilangan Real
decimal(n) Bilangan Desimal dengan n buah di belakang koma
enum Type data yang nilainya sudah didefinisikan

Dalam tutorial ini, kita akan mencoba membuat schema untuk aplikasi penjualan sangat sangat sederhana sekali. Silahkan buat schema berikut, kemudian simpan di folder ./root/schema dengan nama toko_skema.yml.
<skema_toko.yml>

yml

download skema_toko.yml

Di dalam file skema di atas, kita mendefinisikan enam table dan enam model. Nama table dan nama model boleh berbeda, tapi disarankan sama. Untuk penulisan nama table disarankan menggunakan huruf capital di awal setiap kata yang mendefinisikan nama model tersebut.

Dalam definisi file YAML di atas, berikut penjelasannya :

detect_relations: true

Mendefinisikan, bahwa CLI (Command Line Interface) harus melakukan deteksi dan membuat Relasi antar model secara secara otomatis.

actAs: [Timestampable]

Mendefinisikan agar di setiap class model yang dibuat dapat melakukan pencatatan tanggal pembuatan dan tanggal update untuk setiap data yang tersimpan di dalamnya.

package: Master

Mendefinisikan package yang digunakan, yaitu Master


options:
type: MyISAM

Mendefinisikan tipe table yang akan digunakan di dalam database.

Pembuatan Model

Model dalam konsep MVC, secara sederhana diartikan sebagai representasi dari table-tabel dan relasinya yang tersimpan di dalam database.

Pembuatan model ini sendiri, dapat dilakukan secara manual, maupun secara otomatis dengan bantuan tool yang telah disediakan oleh doctrine. Untuk mempermudah proses pengembangan dan pemeliharaan, disarankan untuk menggunakan tool, karena dengan bantuan tool ini, maka model, dan database (termasuk table dan relasinya) akan secara otomatis dibuatkan/digenerate dari file skema yang tersimpan di dalam folder ./root/schema.

Untuk membuat model secara otomatis, langkah-langkahnya sebagai berikut:

  1. Buka Comand Line (cmd)
  2. Kemudian pindahkan direktori kerja ke interpreter php yang dimiliki webserver.
    >Cd c:\xampp\php
  3. Eksekusi file : .\toko\doctrine dengan parameter build-all-reload
    >php c:\xampp\htdocs\toko\doctrine build-all-reload
  4. Masukan “y”, jika muncul pertanyaan konfirmasi.
  5. Finish…

Asumsi:

  • XAMPP diinstall di C:\
  • Root Direktori Aplikasi adalah “toko”

Sampai tahap ini, kita telah berhasil membuat model sesuai yang didefinisikan di dalam ./root/schema/toko_skema.yml. Model yang telah dibuat bisa dilihat di ./root/models.

Author: yaya Categories: PHP-Doctrine, Programming Tags: , ,

Tutorial Doctrine (Part-1-Installasi)

October 23rd, 2010
Comments Off

Doctrine merupakan salah satu ORM yang berjalan di PHP 5.2.x ke atas. Dikembangkan oleh doctrine-project.org. pada saat ini versi stabil terbarunya telah mencapai versi 1.2.3. Namun dalam tutorial ini hanya akan digunakan versi 1.1.6.

NB:
ORM (Object Relational Mapping) adalah teknik pemrograman yang digunakan untuk memetakan Relasional Database ke dalam Virtual Database yang dapat diakses langsung melalui bahasa pemrograman, salah satunya dipetakan ke dalam object-object Model.

Installasi

Doctrine dapat diinstal melalui berbagai cara, namun pada tutorial ini, digunakan doctrine sandbox yang dapat di download di sini. Pada saat tutorial ini dibuat, versi terbarunya yang stabil sudah mencapai versi 1.2.3.

Untuk installasi ikuti langkah-langkah berikut:

  1. Pastikan Di Web Server Anda terinstall PHP 5.2.x (silahkan cari referensi lain)
  2. Pastikan Versi  MySQL yang anda gunakan minimal 4.x
  3. Download Doctrine-1.1.6-Sandbox
  4. Ekstraksi file “Doctrine-1.1.6-Sandbox.tgz” di webroot atau htdocs
  5. Rename direktori hasil ekstraksi “Doctrine-1.1.6-Sandbox”, menjadi direktori applikasi yang akan dibuat, misalnya “toko”.
  6. Sampai tahap ini, installasi telah berhasil dilakukan.

Struktur Direktori

Setelah melakukan installasi, di dalam folder toko, kita akan menemukan struktur direktori sebagai berikut :

direktori

Keterangan Isi Direktorinya :

File/Folder

Keterangan

./toko/data Terdiri dari folder fixtures dan sql. fixtures digunakan untuk menyimpan file yaml yang digunakan untuk melakukan import data. sql digunakan untuk menyimpan file schema hasil export dalam format sql
./toko/lib Di dalam direktori ini, tersimpan seluruh librari doctrine yang dibutuhkan
./toko/migrations Tempat Menyimpan class-class migratios yang telah dibuat/digerate, dan akan digunakan dalam proses migrasi
./toko/models Tempat Menyimpan class-class model yang telah dibuat/digerate
./toko/schema Tempat menyimpan file Skema database dalam format YAML yang digunakan untuk menggenerate struktur table dan model
./toko/config.php Berisi konfigurasi PATH dan konfigurasi Doctrine untuk siap pakai
./toko/doctrine File yang dapat dieksekusi (CLI) untuk membantu bekerja dengan Doctrine
./toko/doctrine.php File Konfigurasi untuk CLI (default dibuat oleh pengembang)
./toko/index.php Contoh penggunaan Doctrine Sederhana

Konfigurasi Koneksi dan Database

Sebelum memulai bekerja, mari kita persiapkan konfigurasi database yang dibutuhkan.

Silahkan Buka file ./toko/config.php kemudian ubah kode berikut :

define('DSN', 'mysql://root:@localhost/doctrine11sandbox');

menjadi:

define('DSN', 'mysql://root:@localhost/toko');

Catatan :
user     = root
password    = “”
host    = localhost
database    = toko

kemudian tambahkan baris berikut setelah baris terakhir :

Doctrine::loadModels('models');

Finish…

Akhirnya konfigurasi telah selesai kita lakukan, tunggu tutorial berikutnya untuk mencoba implementasi.

Author: yaya Categories: PHP-Doctrine, Programming Tags:

CI – Fungsi Session Yang Tersembunyi..

September 23rd, 2010
Comments Off

Kemarin saat melakukan debuging sebuah sistem yang dibangun menggunakan Code Igniter, ditemukan sedikit permasalahan untuk menampilkan seluruh isi session yang sedang aktif. Setelah googling ke sana ke mari, dan sedikit berdoa, akhirnya ditemukan sebuah fungsi yang ternyata tidak dibahas di dalam manual-book, yaitu fungsi: all_userdata().

Berikut contohnya:

$this->session->all_userdata();

Semoga bermanfaat. Untuk membedah fungsi-fungsi lainnya, silahkan buka file library dan helpernya sendiri, maka niscaya anda akan menemukan fungsi-fungsi yang belum/tidak tercantum di dalam dokumentasi,,:D

Salam CI,,

Happy Programming Community for ILKOM UPI

August 9th, 2009

Setiap tahun, ada satu, dua, bahkan tak terhitung jumlahnya Programming Contest yang diadakan secara Online maupun Offline di berbagai pelosok dunia. Lalu dimana peran kita selaku bagian dari keluarga besar Computer Sciences di dunia?? Apakah kita pernah sedikit memikirkan atau bahkan bergabung di event-event tersebut??

Maksudnya Event-event seperti Apa??? Seperti berikut kah??

  1. Olimpiade Sains Nasional (Seleksi TOKI)
  2. IOI (international Olympiade in Informatics)
  3. ACM ICPC BNPC(Binus)
  4. ACM ICPC (International Collegiate Programming Contest)
  5. Google Code Jam
  6. GemasTIK (IT Telkom)
  7. Arkavidia (ITB)
  8. Dan lain sebagainya

Ya, benar, event-event seperti itu. Mungkin beberapa teman, kakak, bahkan adik kita telah turut bergabung meramaikan event-event itu.

Apakah kita hanya akan berdiam diri dan menonton pagelaran akbar tersebut?? Apakah kita tidak merasa ingin berpartisipasi atau bahkan mengadakan event-event seperti itu?? Saya kira selaku warga Computer Sciences yang baik dan yang “exists”, kita perlu sedikit lebih dalam mengenal apa dan bagaimana event-event tersebut terselenggara. Bahkan suatu hari nanti kita harus merebut gelar Juara Pertama atau Meraih Medali Emas dari satu bahkan semua event-event itu. Apakah kita sanggup? Mari katakan “YA”, tinggal menunggu moment yang tepat saja untuk mewujudkan itu semua.

Lalu apa hubungannya dengan Happy Programming Community ??

Nah, tujuan utama dibentuknya komunitas ini adalah untuk mewadahi teman-teman yang ingin berkecimpung dan berbagi ilmu di dunia analisis dan design algoritma.

Apa?? ANDAL??

Yup, benar sekali, karena event-event yang disebutkan di atas, semuanya menuntut penguasaan dan pemahaman tentang analisis dan design algoritma. Dengan pemahaman ini, nantinya kita akan mengasah kemampuan problem solving kita bahkan menciptakan problem-problem baru yang bisa membuat hati kita lebih happy dan lebih fun tentunya,,

Apa manfaatnya bagi Anda??

Ups, tentu manfaatnya banyak..

  • Kemampuan programming kita akan semakin terasah
  • Kita bisa sejenak merefresh otak kita dari kepenatan pembangunan system yang rumit yang selama ini mungkin Anda kembangkan atau menjadi tugas keseharian Anda di Kampus (Refresing Ala Enginer, hahaha..)
  • Kita bisa berbagi ilmu, agar kita bisa mengikuti salah satu atau semua event yang disebutkan di atas, dan tentunya bersama-sama menggali ilmu baru agar bisa menjadi Juara
  • Bagi teman-teman yang sudah mahir dan High Quality, bisa menyumbangkan ilmunya kepada adik-adik di SMA masing-masing, guna mempersiapkan TIM olimpiade komputer sekolah (itu sich kalo sempet, heu33)
  • Kita bisa belajar bersama, dan mencoba mengadakan event-event serupa baik untuk internal maupun eksternal ILKOM UPI.
  • Kita bisa makan bareng, nonton bareng, kumpul bareng, jalan-jalan bareng, coding bareng (alah gak penting, hehe,,, tapi itulah kebiasaan komunitas,,haha..)
  • Dan lain sebagainya,, (cari sendiri lah)

Nah, gimana menurut teman-teman??

Jangan hanya bilang ya, tidak, atau bahkan gak tahu. Let’s take action,,

Kalo bilang ya, ya laksanakan apa yang menurut kalian harus dilaksanakan sebagai tanda kalian setuju, jika bilang tidak, Ya realisasikan apa yang menurut kalian lebih baik dan bisa membuat keadaan yang sekarang lebih baik lagi. Jika bilang tidak tahu, ya Laksanakan apa yang menurut kalian terbaik agar bisa menjadi tahu. Jangan hanya diam, dunia terus berputar kawan,, Smangat,,,,,,

Cakephp: Helper di dalam Controller

August 6th, 2009
Comments Off

Selama ini kita mengetahui bahwa helper dapat digunakan untuk memudahkan dalam pembuatan tampilan (view) yang berulang. Sehingga mayoritas diantara kita menggunakannya di dalam bagian view. Tapi secara tidak sadar, Dalam pembuatan suatu aplikasi berbasis cakephp, terkadang kita membutuhkan fungsi-fungsi dalam sebuah Helper untuk digunakan di dalam sebuah controller. Lalu bagai mana caranya??

Baiklah, caranya relative mudah, kita cukup menggunakan fungsi App::import yang telah disediakan cakephp. Ikuti contoh berikut :


class PostController extends AppController {
    function index() {
        App::import('Helper', 'Html'); // Me-Load Helper HTML
        $html = new HtmlHelper(); //MElakukan Instansiasi Class HTMLHelper
        debug($html->link('Kunjungi Blog Saya', 'http://blog.yw.web.id'));
    }
}

Mudah bukan, Let’s Try,,

Author: yaya Categories: Cakephp, Programming Tags: , , ,