Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Tuesday, April 30, 2013

Javascript Tutorial: Beginning

Javascript adalah bahasa pemrograman yang banyak digunakan untuk menambahkan fitur interaktif pada aplikasi web, bergerak di sisi client. Tetapi dengan sistem node.js, Javascript dapat digunakan di sisi server. Program hibrid (desktop + web) berbasis Adobe Air juga dapat dibangun dengan javascript. Sehingga seperti sepupunya -- Java, Javascript adalah bahasa pemrograman yang sangat portable, cross-platform, run anywhere. Justru lebih lightweight dibandingkan Java. Di sisi client (browser), Javascript lebih responsive dibandingkan Java

Belajar Javascript gratis dan mudah. Gratis, karena banyak sekali tutorial online gratis. Salah satunya adalah favorit saya yaitu W3School. Mudah karena memang bahasanya tergolong mudah dibandingkan Java dan C/C++ yang kompleks. Mudah karena tools belajar onlinenya banyak tersedia seperti, lagi-lagi dari W3School yaitu Tri It Your Self. Menjalankan programnya, simple, kita hanya perlu web browser. Tapi hati-hati, tidak semua web browser mendukung javascript versi terbaru, khususnya IE dari Microsoft. IE terkenal lambat dalam mengadopsi standar, dan seringkali memiliki dialek dan library khusus sendiri.


Tag <script>


Sebagai contoh berikut ini Javascript ditulis di dalam tag <body> dan melakukan manipulasi penambahan script html di dalam body.

<body>

JavaScript can write directly into the HTML output stream:

<script>
document.write("<h1>This is a heading</h1>");
document.write("<p>This is a paragraph.</p>");
</script>

</body>

Kita hanya bisa menggunakan <strong>document.write</strong> di dalam output HTML.
Jika menggunakannya setelah dokumen di-load (misalnya dalam suatu funtion), maka keseluruhan dokumen akan tertimpa.

Javascript juga digunakan untuk menambahkan sifat reaktif pada dokumen html. Seperti kode berikut ini, bila kita mengklik tombol "Click Me!" maka akan muncul popup alert window "Welcome".
<button type="button" onclick="alert('Welcome!')">Click Me!</button>

Function dalam Javascript adalah kumpulan statement/perintah. Seperti contoh berikut ini fungsi myFunction akan merubah isi tag <body> ber-id "demo".

<p id="demo">
JavaScript can change the content of an HTML element.
</p>

<script>
function myFunction()
{
   x=document.getElementById("demo");  // Find the element
   x.innerHTML="Hello JavaScript!";    // Change the content
}
</script>

<button type="button" onclick="myFunction()">Click Me!</button>


Friday, January 04, 2013

Menghubungkan Mylyn (Eclipse) dan Redmine

Developer software, khususnya software opensource terkait bahasa pemrograman Java seringkali menggunakan Eclipse sebagai IDE-nya. Meskipun demikian pengguna Eclipse mulai berkembang tidak hanya programer Java tetapi juga Python dan web.

Mylyn adalah tool untuk manajemen task dan manajemen lifycyle aplikasi (ALM: application lifecyle manajemen) untuk Eclipse IDE. Antarmuka berfokus-task pada Mylyn memperkecil informasi overload dan memungkin pembuatan task multitasking secara mudah. Mylyn mengintegrasikan pengeditan secara offline dan secara otomatis memonitor aktifitas pemrograman kita, serta melinkan dengan seluruh artifak. Sehingga Mylyn dapat meningkatkan produktifitas kita dengan mengurangi informasi overload, memfasilitasi multitasking dan memudahkan proses sharing dengan tim.

Redmine adalah sistem manajemen task berbasis web+Ruby. Redmine memiliki user interface yang bagus dan memungkinkan manajemen project, source, bug dan sharing antar developer. Tetapi sebagian besar developer tetap ingin bekerja dengan IDE favorit mereka sembari tetap mengupdate task-task mereka ke tim via sistem manajemen task terpusat seperti Redmine.

