31 May 2007

Retouch Photo Rusak


Ini karya saya pake Photoshop. Gak susah, cuma butuh waktu 1 1/2 jam buat benerin foto ini. Pertama Edit Curves, terus pake Clone Stamp dan Patch Tool. Thanks buat Nisa atas contoh foto yang sempurna.


Sebelum:



Sesudah:


Ada yang mau tutorialnya? Kasih comment dulu dunk... :)


Bangsa Semut pake IKON Lucu

Awalnya saya ngrasa ada yang 'membosankan' lihat Bangsa Semut. Yah, banyakan tulisan gak ada gambarnya. Bukan apa-apa, tapi emang rada males ngerjain gambar-gambarnya. Kemarin kebetulan mood-nya lagi pengin utak-atik CorelDraw sama Photoshop. Sekalian degh, saya bikinin ikon yang -menurut saya- cukup lucu-lucu ini. Mudah-mudahan bisa mempermudah milih bacaan, n bikin ratingnya naik. (he... laris manis). Kalo artinya saya kira udah jelas khan?


27 May 2007

CakePHP Chapter2: Konsep Dasar

Sebelum memulai instalasi dan praktek lainnya, ada baiknya kita mengenal konsep yang diterapkan dalam CakePHP. CakePHP menggunakan apa yang disebut dengan pola Model-View-Controller (MVC). MVC adalah pola desain software yang membantu secara logis memisahkan kode program anda, membuatnya lebih reusable, maintainable, dan lebih baik secara keseluruhan.


Dalam istilah Cake, Model mewakili bagian table/record database, dan hubungannya dengan table/record yang lain. Model juga dapat berisi aturan validasi data, yang biasa diterapkan ketika data model di-insert atau update.

View mewakili file tampilan Cake, yang merupakan HTML biasa dengan tambahan kode PHP.

Sedangkan Controller dalam Cake menangani permintaan dari server. Controller menangani user input (URL dan data POST), menerapkan business ligic, memakai Model untuk membaca dan menulis data dari dan ke database dan sumber lainnya, serta mengirimkan data keluaran ke file View yang sesuai.

Untuk memudahkan pengorganisasian aplikasi, Cake menggunakan MVC tidak hanya untuk mengatur bagaimawa objek berinteraksi dalam aplikasi, tapi juga bagaimana file-file disimpan, yang akan dijelaskan nanti.

Ok, sekarang kita beralih melihat susunan file/folder dalam CakePHP. Jika anda meng-unpack file yang sudah didownload dari chapter 1 sebelumnya, anda akan melihat bahwa ada beberapa folder dalam Cake. Namun ada tiga folder utama: app, cake, dan vendors. Secara lengkap berikut susunan folder dalam CakePHP:


/app
    /config          - Berisi file-file konfigurasi database, ACL, dll 
 
    /controllers     - Controllers aplikasi anda 
        /components  - Components aplikasi anda
 
    /index.php       - mempersilahkan anda untuk mengembangkan cake dengan /app
sebagai DocumentRoot
 
    /models          - Models aplikasi
 
    /plugins         - Plugins aplikasi
 
    /tmp             - digunakan untuk caches dan logs
(set folder ini menjadi writable)
 
    /vendors         - Berisi third-party libaries untuk aplikasi
 
    /views           - Views aplikasi
        /elements    - Elements, bagian dari tampilan
        /errors      - Custom error pages
        /helpers     - Helpers
        /layouts     - Application layout files
        /pages       - Static views 
 
    /webroot         - DocumentRoot untuk aplikasi
        /css
        /files
        /img
        /js
 
/cake                - Library inti Cake. Jangan edit file apapun dalam folder ini.
 
index.php           
 
/vendors             - Untuk server-wide third-party libraries.
 
VERSION.txt          - Versi Cake yang anda gunakan


CAKEPHP Chapter1: Pindah Framework Yuk...


Dunia tehnologi informasi yang saya tekuni saat ini benar-benar sedang berevolusi. Banyak yang bisa dijabarkan dari kalimat tadi. Namun saya hanya akan bercerita mengenai bahasa pemrograman yang saya pernah praktekkan sendiri.

Sejak masih SMP saya sudah belajar komputer (sekitar tahun 1998). Waktu itu komputer yang saya punyai adalah Intel 80486 dengan HD cuma 250 MB. Saya sudah belajar DOS 6.0 dan Windows 3.11. Bahasa pemrograman yang saya pelajari adalah QBASIC. Sifatnya masih main-main, penasaran.

SLTA saya harus berpisah dengan komputer saya. Saya disekolahkan oleh orang tua ke luar kota. Kadang masih bisa ngutak-atik komputer di rental pengetikan. Karena komputer di tempat rental tidak terpasang developer tools, seperti aplikasi pemrograman, saya hanya bisa sedikit ‘iseng’ bikin-bikin file BATCH atau VBScript. Pernah juga bikin virus macro pakai editor internal yang ada di Word. Kadang masih sempat main-main VB di rumah pake komputer Via 1 GHz Pro.


