Portal: Membuat Web-Portal dengan GWT
Juni 12, 2008
Portal dan PortalComponent merupakan kelas yang saya buat memudahkan user untuk membuat web-portal/start-up page layout. Kelas ini pula yang digunakan kelompok saya pada tugas PPL semester yang lalu. Sebagai contoh web-portal yang dapat dihasilkan, Anda dapat melihat situs seperti iGoogle, MyYahoo, PageFlakes, dan Netvibes.

Agar lebih mudah dipahami, dapat diibaratkan Portal merupakan “wadah” dan PortalComponent merupakan “pengisi wadah”-nya.
Bagaimana cara menggunakan class ini? Ikuti beberapa langkah berikut. Pada contoh ini, saya mengasumsikan Anda menggunakan Netbeans IDE 6.0 dengan plugin GWT4B sudah terinstall, dan framework GWT sudah terkonfigurasi dengan benar.
- Copy file Portal.java dan PortalComponent.java ke package client.
- Copy folder themes ke dalam folder Web Pages.
- Tambahkan kode
- Pada Entry Point class, tambahkan kode berikut
<link rel="stylesheet" type="text/css" href="themes/portal-style.css">
ke web host page di dalam tag <head></head>
//Make layout composition consisted of three columns each 30% width
//You can make less than 3 columns by setting "0" to the parameter
public Portal portal = new Portal("30%", "30%", "30%");
public PortalComponent portalComponent1 = new PortalComponent("Component 1",
new HTML("This is content of Component 1"));
public PortalComponent portalComponent2 = new PortalComponent("Component 2",
new HTML("This is content of Component 2"));
public PortalComponent portalComponent3 = new PortalComponent("Component 3",
new HTML("This is content of Component 3"));
public PortalComponent portalComponent4 = new PortalComponent("Component 4",
new HTML("This is content of Component 4"));
public PortalComponent portalComponent5 = new PortalComponent("Component 5",
new HTML("This is content of Component 5"));
public PortalComponent portalComponent6 = new PortalComponent("Component 6",
new HTML("This is content of Component 6"));
public PortalComponent portalComponentHeader = new PortalComponent("Header Component",
new HTML("This is Header Component"));
public PortalComponent portalComponentFooter = new PortalComponent("Footer Component",
new HTML("This is Footer Component"));
dan override method onModuleLoad menjadi sebagai barikut
public void onModuleLoad() {
RootPanel.get().add(portal);
//Make portalComponent1 - 6 dragable
portal.setDragable(portalComponent1);
portal.setDragable(portalComponent2);
portal.setDragable(portalComponent3);
portal.setDragable(portalComponent4);
portal.setDragable(portalComponent5);
portal.setDragable(portalComponent6);
//Add components to portal
portal.addComponent(portalComponent1, DockPanel.WEST);
portal.addComponent(portalComponent2, DockPanel.CENTER);
portal.addComponent(portalComponent3, DockPanel.EAST);
portal.addComponent(portalComponent4, DockPanel.WEST);
portal.addComponent(portalComponent5, DockPanel.CENTER);
portal.addComponent(portalComponent6, DockPanel.EAST);
portal.addComponent(portalComponentHeader, DockPanel.NORTH);
portal.addComponent(portalComponentFooter, DockPanel.SOUTH);
//Make portalComponentHeader and footer's header not visible
portalComponentHeader.setVisibleHeader(false);
portalComponentFooter.setVisibleHeader(false);
//Make portalComponent3 not closable
portalComponent3.setClosable(false);
}
Hasilnya, dapat Anda lihat pada Live-Demo, link alternatif: Live-Demo2
Download link:
- Full example project (under construction)
- Class files + stylesheet (under construction)
Berpikir Besar
Juni 11, 2008
Baik, saya akan memulai topik ini dengan sebuah cerita. Seorang guru sedang mengajarkan sesuatu kepada murid-muridnya. Dia mengambil sebuah wadah lalu dimasukkannya batu hingga wadah tersebut tidak dapat lagi menampung lebih banyak batu. Sang guru bertanya apakah wadah ini sudah penuh?
Kira-kira apa jawaban murid-muridnya? Mereka katakan bahwa wadah ini sudah penuh. Kemudian sang guru mengambil pasir dan menuangkannya ke dalam wadah hingga tidak dapat menampung lebih banyak pasir. Sang guru bertanya lagi apakah wadah ini sudah penuh?
Sekarang, menurut Anda apa jawaban murid-muridnya? Sudah penuhkan? Sang guru kemudian menuangkan air hingga tidak bisa menampung lebih banyak air.
Apa hikmahnya? Read the rest of this entry »
Praktis Kirim SMS ke Banyak dengan ATCommander
Juni 11, 2008
Di kampus, khususnya di Gamais di mana saya banyak beraktifitas, kirim SMS ke banyak (biasanya disebut nge-jarkom gurita) merupakan cara yang paling efektif dan efisien untuk memberitahukan informasi ke seluruh kader.
Kalau jumlah penerimanya hanya puluhan, mungkin masih bisa efektif menggunakan jarkom tangga/ular atau menggunakan fitur send to many dari handphone. Tapi kalau jumlahnya ratusan bahkan mendekati angka 1000? Cara seperti itu tidak lagi efektif.
Untuk itu, dikembangkanlah (sebenarnya bisa saja menggunakan aplikasi open source seperti Gammu, tapi emang niatnya ngoprek sih^^) sebuah aplikasi SMS yang dapat mengirim SMS ke banyak nomor hanya dengan satu kali klik. Aplikasi tersebut terakhir diberi nama ATCommander. Sebenarnya rencana awalnya ATCommander dikembangkan untuk program Tahajjud Call. Namun, karena beberapa kendala, belum dapat diimplementasi sepenuhnya.
Aplikasi ini dikembangkan menggunakan Delphi dan berjalan pada sistem operasi Windows. Perangkat keras yang dibutuhkan adalah handphone yang dapat mengirim SMS beserta kabel datanya, serta sebuah PC/Laptop.
Nomor penerima dapat diinput langsung atau disimpan dalam file teks dengan separator bebas. Jadi, langkah-langkah penggunaan aplikasi untuk SMS adalah seperti ini.
- Sambungkan handphone dengan PC
- Set port yang sesuai lewat menu “Port Setting”, lalu “Open Port”.