Plugin Eclipse bernama Redmine-Mylyn-Connector dapat membantu menyambungkan kedua tool ini dengan mudah. Plugin ini mendukung integrasi 2 arah antara kedua tool. Plugin ini telah dikembangan selama 4 tahun, dan masih aktif dalam pengembangan.

Instalasi Redmine-Mylyn-Connector terdiri dari 3 langkah mudah sbb:

Instal Plugin Redmine-Mylyn-Connector di Redmine

Masuk ke direktori redmine/vendor/plugins dan download plugin dengan git:

git clone git://redmin-mylyncon.git.sourceforg.net/gitroot/redmin-mylyncon/redmine-mylyn-connector

Install Plugin Redmine-Mylyn-Connector di Eclipse

Pertama tambahkan situs repository plugin, bila ingin menginstal versi stabil tambahkan 

http://redmin-mylyncon.sourceforge.net/update-site/N/

Bila ingin menginstal versi terakhir tambahkan

http://redmin-mylyncon.sourceforge.net/update-site/dev/
 
Setelah menambahkan situs plugin, maka lakukan instal.

Konfigurasi plugin di Eclipse

Buat sebuah task repository baru dengan memilih Add Task Repository. Pilih Redmine connector dan isikan seluruh detail yang diperlukan. Direkomendasikan untuk menggunakan opsi API-Key untuk autentikasi, karena lebih handal dibandingkan kombinasi user/password.

Untuk menentukan API-Key, buka Redmine, lalu buka My Account dan klik link Show di bawah sesi API access key pada panel sebelah kanan.

Sekarang kita dapat melakukan query pada task kita dengan membuat sebuah Query baru dalam Task List.

Referensi
  1. Eclipse Web Tools Platform (WTP) Project 
  2. Mylyn task and application lifycyle management framework for Eclipse
  3. Redmine, flexible web-based project management
  4. Redmine-Mylyn-Connector di sourceforge

Friday, November 06, 2009

Tools Hebat dari Google untuk Bikin Aplikasi Web Sehebat Gmail



Kemarin Google meng-open-source-kan koleksi tool Javascript yang memungkinkan developer dapat membuat aplikasi web lebih cepat, powerful dan efisien sebagaimana Gmail, Google Maps dan Google Docs.

Closure Compiler adalah salah satu dari tool-tool itu. Ia adalah optimalizer untuk kode Javascript. Closure akan  mengkompilasi code Javascript menjadi lebih kompak dan performa meningkat. Closure akan menghapus kode-kode yang tidak berguna, sehingga engine browser akan menjalankan program Javascript lebih ringan dan lebih cepat.

Selain Closure Compiler, ada juga Closure Library, yaitu sekumpulan library untuk Javascript yang terdiri dari library widget GUI, struktur data, komunikasi dengan server, animasi dan lain-lain.

Ada juga Closure Templates, kumpulan template untuk web yang telah dikompilasi agar Javascript lebih efisien. Berbeda dengan sistem template tradisional, kita dapat menggunakan Closure Template secara alami sebagai programmer. Closure Template diimplementasikan baik untuk Javascript maupun Java, sehingga kita dapat menggunakan template yang sama baik untuk server-side (Java) maupun client-side.

Google berharap dengan adanya kemajuan dan peningkatan aplikasi web, maka pencarian dengan Google semakian menjadi penting.

Sunday, December 14, 2008

Booting-up "CPU" programer

Sering kali dan sangat sering, saya kehilangan momen untuk memulai memprogram. Ada saja alasannya. Seperti hari ini, ada 2 proyek software dan 1 laporan yang perlu saya selesaikan. Kedua-duanya perlu skill menulis, meskipun beda nuansa. Satunya menulis kode program dengan emosi ditekan dan logika dibiarkan liar. Satunya lagi menulis laporan, dengan emosi dikembangkan dan logika sedikit disesuaikan. Dua-duanya perlu skill menulis. Dan dua-duanya perlu sesuatu yang sering saya jadikan alasan kepada istri saya, "mood".

