Hari ini fitur automatic update dari Windows XP SP3 yang aku gunakan mengeluarkan pesan notifikasi yang menginformasikan bahwa Internet Explorer 8 sudah final release dan tersedia untuk didownload. Walaupun aku bukan pengguna IE, tetapi karena memang IE menjadi bagian yang sudah terintegrasi dengan Windows terutama sekali untuk fitur update Windows, maka aku pun memutuskan untuk melakukan proses upgrade dari IE 7 ke IE 8. Setelah aku coba untuk browsing lebih kurang 20 menit, aku tetap merasa IE belum bisa mengalahkan web browser lain seperti FireFox dan Opera. He3.. bahkan dengan Chrome sekali pun masih tertinggal jauh rasanya :) Feelingku sich bilang gak lama lagi juga bakal keluar patch updatenya :p Ha3.. sama seperti versi2 sebelumnya, new version with new vulnerablitilies :p
Showing posts with label Technology. Show all posts
Showing posts with label Technology. Show all posts
Internet Explorer 8
Hari ini fitur automatic update dari Windows XP SP3 yang aku gunakan mengeluarkan pesan notifikasi yang menginformasikan bahwa Internet Explorer 8 sudah final release dan tersedia untuk didownload. Walaupun aku bukan pengguna IE, tetapi karena memang IE menjadi bagian yang sudah terintegrasi dengan Windows terutama sekali untuk fitur update Windows, maka aku pun memutuskan untuk melakukan proses upgrade dari IE 7 ke IE 8. Setelah aku coba untuk browsing lebih kurang 20 menit, aku tetap merasa IE belum bisa mengalahkan web browser lain seperti FireFox dan Opera. He3.. bahkan dengan Chrome sekali pun masih tertinggal jauh rasanya :) Feelingku sich bilang gak lama lagi juga bakal keluar patch updatenya :p Ha3.. sama seperti versi2 sebelumnya, new version with new vulnerablitilies :p
Seputar Service Pack
Beberapa waktu yang lalu ada seseorang yang bertanya padaku apakah Windows XP dengan service pack 3 lebih baik dari pada Windows XP dengan service pack 2. Suatu pertanyaan yang agak aneh menurutku, apalagi bila pertanyaan tersebut dilontarkan oleh seseorang yang bergelut di bidang IT dan mengaku menguasai banyak bidang dalam dunia IT (katanya sich gitu) :p Tujuan mendasar dari dikeluarkannya suatu service pack adalah untuk melakukan perbaikan-perbaikan dari permasalahan-permasalahan yang memang muncul di versi sebelumnya. Kalau memang seseorang mau concern perihal keamanan sistem menurutku memang sudah seharusnya untuk tetap menjaga sistem yang dimilikinya dengan melakukan update rutin baik update pada anti virus (anti virus engine dan virus definition database) maupun pada sistem operasi. Memang kalau dilihat tidak banyak orang yang concern perihal update pada sistem operasi. Bahkan tidak jarang juga orang yang memang bergelut di bidang IT yang juga mengabaikan hal ini. Kebanyakan orang rata-rata hanya berfokus pada melakukan update rutin anti virus dengan harapan sistem yang mereka gunakan tetap aman dan terbebas dari serangan virus. Tetapi sebenarnya melakukan update rutin terhadap sistem operasi pun semestinya mendapat perhatian khusus. Karena toh kalau mau dilihat suatu anti virus sekali pun akan berjalan di atas suatu sistem operasi. Dalam hal ini, Microsoft Windows sebagai salah satu sistem operasi yang selalu menduduki peringkat pertama dalam daftar target penyeragan pun secara rutin mengeluarkan security update yang bisa kita pantau terus secara automatic dengan fitur automatic update yang sudah disertakan dalam setiap sistem operasi Windows keluaran Microsoft.
Just keep your sistem up to date :)
Solusi Sederhana Cegah Virus
Kemarin sempat ada obrolan kecil dengan salah satu rekanku. Dia menyampaikan bahwa ternyata ada solusi simple yang bisa kita lakukan untuk mencegah virus yang berjangkit di flashdisk atau removeable media yang kita miliki. Ide dasarnya seperti ini. Hampir setiap virus yang menjangkiti flashdisk atau removeable media lainnya selalu mencreate sebuah file bernama autorun.inf yang akan aktif sewaktu flashdisk atau removeable media diakses. Nah solusinya adalah kita akan membuat sebuah file autorun.inf kosong yang kita beri atribut readonly. Alhasil ketika si virus mencoba menjangkiti flasdisk yang kita miliki dan mulai membuat file bernama autorun.inf maka proses pembuatan file tersebut akan ditolak dikarenakan di dalam flashdisk kita sudah terdapat file bernama autorun.inf yang memang tidak mungkin untuk ditimpa dikarenakan file tersebut kita buat dengan menggunakan atribut readonly :)Solusi sederhana nan cerdas bukan :)Selamat mencoba
Ayo Gunakan iGoogle :)
Wahhhh makin lama aku jadi makin jatuh hati pada Google :) Selain layanan utamanya sebagai search engine yang memang sudah banyak membantu ku dalam menjawab berbagai kebingungan dan tanda tanya yang seringkali aku temui dalam aktifitas keseharianku, google juga menyediakan banyak sekali layanan bermanfaat yang bisa digunakan dengan bebas. iGoogle merupakan salah satu di antaranya. Dengan iGoogle, aku serasa memiliki meja kerja yang sifatnya portable dan dapat diakses di mana pun aku berada. Mulai dari reminder, kalender, sticky note, email, dan masih banyak fitur lainnya yang bisa kita pilih dan tempatkan dengan layout sesuai dengan seleraku sendiri :) Benar-benar customized sekali. He3.. bahkan di iGoogle, aku pun bisa memelihara ikan dalam aquarium virtual :D
Pidgin yang Minimalis
Karena memang aku menyukai segala sesuatu yang sifatnya minimalis, maka untuk aplikasi IM pun aku selalu mencari yang minimalis juga. Pilihanku jatuh pada Pidgin, sebelumnya lebih dikenal dengan Gaim. Petama aku menggunakan aplikasi ini ketika menggunakan Ubuntu Linux sebagai OS untuk aktivitas harianku. fiturnya minimalis sekali, tetapi tetap nyaman untuk digunakan :) Kelebihan utama dari fitur yang minimalis adalah ringan ketika dirunning. Pidgin juga dapat dinikmati oleh pegguna OS non Linux, seperti Windows atau MAC. Pidgin dikembangkan di bawah lisensi GPL sehingga bersifat open source dan bisa dikembangkan secara bebas.Bagi Anda yang berminat untuk mencoba, silakan melakukan download di http://www.pidgin.im/download/
Keep Your System Uptodate
Belajar dari pengalaman pahit beberapa waktu yang lalu di mana notebook ku mulai berlaku aneh dikarenakan adanya virus berhasil meloloskan diri dari penjagaan anti virus, akhir-akhir ini aku jadi agak paranoid. Setiap ada patch update yang direlease oleh Microsoft untuk produk Windows XP pasti langsung aku update. Selain itu aku pun memasang Avast sebagai antivirus yang rutin aku update tiap hari. Sebagai perlindungan tambahan, aku memasang Spybot dan ZoneAlarm. Semoga saja dengan perlindungan extra ketat ini notebookku bisa makin secure :)
Google Chrome in Action :)
Setelah sekian lama menggunakan FireFox sebagai web browser, akhirnya aku mulai sedikit demi sedikit beralih ke Google Chrome. Browser anyar keluaran Google ini memang terbukti jauh lebih cepat dan lebih ringan bila dibandingkan dengan browser-browser lainnya :) Ada sedikit kekhawatiran juga sich seputar sisi security nya, tetapi menurutku permasalahan semacam ini bisa teratasi kok selama kita rajin melakukan update :)Google Crome memiliki tampilan yang sangat minimalis tetapi tetap kaya fitur dan yang pasti sangat nyaman digunakan :)
Bagi Anda yang tertarik silakan mendapatkannya di http://www.google.com/chrome
Selamat mencoba :)
My GMail
Karena keterbatasan kapasitas dari account email di kantor, akhirnya aku memutuskan untuk memberdayakan account gmail ku. Setiap email yang ditujukan ke email kantor langsung aku pop ke account gmail ku. Dengan demikian email kantor tidak akan pernah penuh dan tidak ada pesan email yang harus direject oleh mail server kantorku :)Aplikasi web mail pada gmail memang sangat nyaman digunakan. Selain kapasitas email yang besar, gmail juga memiliki beberapa fitur yang menarik.
Salah satunya adalah fitur mail filter and labeling. Agak berbeda dengan aplikasi email lainnya yang lebih banyak menerapkan sistem mail filter and remove to folder. Gmail tidak melakukan remove email terfilter pada suatu folder khusus melainkan email yang sudah terfilter berdasar kriteria tertentu akan diberi label yang kita tentukan sendiri. Mekanisme seperti ini sangat menguntungkan karena sebuah email bisa saja dikenakan lebih dari satu label :)
Oh ya, aku juga masih tetap dapat menggunakan alamat email kantor walau menggunakan SMTP Server milik gmail :)
Menggunakan Bake Console
Untuk mempermudah dan mempercepat kerja kita dalam membangun sebuah web application, Cake PHP menyediakan sebuah CLI - Command Lie Interface - yang dikenal dengan nama Bake Console.
Untuk dapat menggunakan bake console, kita harus menampahkan directory path dari php dan cake console ke dalam environment variable dari sistem operasi yang kita gunakan. Misalkan saja dalam kasus ini saya mengunakan sistwm operasi Windows dan juga XAMPP sebagai bundled application server, maka saya akan menambahkan dua buah parameter berikut ini ke dalam variable path dari environment variable pada sistem operasi Windows yang saya gunakan.
C:\xampp\php;
C:\xampp\htdocs\cake\cake\console;
Setelah kedua pasth tersebut ditambahkan dalam environment variable, maka kita sudh dapat menggunakan bake console yang disediakan oleh Cake PHP. Mari kita segera mencobanya :)
Misalkan saja kali ini kita akan membuat project baru dengan nama percobaan, maka yang harus kita lakukan adalah membuka command prompt dan masuk ke root directory dari web server kita. Dalam hal ini saya menggunakan XAMPP sebagai bundled application server, dan root directory dari web server yang saya gunakan berada di C:\xampp\htdocs\
Pada directory tersebut kita dapat mengetikkan perintah berikut ini:
cake bake percobaan
Setelah perintah tersebut kita ketikkan, maka kita akan dimintai informasi berkenaan dengan parameter-parameter yang dibutuhkan seperti host dari database server kita, nama database yang akan digunakan, dan beberapa parameter dasar lainnya.
setelah semua parameter dimasukkan, maka Cake PHP akan membuatkan bagi kita sebuah directory baru (berserta semua file-file dasar yang dibutuhkan) dalam root directory dari web server yang kita gunakan. Dengan bake console kita juga dapat membuat controller dan model tanpa harus berinteraksi sama sekali dengan source code. Untuk membuat model pada project percobaan, kita terlebih dahulu harus masuk ke dalam directory percobaan melalui command prompt (C:\xampp\htdocs\percobaan\). Selanjutnya ketikkan perintah berikut ini:
cake bake model
Lalu masukkan setiap parameter yang dibutuhkan. Sedangkan untuk membuat controller, kita dapat mengetikkan perintah berikut ini:
cake bake controller
Sangat mudah sekali ya :) Selamat mencoba. Oh ya agar kita tidak dipusingkan dengan view, maka ada baiknya untuk sementara ini kita menggunakan scaffolding dahulu. Dengan menggunakan scaffolding, maka Cake PHP akan membuatkan default view sederhana untuk kita. Yang perlu diperhatikan di sini adalah tetaplah untuk mengikuti setiap konvensi yang ditetapkan oleh Cake PHP :) Sesuai moto yang diboyong oleh Cake, yaitu "Convention over Configuration"
Untuk dapat menggunakan bake console, kita harus menampahkan directory path dari php dan cake console ke dalam environment variable dari sistem operasi yang kita gunakan. Misalkan saja dalam kasus ini saya mengunakan sistwm operasi Windows dan juga XAMPP sebagai bundled application server, maka saya akan menambahkan dua buah parameter berikut ini ke dalam variable path dari environment variable pada sistem operasi Windows yang saya gunakan.
C:\xampp\php;
C:\xampp\htdocs\cake\cake\console;
Setelah kedua pasth tersebut ditambahkan dalam environment variable, maka kita sudh dapat menggunakan bake console yang disediakan oleh Cake PHP. Mari kita segera mencobanya :)
Misalkan saja kali ini kita akan membuat project baru dengan nama percobaan, maka yang harus kita lakukan adalah membuka command prompt dan masuk ke root directory dari web server kita. Dalam hal ini saya menggunakan XAMPP sebagai bundled application server, dan root directory dari web server yang saya gunakan berada di C:\xampp\htdocs\
Pada directory tersebut kita dapat mengetikkan perintah berikut ini:
cake bake percobaan
Setelah perintah tersebut kita ketikkan, maka kita akan dimintai informasi berkenaan dengan parameter-parameter yang dibutuhkan seperti host dari database server kita, nama database yang akan digunakan, dan beberapa parameter dasar lainnya.
setelah semua parameter dimasukkan, maka Cake PHP akan membuatkan bagi kita sebuah directory baru (berserta semua file-file dasar yang dibutuhkan) dalam root directory dari web server yang kita gunakan. Dengan bake console kita juga dapat membuat controller dan model tanpa harus berinteraksi sama sekali dengan source code. Untuk membuat model pada project percobaan, kita terlebih dahulu harus masuk ke dalam directory percobaan melalui command prompt (C:\xampp\htdocs\percobaan\). Selanjutnya ketikkan perintah berikut ini:
cake bake model
Lalu masukkan setiap parameter yang dibutuhkan. Sedangkan untuk membuat controller, kita dapat mengetikkan perintah berikut ini:
cake bake controller
Sangat mudah sekali ya :) Selamat mencoba. Oh ya agar kita tidak dipusingkan dengan view, maka ada baiknya untuk sementara ini kita menggunakan scaffolding dahulu. Dengan menggunakan scaffolding, maka Cake PHP akan membuatkan default view sederhana untuk kita. Yang perlu diperhatikan di sini adalah tetaplah untuk mengikuti setiap konvensi yang ditetapkan oleh Cake PHP :) Sesuai moto yang diboyong oleh Cake, yaitu "Convention over Configuration"
Mengenal Hubungan "Has One" dan "Belongs To"
Kali ini saya akan melanjutkan tulisan saya seputar konsep dasar yang harus diketahui ketika mempelajari Cake PHP. Dalam konsep database kita tentunya telah mengenal beberapa model hubungan antar table, yaitu "one to one", "one to many", dan "many to many". Ketika kita akan membangun sebuah web application dengan PHP, maka kita perlu membawa bentuk hubungan antar table tersebut ke dalam bentuk hubungan yang sesuai degan konvensi yang ditetapkan oleh Cake PHP.
Dalam tulusan kali ini saya akan membahas bentuk hubungan yang paling sederhana, yaitu bentuk hubungan "one to one". Cake PHP mengenal hubngan "one to one" sebagai "has one" dan "belongs to".
Misalkan saja dalam kasus kali ini saya memiliki dua buah table yang saling berelasi, yaitu table students dan table profiles. Sekadar mengingatkan kembali bahwa dalam Cake PHP terdapat konvensi penamaan table di mana sebuah table harus diberi nama dalam bentuk plural. Setiap table juga harus diberi primary key dengan nama id dan bersifat auto increment.
Berikut ini adalah table yang dibuat:
CREATE TABLE students (
id INT(10) AUTO_INCREMENT PRIMARY KEY,
nim VARCHAR(8),
nama VARCHAR(25));
CREATE TABLE profiles (
id INT(10) AUTO_INCREMENT PRIMARY KEY,
student_id INT(10),
tanggal_lahir DATE,
alamat VARCHAR(50),
telp VARCHAR(15));
Table profiles akan memiliki sebuah field yang akan berperan sebagai foreign key dan akan berreferensi dengan primary key dari table students. Dalam Cake PHP juga terdapat konvensi penamaan nama field yang berperan sebagai foreign key. Setiap field yang berperan sebagai foreign key harus diberi nama dengan awalan nama table yang akan direferensikan (dituliskan dalam bentuk singular) dan diikuti dengan _id. Sebagai contoh pada table profiles terdapat sebuah foreign key dengan nama student_id yang digunakan untuk bereferensi dengan table students.
Dalam kasus ini hubungan antara kedua table tersebut adalah "one to one", di mana seorang student akan memiliki sebuah profile. Dan sebuah profile hanya akan dimiliki oleh seorang student. Bentuk hubungan seperti ini bila diterjemahkan dalam konvensi Cake PHP, maka akan berbunyi seperti ini: student "Has One" profile, dan profile "Belongs To" student.
Langkah selanjutnya adalah membuat model untuk setiap table yang ada. Sesuai dengan konsep MVC yang sebelumnya pernah saya sampaikan bahwa dalam aplikasi yang menerapkan konsep MVC, sebuah controller tidak diperbolehkan untuk melakukan akses langsung ke dalam database, oleh karenanya kita harus membuat model untuk setiap table.
Dalam Cake PHP, kita dapat membuat model dalam directory ./cake/models/
Sebuah model akan diberi nama sesuai dengan nama table yang akan dimodelkan, hanya saja penamaan model menggunakan bentuk singular. Dalam kasus kali ini berarti kita akan membuat dua buah model, yaitu student.php dan profile.php. Sebuah model akan berisi sebuah class dengan nama sesuai dengan nama table yang dimodelkan dan dituliskan dalam bentuk singular. Dan setiap class model tersebut akan melakukan inheritance / extends pada class AppModel.
Untuk lebih jelasnya bisa mempelajari source code dari kedua model tersebut:
students.php
profile.php
Tahapan sederhana berikutnya adalah membuat controller. Seperti dijelaskan pada tulisan saya sebelumnya, sebuah controller dibuat pada directory ./cake/controllers/
Berikut ini adalah source code dari controller yang dibuat. Bila Anda masih mengalami kebingungan dalam membuat controller pada Cake PHP, silakan mempelajari tulisan saya sebelumnya.
students_controller.php
profiles_controller.php
Hasil akhirnya bisa Ada akses dari http://localhost/cake/students atau http://localhost/cake/profiles
Sangat sederhana sekali :)
Dalam tulusan kali ini saya akan membahas bentuk hubungan yang paling sederhana, yaitu bentuk hubungan "one to one". Cake PHP mengenal hubngan "one to one" sebagai "has one" dan "belongs to".
Misalkan saja dalam kasus kali ini saya memiliki dua buah table yang saling berelasi, yaitu table students dan table profiles. Sekadar mengingatkan kembali bahwa dalam Cake PHP terdapat konvensi penamaan table di mana sebuah table harus diberi nama dalam bentuk plural. Setiap table juga harus diberi primary key dengan nama id dan bersifat auto increment.
Berikut ini adalah table yang dibuat:
CREATE TABLE students (
id INT(10) AUTO_INCREMENT PRIMARY KEY,
nim VARCHAR(8),
nama VARCHAR(25));
CREATE TABLE profiles (
id INT(10) AUTO_INCREMENT PRIMARY KEY,
student_id INT(10),
tanggal_lahir DATE,
alamat VARCHAR(50),
telp VARCHAR(15));
Table profiles akan memiliki sebuah field yang akan berperan sebagai foreign key dan akan berreferensi dengan primary key dari table students. Dalam Cake PHP juga terdapat konvensi penamaan nama field yang berperan sebagai foreign key. Setiap field yang berperan sebagai foreign key harus diberi nama dengan awalan nama table yang akan direferensikan (dituliskan dalam bentuk singular) dan diikuti dengan _id. Sebagai contoh pada table profiles terdapat sebuah foreign key dengan nama student_id yang digunakan untuk bereferensi dengan table students.
Dalam kasus ini hubungan antara kedua table tersebut adalah "one to one", di mana seorang student akan memiliki sebuah profile. Dan sebuah profile hanya akan dimiliki oleh seorang student. Bentuk hubungan seperti ini bila diterjemahkan dalam konvensi Cake PHP, maka akan berbunyi seperti ini: student "Has One" profile, dan profile "Belongs To" student.
Langkah selanjutnya adalah membuat model untuk setiap table yang ada. Sesuai dengan konsep MVC yang sebelumnya pernah saya sampaikan bahwa dalam aplikasi yang menerapkan konsep MVC, sebuah controller tidak diperbolehkan untuk melakukan akses langsung ke dalam database, oleh karenanya kita harus membuat model untuk setiap table.
Dalam Cake PHP, kita dapat membuat model dalam directory ./cake/models/
Sebuah model akan diberi nama sesuai dengan nama table yang akan dimodelkan, hanya saja penamaan model menggunakan bentuk singular. Dalam kasus kali ini berarti kita akan membuat dua buah model, yaitu student.php dan profile.php. Sebuah model akan berisi sebuah class dengan nama sesuai dengan nama table yang dimodelkan dan dituliskan dalam bentuk singular. Dan setiap class model tersebut akan melakukan inheritance / extends pada class AppModel.
Untuk lebih jelasnya bisa mempelajari source code dari kedua model tersebut:
students.php
profile.php
Tahapan sederhana berikutnya adalah membuat controller. Seperti dijelaskan pada tulisan saya sebelumnya, sebuah controller dibuat pada directory ./cake/controllers/
Berikut ini adalah source code dari controller yang dibuat. Bila Anda masih mengalami kebingungan dalam membuat controller pada Cake PHP, silakan mempelajari tulisan saya sebelumnya.
students_controller.php
profiles_controller.php
Hasil akhirnya bisa Ada akses dari http://localhost/cake/students atau http://localhost/cake/profiles
Sangat sederhana sekali :)
CRUD Operation with Cake PHP
Cake PHP benar-benar merupakan framework yang sangat nyaman digunakan. Dalam tullisanku kali ini, aku akan mencoba mencontohkan betapa mudahnya melakukan operasi CRUD -Create, Read, Update, Delete- dengan memanfaatkan scaffold pada Cake PHP.Langkah pertama yang harus dilakukan adalah membuat database dan table. Misalkan saja dalam kasus ini kita akan menggunakan MySQL sebagai Database Server.
Yang akan kita lakukan adalah membuat sebuah database dengan nama latihan.
CREATE DATABASE latihan;
Selanjutnya kita akan membuat sebuah table. Misalkan saja kita akan membuat sebuah aplikasi yang dapat menampung data-data film favorit, maka kita akan membuat sebuah table dengan nama movies. Oh ya ada hal penting yang harus diperhatikan di sini, kenyamanan dalam menggunakan Cake PHP baru benar-benar kita dapatkan selama kita mengikuti konvensi-konvensi penamaan yang ditetapan oleh Cake. Kovensi pertama yang harus kita perhatikan adalah, setiap kali kita membuat table, maka table yang kita buat harus diberi nama plural. Sebagai contoh di sini kita membuat table dengan nama movies (plural) dan bukan movie (singular). Konvensi semacam ini jangan dipandang remeh karena Cake PHP memiliki semboyan "Convention over Cofiguration", yang pada intinya Cake PHP akan membantu kita dalam menangani konfigurasi-konfigurasi dasar secara otomatis (tanpa perlu campur tangan kita sama sekali) selama kita menerapkan setiap konvensi penamaan yang ditetapkan.
Konvensi berikutnya berkenaan dengan table adalah setiap table harus memiliki sebuah primary key bernama id dan bertipe int auto increment.
CREATE TABLE movies (
id int(10) auto_increment PRIMARY KEY,
judul varchar(50),
pemain varchar(50),
sinopsis text
);
Setelah table tersedia, maka kita sudah siap untuk melakukan baking cake :)
Caranya sederhana sekali, kita cukup melakukan baking cake dengan menggunakan CLI (Command Line Interface). Pertama-tama kita harus masuk terlebih dahulu ke dalam root directory dari web server yang kita miliki. Misalkan saja dalam kasus kali ini aku menggunakan xampp sebagai dengan Apache sebagai web servernya. Maka yang perlu aku lakukan adalah mengetikkan perintah berikut ini.
C:\xampp\htdocs>cake bake percobaan
Perintah tersebut diperlukan setiap kali kita ingin membuild sebuah project baru dengan Cake PHP. Setelah perintah tersebut dieksekusi, kita akan diminta untuk menginputkan beberapa parameter dasar yang memang dibutuhkan oleh Cake untuk melakukan akses ke database yang baru saja kita buat. Setelah semua parameter dasar tersebut kita inputkan, maka akan terbentuk directory baru bernama percobaan di dalam root directory dari web server kita. Untuk melihat apakah project baru yang kita definisikan berhasil atau tidak, kita dapat mencobanya dengan melakukan akses via web browser ke http://localhost/percobaan.
Ok sekarang sudah saatnya kita memasuki tahapan penting di mana kita mulai megimplementasikan konsep MVC -Model View Controller- dalam Cake PHP.
Setiap table yang kita miliki harus dibuatkan model dalam Cake. Berkenaan dengan model ada beberapa konvensi yang harus diikuti. Pertama, nama file untuk model harus sesuai dengan table yang direferensikannya dan ditulis dalam format singular. Dalam kasus ini nama file dari model kita adalah movie.php. File tersebut harus diletakkan di dalam directory ./percobaan/models/. Kedua, nama class dari suatu model harus singular dan ditulis dalam format Camel Case. Camel Case merupakan sebuah istilah di mana huruf pertama dari setiap kata dalam nama class ditulis dalam huruf besar (upper case). Dalam kasus kali ini nama class dari model kita adalah Movie. Tetapi bila kita memiliki nama class yang terdiri dari dua suku kata, maka kita dapat menuliskannya sebagai berikut DaftarFilm. Dan perlu diingat juga bahwa nama class harus disesuaikan dengan nama filenya.
movie.php
Untuk membuat model dalam Cake sebenarnya kita bisa menggunakan fasilitas bake model. Tetapi ini akan aku bahas dalam tulisanku berikutnya.
Setelah model dibuat, selanjutnya kita akan membuat controller. File controller akan dibuat di dalam directory ./percobaan/controller/. Dalam membuat controller pun kita harus memperhatikan konvensi penamaan yang ditetapkan. Pertama, nama file controller yang mengacu pada data harus dituliskan dalam format plural dan diakhiri dengan _controller. Misalkan saja dalam kasus kali ini nama file controller yang akan kita buat adalah movies_controller.php. Kedua, nama class controller harus disesuaikan dengan nama file controller (plural) dan diakhiri dengan Controller menggunakan format Camel Case. Dalam contoh kita ini, maka nama class controller kita adalah MoviesController.
movies_controller.php
Dalam kasus ini kita menggunakan fitur scaffold dari Cake PHP di mana kita sama sekali tidak perlu ambil pusing perihal operasi CRUD termasuk dalam hal membuat tampilan HTML untuk operasi CRUD tersebut. Sekarang mari kita bersama-sama melihat kehebatan Cake PHP dalam menangani operasi CRUD dan menjadikannya begitu simple bagi seorang developer. Untuk melihat hasilnya kita dapat melakukan akses via web browser ke http://localhost/latihan/movies
Kita akan mendapati tampilan dasar yang sudah otomatis dibuatkan oleh fitur scaffold di mana kita dapat dengan mudahnya melakukan penambahan, pengeditan, dan penghapusan data-data film favorit kita :) Luar biasa sekali bukan?
Implementasi konsep encapsulation
Encapsulation merupakan salah satu konsep yang sangat penting dalam pemrograman berorientasi obyek.
Konsep dasarnya sangat sederhana, yaitu memproteksi setiap atribut dari suatu class. Dalam hal ini atribut dari suatu class tidak boleh diakses secara langsung dari luar class. Maka tidak mengherankan bila setiap atribut lalu diberi visibility private. Lalu bagaimana bila suatu saat nilai dari atribut tersebut ingin diakses ataupun ingin diubah? Jawabannya sederhana saja, dengan menggunakan accessor dan mutator. Untuk melakukan akses terhadap nilai dari suatu atribut kita dapat menggunakan accessor, sedangkan untuk menlakukan pengubahan terhadap nilai dari suatu atribut kita dapat menggunakan mutator. Untuk lebih jelasnya dapat melihat contoh sederhana berikut ini.
//class dengan nama Kemeja
class Kemeja {
//atribut warna bertipe data String
private String warna;
//mutator untuk atribut warna
public void setWarna(String warna) {
this.warna = warna; //penggunaan kata kunci this
}
//accessor untuk atribut warna
public String getWarna() {
return warna;
}
}
Accessor secara konvensi akan selalu diawali dengan kata get dan diikuti dengan nama atribut yang akan diakses. Oleh karenanya accessor seringkali dikenal dengan nama getter.
Sedangkan mutator secara konvensi akan selalu diawali dengan kata set dan diikuti dengan nama atribut yang akan diubah nilainya. Oleh karenanya mutator seringkali dikenal dengan nama setter.
Pada setter seringkali juga digunakan kata kunci this. Penggunaan kata kunci this pada setter ini dibutuhkan ketika ada kesamaan antara nama parameter yang digunakan dengan nama atribut yang akan diubah nilainya. Kata kunci this digunakan untuk membedakan antara nama atribut dengan nama parameter.
Lalu apa konsekuensi dari penerapan encapsulation ini? Konsekuensinya sederhana saja. Misalkan kita akan membuat suatu objek dari class Kemeja.
Kemeja kemejaku = new Kemeja();
Maka ketika kita ingin memberi nilai "hijau" pada atribut kemejaku, kita tidak bisa melakukan hal semacam ini
kemejaku.warna = "biru";
Mengapa? Karena visibility dari atribut warna adalah private sehingga atribut tersebut tidak dapat diakses dari luar class. Yang dapat kita lakukan adalah dengan menggunakan setter seperti berikut ini
kemejaku.setWarna("biru");
Dan bila kita ingin mencetak nilai atrubut warna, kita dapat melakukannya dengan cara
System.out.println(kemejaku.getWarna());
Sederhana sekali khan penerapan dari konsep encapsulation ini?
Bagi Anda yang baru memulai mempelajari konsep pemrograman berorientasi objek teruslah semangat mempelajarinya karena Anda akan banyak sekali menemui konsep-konsep menarik di dalamnya :)
Konsep dasarnya sangat sederhana, yaitu memproteksi setiap atribut dari suatu class. Dalam hal ini atribut dari suatu class tidak boleh diakses secara langsung dari luar class. Maka tidak mengherankan bila setiap atribut lalu diberi visibility private. Lalu bagaimana bila suatu saat nilai dari atribut tersebut ingin diakses ataupun ingin diubah? Jawabannya sederhana saja, dengan menggunakan accessor dan mutator. Untuk melakukan akses terhadap nilai dari suatu atribut kita dapat menggunakan accessor, sedangkan untuk menlakukan pengubahan terhadap nilai dari suatu atribut kita dapat menggunakan mutator. Untuk lebih jelasnya dapat melihat contoh sederhana berikut ini.
//class dengan nama Kemeja
class Kemeja {
//atribut warna bertipe data String
private String warna;
//mutator untuk atribut warna
public void setWarna(String warna) {
this.warna = warna; //penggunaan kata kunci this
}
//accessor untuk atribut warna
public String getWarna() {
return warna;
}
}
Accessor secara konvensi akan selalu diawali dengan kata get dan diikuti dengan nama atribut yang akan diakses. Oleh karenanya accessor seringkali dikenal dengan nama getter.
Sedangkan mutator secara konvensi akan selalu diawali dengan kata set dan diikuti dengan nama atribut yang akan diubah nilainya. Oleh karenanya mutator seringkali dikenal dengan nama setter.
Pada setter seringkali juga digunakan kata kunci this. Penggunaan kata kunci this pada setter ini dibutuhkan ketika ada kesamaan antara nama parameter yang digunakan dengan nama atribut yang akan diubah nilainya. Kata kunci this digunakan untuk membedakan antara nama atribut dengan nama parameter.
Lalu apa konsekuensi dari penerapan encapsulation ini? Konsekuensinya sederhana saja. Misalkan kita akan membuat suatu objek dari class Kemeja.
Kemeja kemejaku = new Kemeja();
Maka ketika kita ingin memberi nilai "hijau" pada atribut kemejaku, kita tidak bisa melakukan hal semacam ini
kemejaku.warna = "biru";
Mengapa? Karena visibility dari atribut warna adalah private sehingga atribut tersebut tidak dapat diakses dari luar class. Yang dapat kita lakukan adalah dengan menggunakan setter seperti berikut ini
kemejaku.setWarna("biru");
Dan bila kita ingin mencetak nilai atrubut warna, kita dapat melakukannya dengan cara
System.out.println(kemejaku.getWarna());
Sederhana sekali khan penerapan dari konsep encapsulation ini?
Bagi Anda yang baru memulai mempelajari konsep pemrograman berorientasi objek teruslah semangat mempelajarinya karena Anda akan banyak sekali menemui konsep-konsep menarik di dalamnya :)
Network Health Checklist
01.Shared Ethernet segments are not saturated (no more than 40 percent network utilization)02.Shared Token Ring segments are not saturated (no more than 70 percent network utilization)
03.WAN links are not saturated (no more than 70 percent network utilization)
04.The response time is generally less than 100 milli seconds
05.No Segments have more than 20 percent broadcast / multicast
06.No segments have more than ono CRC error per million bytes of data
07.On Ethernet segments, less than 0.1 percent of the packets result in collisions
08.On Token Ring segments, less than 0.1 percent of the packets are soft errors, not related to ring insertion
09.On FDDI segments, the has been no more than one ring operation per hour related to ring insertion
10.The CISCO routers are not over-utilized (5 minute CPU utilization at no more than 75 percent)
11.No more than 100 output queue drops in an hour on any CISCO router
12.The number of input queue drops has not exceeded more than 50 in an hour on any CISCO router
13.The number of buffer misses has not exceeded more than 25 in any hour any CISCO router
14.The number of ignored packets has not exceeded more than 10 in an hour on any interface on a CISCO router
Network Documentation Steps
Network Documentation Steps based on CCDA Study Guide:
Step 01: Characterize the customer's applications
Step 02: Characterize the network protocols
Step 03: Document the customer's current network (topology, diagram, etc)
Step 04: Identify potential bottlenecks
Step 05: Identify the bussiness constraints and inputs into your network design
Step 06: Characterize the existing network availability
Step 07: Characterize the existing network reliability
Step 08: Characterize the network performance
Step 09: Characterize the network utilization
Step 10: Characterize the status of major routers
Step 11: Characterize the existing network management tools
Step 12: Summarize the health of the existing network
Step 01: Characterize the customer's applications
Step 02: Characterize the network protocols
Step 03: Document the customer's current network (topology, diagram, etc)
Step 04: Identify potential bottlenecks
Step 05: Identify the bussiness constraints and inputs into your network design
Step 06: Characterize the existing network availability
Step 07: Characterize the existing network reliability
Step 08: Characterize the network performance
Step 09: Characterize the network utilization
Step 10: Characterize the status of major routers
Step 11: Characterize the existing network management tools
Step 12: Summarize the health of the existing network
Yahoo Go on My Dopod
Setelah mengalami kehilangan phone book dikarenakan Dopod ku yang mengalami crash, aku pun mencoba melakukan Googling untuk mencari aplikasi third party yang bisa digunakan untuk membackup data khususnya data phone book. Dari hasil Googling, aku menemukan ada banyak sekali aplikasi utility yang berkaitan dengan backup data dan salah satunya adalah backup data phone book.Dalam proses Googling akhirnya aku menemukan aplikasi mobile yang cukup unik yang dikeluarkan oleh Yahoo. Aplikasi ini bernama Yahoo Go. Ada banyak hal yang bisa dilakukan dengan Yahoo Go, dan tentunya yang sangat bermanfaat bagiku saat ini (setelah mengalami kehilangan phone book) adalah, Yahoo Go dapat melakukan sinkronisasi phone book yang tersimpan di Dopod ku dengan phone book ku yang ada di Yahoo :) Sangat menarik sekali. Mulai sekarang sekalipun aku melakukan reset default factory setting pada Dopodku, aku tidak akan takut kehilangan data phonebook lagi :)
Selain fitur sinkronisasi phone book, fitur lainnya yang sangat bermanfaat bagiku adalah Yahoo Go Mail. Lewat fitur ini aku bisa mengakses (baik membaca ataupun menulis dan mengirim) email Yahoo melalui Dopod ku :) Tarif akses email secara mobile pun jadi lebih murah karena hanya merequest download XML data saja sebab memang front end nya sudah terinstal sewaktu menginstall Yahoo Go :)
Selain kedua fitur yang sering aku gunakan tersebut, Yahoo Go juga memiliki beberapa fitur lainnya seperti Yahoo Go Search, Yahoo Go News, Yahoo Go Sport, Yahoo Go Weather, dan beberapa fitur lainnya.
Hanya saja untuk sementara ini belum ada fitur Yahoo Go yang bisa mengakomodir YM - Yahoo Messanger.
Instalasi JDK 1.6 dan Netbeans 6.0 di Linux
Berikut ini adalah langkah-langkah yang bisa digunakan untuk melakukan instalasi JDK 1.6 dan Netbeans di Linux:
01: Download installer JDK dan Netbeans untuk Linux
02: Beri permission execute dengan melakukan perintah berikut ini
$ chmod +x jdk-6u6-linux-i586.bin
03: swicth user ke root dan pindahkan file installer JDK ke directory /usr/local/ dan jalankan / eksekusi file installer JDK pada directory tersebut
$ su
# mv jdk-6u6-linux-i586.bin /usr/local
# cd /usr/local
# ./jdk-6u6-linux-i586.bin
Setelah proses instalasi JDK berhasil akan terbentuk directory /usr/local/jdk1.6.0_06
04: Langkah berikutnya adalah membuat link dari directory tersebut dengan nama jdk. Ini dimaksudkan apabila kita akan melakukan upgrade versi JDK, kita tidak perlu melakukan banyak perubahan. Cukup melakukan perubahan pada linknya saja.
# ln -s jdk1.6.0_06 jdk
Perintah tersebut akan menghasilkan directory /usr/local/jdk yang sifatnya version-independent
05: Selanjutnya tambahkan sub directory bin ke PATH dari sistem Linux
# export JAVA_HOME=/usr/local/jdk
# PATH=$JAVA_HOME/bin:$PATH
untuk memastikan bahwa sub directory tersebut sudah ditambahkan ke dalam PATH dari sistem Linux dapat menggunakan perintah berikut ini
# echo $JAVA_HOME
# echo $PATH
Sampai di titik ini kita sudah bisa menjalankan java dari directory manapun walaupun bukan sebagai root
$ java -version
java version "1.5.0"
gij (GNU libgcj) version 4.2.3 (Ubuntu 4.2.3-2ubuntu6)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
06: Setelah JDK terinstal dan berjalan dengan baik, langkah selanjutnya kita dapat memulai melakukan instalasi Netbeans. Jangan lupa untuk terlebih dahulu memberi permission executeable pada file installernya.
# chmod +x netbeans-6.0-javase-linux.sh
# sh netbeans-6.0-javase-linux.sh
07: Setelah proses instalasi berjalan dengan baik, langkah berikutnya adalah mencoba menjalankan Netbeans yang baru saja kita instal dengan melajankan perintah berikut ini:
$ /usr/local/netbeans-6.0/bin/netbeans
Senangnya bisa menjalankan Netbeans di Linux :)
VLAN a Wonderfull Switch Technology
Hari ini aku kembali berguru pada firewall.cx untuk mempelajari konsep dasar dari VLAN. Ternyata konsepku tentang VLAN Belum benar2 matang dan inilah saatnya untuk mematangkan kembali :)
Semangat!!!! :)
Andai saja host myheart milikku bisa dikonfigurasi dalam VLAN yang berbeda dengan host isna-heart tentunya tidak ada lagi packet broadcast yang bisa saling terkirim karena kedua host tersebut sudah berada pada broadcast domain yang berbeda.
Tapi bagaimana cara konfigurasinya???
Heart Netwoking is much more complicated than Computer Networking. There are too many parameters that I don't understand :((
Semangat!!!! :)
Andai saja host myheart milikku bisa dikonfigurasi dalam VLAN yang berbeda dengan host isna-heart tentunya tidak ada lagi packet broadcast yang bisa saling terkirim karena kedua host tersebut sudah berada pada broadcast domain yang berbeda.
Tapi bagaimana cara konfigurasinya???
Heart Netwoking is much more complicated than Computer Networking. There are too many parameters that I don't understand :((
Subscribe to:
Posts (Atom)