August, 2010


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)
  5. FlockDB (java)

Diantara semua itu, yang paling menarik perhatian saya adalah neo4j, InfoGrid, dan FlockDB. 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.