Saya hari ini membaca artikel Joel di Joel on Software berjudul "The Joel Test: 12 Steps to Better Code".
  1. Do you use source control?
  2. Can you make a build in one step?
  3. Do you make daily builds?
  4. Do you have a bug database?
  5. Do you fix bugs before writing new code?
  6. Do you have an up-to-date schedule?
  7. Do you have a spec?
  8. Do programmers have quiet working conditions?
  9. Do you use the best tools money can buy?
  10. Do you have testers?
  11. Do new candidates write code during their interview?
  12. Do you do hallway usability testing?
Saya coba fokus kepada Do programmers have quiet working conditions? Joel menggaris-bawahi beberapa dokumen terkait hubungan tingkat produktifitas dan "zone" para knowledge-worker (pekerja pengetahuan) yang salah satunya adalah programer. Mereka -- pekerja pengetahuan -- memerlukan kondisi flow (mengalir) atau zone (zona) nyaman, sehingga kreatifitas mereka benar-benar mengalir. Segala gangguan suara seperti keributan di sekeliling mereka, dering telepon, suara bercakap-cakap rekan sekerja, atau bahkan hanya sekedar suara pintu yang buka-tutup, cukup menggangu kinerja (produktifitas) mereka. Oleh karenanya mereka seringkali perlu pergi berjalan 5 menit menuju Starbucks untuk melanjutkan pekerjaan mereka.

Saya sendiri sering melakukannya dengan sengaja pindah kerja ke ruang perpustakaan, atau menggeser waktu kerja saya setelah jam kantor, atau bahkan sengaja tidak ngantor untuk dapat menyendiri di kamar saya di rumah. Sering kali saya sengaja baru datang ke kantor jam 2 atau jam 3 sore, hanya untuk menghindari rekan sekerja, agar saya bisa melanjutkan pekerjaan menulis (laporan, desain, coding) saya. Ini memang aneh bagi sebagian besar rekan saya di kantor. Awalnya saya dapat rapor merah dari pimpinan. Bahkan secara halus saya diusir dari kantor setelah jam 5 sore. Lampu-lampu dimatikan oleh satpam dan termasuk juga lift. Beberapa kali saya sempat terjebak di lantai 5 gedung lama PDII (waktu itu ruang subid komputer masih di sini). Kadang-kala beberapa teman seprofesi (Romi, Slamet, Sjaeful) masih bersama saya beberapa jam. Lantai 5 gelap, bahkan salah satu senior saya sempat tiba-tiba lari turun dan pulang karena di ruangannya, sebelah ruang saya, katanya ada suara wanita "tanpa wujud" membisikinya. Sehingga lengkap sudah. Saya terjebak gelap dan terkunci di lantai 5, tanpa bisa turun lewat lift. Tetapi kemudian beberapa pimpinan membolehkan saya kerja sampai tengah malam di kantor. Tetapi tetap saja jam kantor saya dianggap cuman 1 jam, yaitu jam 2 sd 3. Sedangkan sisanya jam 4 sd jam 11 malam dianggap tidak ada. Jangan harap uang lembur.

Balik lagi masalah "zona produktif". Saya memerlukan waktu-suasana-emosi atau singkatnya "mood" untuk memulai pekerjaan coding atau menulis lainnya. Booting-up-nya juga sangat lambat. CPU di batok kepala saya ini mungkin masuk keluarga 480, bukan Pentium apalagi Core 2 Duo, jadi lambat. Seperti hari ini, saya sudah buka komputer sejak jam 10 pagi tadi. Saya sudah olahraga sebelumnya. Saya sudah cukup tidur semalam. Saya sudah sarapan enak, nasi pecel kesukaan saya. Anak-anak tidak rewel, istri juga nggak rewel. Semua kondusif. Tapi sampai artikel ini saya tulis, saya belum mood juga.

Menurut Joel di artikel tersebut, kebanyakan programmer perlu waktu 15 menit untuk booting-up. Bahkan gangguan walau cuman 30 detik, akan menghambat produktifitas para programmer rata-rata 15 menit. Itu programmer selevel Joel cs. Bagaimana dengan saya?



