Category Archives: PHP related

Sub Query in CodeIgniter

Few month ago, i posted about sub query in codeigniter here. And today i’ve found another way. It using active record class in codeigniter. For example:

$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
$query = $this->db->get('mytable');

Just put ‘FALSE’ to second parameter in select() function. $this->db->select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.

So simple. Isn’t it?:D

$this->load->view()

When you are using codeigniter, you will use function $this->load->view to load your ‘view’. In codeigniter user guide, a view is described as simply a web page, or a page fragment, like a header, footer, sidebar, etc. In fact, views can flexibly be embedded within other views (within other views, etc., etc.) if you need this type of hierarchy.

In my last project, some fragment on view is loaded in every page. They are header, footer and sidebar. And the content is dynamic. I don’t want to load views for every page. So i write a function in a library (or you can also extends the controller) to handle loading views for every page.
Continue reading

CodeIgniter Modular Programming

CodeIgniter

CodeIgniter has been my favorite PHP framework for a while. CodeIgniter is simple and very easy to use. CodeIgniter applying MVC ( Model View Controller) concept. How about HMVC ( Hierarchical Model View Controller) ?

With a library from Wire Designz, Modular Extensions, we can make CodeIgniter modular. Modules are groups of component in CodeIgniter for example a controller, model, and view separated from application folder.

Continue reading

Upload Validation dalam Form Validation CodeIgniter

Minggu ini saya mengerjakan website dari Elektronika dan Instrumentasi UGM. Saya membuat sebuah content management system(CMS) sederhana untuk memperbarui konten. Konsepnya adalah dalam sebuah posting, akan ada sebuah judul, ringkasan, teks panjang, dan gambar yang mewakili posting tersebut.

Web tersebut disusun dengan menggunakan framework CodeIgniter. Awalnya saya berencana membuat sebuah librari untuk menangani web ini. Jadi saya tinggal fokus pada librarinya. Termasuk untuk bagian CMS tersebut. Saya pun menggunakan class form validation dari CodeIgniter untuk melakukan validasi input form CMS.

Continue reading

Pemeriksa Struktur Kalimat Dasar Bahasa Indonesia

Setelah lama bertapa mencari wangsit, saya mendapatkan sedikit hidayah.

http://devel2.ugm.ac.id

(Saat ini mungkin server down karena tugas akhir saya sudah selesai)

Pemeriksa struktur kalimat ini hanya bekerja jika dan hanya jika:

  1. Kalimat merupakan kalimat dasar bahasa Indonesia bertipe SP, SPO, SPK, SPPel, SPOK, SPOPel.
  2. Kalimat merupakan kalimat tunggal, dan bukan kalimat majemuk. Tidak ada konnjungtor di dalam kalimat tersebut, misalnya dan, atau, dan lain sebagainya.
  3. Database kata tidak lengkap, mohon cek dulu di http://devel2.ugm.ac.id/query.php?h=<huruf>, misalnya http://devel2.ugm.ac.id/query.php?h=a untuk huruf a. Daftar lengkapnya di: http://devel2.ugm.ac.id/query.php . Bila suatu kata benda, adjectiva, atau kata lain terdeteksi sebagai nama, berarti kata tersebut tidak ada di dalam database. 🙂
  4. Kata yang digunakan bukan kata ulang.

Mohon bantuan dari teman-teman semua untuk mencobanya. Mohon informasikan apabila ada kalimat yang tidak bisa diparsing. Terimakasih banyak. 🙂

Parsing Kalimat Bahasa Indonesia dengan PHP

Lemon parser generator adalah sebuah parser generator seperti YACC dan Bison yang pada awalnya dikembangkan untuk SQLite project. Namun Lemon Parser berbeda dengan YACC dan Bison, format grammarnya dibuat berbeda untuk mengurangi kesalahan coding. Selain itu Lemon Parser menghasilkan parser yang reentrant and thread-safe.

Continue reading

Yang Terlupakan

Dalam membuat sebuah sistem yang mengambil data dari database, hal yang seringkali dilupakan adalah antisipasi ketika tidak ada data yang dikembalikan oleh sistem. Atau NULL. Ini bisa saja karena belum ada datanya, atau tidak ada data yang sesuai dengan parameter/kriteria yang diinginkan.

Misalnya saja, saya ingin mengambil data semua agenda dari table agenda. Namun karena sistem itu baru saja diluncurkan, maka belum ada agenda. Atau ketika saya ingin mengambil agenda di tanggal 12 Juni 2009, namun karena tidak ada agenda pada tanggal tersebut, maka sistem mengembalikan nilai NULL. Dan akan muncul halaman/bagian halaman yang kosong.

Continue reading