Pemrograman


15
Aug 10

Membuat DSL Tanggal Dengan Scala

Membuat DSL (Domain Specific Language) dengan bahasa pemrograman Scala relatif mudah. Walaupun Scala adalah bahasa pemrograman static, tapi untuk urusan membuat DSL tidak kalah mudahnya dibanding bahasa pemrograman dinamis seperti Ruby atau Groovy. Kali ini kita akan membuat program DSL tanggal, program ini bukan buatan saya tetapi saya mengadopsi program yang dibuat oleh Sergio Lopes dan Paulo Renato dan saya mengubahnya dalam dialek bahasa Indonesia.

Begini ilustrasi DSL yang akan kita buat

Kemarin ditambah 15 hari dan dikurangi 19 tahun

Jika perintah tersebut dieksekusi dan dicetak ke layar maka akan muncul tanggal. Tanggal tersebut tergantung kapan kita mengeksekusi program. Berikut ini source code-nya:

Jika Anda mendapat masalah dalam menampilkan source code atau source code tidak muncul, Anda bisa mengakses halaman ini.

Petunjuk khusus bagi yang masih awam dalam menggunakan Scala (asumsi Scala sudah terinstall dalam sistem Anda):

  1. Buat file dengan nama Tanggal.scala kemudian salin source code Tanggal.scala seperti tercantum di atas. Kemudian simpan file tersebut
  2. Dalam folder yang sama, buat file dengan nama Coba.scala kemudian salin source code Coba.scala seperti tercantum di atas. Kemudian simpan file tersebut
  3. Buka terminal/command-prompt, masuk ke folder tempat kedua file tersebut disimpan. Kemudian ketik “fsc Tanggal.scala Coba.scala” (tanpa tanda kutip)
  4. Bila berhasil, coba jalankan program dengan mengetik “scala Coba” (tanpa tanda kutip)
  5. Anda dapat bereksperimen dengan file Coba.scala untuk mencoba berbagai variasi tanggal yang ingin dihitung. Namun jangan lupa untuk melakukan kompilasi setiap kali merubah source code.

Selamat mencoba.


4
Aug 10

Basis Data Graph

InfoGrid

InfoGrid

Sekarang banyak sekali jenis basis data, kalau dulu membayangkan basis data mungkin yang kita bayangkan adalah tabel-tabel yang saling terhubung satu sama lain atau mungkin kita membayangkan bahasa SQL. Dulu saya pernah menulis tentang basis data berorientasi dokumen khususnya yang dibuat menggunakan bahasa pemrograman Erlang. Sekarang saya tertarik untuk menulis jenis basis data lainnya, yaitu basis data graph. Ada banyak graph database yang beredar, diantaranya:

  1. neo4j (java)
  2. HyperGraphDB (java)
  3. vertexdb (C)
  4. InfoGrid (java)

Diantara semua itu, yang paling menarik perhatian saya adalah neo4j dan InfoGrid. InfoGrid menawarkan kemudahan dalam pembuatan aplikasi web yang REST-ful. Tapi HyperGraphDB dengan hypergraph-nya dan vertexdb yang high-performance juga tidak kalah menarik.

Basis data jenis ini konon cocok untuk membuat aplikasi semacam bioinformatics atau semantic web.


27
Dec 09

Panduan Instalasi NetKernel

Service Oriented Architecture (SOA) mungkin sudah tidak asing lagi bagi Anda. Bila Anda menggunakan Java, Anda mungkin juga tidak asing dengan OSGi untuk membuat aplikasi modular ala SOA. Bagaimana dengan NetKernel? Secara kasar, NetKernel = UNIX + WWW. NetKernel digunakan untuk membuat aplikasi dengan menggunakan REST dan Resource-Oriented Architecture. NetKernel dapat dijadikan alternatif JEE dalam pengembangan aplikasi enterprise. NetKernel bersifat free dan opensource selama Anda tidak menggunakannya untuk keperluan komersial.