Setelah tiga tahun tidak ada ‘pegangan’, akhirnya saya punya komputer lagi. Kali ini Pentium 4 1,8 Ghz dengan HD 120 GB. Cukup banyak yang saya pelajari, walau belum cukup untuk dibilang ‘lengkap’. He…

Saya sempat belajar C++, GCC, Gambas, Phyton, ASP, .NET, dan PHP. Di sisi DBMS saya juga pernah pakai Access, SQL Server, MySQL, PostgreSQL. Kesemuanya hanya pada samapai tingkatan ‘rata-rata’.

Selalu ada keraguan untuk memperdalam suatu bahasa pemrograman dalam diri saya. Karena sebagus apapun kita menguasai suatu bahasa pemrograman, biasanya ada saja bahasa pengganti yang lebih matang, yang seringnya berbeda sama sekali konsepnya dengan yang sudah kita pelajari. Sejauh pengamatan saya, sepertinya hanya Java yang relatif stabil dan bisa diandalkan untuk program berskala besar sampai beberapa tahun ke depan. Saya juga sudah belajar sedikit tentang Java. Namun saya tidak ingin mengulasnya, karena sudah banyak tulisan yang membahasnya.

Kali ini saya ingin ngomong masalah framework. Kita bikin tulisan ini ringan-ringan saja. Agar anda dapat mengikutinya dengan mudah. Definisi yang saya pakai pun seringkali tidak baku dan tidak mengarah ke suatu referensi. Siap?

Baik, pertanyaan yang pertama: apa sih framework itu? Gampang aja: framework kita artikan kerangka kerja. Terus kenapa kita butuh framework? Banyak alasan yang bisa dikemukakan. Tapi kalau saya pribadi cenderung menyukai kemudahan yang ditawarkan dan sudah bosan dengan metode pengembangan yang ngasal dan gitu-gitu melulu. Nanti akan lebih saya jelaskan.

Ok, sekarang saya persempit lagi bahasannya dengan menambah satu kata: ‘PHP’. Jadilah framework PHP. PHP untuk saat ini masih bisa diandalkan untuk pengembangan aplikasi berbasis web. Keistimewaan PHP yang paling saya sukai adalah cross-platform, open-source, dan mendukung konsep OOP. Sekarang contoh nyata framework PHP tuh seperti apa?

Ada banyak contoh. Yang berbasis CMS seperti PostNuke dan Mambo. Dan yang lebih keren seperti Mojavi, WACT, PHP.MVC. Atau yang menekankan reusable code, event driven programming, dan berbasis komponen seperti Prado. Lagi-lagi semuanya punya kelebihan dan kekurangan. Dan saya kira sudah banyak referensi yang bahas CMS ataupun Prado. Sedang seperti Mojavi cs. belum banyak. Tapi saya pilih yang lebih populer dan memiliki komunitas yang aktif, yaitu CakePHP. Kalau boleh jujur, sebetulnya konsep yang ditawarkan Prado juga menarik. Namun sayang, untuk kemudahan dalam menemukan aplikasi yang mendukung untuk menulis kode komponen Prado secara auto-complete belum ada. Sedangkan CakePHP masih mengandalkan kode-kode dari PHP dan HTML.

Keistimewaan CakePHP yang saya sukai diantaranya:

  1. Scaffolding: fitur yang memungkinkan menguji aplikasi tanpa menuliskan kode CRUD (Create, Read, Update, Delete).
  2. Kompatibel dengan PHP4 dan PHP5
  3. ACL (Access Control List)
  4. Request dispatcher, yang membuat URL menjadi ‘lebih indah’
  5. Berbasis MVC (Model, View, Controller)
  6. Built in validation, dan masih banyak lagi fitur menarik lainnya.

Saya ingin memandu anda secara perlahan, sekaligus kita belajar bersama. Namun jika anda membutuhkan referensi resminya bisa anda kunjungi di http://cakephp.org.

Tapi sebelum anda memulai, anda bisa mendapatkan CakePHP dengan:

1. Download versi stable-nya di http://cakeforge.org/projects/cakephp/.

2. Versi nigthly build (stable dan ditambahkan bug fixes) dari http://cakephp.org/downloads/index/nightly.

3. Menggunakan SVN client ke https://svn.cakephp.org/repo/trunk/cake/

Happy CakePHP! :p


22 May 2007

HOT SPOT: Kebutuhan, Peluang, dan Ancaman


