Wednesday, August 27, 2008

Membuka Proyek Java S3 (SWDEV Sms Server) di Netbeans 6.1

Artikel ini khusus untuk seorang Siswa nun jauh di Lampung, namun karena topiknya umum, maka saya publish saja di Blogs.

Aplikasi yang dikembangkan adalah aplikasi Visual Basic yang akan memproses data Inbox dan mengirimkan balasannya ke Outbox, yang selanjutnya akan diolah oleh S3 untuk dikirimkan penerima pesan.

Baik S3 maupun aplikasi VB beserta pendukungnya disimpan ke dalam file TechSupport.rar. Extract isinya ke folder tertentu, yaitu berikut ini:



Jalankan Netbeans 6.1 (atau 6.0,6.01 juga berfungsi dengan baik), dan pilih menu File->Open Project. Arahkan ke folder tempat TechSupport.rar di extract.


Aplikasi S3 adalah pada folder SmsServer. Tekan tombol Open Project. Maka, akan muncul dialog keterangan berikut:


Ini adalah tantangan pertama bagi Anda. Dialog ini menginformasikan bahwa terdapat referensi ke satu atau beberapa file/proyek Java yang tidak bisa ditemukan. Lihat bagaimana jendela Netbeans mengindikasikan hal tersebut.


Icon tanda seru merah dan peringatan kuning pertanda bahwa ada dependensi yang tidak bisa ditemukan. Sekarang, klik kanan pada proyek SmsServer, dan pilih Resolve Reference Problems..


Maka akan ditampilkan dialog Resolve Reference Problem bagi proyek S3.


Terdapat dua dependensi yang tidak dipenuhi, maka selanjutnya klik salah satu dependensi, dan tekan tombol Resolve..

Mulai dengan SMSGateway, dan arahkan ke folder SMSGateway pada folder yang sama dengan folder SmsServer.


Hal yang serupa lakukan juga pada dependensi Core, sehingga nanti kondisi sistem akan membaik, sepert ini :


Tekan Close.

Masih ada yang harus diselesaikan, perhatikan icon Proyek berikut, klik kanan, ..



…dan pilih Open Required Projects.



Maka Netbeans akan membuka proyek-proyek yang memiliki ketergantungan terhadap proyek ini. Nah, dan disitulah masalahnya. Karena, pada proyek yang dependen tersebut, masih ada masalah dengan Reference-nya. Seperti berikut ini ditampilkan.


Yang pertama-tama perlu diperbaiki adalah proyek Core,karena ia memiliki ketergantungan terhadap proyek CoreSystem dan (mungkin, lihat Catatan No. 1) juga referensi ke file mysql-connector-java-5.0.4-bin.jar. karena CoreSystem tidak memiliki ketergantungan, maka ia tidak terlihat mengalami masalah bukan?. Klik kanan proyek Core, pilih Resolve Reference Problems, dan selesaikan dependensinya berdasarkan cara penyelesaian sebelumnya. Khusus untuk file mysql-connector-java-5.0.4-bin.jar, pada file distribusi TechSupport.rar, Anda dapat mencarinya dibawah folder SmsServer/dist/lib. Kopikan file mysql-connector-java-5.0.4-bin.jar tersebut ke folder lain, misal ke folder yang sama dengan SmsServer, kemudian lakukan referensi ke file tersebut (karena, file-file di bawah dist/lib akan dihapus setiap kali perintah Clean-Build dijalankan). Ini yang saya maksudkan.



Kemudian hal yang sama lakukan juga pada proyek SMSGateway (membutuhkan Core dan CoreSystem). SMSGateway juga membutuhkan referensi ke comm.jar milih Java COMM API. Cari file comm.jar pada folder commapi. Namun itu belum cukup. Karena ada beberapa langkah yang dibutuhkan agar Java COMM API bisa mendeteksi COMM Port dengan baik, yaitu :

  1. Kopi file commapi\win32com.dll ke
    1. windows\system
    2. windows\system32
    3. program files\java\jdk\bin
    4. program files\java\jdk\jre\bin
    5. program files\java\jre\bin

    Itu benar, memang agak berlebihan, namun terkadang (belum tahu kenapa) ada sistem yang tidak cukup hanya dikopi ke folder a dan b. Dan (setelah pusing tujuh keliling), pemecahannya didapatkan setelah mengkopi ke folder c, d dan e. Terimakasih untuk Dik Wahyu atas hal ini!!! :)

  2. Kopi file commapi\javax.comm.properties dan commapi\comm.jar ke
    1. program files\java\jdk\lib
    2. program files\java\jdk\jre\lib
    3. program files\java\jre\lib