NetKernel memiliki dokumentasi yang sangat lengkap, baik teori maupun praktek. NetKernel menggunakan bahasa Java namun juga dapat menggunakan bahasa lain yang berjalan di atas JVM seperti Scala, Groovy, dsb. Ini adalah framework yang sangat bagus, walaupun Anda tidak menggunakannya dalam pekerjaan sehari-hari, mempelajari NetKernel dapat meningkatkan kemampuan Anda sebagai seorang software architect yang handal. Tidak menutup kemungkinan, NetKernel adalah framework masa depan yang siap menuai kesuksesan.

Berikut ini tahap-tahap instalasi NetKernel:

1. Download NetKernel di http://download.netkernel.org/nkse/
2. Buat/siapkan direktori untuk tempat instalasi.
3. Jalankan NetKernel melalui terminal, misal saya menggunakan versi 4.0.2:

java -jar 1060-NetKernel-SE-4.0.2.jar

4. Buka http://localhost:1060 melalui browser Anda.

NetKernel SE 4.0.2

5. Pilih menu install kemudian ikuti instruksi selanjutnya.
6. Masukkan target direktori untuk instalasi. Pastikan pilihan Expand JAR files dalam kondisi tercentang. Isikan proxy bila diperlukan.

NetKernel SE 4.0.2
7. Shutdown NetKernel kemudian jalankan lagi dengan boot script yang tersedia di folder bin pada direktori dimana netkernel diinstall.

./netkernel.sh

8. Masuk ke menu Control Panel kemudian pilih Rebuild Search Index.

nk3

… NetKernel siap Anda gunakan


13
Oct 09

5 Web Framework Untuk Bahasa Pemrograman Erlang

Setelah mencoba beberapa bahasa, akhirnya untuk saat ini saya memilih Erlang (dan Scala) sebagai bahasa pemrograman untuk pemrograman fungsional. Erlang relatif lebih mudah dan sederhana dibanding Scala. Scala lebih kompleks akibat penggabungan dua paradigma pemrograman, yaitu object-oriented dan fungsional, sehingga lebih sulit dipelajari bila belum memiliki latar belakang pengetahuan tentang konsep pemrograman fungsional.

Bagi pengembang aplikasi berbasis web yang membutuhkan performa tinggi, skalabilitas, reliabilitas, concurrency tingkat ekstrim, maka Erlang dapat menjadi solusi.

1. Webmachine

Webmachine adalah framework yang sangat unik, dibuat untuk membuat aplikasi web secara RESTful.

Webmachine

Webmachine

2. Nitrogen

Nitrogen dibangun menggunakan arsitektur event-driven. Nitrogen juga menyediakan custom tags untuk mempermudah membangun aplikasi berbasis Ajax maupun Comet.

Nitrogen

Nitrogen

3. Erlang Web

Konsep Erlang Web hampir mirip dengan Java Servlet dan Java Server Page (JSP). Erlang Web menggunakan template dan controller untuk membangun aplikasi.

Erlang Web

Erlang Web

4. Erlyweb

Seperti kebanyakan web framework, Erlyweb menggunakan MVC pattern. Erlyweb juga menyediakan lapisan abstraksi untuk basis data, yaitu Erlydb.

Erlyweb

Erlyweb

5. Beep Beep

Beep Beep sangat terinspirasi oleh Ruby On Rails, salah satu contohnya adalah prinsip RoR yang sangat populer, yaitu convention over configuration.


5
Oct 09

Berbagai Framework Untuk Behaviour-Driven Development

Behaviour-Driven development (BDD) secara prinsip kurang lebih sama dengan test-driven development (TDD), hanya saja (bila Anda mengembangkan perangkat lunak secara object-oriented) BDD lebih fokus pada pengujian terhadap perilaku suatu objek, bukan mengenai perihal seperti apa objek itu (misal: struktur objek). Ada cukup banyak framework yang dapat kita gunakan untuk mempermudah pengembangan perangkat lunak secara BDD. Bagi yang masih asing terhadap BDD namun sudah pernah mengenal tentang teori BDD, atau siapapun Anda yang merasa tertarik tentang topik ini, ada baiknya untuk mencoba mengimplementasikannya secara langsung dengan bantuan framework yang Anda sukai.

Selamat mencoba BDD. Red – Green – Refactor – Red – Green – Refactor – …

O ya, kalau ada yang tahu framework BDD lainnya, silahkan berbagi melalui komentar di posting ini.