Lewati navigasi

Category Archives: tutorial


Setelah sekian lama terbengkalai, akhirnya saya melanjutkan postingan ini. Di postingan tersebut (dan postingan-postingan sebelumnya), saya menulis tentang bagaimana mengkustomisasi CJuiAutoComplete sesuai dengan kebutuhan. Tapi kelemahan dari implementasi sebelum-sebelumnya adalahautocompletetersebut terikat pada satucontroller dan agak repot untuk dipakai diview yang lain.

Agar dapat dengan mudah digunakan di view yang lain solusinya adalah dengan membungkus autocomplete tersebut menjadi sebuah Widget. Dengan demikian, untuk menggunakan autocomplete, kita cukup meletakkan kode widgetnya saja. Permasalahan dengan Widget ini adalah bagaimana cara mendapatkan data untuk autocomplete tersebut? Caranya mudah, yakni dengan menggunakan fitur ActionProvider pada Widget.

Read More »

Iklan

Salah satu masalah yang dihadapi oleh orang saat menggunakan Yii adalah mengambil atribut dari tabel kedua (ketiga, keempat, dst) yang digunakan pada saat JOIN.

Katakanlah saya mempunya dua buah tabel ModelA dan ModelB seperti di bawah.

CREATE TABLE IF NOT EXISTS `ModelA` (
  `id` int(11) NOT NULL,
  `attribute2` int(11) NOT NULL,
  `attribute3` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `ModelB` (
  `id` int(11) NOT NULL,
  `aId` int(11) NOT NULL,
  `attribute3` int(11) NOT NULL,
  `attribute4` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Read More »


Kemarin sore saya ingin membuat bot twitter yang bisa mengupdate status twitter setiap jam. Dan caranya ternyata sangat mudah. Cukup unduh library Twitter OAuth di sini kemudian extract di “/protected/vendors/twitteroauth”.

jadinya seperti ini

$ls protected/vendors/twitteroauth
-rw-rw-r-- 1 petra petra 26482 May  4 10:12 OAuth.php
-rw-rw-r-- 1 petra petra  7755 May  4 10:12 TwitterOAuth.php

bagi yang menggunakan server berbasis *NIX (yang case sensitive) ubah nama file twitteroauth.php menjadi TwitterOAuth.php

Sekarang tinggal membuatconsole commanddi “protected/commands”

<?php
class TweetbotCommand extends CConsoleCommand {

        const CONSUMER_KEY = 'xxxxxxxxxxxxxxxxx';
        const CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
        const OAUTH_TOKEN = 'xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
        const OAUTH_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

        public function actionTweet() {
                $message = "Hello World!";

                Yii::import('application.vendors.twitteroauth.*');
                $connection = new TwitterOAuth(self::CONSUMER_KEY, self::CONSUMER_SECRET, self::OAUTH_TOKEN, self::OAUTH_SECRET);
                $connection->get('account/verify_credentials');
                $connection->post('statuses/update', array('status' => $message));
        }

}

Untuk isi dari variabel CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, dan OAUTH_SECRET bisa dilihat di panduan ini.

Sekarang untuk menjalankannya tinggal eksekusi YIIC saja.

$/usr/bin/php protected/yiic tweetbot tweet
$#atau bisa cara di bawah
$php protected/yiic tweetbot tweet
$#atau juga bisa cara di bawah
$protected/yiic tweetbot tweet

Dan dengan mudahnya agar tweetnya bisa diupdate setiap jam adalah dengan menambahkan entri di crontab

0 * * * * * /usr/bin/php protected/yiic tweetbot tweet

(Karena terlalu simpel, kodenya tidak saya masukkan di github)


Sesuai dengan permintaan di postingan sebelumnya, sekarang saya akan mencoba menambahkan link di dropdown yang dihasilkan oleh autocomplete. Seperti autocomplete yang ada di Facebook, autocomplete yang akan saya modifikasi akan memindahkan halaman ke halaman profil userketika dropdownnya diklik.

Read More »


Melanjutkan postingan sebelumnya, sekarang tampilan dropdown dari CJuiAutoComplete yang hanya teks sederhana akan saya ubah menjadi lebih bagus. Dropdown ini akan kita buat agar bisa menampilkan data selain nama panjang, tetapi juga mungkin foto profil atau asal kota. Nantinya akan mirip dengan search autocomplete yang ada di Facebook seperti di bawah.

Autocomplete di Facebook search.

Read More »


Di antara banyak kelebihan Yii, salah satu yang sangat menyenangkan adalah Yii dapat memiliki struktur model/view/controller yang seolah-olah terpisah. Struktur ini disebut Module. Dengan adanya struktur ini, aplikasi Yii dapat dibagi-bagi ke dalam sub-sub aplikasi yang nantinya memudahkan untuk pengembangan atau perawatan.

Contoh penggunaan modul ini adalah untuk memisahkan bagian administrasi aplikasi menjadi sebuah struktur tersendiri. Dengan demikian, sebagai contoh, halaman login untuk admin dengan pengguna biasa dapat lebih sederhana dibandingkan yang saya lakukan di tulisan sebelum ini.

Read More »


Mungkin gw udah cerita di beberapa post lalu kalau pada semester ini gw mengambil mata kuliah Sistem Rekognisi. Permasalahan yang dihadapi kali ini adalah bagaimana menipiskan ketebalan sebuah gambar pada karakter yang ingin direkognisi. Penipisan ini dilakukan untuk mengambil fitur-fitur penting dari karakter tersebut. Algoritma ini disebut thinning. Keterangan lebih lanjut bisa dibaca di sini.

Algoritma yang gw gunakan di sini adalah algoritma yang dikemukakan oleh Zhang-Suen dalam paper mereka yang berjudul “A Fast Parallel Algorithm For Thinning Digital Pattern“. Read More »


Untuk pengguna Linux atau UNIX pasti familiar dengan penggunaan options pada aplikasi berbasis CLI (command line interface). CLI options atau CLI parameter adalah sebuah mekanisme untuk memasukkan variabel ke dalam aplikasi tersebut.
Contohnya untuk di Linux atau UNIX

t76010@server42411:~$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print octal escapes for nongraphic characters
      --block-size=SIZE      use SIZE-byte blocks
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information)
                               with -l: show ctime and sort by name
                               otherwise: sort by ctime

Sedangkan di Windows pun ada format parameter yang berbeda (seringkali disebut switch) untuk command pada MS-DOS

Displays a list of files and subdirectories in a directory.

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]	Specifies drive, directory, and/or files to list.
attributes	

