Shiretoko, Firefox 3.5 di Ubuntu

Ada yang sudah nyobain Mozilla Firefox 3.5 di Ubuntu/Mint ?. Ada sedikit hal menarik ketika kita install Firefox 3.5 lewat repository ubuntu yaitu nama browser yang harusnya Firefox berganti dengan Shiretoko. Penasaran? silahkan install dulu.
sudo apt-get install firefox-3.5
Setelah di usut-usut dengan mondar-mandir beberapa situs dan masuk ke chat room ircnya linux mint ternyata. Shiretoko adalah kode name untuk beta rilis Firefox 3.5 dan dengan beberapa alasan ketika final rilis sudah keluar nama itu masih digunakan. Salah satu alasanya adalah karena ubuntu jaunty menggunakan browser default Firefox 3.0 dan itu sudah masuk ke branding Ubuntu jaunty. Nah biar kedua browser dapat di install bersama-sama maka salah satu harus punya nama/brand yang berbeda di ubuntu makanya nama Shiretoko masih digunakan. Firefox 3.5 nantinya akan jadi browser default dan jadi brand untuk ubuntu karmic yaitu versi 9.10.
Nah kalau begitu jangan trus kaget ya !. Untuk lebih jelas bisa lihat disini.

MySQL Workbench, Visual Database Design

Nih ada mainan baru (baru tau maksudnya) dari MySQL yaitu MySQL Workbench. Yang pada malas buat table dengan relasinya di consolenya mysql pakai ini saja. Pertama lihat aku kira MySQL Workbench ini bayar eh ternyata ada versi yang OpenSource, silahkan ke TKP kalau mau coba.

Fitur yang sangat top menurutku adalah visual database designernya. Jadi kita udah gak perlu create table manual pakai konsole, ya memang kita bisa pakai PHPMyAdmin atau MySQL Query browser untuk buat table, tapi apabila table-table kita tersebut terelasi alias relasional ? ya sedikti banyak pasti agak repot. MySQL Workbench ini juga menyediakan fitur Forward enginer sehingga kita dapat mendesain table menggunakan visual desainer kemudian kita deploy di database sebenarnya atau bisa pakai fitur Reserve enginer yang berarti table-tabel yang sudah data di database dapat kita lihat strukturnya pada visual desainer.
MySQL Workbench ini tersedia untuk windows,linux dan mac os. Untuk windows dibutuhkan .n(y)et framework versi 2.0 yang kalau gak salah sudah bundle dengan windows vista dan apabila menggunakan linux tersedia beberapa paket instalasi antara lain .deb dan .rpm.
Aku yakin tool ini bisa sangat membantu untuk mendesain erd (entity relational diagram) yang biasanya di permasalahkan di laporan skripsi anak jurusan komputer.

Nah silahkan download dan coba, saya sendiri belum banyak explorasi mengenai tool ini, makanya mari download, explore dan share!!!

Hello Qt

Ini contoh aplikasi super sederhana menggunakan Qt GUI framework. Contoh ini aku ambil dari buku “C++ GUI Designer with Qt 4, Second Edition”, buku ini bisa di beli dari amazon atau silahkan cek di salah satu link bagian “Tutorial” di blog ini.

Untuk memulai membuat aplikasi Qt terlebih dahulu kita harus menyiapkan Qt SDK sesuai dengan versi Sistem Operasi yang kita gunakan, lihat posting sebelumnya agar lebih jelas. Selain itu kita juga perlu menginstall IDE yang sesuai, kali ini dan seterusnya saya akan gunakan NetBeans IDE C++ dan kebetulan NetBeans versi 6.7 sudah support C++ Project untuk Qt.
Seperti biasa sebelum memulai mengetik program kita harus membuat project terlebih dahulu, File->New Project kemudian pilih C++ -> C++ Qt Application, isikan nama project dan lokasinya apabila sudah klik finish. NetBeans akan membuatkan beberapa file termasuk file *.pro yang menjadi standar project untuk aplikasi Qt.
Secara default sebuah file *.cpp akan tersedia dengan nama main.cpp apabila belum berubah maka isinya akan seperti ini


#include <QtGui/QApplication>

int main(int argc, char *argv[]) {

    QApplication app(argc, argv);

    return app.exec();
}

Kode diatas merupakan program paling sederhana dari aplikasi Qt dan tidak menampilkan apa-apa. Ada sedikit perbedaan dibagian #include apabila kita bandingkan dengan source yang ada pada buku “C++ GUI Designer” tetapi hal itu tidak menjadi masalah asalkan kita tahu konfigurasi folder-folder yang diikutkan sebagai include pada kompiler C++.
Rubah source code diatas menjadi


#include <QtGui/QApplication>
#include <QtGui/QLabel>

int main(int argc, char *argv[]) {

    QApplication app(argc, argv);

    QLabel *label = new QLabel("Hello Qt!");
    label->show();

    return app.exec();
}

Apabila terjadi error (tanda garis merah dibawah beberapa kode) kemungkinan besar adalah NetBeans belum mengenali beberapa Kelas terutama kelas QLabel. Apabila hal itu terjadi maka sedikit konfigurasi dibutuhkan untuk menangani error tersebut.Agar NetBeans mengenali folder yang berisi file-file header C++ milik Qt. Caranya pilih Tool -> Option, pilih icon C/C++ pada bagian atas kemudian pilih Tab “Code Assistance” dan tambahkan alamat direktori tempat file-file header milik Qt berada. Direktori tersebut berada pada [qtsdk_instalation]/include.

Sebenarnya NetBeans telah secara otomatis mencari direktori tempat instalasi Qt SDK berada, jadi pada umumnya konfigurasi diatas tidak diperlukan. Setelah tidak ada error yang muncul kita bisa langsung menjalankannya. Tekan F6 untuk menjalankan program.

Program diatas menampilkan sebuah label yang berisi text “Hello Qt”. Perhatikan kode diatas, cukup mudah bukan ? walaupun memang bahasa C++ lebih rumit dari pada Java tetapi konsep yang digunakan pada Qt Framework sudah Full OOP yang hampir sama dengan Java walaupun kita juga harus benar-benar paham konsep yang digunakan pada bahasa C++.
Dokumentasi kelas-kelas pada Qt Framework bisa kita lihat dengan menjalankan program Qt Assistance. File executable untuk Qt Assistance berada di folder bin tepatnya [qtsdk_instalation]/bin/assistant.

Bersih-bersih file dengan fungsi find di linux

Ketika menggunakan Subversion saya pernah mengalami kesulitan membersihkan kode program. Kode program hasil checkout dari Subversion akan memiliki direktori khusus yaitu direktori .svn untuk identifikasi dan informasi tentang perubahan yang terjadi pada kode program yang nantinya akan dilaporkan ke server Subversion ketika Commit. Direktori tersebut ada pada setiap folder yang kita gunakan nah kalau dalam program kita terdiri dari beberapa puluh paket yang berarti beberapa puluh folder maka membersihkan direktori .svn ya jadi agak mumet.
Kalau di windows vista agak sedikit mudah dibagian kanan atas sudah tersedia search, tinggal kita tulis .svn maka seluruh file dan  direktori yang mempunyai nama .svn yang ada di current folder dan sub foldernya akan muncul. Kalau sudah begitu ya tinggal di delete beres. Nah kalau di linux gimana ?? Di linux lebih mudah dan lebih akurat (menurut saya lho) soalnya sudah support regular expression.
Salah satu fungsi yang mantab di linux untuk search adalah fungsi find (trik ini saya dapatkan dari mas ifnu). Ini contoh sederhananya :

jasoet@jasoet-pc ~ $ find -type d -name “.svn” -print

Fungsi find diatas akan mencari data berupa direktori yang mempunyai nama .svn serta akan menampilkannya di layar. Lho kok tau ?? option -type itu berarti tipe yang akan kita cari yaitu d yang berarti direktori kemudian option -name berarti  nama direktori yang akan kita cari adalah .svn. Sedangkan -print itu berarti kita bertujuan untuk melihat daftar file yang ditemukan.
Selain d tipe data yang bisa kita cari bisa bermacam-macam untuk lebih jelas lihat potongan manual dari find dibawah ini.
-type c
              File is of type c:
              b      block (buffered) special
              c      character (unbuffered) special
              d      directory
              p      named pipe (FIFO)
              f      regular file
              l      link
              s      socket

Sedangkan untuk nama kita bisa menggunakan string biasa atau regular expression alias regex. Untuk lebih tau regex, klik disini.
Setelah kita mendapatkan daftar file-file incaran maka waktunya menghapus file-file tersebut. Caranya dengan menambahkan | xargs rm -rvf. Contohnya

jasoet@jasoet-pc ~$ find -type f -name “*~” -print | xargs rm -rvf

Nah untuk lebih jelas tentang fungsi find di linux, silahkan baca manualnya

jasoet@jasoet-pc ~$ man find

Pidgin tidak konek ke Yahoo

Nah ini masalah yang beberapa hari lalu aku hadapi. Berhubung sekarang sudah berpindah dari windows ke Linux Mint maka sebagai pengganti Yahoo Messenger aku gunakan Pidgin. Pada awalnya Pidgin dapat berjalan mulus untuk konek ke Yahoo Messenger tapi tiba-tiba pidgin benar-benar tidak bisa konek ke YM padahal untuk konek ke gtalk dan protokol messenger lain bisa. Sempet kerepotan juga karena harus menggunakan meebo untuk chatting.

Akhirnya ketika sedang chating pakai meebo muncullah seorang teman saya yaitu echo sunedi. Ternyata Yahoo mengganti alamat servernya entah karena maintenance atau memang ganti seterusnya (penjelasan echo susah dimengerti soalnya, maklum lah…) sehingga harus ada konfigurasi khusus di pidgin agar tetap bisa konek.

Secara default server yahoo messenger di pidgin adalah scs.msg.yahoo.com diganti dengan cn.scs.msg.yahoo.com. Kita dapat mengganti alamat servernya lewat form modify account pada saat membuat/mengedit account yahoo messenger di pidgin. Hanya nama servernya saja yang perlu diganti sedangkan konfigurasi yang lain dibiarkan apa adanya. Oh iya terima kasih buat mas echo sunedi atas infromasinya.

Welcome NetBeans 6.7

NetBeans versi terbaru sudah rilis yaitu versi 6.7. Rilis NetBeans ini tepat pada tanggal yang telah di rencanakan yaitu tanggal 29 Juni 2009. NetBeans versi ini lebih stabil dibanding rilis awal dari NetBeans 6.5 dan pada versi ini NetBeans 6.7 dirasa relatif lebih ringan dibanding versi 6.5. Pada versi ini ada fitur yang dapat mengaktifkan/menonaktifkan modul secara mudah sehingga kita bisa mengatur NetBeans sesuai dengan kebutuhan kita saat ini.

Selain fitur diatas ada beberapa fitur lain termasuk satu fitur yang cukup digembar-gemborkan yaitu integrasi dengan project Kenai. Nah apa project Kenai ini ? Menurut sumber yang terpercaya :) yaitu situsnya Sun, NetBeans.org dan tentu saja kenai.com. Project kenai ini bisa dibilang sebagai sourceforge++ atau googlecode++ karena didalamnya tidak hanya tersedia server Subversion tapi juga bug tracking,forum, download, milis, wiki dan bahkan ada chat room. Beberapa sumber malah mengatakan bahwa project kenai dapat jadi sosial networking untuk para developer Java. Untuk lebih jelas bisa lihat di project kenai overview.
NetBeans 6.7 ini juga sudah support framework Qt untuk C++ seperti pada postingan sebelumnya. Selain itu Maven support yang pada versi 6.5 harus download lewat plugin manager untuk versi 6.7 sudah bundle. Jadi sekarang kita bisa memilih untuk tetap pakai Ant untuk build sistemnya atau ganti ke Maven yang sedikit lebih canggih dan lebih membantu (tapi butuh koneksi internet yang lumayan :) ). Kapan-kapan kita akan bahas tentang maven, tunggu saja.

Bersamaan dengan rilisnya versi 6.7 ini ditambahkan juga beberapa tutorial tentang penggunaan fitur-fitur baru pada NetBeans 6.7 silahkan cek sendiri di netbeans.org.
Oke tunggu apa lagi segera download NetBeans 6.7 dan gunakan !!!!!!

Mengenal Qt

Qt yang di baca “cute” adalah UI framework dan platform yang ditulis dengan bahasa C++, ada yang inget dengan KDE salah satu desktopnya linux selain Gnome, kalau di Ubuntu pakenya Gnome kalau Kubuntu pakenya KDE. Nah Qt ini yang dipakai untuk membuat KDE beserta applikasi-applikasi yang berada didalamnya.
Qt sebelumnya dimiliki oleh perusahaan yang bernama Trolltech dan sekarang perusahaan tersebut telah dibeli oleh Nokia. Qt framework tersedia secara gratis dan multiplatform (ada versi untuk linux, windows dan Mac).

Kita bisa menggunakan Qt dengan 2 bahasa yaitu C++ sebagai bahasa utama dan Python dengan menggunakan PyQt. Sekarang saya menggunakan C++ pada Qt. Ya tujuan utamanya adalah belajar C++ juga :) .
Nah Qt ini menyediakan Qt GUI Designer untuk mempermudah desain User Interface selain itu juga ada Qt Assistance yang berisi dokumentasi kelas-kelas pada Qt beserta beberapa tutorial serta ada Qt Linguist yang berguna ketika kita ingin membuat aplikasi Qt yang multilanguage. Ketika Tool tersebut sekarang telah dikumpulkan jadi satu pada tool bernama Qt Creator.

Selain Qt Creator tersedia juga plugin untuk eclipse dan visual studio. Pada eclipse maupun visual studio tool-tool seperti Gui Designer, Qt Assistance, dan Qt Linguist telah terintegrasi didalam IDE tersebut. Sedangkan untuk NetBeans versi 6.7 juga telah tersedia plugin Qt yang telah digabung dengan NetBeans CDT (Netbeans untuk C++) walaupun tool-tool seperti Gui Designer, Qt Assistance, dan Qt Linguist masih menggunaakan tool external walaupun dapat langsung diakses dari dalam NetBeans. Plugin untuk eclipse dan Visual Studio dapat di download secara gratis di situs resmi Qt sedangkan untuk NetBeans plugin Qt sudah di bundle pada NetBeans versi 6.7.
Untuk memulai Qt terlebih dahulu kita harus mendownload Qt Framework. Qt Framework dapat di download secara terpisah atau bundle dengan Qt Creator. Untuk yang versi linux Qt Framework berbentuk tar.gz sehingga untuk instalasi kita cukup meng-extrack file tersebut ke tempat yang diinginkan contoh /opt. Setelah itu kita harus menambahkan direktori /bin kedalam system path pada environtment variable. Kebetulan saya menggunakan linux mint (ubuntu) maka environtment berada pada file /etc/environtment. Qt juga membutuhkan compiler C++, pada linux kita cukup menginstall gcc/g++ standar untuk dapat menggunakan Qt Framework. Sedangkan untuk windows kita dapat menggunakan MinGW.
Saya baru mencoba Qt untuk linux sedangkan untuk windows dan mac saya belum pernah coba sehingga tidak banyak tahu konfigurasi  qt untuk kedua sistem operasi tersebut.
Saya sendiri menggunakan Netbeans versi 6.7 untuk mendevelop Qt, ini dikarenakan saya sudah sangat terbiasa dengan editor yang ada pada NetBeans selain itu code completion di NetBeans masih lebih bagus dibanding Qt Creator maupun Eclipse (versi saya lho :) ). Untuk konfigurasi Qt pada NetBeans tidak banyak yang harus dilakukan asalkan Qt telah di set pada environtment variable dan kita dapat mengakses command “qmake” pada console maka Netbeans dapat digunakan dengan baik.

Back to Blogging

Akhirnya saya kembali menulis lagi di blog setelah sekian lama absen. Moga-moga saya lebih bisa mengatur waktu agak bisa berbagi dengan teman-teman lagi.
Cerita sedikit tentang keseharianku untuk saat ini. Sekarang aku sedang menemput Pra-S2 (Kuliah sebelum s2) di ilmu komputer UGM. Ya berarti saya sudah lulus s1 donk :D . Alhamdulilah awal tahun ini saya lulus s1 dengan beberapa memar karena babak belur menyusun laporan skripsi.
Di Pra-S2 ini saya kembali bertemu dengan bangku kuliah yang telah lama saya tinggalkan, Soalnya sejak semester 6 selama kuliah s1 saya jarang berangkat gara-gara lebih mementingkan belajar Java dari pada kuliah :P (Enggak juga sih lebih karena males aja :D ). Kok disebut Pra-S2 ya ? Sebenarnya saya belum sepenuhnya jadi mahasiswa S2, karena pada masa Pra-S2 ini (yang bisa juga disebut semester sebelum kuliah s2) akan ada ujian seperti halnya kuliah biasa dan baru dapat lulus apabila IPK > 2.75 dan nilai tidak ada yang dibawah C.
Lebih dari 1/2 tahun tidak ngeblog banyak hal yang telah saya pelajari terutama dalam bidang Java, Spring, Hibernate dan banyak yang lain beberapa waktu ini saya obok-obok cukup dalam.
Setelah di fikir-fikir kadang sayang juga apabila hal-hal yang telah saya pelajari tidak saya tuliskan. Iya kalau inget terus, kalau lupa kan mubadjir !! nah makanya sekarang saya akan belajar rutin untuk men-share ilmu yang saya dapat disini. Masih pakai tool untuk blogging yang dulu yaitu scribefire. Plugin firefox yang menurut saya sangat berguna.

Oke sekarang mari belajar bersama !!!!!!!!!!!!!!!!!

Oh iya hampir lupa, setelah bertahun-tahun (mulai semester 3 – sekarang sudah lulus)  belajar Java. Sekarang aku mulai tertarik dengan bahasa pemrograman yang lain :D (tenang enggak pindah kok, cuma selingkuh aja :D ) diantaranya Bahasa D (Bahasa apaan hayoo), Python, Ruby, Pascal (Tuntutan Kuliah) dan Back to C++ (Qt). Nah dengan begitu kita bisa diskusi lebih banyak di blog ini.

TETAP SEMANGAT dan LANJUTKAN !!!!!!!!!!!!!!!!!

Menambahkan Custom Palette pada NetBeans

Kita akan mencoba menambahkan Custom Palette dari library. Kali ini kita akan mencoba menambahkan Komponen Swing dari Library JCalendar. Untuk library Swing yang lain caranya akan sama.

Langkah-langkahnya :

  1. Download dulu library JCalendar kalau belum punya.
  2. Daftarkan library JCalendar tersebut lewat Library Manager, bisa diakses lewat Tools -> Libraries. Beri nama “JCalendar” dan masukkan File jar yang telah di download sebelumnya.
  3. Setelah library di daftarkan. Sekarang klik Tools -> Palette -> Swing/AWT Component.
  4. Buat sebuah kategori baru dengan mengklik button “New Category” dan beri nama “JCalendar”.
  5. Klik “Add From Library” kemudian pilih Library JCalendar yang telah dibuat pada langkah 2. Dan klik Next.

  6. “Add From Library” digunakan apabila library JCalendar telah kita daftarkan seperti pada langkah ke 2 tetapi apabila ingin mengambil komponen Swing dari file jar lain tanpa di daftarkan ke Library maka gunakan “Add From JAR”. Tetapi Saya lebih menganjurkan untuk memasukkan dahulu file-file JAR tersebut menjadi sebuah library seperti pada langkah ke 2. Karena apabila Custom Palette yang kita gunakan maka Library yang dibutuhkan akan langsung ditambahkan kedalam Project kita.

  7. Setelah library di load oleh NetBeans maka akan muncul daftar Beans (Class) yang dapat di masukkan sebagai Custom Palette. Pilih kemudian klik Next.

  8. Perlu diingat tidak semua Bean/Class dibutuhkan dan kita harus tahu Bean/Class apa saja yang kita butuhkan. Pada JCalendar silahkan pilih nama Class yang mempunyai Bean Info seperti pada gambar diatas.

    Bean Info merupakan Class yang mengidentifikasi sebuah Bean/Class sehingga Bean/Class yang di identifikasikan akan mempunyai karakteristik berbeda seperti Nama, Icon dan lain-lain.

    Penamaan dari Bean Info biasanya hanya nama Class yang akan diidentifikasi ditambah dengan kata BeanInfo contohnya “JDayChooser” memiliki Bean Info “JDayChooserBeanInfo”.

    Lebih jelas tentang Bean Info akan saya bahas pada posting selanjutnya.

  9. Setelah memilih Bean apa saja yang akan dijadikan Custom Palette silahkan pilih kategori mana yang akan menjadi penampung Komponen-komponen baru tersebut. Karena kita sudah membuat categori baru seperti pada langkah 4 maka pilih kategori “JCalendar”.
  10. Komponen Baru siap di Gunakan.

Konfigurasi Server Local Subversion

Pada postingan sebelumnya telah kita bahas instalasi Subversion di Ubuntu. Nah sekarang kita akan mencoba membuat Subversion milik kita tadi dapat diakses oleh komputer lain tapi masih satu jaringan. Saat ini kita akan menggunakan fasilitas bawaan dari Subversion yaitu svnserve.
Sekarang kita akan mencoba step by step mengkonfigurasi Server Subversion dan akan kita coba untuk men-checkout dari NetBeans.

 
Langkahnya :

  1. Install Subversion.
  2. Setelah Subversion terinstall maka kita harus membuat repository project. Kita contohkan repositori kita berada pada directori /opt/repo/.
  3. sudo svnadmin create /opt/repo/

  4. Buka directory /opt/repo/ dan kita lihat apa saja yang ada didalamnya.
  5. cd /opt/repo/

    Ternyata ada 4 directory yang telah dibuat yaitu conf, db, hooks, lock dan ada beberapa file. Sekarang kita fokuskan pada direktori conf sedangkan detail untuk direktori yang lain silahkan baca di sini.

  6. Di dalam direktori conf terdapat 3 buah file yaitu auntz, passwd dan svnserver.conf. Sekarang kita buka file snvserver.conf menggunakan text editor.
  7. sudo pico /opt/repo/conf/svnserve.conf

    Ada beberapa bagian yang perlu diperhatikan yaitu [general] dan [sasl]. General berisi konfigurasi umum seperti password dan autentikasi sedangkan sasl berisi konfigurasi SASL (Cyrus Simple Authentication and Security Layer).

  8. Hilangkan tanda pagar pada bagian anon-access=read kemudian ganti read menjadi write. Dengan konfigurasi ini maka repositori kita dapat diakses oleh anonimouse user. Kemudian coba kita jalankan svnserv yang merujuk pada repositori ini.
  9. sudo svnserve -d -r /opt/repo/

    Option -d memastikan bahwa svnserve akan berjalan sebagai daemon sedangkan option -r menunjukkan bahwa direktori yang di publish adalah /opt/repo/.
    Apabila muncul error svnserve: Can't bind server socket: Address already in use itu berarti daemon svnserve telah di jalankan dan harus dimatikan terlebih dahulu. Untuk mematikannya kita harus menggunakan fungsi kill. Untuk melihat id proses dari svnserve kita bisa menggunakan command ps -A kemudian cari  svnserver, pada kolom pertama akan ditemui nomor PID,panggil kill [no pid] untuk mematikan.

  10. Sekarang kita akan mencoba men-checkout repository tersebut dari NetBeans. Pilih Versioning=>Subversion=>Checkout. Masukkan svn://localhost/ pada Repository URL, kosongkan username dan password kemudian klick Next. Kemudian pilih Working Direktori pada bagian Local Folder kemudian pilih Next.
  11. Karena repository yang kita buat masih kosong maka NetBeans menanyakan apakah kita ingin membuat project baru.
  12. Buat sebuah project baru dan pastikan project tersebut berlokasi pada working direktori yang telah kita tentukan sewaktu checkout.
  13. Apabila proses checkout sudah benar maka pada project baru yang dibuat akan terdapat icon kecil berwarna biru.
  14. Icon berwarna biru menandakan bahwa ada bagian project yang telah diubah tetapi belum di Commit atau di masukkan dalam repository. Klik kanan pada project kemudian pilih Subversion=>Commit. Maka icon-icon berwarna biru akan hilang menandakan bahwa source project telah di Commit atau telah dimasukkan dalam repository.

  15. Untuk membuktikan bahwa source project kita telah ada pada repository. Sekarang kita DELETE project kita dari NetBeans yaitu Klick Kanan dan delete. Pastikan untuk men-check option “Also delete source ……” dan pastikan juga semua directori project yang berada pada working directory telah terhapus.
  16. Sekarang ulangi checkout seperti pada langkah 6. Kali ini karena sudah ada project yang berada pada repository maka pilihan yang dimunculkan oleh NetBeans bukan lagi “Create Project….” tetapi “Open Project”.

  17. Setelah kita men-click Open Project maka project yang telah kita delete sebelumnya akan terbuka kembali dan Source pada working directory yang telah di delete akan muncul kembali.

  18. Untuk mencoba buat satu buah project lagi dan pastikan lokasi project tersebut berada pada Working Directory maka pada project yang baru itu juga akan muncul icon-icon berwarna biru seperti pada langkah 9. Ini dikarenakan semua project yang ditempatkan pada working directory oleh NetBeans akan dianggap sebagai project yang akan dimasukkan dalam repository.

Pada konfigurasi diatas semua orang dapat dengan leluasa mengakses repository. Nah bagaimana kalau kita ingin hanya orang-orang tertentu saja yang dapat mengakes repository.

Sekarang kita kembali ke directory konfigurasi seperti pada langkah 3 diatas dan buka file svnserve.conf.

Pada file tersebut kita telah melakukan perubahan yaitu dengan mengaktifkan (menghilangkan tanda #) baris anon-access=read dan mengganti isinya dengan write. Baris anon-access merupakan konfigurasi yang menentukan tingkat akses user anonymos (user tanpa autentikasi) apakah hanya read, write atau none. Sebagai informasi konfigurasi default pada baris ini adalah read dan hak akses write disini berarti user dapat membaca maupun menulis pada repository (read/write). Sedangkan pada baris realm merupakan nama dari repositori.

Coba kita lihat baris auth-access, disini merupakan konfigurasi untuk akses user yang telah ter-autentikasi dengan default adalah write. Nah pertanyaannya adalah “User mana yang telah ter-autentikasi ?”.

Untuk menjawabnya perhatikan baris password-db dan authz-db. Dua baris tersebut merujuk pada passwd dan authz yang sebenarnya keduanya adalah nama file konfigurasi terpisah dan kedua file tersebut juga terdapat pada direktori conf. File passwd merupakan konfigurasi untuk username dan password sedangkan file authz merupakan konfigurasi untuk user/group managemen serta hak akses masing-masing user/group.

Pada file passwd terdapat beberapa baris dibawah tag [users] yang merupakan contoh format penulisan username dan password.

Sedangkan pada file authz berisi beberapa tag antara lain [aliases],[groups],[/foo/bar] dan [repository:/baz/fuz].

Dibawah tag [aliases] terdapat contoh penulisan alias sebuah user. Format penulisannya sama seperti format identifikasi pada LDAP yang mengartikan CN=Common Name, OU=Organitation Unit, O=Organitation dan lain-lain.

Dibawah tag [groups] terdapat contoh penulisan group. Dengan format Nama_Group = user1, user2, user3, userN. Nama User di pisahkan oleh tanda koma (,).

Dibawah tag [/foo/bar] merupakan konfigurasi untuk hak akses /foo/bar sendiri sebenarnya adalah nama direktori yang akan diakses sehingga kita dapat merubah /foo/bar dengan nama directory yang kita inginkan. Sedangkan untuk penulisan hak akses dapat dilihat pada contoh yang sudah disediakan yaitu Nama_user/group = r/rw/'', r berarti Read, RW berarti Read Write dan ” (kosong) berarti none.

Untuk tag [repository:/baz/fuz] hampir sama dengan tag [/foo/bar] hanya saja ada sedikit perbedaan. Untuk lebih jelas silahkan baca di sini.

Server Subversion menggunakan konsep direktori based (ini istilah saya :D ) dalam arti kita dapat mengisikan direktori apapun pada saat menjalankan server (langkah 5). Direktori yang kita masukkan pada saat menjalankan server akan menjadi root directori sehingga dapat langsung diakses dengan svn://localhost/.

Dan apabila kita ingin menjalankan server untuk dua repositori atau lebih. Seluruh repositori tersebut harus berada pada direktori yang sama kemudian jalankan server pada direktori yang menampung repositori-repositori tersebut.

Contoh :

Ada dua buah repositori real dan test. Kedua repositori tersebut berada pada direktori /opt/repos/. Maka jalankan server dengan command sudo svnserve -d -r /opt/repos/.

Maka ketika meng-akses repositori dari NetBeans alamat svn://localhost/ tidak akan menghasilkan apa-apa karena alamat tersebut baru merujuk pada direktori /opt/repos/ yang bukan merupakan repositori. Sedangkan untuk mengakes real atau test kita harus menambahkan nama repositori tersebut pada alamat Subversion dengan demikian untuk mengakses real maka alamatnya svn://localhost/real dan untuk mengakses test maka alamatnya svn://localhost/test.

Pada contoh diatas localhost dapat diganti dengan alamat IP atau domain lain apabila bekerja dalam jaringan.

Salam
Deny Prasetyo