Tuesday, December 09, 2008

Pemrograman di Kelas Pasca Sarjana M.Kom

Beberapa bulan terakhiri saya mengasuh kelas di program pasca sarjana yang sangat terkait dengan pemrograman. Di Udinus ada image processing, computer graphics & visualization, internet dan web programming, multimedia authoring. Di STTI Benarif web technology. Di Budi Luhur struktur data dan pemrograman. Sedangkan mahasiswanya lebih dari 50% tidak berasal dari pendidikan ilmu komputer atau teknik komputer atau paling tidak teknik elektro. Sehingga untuk pemrograman mereka seharusnya mendapatkan menu sebagaimana under-graduate. Atau paling tidak harus ada matrikulasi untuk pemrograman. Tetapi kasihan juga kepada mahasiswa yang telah mengambil ilmu komputer, teknik komputer/informatika atau teknik elektro. Mereka ini akan bosen kalau diminta mengulang pelajaran undergraduate.

Padahal skill programming menurut saya adalah skill wajib bagi seorang master komputer. Skill programming juga tidak dapat diperoleh instan. Learning curve-nya panjang. Cukup setahun untuk program reguler, dan tiap pekan dilatih. Tetapi untuk program weekend atau kelas malam, kapan mereka berlatihnya? Itu pun masih dasar sekail. Apalagi bagi orang yang sama sekali tidak pernah membuat program, perlu waktu yang lebih lama untuk memahami konsep-konsep dasar. Saya jadi bertanya-tanya lulusan seperti apa yang dikehendaki oleh universitas kalau master-master mereka sama sekali tidak bisa membuat program? Skill programming itu seperti skill menggambar teknik untuk mahasiswa pasca sarjana arsitektur. Atau bahasa Arab bagi pasca sarjana ilmu-ilmu agama Islam seperti tafsir, hadist dan fiqih.

Tapi, terpaksa. Saya harus menghadapi persoalan rumit itu dengan bijak.

Pertanyaan berikutnya yang mendesak adalah dengan cara dan metode bagaimana saya mengajarkans secara singkat pemrograman, sebelum saya bisa masuk ke isi mata kuliah saya. Akhirnya saya juga harus memilih bahasa pemrograman apa yang harus dikenalkan.

Maka dimulailah satu lagi pencarian. Tetap semangat!

Thursday, October 30, 2008

Rewrite URL di Drupal

Mengubah URL untuk diarahkan ke tempat URL.
Sumber: custom_url_rewrite untuk Drupal 5.x

Sedikit kesimpulan dari saya.
  • fungsi custom_url_rewrite($op, $result, $path) didefinisikan di settings.php
  • dari contoh sumber drupal tsb di atas:
# Merubah URL yang datang dari client
if ($op == 'source') {
# Merubah URL yang terkirim ke client
if ($op == 'alias') {

Sunday, October 26, 2008

Image Processing di Udinus

Akhirnya kegiatan weekend saya di Semarang kelar juga. Sabtu-Ahad benar-benar exciting. Sabtu-Ahad ini saya mengajar mata kuliah Image Processing untuk pasca sarjana Teknologi Informasi, Udinus, Semarang. Menariknya adalah karena mahasiswa dan karena mata kuliahnya.

Mahasiswanya cukup responsif. Maksud saya, bukan masalah tanya-jawab atau diskusi yang ramai. Kalo itu maka harusnya default. Tetapi responsif thd tugas coding. Relatif cepat dibanding perkiraan saya sebelumnya.

Dua hari ini materinya adalah:
a. Introduction of Image Processing
b. Image Formation & Representation
c. Transformation
d. Image Enhancement
e. Praktek untuk point b, c dan d.

Kelas menggunakan alat bantu Processing, salah satu framework yang dibangun di atas Java. Cocok untuk kalangan non-CS (computer science) khususnya designer.

Semoga berikutnya saya bisa nge-blog pemrograman dg Processing tsb.