Tuesday, October 9, 2012

Pemahaman Dasar Tentang Web

Sepertinya sudah lama sekali saya tidak membuat tulisan di blog ini (sepertinya sudah hampir 1/2 tahun haha). Ok sebagai langkah awal dalam membuka lembaran baru blog ini saya akan menuliskan tentang pemahaman dasar mengenai dunia Web (World-Wide Web / WWW). Kalau kita cermati perkembangan teknologi saat ini, sepertinya untuk dapat membuat web (yang penting jadi :)) bukanlah sebuah perkara yang sulit. Ada begitu banyak pilihan CMS (Content Mangement System) yang dapat kita pilih sebagai "bahan dasar" pembuatan web kita seperti misalnya joomla, wordpress, drupal, dan lain sebagainya.

Semakin dipermudahnya kita dalam membuat web, maka semakin banyak orang yang bisa membuat web, bahkan mungkin anak kelas 3 SMP pun bisa membuat web sendiri. Tapi, apakah mereka benar-benar mengerti bagaimana web itu bekerja? walaupun di satu sisi tidak masalah mereka tidak memahami cara kerja web, akan tetapi (menurut saya) sebuah pemahaman yang parsial nantinya akan menghambat kita untuk bisa mengembangkan lebih jauh lagi ilmu yang kita dapat. Oleh karena itu, pada kesempatan ini saya ingin mengulas tentang pemahaman dasar web yang mudah-mudahan pemahaman dasar ini dapat membantu teman-teman dalam mendalami ilmu per-web-an lebih jauh lagi. Ok! cukup basa-basinya sekarang kita akan masuk ke topik utama.

Thursday, April 19, 2012

Compile HelloWord.java menggunakan Apache Ant

Ada yang sudah pernah mendengan ant? atau mungkin maven? bwt yang baru pertama kali mendengar nama ini, saya akan sedikit membahas tentang apache ant sebelum kita memulai tutorial singkatnya ok? :D

Apache ant merupakan salah satu tools yang digunakan untuk mengotomatisasi build cycle pada sebuah proyek yang berbasiskan java. Pada dasarnya ketika kita selesai melakukan proses koding pada proyek perangkat lunak maka biasanya kita akan melakukan proses compile-test-package. Nah, dengan adanya bantuan dari apache ant, kita dapat melakukan ketiga proses tersebut secara otomatis dan bahkan bisa di schedule dengan menggunakan cron jobs ataupun tools yang lainnya. Pada kesempatan kali ini saya akan memberikan contoh sederhana tentang bagaimana membuat mengcompile sebuah proyek java dengan menggunakan apache ant.

Sunday, April 15, 2012

Melakukan Instalasi Subversion pada Linux (Fedora/Centos)

Subversion atau yang biasa disingkat dengan nama SVN merupakan salah satu Source Code Management (SCM) Tool yang umum digunakan dalam dunia pengembangan perangkat lunak. fungsi dari scm itu sendiri adalah sebagai revision control pada sebuah source code (walaupun sebenarnya scm tidak terbatas hanya untuk source code saja). dengan menggunakan svn, kita dapat melakukan collaborative coding dengan mudah. Oiya, beberapa scm tool lain yang (menurut saya) umum digunakan dalam proses software development antara lain adalah: CVS dan Mercurial (Hg).

Ok! langsung to the point aja ya.. sekarang saya akan berbagi tentang bagaimana melakukan instalasi Subversion (SVN) pada sistem operasi Fedora/Centos Linux. Berikut ini adalah langkah-demi langkah yang harus dilakukan dalam melakukan instalasi SVN di Fedora / Centos (saya belum tahu di RedHat caranya sama atau engga).

1. Instal Apache (HTTPD)
Sebelum melakukan instalasi svn, kita harus melakukan instalasi apache terlebih dahulu. lho, kenapa? aplikasi apache dibutuhkan agar repository svn yang kita buat dapat diakses melalui web (http protocol). untuk dapat melakukan instalasi Apache, lakukan hal berikut ini:

[salman@salmandev ~]$ su
Password: 
[root@salmandev salman]# yum install httpd

Setelah selesai mengetikkan perintah di atas, maka selanjutnya kita tinggal menunggu sampai proses download dan instalasi selesai.

Sunday, October 16, 2011

Troubleshooting : java.lang.LinkageError: loader constraint violation

Environment: NetBeans IDE 7.0.1
Trigger : Menjalankan Program Setelah Mengimport sebuah library bernama org.openide.nodes

Beberapa waktu yang lalu saya sempat mencoba mengikuti tutorial tentang membuat aplikasi CRUD (Create, Read, Update, and Delete) dengan menggunakan Netbeans Platform. Salah satu fiturnya adalah menampilkan daftar nama "Customer" dalam bentuk TreeView (sebuah list dengan hirarki). Nah, untuk bisa merealisasikan fitur tersebut kita perlu mengimplementasikan sebuah library yang bernama org.openide.nodes. akhirnya saya melakukan import library secara manual dengan cara "klik kanan pada (projectku->modules) dan memilih menu add library". setelah saya melakukan import library kemudian saya meng-compile source code yang sudah saya buat. Proses kompilasi pun berhasil namun ternyata ketika saya mengklik "run" pada netbeans untuk menjalankan aplikasi tersebut, muncul sebuah error pada saat Runtime isi stackTrace-nya seperti ini:

java.lang.LinkageError: loader constraint violation: when resolving method "org.openide.explorer.ExplorerManager.setRootContext(Lorg \ openide\ nodes \ Node )V" the class loader (instance of org/netbeans/StandardModule$OneModuleClassLoader) of the current class, org/gaza/viewer/AdkViewerTopComponent, and the class loader (instance of org/netbeans/StandardModule$OneModuleClassLoader) for resolved class, org/openide/explorer/ExplorerManager, have different Class objects for the type orer.ExplorerManager.setRootContext(Lorg \ openide \ nodes \ Node)V used in the signature

Wednesday, October 5, 2011

Yuk, Berkenalan Dengan MVC (Part. 2)

Sumber: Internet
(lupa dari mana)
Setelah sekian lama vakum dari dunia per-blog-an, akhirnya saya berusaha memaksa diri saya untuk tetap bisa menulis di Blog ini terutama menulis tentang dunia software engineering yang sedang saya tekuni sekarang. Nah, seperti janji saya sebelumnya, pada kesempatan kali ini akan membahas tentang "Bagaimana cara kerja MVC" melanjutkan tulisan saya yang telah lalu yang berjudul "Yuk, Berkenalan Dengan MVC (Part.1)". Okay, tanpa berpanjang kalam lagi saya akan memaparkan tentang bagaimana cara kerja dari aplikasi yang memiliki arsitektur MVC. enjoy :)

1. Separated of Concern (Pembagian Fokus)
Salah satu yang menjadi alasan terciptanya sebuah konsep MVC dalam arsitektur perangkat lunak adalah karena para pengembang aplikasi menginginkan adanya fokus kerja yang bersifat independent. kata independent yang saya gunakan ini memiliki maksud bahwa seorang web designer tidak harus mengacak-acak program logic dan database query yang dibuat oleh para programmer web dan database. Dengan menggunakan konsep Model, View, dan Controller, seorang web designer dapat berfokus pada pembuatan User Interface (View) tanpa harus menyentuh bagian Model ataupun Controller. Dengan cara seperti ini, proses maintenance aplikasi menjadi lebih mudah karena kita hanya perlu merombak salah satu layer saja tanpa harus merombak keseluruhan aplikasi.