- Ketik konten SMS dan set SMS Center sesuai provider.
- Masukkan nomor penerima baik langsung maupun dari file teks.
- Klik “Send to List”, maka program akan mengirimkan SMS tersebut ke semua nomor dalam list.

Referensi dalam mengembangkan aplikasi ini:
- Mengirim SMS dari PC, Aryo Sanjaya – http://www.bengkelprogram.com/data-artikel-175.bps
- ComPort Library version 3.10 – http://sourceforge.net/comport
- ATCmdTester- http://sourceforge.net/
- Tanya2 sama Aisar soal AT Command
Kerja Praktek Day #3
Juni 11, 2008
Hari ini berjalan tidak jauh berbeda dengan dua sebelmnya. Hanya saja hari ini, teman sekelompok kami, Abhi sudah mulai bergabung di kantor. Dia datang bersama orang tuanya tadi pagi.
Yang lainnya, kami mencoba tempat makan baru di lantai 2, di SGU Longue. Di sana, ada orang mirip Aldi (ketua angkatan aka kentang IF05 pertama!), tapi entahlah apa benar dia atau bukan.
Pulang kantor malam lagi, mengeksploitasi internet gratis (walau tidak cepat) untuk eksplorasi sesuatu.
Cinta Cantik
Juni 11, 2008
Teman : “Dit, aya pantun bagus!”
Temannya Teman : ???
Teman : “Bukanlah titik yang menjadikan tinta, tapi tinta yang menjadikan titik.”
Temannya Teman : “terus?”
Teman : “Bukanlah cantik yang menjadikan cinta, tapi cinta yang menjadikan cantik.”
Temannya Teman : *Nyengir* “Bagus juga pantunnya
(dalam hati: ‘bener gak ya?’)”
Kerja Praktek Day #2
Juni 11, 2008
Pagi
Bangun sekitar pukul 2.30, tahajjud, tilawah, habis itu sempat menyaksikan Belanda mempermalukan Italia dengan skor 3-0
. Setelah itu saya buka laptop dan mengerjakan beberapa hal, termasuk menulis blog ^^. Terdengar sayup-sayup adzan shubuh berbunyi, tapi saya tak begitu mendengar. Untung saja Apri mengajak ke mesjid jadi masih sempat masbuk di rakaat kedua. Wah, ini shalat berjamaah pertama di mesjid sejak menginjakkan kaki di BSD
secara di kantor ga ada mesjid dan jauh dari mesjid.
Habis shalat, dzikir sebentar terus tidur lagi
setengah jam. Bangun, nonton berita, lalu lari pagi keliling komplek. Tiap lewat depan rumah yang ada anjingnya, pasti di-”teriaki” (aduh, apa ya basa Indonesia yg benernya?) sama anjingnya. Habis itu sarapan, mandi, dan berangkat ke kantor nailk sepeda. Kali ini giliran saya naik sepeda yang kecil. Lebih capek ternyata…
Siang – Malam
Hari ini kami makan siang di depan gerbang gedung German Centre (yang di dalamnya ada kantor Sigma). Ini yang paling murah ^^. Harga mahasiswa lah
Sorenya, barulah kami mendapatkan tugas pertama dari supervisor, yaitu membuat mockup HTML aplikasi Internet Banking salah satu bank swasta untuk keperluan marketing. Tugasnya tidak terlalu sulit karena sama sekali tidak ada programming. Tapi jumlah halamannya banyak sekali.. Deadlinenya 4 hari dihitung mulai keesokan harinya, jadi jatuhnya Senin.
Karena malas membawa tugas ke kosan, saya kerjakan di kantor sampai malam, jam 21.30an. Malah tadinya saya mau pulang lebih malam lagi, mumpung bisa pakai internet juga
, tapi karena Apri dah mau pulang aja, akhirnya saya ikut pulang.
Sampai di kosan, kami minta disambungkan dengan jaringan internet di kosan. Setelah diberi tahu network key-nya, akhirnya kami bisa internet-an dengan kecepatan lebih cepat daripada di kantor. Sayang terbatas kuota 1 GB
Kerja Praktek Day #1
Juni 11, 2008
Pagi – Siang
Hari Senin 9 Juni 2008 adalah pertama saya ngantor. Saya dan Apri datang pagi-pagi, jam 8, dari tempat kosan ke German Centre lantai 5 naik sepeda punya ibu kos (bike to work nieh..), kantor PT. Sigma Karya Sempurna. Kantornya unik, desain interiornya dominan kayu, seperti di desa. Makanya dinamakan Desa Sigma.
Sampai di sana, kami disuruh menunggu di ruang tunggu. Tak lama, datang Iqbal, Paw, dan Shena. Lalu seorang mbak2 datang meminta kami menandatangani surat perjanjian. Kemudian kami dipersilakan untuk menunggu di ruang meeting (saya lebih suka menyebutnya “saung” meeting^^). Tak lama, Alsa, Ibun, dan Anggi datang bergabung.
Project Manager (PM) kelompoknya Paw dkk. kemudian datang dan menjemput mereka, kemudian PM-nya Alsa dkk. juga datang. Tinggal saya dan Apri yang tersisa di sana.
Mbak2nya datang lagi dan KRING..KRING.. telpon di saung itu berdering. Katanya itu dari PM kami. Apri yang angkat telpon, dan ditanya apakah bisa kerja praktek 4 bulan? Wew, lama banget! Udah kuliah itu mah..
Detik demi detik, menit demi menit, jam demi jam berlalu… Yang ditunggu tak kunjung datang. Untung saja di tempat itu ada kabel LAN nganggur dan colokan listrik. Jadi saya buka laptop dan colok deh sana-sini^^ Sampai tiba waktunya istirahat siang, akhirnya bapak yang tadi telpon datang juga. Tetapi berhubung orang yang harusnya “menangani” kami katanya sedang berada di tempat client, kami pun menunggu lagi.
Saat istirahat, kami shalat di mushalla dan makan di kafetaria lantai dasar.
Siang – Malam
Pekerjaan menunggu pun berlanjut sambil YM-an, nulis blog, browsing, ngerjain proyek pribadi, mengusahakan supaya Abhi bisa sekelompok dengan kami (dan berhasil!), pokonya apa pun deh biar waktu gak terbuang percuma. Sudah jam 17.30, kami pamit untuk pulang. Katanya besoknya akan ada briefing soal project-nya. Kalau pun harus menulis activity log untuk hari itu, paling isinya: busy waiting dan menulis activity log.
Malamnya kami jalan-jalan ke ITC beli sesuatu, setelah itu makan ayam panggang, kue putu, dan beli martabak durian di Taman Jajan. Pas lagi jalan pulang, di jalan ketemu dengan ibu kos sama anak-anaknya lagi naik mobil. Diajak pulang bareng deh. Alhamdulillah, hari ini beruntung sekali^^
Eksplorasi Google Web Toolkit (GWT)
Juni 10, 2008
Google Web Toolkit adalah framework yang ditawarkan Google untuk membuat aplikasi AJAX. Saya menggunakan framework ini dalam mengerjakan proyek sepanjang satu semester lalu di mata kuliah Proyek Perangkat Lunak (PPL).
Secara umum, kelebihan yang ditawarkan GWT ini yang dapat saya eksplorasi antara lain:
- Anda dapat mengkode aplikasi AJAX dalam Java (yang tentunya lebih mudah dibanding JavaScript^^). Nanti compiler akan mengoversi client-side code ke dalam JavaScript. Sedangkan server-side code tetap dijalankan dalam kode biner Java.
- Banyak kelas primitif yang disediakan (kelas Widget dan Panel) untuk membuat user interface. Nanti compiler akan mengonversi secara dinamis ke dalam tag-tag HTML. Mudah berkomunikasi client-server dengan mekanisme Remote Procedure Call (RPC) dengan fasilitas “GWT-RPC Service”. Anda tetap dapat menulis kode secara native untuk HTML, JavaScript, submit form, dsb.
Namun ada juga kekurangannya, yaitu:
- Jika menggunakan Netbeans IDE, anda dapat menggunakan plugin GWT4NB untuk memudahkan membangun aplikasi dengan framework GWT. Tetapi, GWT4NB ini masih Beta Version sehingga terdapat bug-bug yang mengganggu.
- Aplikasi yang dihasilkan relatif besar ukurannya.
Berikut ini ada beberapa panduan untuk mempermudah Anda jika ingin melakukan eksplorasi GWT.
- Kunjungi situs resminya di code.google.com/webtoolkit. Anda bisa download GWT dan melihat-lihat contoh aplikasinya.
- Download Netbeans plugin GWT4NB di https://gwt4nb.dev.java.net/ dan pelajari tutorialnya di https://gwt4nb.dev.java.net/manual/quickstart.html
- Pelajari struktur direktori aplikasi GWT di …
- Download free course dari Sang Shin di http://www.javapassion.com/handsonlabs/ajaxgwtintro/ Anda akan belajar banyak hal dari sini.
- Cobalah melihat-lihat contoh penggunaan kelas-kelas yang disediakan GWT di situs examples.roughian.com dan buatlah aplikasi Anda sendiri.
- Pelajari dan gunakan beberapa library dan components hasil kontribusi dari pengguna GWT yang lain. Sebagai referensi, kunjungi situs www.ongwt.com/category/GWT-Library/, gwt.components.googlepages.com, dan google.wikia.com/wiki/Google_Web_Toolkit.
- Jika menemukan masalah, lakukan Googling untuk menemukan solusinya. Biasanya Google akan membawa Anda ke forum-forum diskusi. Rajinlah membaca untuk hal ini
Sekian dulu, semoga bermanfaat
Seperti Google
Juni 10, 2008
Dalam suatu forum, sebuah pertanyaan ditanyakan berkeliling, “Apa cita-citamu?”
Seorang teman saya menjawab, “target saya 40 paten desain produk.”
“Sebenarnya ini cita-cita bersama dengan teman saya yang lain, saya ingin membangun suatu korporasi (yang bergerak dalam berbagai bidang, semacam group/holdings, yang berbasiskan suatu komunitas -red),” tutur teman saya yang lain.
Kata yang lain, “Saya ingin membangun suatu perusahaan yang mengelola sumber daya Indonesia. Mungkin khususnya pangan.”
“Saya ingin mengubah struktur pemikiran yang melandasi sains yang ada sekarang menjadi Islami.” (yang ini sebenarnya saya agak kesulitan dalam menuliskannya dalam kata-kata, dan sudah lupa redaksi aslinya -red).
Ketika pertanyaan itu sampai pada saya, saya jawab, “saya ingin punya perusahaan seperti Google.” Mungkin ada yang bertanya, dan memang ada yang bertanya, “seperti Google dalam hal apanya?”
Sepengetahuan (atau mungkin sepenerawangan
) saya, saya pikir Google memiliki nilai-nilai berikut:
Kebermanfaatan
Nampaknya ini tidak perlu diragukan lagi. Hampir setiap orang dari beragam profesi, usia, dan kepentingan mendapatkan manfaat dari Google terutama mesin pencarinya. Pastinya Anda akan senang jika dapat bermanfaat bagi orang banyak bukan? Rasulullah menyebutkan bahwa sebaik-baik di antara kita adalah yang paling banyak manfaatnya bagi yang lainnya.
Inovasi
Saya pernah menonton video presentasi Douglas Merrill di YouTube judulnya “Innovation at Google”. Menurut saya Google memang memiliki prinsip-prinsip inovasi yang sederhana tapi canggih, seperti “Start wih problems, not solutions”, “Pay attention to the data”, “Experiment often, fail fast”, “Innovation is the rule, not the exception”, dll. Dan ini terbukti manjur dari banyaknya produk-produk inovatif Google baik yang sudah lulus dari Google Labs maupun yang belum.
Salah satu yang menarik adalah tentang kebijakan waktu 20%. Setiap engineer diperbolehkan menggunakan 20% waktu kerjanya untuk mengerjakan proyek apapun yang mereka sukai. Hal ini ternyata bagus untuk mendorong inovasi. Produk-produk yang merupakan hasil dari kebijakan ini antara lain Google News, Orkut, Google Alerts, dll.
Kekuatan Visi
Misi Google adalah “Organize all the world’s information and make it universally accessible and useful.” Dengan pemahaman bahwa yang namanya informasi itu tidak terbatas pada web saja, wajar jika Google akhirnya merambah kemana-mana: mobile phone, desktop. Biasanya perusahaan itu mulai ada semangat inovasi jika merasa terancam kompetitor. Namun jika memiliki visi yang kuat, maka dorongan itu akan muncul dari dalam.
Kata-kata lain yang menurut saya menggambarkan Google adalah Antusiasme, Muda dan enerjik, Global, Terbuka, dan tentunya “Don’t be evil”.