Itu saja. Btw, kalau langkah ini dilewati, nanti kotak dialog Setting Koneksi tidak akan menampilkan daftar COMM Port yang terpasang pada sistem, seperti berikut.



Langkah terakhir, file SQL yang saya sertakan merupakan file SQL MySQL, untuk itu terlebih dahulu Anda harus menginstall distribusi MySQL yang beredar banyak di internet, salah satu yang saya sarankan adalah WAMP 2.0, silahkan di download disini : (TODO). Kemudian masukkan database *.sql yang saya sertakan dengan cara membuka Command Prompt, dan mengetikkan perintah berikut.


Pada langkah 1, Anda harus menjalankan console MySQL, caranya klik kiri pada Tray WAMP Server, dan pilih MySQL Console. Berikut :


Isikan password, (default kosong, enter saja). Ketikkan perintah create database smserver;

Pada langkah kedua,folder aktif (dengan perintah CD) harus berada pada file smserver.sql, dan ketikkan perintah tersebut. Perhatikan bahwa mungkin karena perbedaan versi WAMP, maka alamat mysql.exe Anda berbeda dengan yang terdapat pada sistem saya. Maka Anda harus menyesuaikannya.


Oke. Semoga berhasil.

Catatan:

  1. Mungkin, karena sesungguhnya yang membutuhkan referensi ke file mysql-connector-java-5.0.4-bin.jar hanya proyek SmsServer, Core dan CoreSystem tidak. Pada update terkini, di harddisk saya, sudah saya perbaiki. Namun jika pada distribusi TechSupport.rar ternyata baik Core maupun CoreSystem masih meminta referensi ke file mysql-connector-java-5.0.4-bin.jar, maka sebaiknya hapus saja referensinya dengan mempergunakan dialog Project Properties, pada Categories Libraries, Tab Compile, pilih file mysql-connector-java-5.0.4-bin.jar dan tekan tombol Remove. Seperti berikut:


  1. Oya, coba Anda klik kategori Run pada dialog di atas, maka akan tampil berikut.


    Lihat textbox Arguments. Saya desain agar SmsServer ini bisa dipergunakan untuk berbagai konfigurasi Server MySQL, dengan membuat nilai-nilainya diinputkan dari luar. Untuk saat ini, Anda hanya perlu merubah password MySQL Anda menjadi 'muhammad', agar perubahan arguments tidak diperlukan. Begini caranya.



    Adapun berikut adalah penjelasan singkat makna masing-masing argument:

    1. yes, akan menggunakan MySQL, pilihan lainnya adalah no, yaitu akan menggunakan ODBC. Dari ODBC, Anda dapat menggunakan sembarang server database , termasuk MSSQL atau Oracle.
    2. smserver, nama database MySQL atau DSN pada ODBC.
    3. root, nama user database
    4. muhammad, password user database
    5. full, pilihan lainnya adalah sendonly dan receiveonly. Yaitu akan membatasi fungsi SMS pada HP yang terkoneksi, apakah mengirim dan menerima SMS, mengirim SMS saja atau menerima SMS saja. Berguna jika Anda ingin mengkonfigurasikan satu HP khusus untuk menerima SMS dan satu HP lainnya khusus untuk mengirim SMS.
    6. noresponse, pilihan lainnya adalah response. Yaitu yang akan menjawab SMS yang masuk adalah SmsServer ini. Tentunya disini Anda memilih pilihan noresponse karena yang akan menjawab adalah aplikasi Visual Basic.


    Kalau Anda tidak merubah Password basisdata, maka ubahlah pada textbox arguments pada string muhammad, ubahlah menjadi '<nama password baru>'. Misal jika tidak diberi password, ketikkan ''.


  2. Last, but not least, jangan lupa untuk menjadikan proyek SmsServer sebagai proyek utama di Netbeans, caranya klik kanan Proyek SmsServer, dan pilih Set as Main Project. Lakukan Clean and Build (SHIFT+F11) dan RUN (F6). Jangan lupa untuk menghidupkan WAMP Server terlebih dahulu.




Semoga berhasil dan bermanfaat ya dik!

1 comment:

Eko said...

Cuman jadi inget, 5 tahun yang lalu, 2003, tepat di tanggal ini, saya masuk Rumah Sakit Bethesda, di masa2 akhir KKN yang tinggal seminggu. Setelah itu koma 3 hari, dan baru bangun hari Jum'at kalau ga salah.

Kembali ke tempat KKN, kira2 2 bulan setelahnya.

Huuuf, .... yah, hidup kedua ini.
Harus saya perbaiki lah :)