Popularitas Tukul Arwana dan jargonnya “kembali ke laptop” benar-benar bisa membuat suatu hal yang signifikan, termasuk di sekitar Yogyakarta. Lihatlah di sekitar kota, khususnya di kampus-kampus, mall/pusat perbelanjaan, ataupun resto/café di bilangan utara Kota Yogyakarta. Banyak anak-anak muda, yang notabenenya mahasiswa, membawa gadget yang biasa digunakan Tukul untuk memandu acaranya itu. Umumnya mereka membawa laptop yang sudah dipersenjatai dengan WiFi (Wireless Fidelity) Card atau kadang disebut juga Wireless LAN Card atau Wireless Card saja. Sebuah piranti untuk laptop yang menghubungkan laptop dengan Access Point(AP) atau Router untuk mengakses internet. Bagi laptop baru, umumnya sudah ter-install WiFi card. Sedangkan laptop lama, cukup dengan mengeluarkan uang dua ratus ribuan, anda sudah dapat menikmati layanan internet gratis di berbagai tempat di Yogyakarta.
Layanan internet gratis di sekitar wilayah AP ini biasanya disebut hot spot. Hot spot yang daya jangkaunya hanya beberapa meter saja ini juga punya standarisasi sendiri. Namun yang paling banyak diterapkan di Yogyakarta, adalah 802.11 b dan 802.11 g yang masing-masing memiliki kecepatan 11 Mbps dan 54 Mbps atau 108 Mbps dengan tambahan Turbo G (saya belum menemukan yang 802.11 a). Kedua standarisasi ini bekerja pada frekuensi 2,4 GHz.
Untuk memanfaatkan Hot Spot ini, ada berbagai macam kebijakan yang diterapkan oleh provider-nya. Ada yang bisa langsung terhubung dengan AP (seperti di Ambarukmo Plaza/Citranet, Kedai Nusantara di Nologaten, atau Lembah Kampus UGM), ada yang harus terdaftar MAC address (nomor seri WiFi Card) dan IP address-nya (seperti di kampus, i.e.: AMIKOM, UGM), dan ada pula yang memakai WEP Key (semacam password ke AP) (seperti di RAMA-NET/Netindo Group, Seturan).
Namun biarpun berbeda-beda, ada satu kesamaan keuntungan yang bisa kita dapatkan, sama-sama gratis. Hal ini sangat menguntungkan, khususnya bagi mahasiswa yang senang mendengar kata “gratis”. Kalau beruntung, anda bisa sekaligus menikmati pemandangan atau suasana yang menyenangkan di sekitar hot spot. Kalau ada duit, anda bisa singgah ke café sembari menikmati secangkir kopi, cukup dengan sedikit biaya yang jauh lebih murah daripada yang anda keluarkan untuk menggunakan jasa warnet. Yang paling asyik adalah jika tempat tinggal kita dekat dengan area hot spot. Jika legal, kita bisa memanfaatkan layanan ini kapan pun kita mau. (Hal ini sangat berbeda dengan yang saya rasakan ketika di Bandung –ketika saya PKL di Telkom RisTI selama dua bulanan. Semisal di BTC (Bandung Trade Center), BEC, Cihampelas Walk atau beberapa café lain yang mengharuskan berlangganan ke CBN, Melsa, atau IM2. Kalau ada gratisan, biasanya tiap sekitar tiga menit putus).
Adanya hot spot gratisan ini, bagi kebanyakan mahasiswa seperti saya merupakan berkah tersendiri. Selain hemat biaya, resiko keamanan seperti history, cache, ataupun lupa logout dari suatu website bisa terhindari dengan memakai laptop sendiri. Software aplikasi yang digunakan pun bisa lebih beragam dari software-software yang terinstal di komputer warnet. Bagi entrepreneur, melihat hot spot ini merupakan suatu peluang untuk melebarkan segmentasi pasar atau menjaga loyalitas pelanggan. Dan bagi pedagang komputer, hot spot ini menjadi isu penting untuk menaikkan angka penjualan laptopnya.
Di samping keuntungan dan peluang yang ditawarkan, hot spot juga datang dengan sedikit kerugian dan ancaman. Yang nantinya paling terasa dampaknya adalah bisnis warnet. Seiring terjangkaunya harga laptop, orang-orang yang beralih menggunakan layanan hot spot ini pun akan makin banyak jumlahnya. Namun, hot spot ini pun bukan berarti bebas dari ancaman. Ada segelintir orang yang “kreatif” (baca:kere dan aktif) yang tinggal di sekitar lokasi hot spot, mampu menghadirkan hot spot tadi ke tempat tinggalnya. Tentunya resiko keamanan dan bandwith yang terbuang karena hal ini harus bisa diatasi. Selain hal tersebut, yang mungkin jadi ancaman buat WiFi adalah hadirnya tehnologi baru yang lebih hebat seperti WiMax yang punya daya jangkau hingga 30 km. Jika sudah begini, maka pemerintah dan instansi/asosiasi pengusaha yang terkait harus secepatnya membuat regulasi untuk memanfaatkan keuntungannya dan mengatasi kerugian yang dibawa.
Di balik semuanya, saya yakin nantinya akses internet masyarakat kita bisa merata dan cuma-cuma. Menjadi suatu kebutuhan yang tak terpisahkan dari kehidupan kita. Sama seperti akses acara televisi. Dulu kita wajib membayar “iuran”, namun sekarang kita bisa menonton acara televisi sesuka hati kita berkat kerjasama sponsor yang menjajakan produknya lewat televisi. Pertanyaannya: “Siapkah kita menyaring informasi dari internet tersebut? Khususnya untuk anak-anak dan generasi muda kita?”