D  Directories                R  Read-only files
H  Hidden files               A  Files ready for archiving
S  System files               -  Prefix meaning not

/B	Uses bare format (no heading information or summary).
/C	Display the thousand separator in file sizes. This is the default. Use /-C to disable display of separator.
/D	Same as wide but files are list sorted by column.
/L	Uses lowercase.

Setiap bahasa pemrograman memiliki fitur parameter untuk memfasilitasi passing variabel ke dalam program. Akan tetapi umumnya bahasa tidak langsung menyediakan format passing variabel seperti di atas yakni melakukan passing variabel secara terstruktur.

Read More »


*Maaf baru posting setelah sekian lama*

Sekarang saya akan mencoba membuat kelas Entity Persistence pada project yang pernah diposting sebelum ini. Pada proyek itu telah dibuat Persistence Unitnya.
Read More »


Didedikasikan buat rekan-rekan IF ITB 2006.

Ada sedikit permintaaan dari beberapa junior supaya saya sedikit mengupas tentang aplikasi medis sederhana di Java EE. Aplikasi ini cuman aplikasi pengaturan dokter, pasien, dan pemeriksaan. Aplikasi ini akan dibangun dengan menggunakan basis data MySQL dan IDE Netbeans.classdiagram

Read More »

%d blogger menyukai ini: