[Java] Mrogram Java dengan Bahasa Pemrograman Lain

Monday, October 27th, 2008

Java punya beberapa varian, misal JavaSE untuk pemrograman Desktop dan Applet, JavaEE untuk pemrograman Web dan aplikasi berbasis Enterprise atau JavaME untuk pemrograman berbasis perangkat bergerak atau yang lebih dikenal di Indonesia dengan nama hape.

Tapi ternyata Java juga disupport oleh beberapa bahasa pemrograman lain, jadi kita bisa bikin program java pake bahasa tersebut, atau sebaliknya kita bikin program untuk bahasa tersebut dengan menggunakan Java. Jadi seperti peribahasa "Sekali Dayung Dua sampai Tiga Pulau Terlampaui".

Digunakan untuk yang ingin belajar banyak bahasa pemrograman tapi gak mau nginstal banyak software, karena semua tools yang dipake semuanya dibuat menjadi pustaka Java berekstensi jar, jadi gak perlu install, hanya tinggal ekstrak aja.

1. GWT (Google Web Toolkit)

GWT dipake untuk membuat aplikasi web berbasis AJAX tapi bahasa pemrograman yang kita pakai adalah Java, dibuat oleh team google. Tampilan yang dihasilkan dari aplikasi khas banget dengan ciri google.

2. Jython

Kombinasi antara Java dan Python, Bisa buat aplikasi Python menggunakan Java atau sebaliknya buat aplikasi Java menggunakan Python.

3. JRuby

Kombinasi antara Java dan Ruby. Punya support untuk Ruby on Rails, dengan nama JRuby on Rails. Untuk yang udah denger sebuah bahasa scripting yang namanya ruby, tapi blon nyobain sampe saat ini.

4. QTJambi

Yup, namanya Jambi seperti nama sebuah provinsi di Sumatera. Mungkin idenya dicomot dari Java yang nama sebuah pulau di negara kita juga :-P. QT adalah sebuah windows framework berbasis C++, tapi digabungkan dengan Java sehingga kita bisa pake library QT di bahasa pemrograman Java.

5. ZK

Dengan ZK kita bisa membuat aplikasi web berbasis AJAX untuk JavaEE tanpa perlu ngerti bagaimana sintaks dari AJAX itu sendiri. Hanya tinggal memanggil tag-tag yang perintahnya mirip dengan tag HTML. Tinggal gabungin dengan Servlet atau JSP.

6. Quercus

Kalo yang ini bukan sebuah bahasa pemrograman, tapi sebuah web server yang sanggup menangani PHP dan Servlet. Jadi kita buat program tetep pake PHP, oleh server ini akan diterjemahkan menjadi pustaka Java. Sehingga kita bisa mengimport pustaka Java di source PHP.

Baru 6 aja yang ke-ulik, itu juga masih dasarnya blon sampe pemrograman kompleks. Kayak ada waktu aja untuk mendalami semuanya :-P. Yang penting gak ketinggalan teknologi dulu deh.

[Linux] Mengaktifkan Syntax Highlighting Pada Editor Teks Nano

Wednesday, October 8th, 2008

Masih menggunakan file .nanorc, kita coba mengaktifkan Syntax Highlighting pada editor teks Nano, karena Nano sebenernya dah support untuk pewarnaan tapi secara default tidak ada konfigurasinya. Jadi konfigurasinya harus kita tambahin sendiri.

Untuk menambahkan pewarnaan pada Nano sebenernya harus udah ngerti dulu penggunaan regular expression, tapi di dunia maya sudah tersedia beberapa versi syntax untuk bahasa pemrograman populer.

Ini dicomot dari beberapa situs web.

PHP

syntax "php" "\.php[2345s~]?$"
color brightblue "(.*)\("
 
#Changed this one to a character class instead of "=*|=*|<|>|!":
color blue "\$[a-zA-Z_0-9$]*|[=!<>]"
 
color green "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color green "[.,{}();]"
 
color red "('.*')|(\".*\")"
 
#Forces regex to stop matching at EOL.
#Sometimes the dot . matches newline as well so this is more portable:
color brightyellow "(#.*|//.*)$"
color brightyellow start="/\*" end="\*/"
 
#not all php open tags are "long"
#I wanted to write (<\?(?!xml)(php)?|\?>) but the parser didn't support it.
color brightblue "(<\?(php)?|\?>)"
 
#unfortunately, this also makes the php tags themselves white.
#But I'll live anyway
color white start="\?>" end="<\?(php)?"

PYTHON

syntax "python" "\.py$"
color brightblue "def [a-zA-Z_0-9]+"
color brightcyan "\<(and|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|map|not|or|pass|print|raise|return|try|while)\>"
color brightgreen "([\"']).*?[^\\]\1"
color brightgreen start="\"\"\"" end="\"\"\""
color brightred "#.*$"

HTML

syntax "HTML" "\.html$"
color blue start="<" end=">"
color red "&[^; ]*;"

C/C++

syntax "c-file" "\.(c|C|cc|cpp|h|H|hh|hpp)$"
color red "\<[A-Z_]{2,}\>"
color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|signed|unsigned|inline)\>"
color green "\<(class|printf|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
color brightyellow "\<(for|if|while|do|else|case|default|switch|goto|continue|break|return)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
color brightcyan "^ *# *(define|undef|include|ifn?def|endif|elif|else|if)"
color brightmagenta "'([^\]|(\\['abfnrtv\\]))'" "'\\(([0-7][0-7]?)|([0-3][0-7][0-7]))'" "'\\x[0-9A-Fa-f][0-9A-Fa-f]?'"

JAVA

syntax "Java source" "\.java$"
color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
color red ""[^\"]*""
color yellow "\<(true|false|null)\>"
color blue "//.*"
color blue start="/\*" end="\*/"
color brightblue start="/\*\*" end="\*/"
color brightgreen,green " +$"

Shell Script

syntax "shellscript" "\.sh$"
color brightgreen "^[a-zA-Z_0-9]+\(\)"
color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
color green "-(e|d|f|r|g|u|w|x|L)\>"
color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
color brightblue "\<make\>" "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
color brightred "\$\{?[a-zA-Z_0-9]+\}?"
color yellow "#.*$"
color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'"

Pascal

syntax "Delphi Source" "\.pas$"
color brightcyan "\<(boolean|byte|char|double|float|integer|long|new|short|this|transient|void)\>"
color brightred "\<(break|case|catch|continue|default|do|else|finally|for|if|then|return|switch|throw|try|while|function)\>"
color cyan "\<(abstract|unit|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|$color brightyellow "\<(until|repeat|var|uses|type|begin|end|const)\>"
color magenta "\<(true|false|null|procedure)\>"
color brightblue "//.*"
color brightblue start="\{" end="\}"

Sumber:

http://www.linuxhowtos.org/System/

http://ubuntuforums.org/forumdisplay.php?f=100

http://forums.gentoo.org/viewforum-f-12.html

Technorati : ,
Del.icio.us : ,

[Ubuntu Server] Install IceWM Sebagai Window Manager

Thursday, September 25th, 2008

Kalo merasa gak nyaman dengan Ubuntu Server dalam versi console yang gak bisa melakukan beberapa perintah bersamaan, bisa pake dua cara, yang pertama pake SSH Server yang nantinya server kita diakses via remote computer atau yang kedua kita install Windows Manager untuk linux yang kita gunakan.

Banyak banget sebenernya Windows Manager yang tersedia untuk Linux, dalam Ubuntu biasanya yang dipake GNOME, Kubuntu menggunakan KDE dan Xubuntu menggunakan XFCE. Tapi karena yang dibutuhkan hanya supaya bisa ngebuka lebih dari satu Console, maka kita cari yang ringan aja. Ada beberapa juga Windows Manager yang ringan seperti IceWM, FluxBox, OpenBox atau FVWM-Crystal.

Kita coba pake IceWM, dependensi dari IceWM dan semua Windows Manager adalah x.org. Maka kita install dulu x.org

   sudo apt-get install xorg

Kemudian kita install IceWM

   sudo apt-get install icewm iceconf icepref iceme icewm-themes

Tapi kita harus menjalankan IceWM ini melalui Console Ubuntu Server lewat perintah

Setelah itu kita akan masuk ke Windows milik IceWM, untuk menampilkan menu gunakan klik kanan. Sekarang kita bisa tambahin software-software lain sesuai kebutuhan, karena IceWM hanya menyediakan software-software minimalis.

Technorati : , ,
Del.icio.us : , ,

[Ubuntu Server] Install MySQL dan OpenSSH

Tuesday, September 23rd, 2008

Setelah kemaren kita coba menginstal Apache dan PHP ke dalam ubuntu server, sekarang kita coba untuk menginstal MySQL dan OpenSSH dengan kebutuhan yang sama seperti kemaren.

Semua juga tau kalo MySQL itu gunanya sebagai Database Server, biasa disandingkan dengan Linux, Apache dan PHP yang dikenal dengan nama LAMP. Instalasinya seperti ini:

sudo apt-get install mysql-server libmysqlclient15-dev mysql-client

Sewaktu instalasi akan diminta untuk memasukkan password untuk root sebanyak dua kali. Password ini hanya akan berlaku untuk root yang sedang bekerja dalam server localhost saja. Kebanyakan konfigurasi MySQL termasuk di WebHosting hanya memperbolehkan user untuk login melalui akses localhost saja, karena lebih menjamin keamanan data.

Kalo OpenSSH Server mungkin masih ada yang blon tau gunanya apa, SSH (Secure Shell) digunakan untuk mengakses server secara remote, dengan catatan bahwa pada server sudah diinstall SSH Server.

Fungsi SSH ini sama seperti kita mengeksekusi perintah dari console linux atau melalui FTP, tapi lebih secure dan menggunakan port 22. Software yang digunakan untuk mengakses SSH Server biasanya yaitu Putty atau WinSCP.

sudo apt-get install ssh openssh-server

Kemudian pernah baca di sebuah artikel yang lupa alamatnya dimana, kalo di Ubuntu Server secara default sudah terinstalasi software yang namanya AppArmor untuk meningkatkan security Ubuntu, tapi lebih banyak membuat masalah bila konfigurasinya salah. Maka kita coba matikan saja service AppArmor ini:

sudo /etc/init.d/apparmor stop
 
sudo update-rc.d -f apparmor remove

Terus kita uninstal AppArmor:

sudo apt-get remove apparmor apparmor-utils

Sudah beres, sekarang kita dah punya sebuah WebServer aktif yang support PHP dan MySQL. Tapi baru hanya bisa diakses melalui IP Address saja.

Technorati : ,
Del.icio.us : ,

[Ubuntu Server] Install Apache dan PHP

Tuesday, September 9th, 2008

Kalo kemaren kita bermain-main dengan XAMPP, secara default security dari XAMPP sangat kurang jadi harus dikonfigurasi secara ekstensif. Sekarang kita coba pake Apache dan PHP yang berada dalam repositoryi Ubuntu.

Kalo yang dalam repositori ubuntu konfigurasi dari Apache dan PHP sudah disetting sedemikian rupa sehingga jadi lebih aman digunakan. Jadi kesimpulannya adalah perangkat lunaknya sudah siap digunakan. Kenapa langsung digabungkan Apache dan PHP, karena sekarang kedua perangkat lunak tersebut sudah tidak bisa dilepaskan lagi dan ngapain install Apache kalo gak install PHP.

Yang dibutuhkan adalah (pilih salah satu) :D

  • Koneksi internet yang kenceng atau
  • DVD repositori Ubuntu, ada 5 DVD

1. Instalasi Apache:

   sudo apt-get install apache2 apache2-doc apache2-utils libexpat1 apache2-mpm-prefork ssl-cert

2. Instalasi PHP sebagai Apache Module:

   sudo apt-get install libapache2-mod-php5 php5 php5-common php5-dev php5-curl php5-idn php-pear php5-ming php5-imagick php5-pspell
   php5-jsonphp5-imap php5-mcrypt php5-memcache php5-mhash php5-gd php5-xmlrpc php5-mysql php5-recode php5-sqlite php5-snmp php5-tidy
   php5-xsl

3. Aktifkan Apache Module untuk SSL, rewrite, suexec dan include

   a2enmod ssl
   a2enmod rewrite
   a2enmod suexec
   a2enmod include

4. Reload Apache

   /etc/init.d/apache2 force-reload

5. Restart Apache

   /etc/init.d/apache2 restart

Technorati : ,
Del.icio.us : ,

[Browser] Google Chrome

Wednesday, September 3rd, 2008

Ada browser baru yang baru aja beberapa jam muncul di dunia maya nih, browser ini buatan google dan bisa didownload di http://www.google.com/chrome

Fiturnya ya sama aja seperti browser-browser lain dengan beberapa kekurangan, kan baru aja muncul. Tapi sudah cukup powerful untuk menjalankan aplikasi web, apalagi sepertinya sudah dioptimasi untuk teknologi-teknologi berbasis web milik google.

Firefox punya pesaing? atau sebagai browser tambahan aja ya?

Technorati : , , ,
Del.icio.us : , , ,

Wikipedia Offline Pake WikiTaxi

Tuesday, August 19th, 2008

Dapet infonya dari blog maseko, trus penasaran dan dicoba deh.

Pertamanya coba ke situsnya wikipedia yang nyediain dump dari seluruh artikel wikipedia dan pilih folder latest, kemudian ambil yang enwiki-latest-pages-articles.xml.bz2 (Update terakhir 27 Juli 2008), besarnya 3.9GB, cobain donlot dan beres dalam waktu 14 Jam saja :P

Trus donlot software WikiTaxi untuk import dan ngebaca file Wikipedia.

Cara untuk menggunakannya seperti ini:

1. Ekstrak WikiTaxi, nanti ada dua file, WikiTaxi.exe dan WikiTaxi_Importer.exe

2. Karena file Wikipedia yang kita donlot blon dikenali oleh WikiTaxi, maka harus diimport dulu pake WikiTaxi_Importer.exe

3. Waktu tempuh untuk import di komputerku adalah 1 Jam 45 Menit

4. Setelah beres import, didapet hasil importnya 7.3GB dengan ekstensi taxi, jadi gak disaranin untuk yang punya harddisk pas-pasan

5. Jalanin WikiTaxi.exe trus pilih file wiki hasil import tadi

6. Udah deh kita punya Wikipedia versi offline

Sekarang lagi nyari cara supaya bisa jadi versi web-nya nih. Taro di kantor trus yang mau ngakses Wikipedia, pake aja yang offline jadi gak terlalu ngabisin bandwith.

Cara menggunakannya dengan lebih jelas dan pake gambar-gambar juga bisa diliat di situsnya WikiTaxi kok.

Technorati : ,
Del.icio.us : ,

[Linux] Konfigurasi Fitur Untuk Nano Text Editor

Monday, June 30th, 2008

Nano adalah sebuah editor teks yang sudah terintegrasi dalam linux bersama VI dan Emacs. Ketiga software ini biasanya digunakan dalam shell linux.

Fitur yang kurang dari nano ini misalnya adalah indentasi otomatis, no wrap, backup file dan terutama untuk programmer adalah syntax color highlight.

Fitur-fitur tersebut bisa diaktifkan, tapi harus buat dulu satu file bernama “.nanorc” di folder home milik kita.

Disini saya buatnya pake nano, jadi konfigurasi nano menggunakan nano :D

Folder home yang saya gunakan adalah: “/home/irfan”, silakan sesuaikan dengan home folder masing-masing.

Langkahnya:

1. Dengan menggunakan console bawaan linux

2. Buat file baru dengan nama .nanorc

3. Tuliskan perintah-perintah di bawah ini di file .nanorc untuk mengaktifkan fiturnya.

a. Mengaktifkan Indentasi Otomatis

b. Mengaktifkan Backup File

c. Menonaktifkan Text Wrap

d. Mengaktifkan History Nano

e. Mengaktifkan Smooth Scrolling

f. Jarak indentasi, harus lebih besar dari 0

Contoh dari file .nanorc yang saya punya

   # Use auto-indentation
   set autoindent
 
   # Backup files to filename~
   set backup
 
   # Use cut to end of line with ^K by default
   set cut
 
   # Enable ~/.nano_history for saving and reading search/replace strings.
   # set historylog
 
   # Do not convert files from DOS/Mac format
   set noconvert
 
   # Do not follow symlinks when writing files
   # set nofollow
 
   # Do not display the help lists at the bottom of the screen
   # set nohelp
 
   # Do not wrap text at all
   set nowrap
 
   # Use smooth scrolling as the default
   set smooth
 
   # Allow nano to be suspended with ^Z
   # set suspend
 
   # Use this tab size instead of the default; it must be greater than 0
   # set tabsize 8
 
   # Save automatically on exit, do not prompt
   # set tempfile

Yang berada dalam tanda pagar (#) berarti tidak akan dieksekusi karena dianggap komentar.

Dengan bantuan dari: linuxhowto

Technorati : , ,
Del.icio.us : , ,

[Software] Emulator Sistem Operasi Virtual Box

Friday, June 27th, 2008

Untuk yang suka nginstall sistem operasi menggunakan VMWare, ternyata ada juga alternatif software versi yang gratisnya yaitu VirtualBox. Sama seperti VMWare, software ini juga mengemulasi sistem operasi diatas sistem operasi lain.

Software ini dapat diinstall di windows, linux, macintosh dan solaris. Dan software ini dapat menjalankan banyak sistem operasi termasuk windows, dos, linux dan openbsd.

VirtualBox diluncurkan dalam dua versi

  1. Close Source Edition, tetap digratiskan tapi tidak tersedia dalam bentuk source code
  2. Open Source Edition, gratis dan tersedia source code-nya

Perbedaannya adalah versi Close Source memiliki fitur lebih banyak dibandingkan yang Open Source, diantaranya:

  1. Remote Display Protocol (RDP) Server
  2. USB Support
  3. USB over RDP
  4. iSCSI Support
  5. Serial ATA (SATA) Controller

Kelima fitur ini tidak muncul di versi Open Source.

Silakan dicoba, nanti kalo saya sudah coba kita bikin tutorialnya.

Technorati : , ,
Del.icio.us : , ,

[PHP] Mendapatkan Angka Random

Thursday, June 19th, 2008

Perintah untuk mendapatkan angka random dalam PHP menggunakan sebuah
fungsi yang bernama mt_rand(), mt_rand() merupakan sebuah fungsi yang sudah terintegrasi dengan PHP sehingga tidak perlu menginstall pustaka apapun, dengan contoh seperti ini:

1. Mendapatkan sebuah angka random:

<?php
 $angka = mt_rand();
 echo $angka;
?>

2. Mendapatkan sebuah angka random berdasarkan range:

<?php
 $angka = mt_rand(0, 99);
 echo $angka;
?>

Dengan memakai perintah diatas, maka angka random yang muncul
merupakan angka yang berada diantara 0 sampai 99 (0 <= angka <= 99)

3. Mendapatkan banyak angka random, misalnya 10 angka random

<?php
 $banyakAngka = 10;
 
 for ($i = 0; $i < $banyakAngka; $i++) {
  $angka = mt_rand();
  echo $angka;
  echo '<br />';
 }
?>

4. Mendapatkan banyak angka random berdasarkan range, misalkan 10 angka random dan range-nya 1 sampai 50.

<?php
 $banyakAngka = 10;
 
 for ($i = 0; $i < $banyakAngka; $i++) {
  $angka = mt_rand(1, 50);
  echo $angka;
  echo '<br />';
 }
?>