Menjelajah dengan snavigator
  ArticleCategory: [Choose a category, translators: do not
  translate this, see list below for available
  categories]
SoftwareDevelopment
  AuthorImage:[Here we need a little image from
  you]
 
  TranslationInfo:[Author + translation history. mailto: or
  http://homepage]
  original in en Gerrit
  Renker
  en to id Muhammad
  Rachmadi
  AboutTheAuthor:[A small biography about the
  author]
Gerrit tidak menyukai komputer sama sekali sampai dia
  mencoba C dan Linux.
  Abstract:[Here you write a little summary]
Artikel ini
  menyajikan snavigator, sebuah alat analisis kode,
  lintas-referensi (cross-referencing) dan rekayasa ulang
  yang tangguh yang sangat diperlukan untuk menangani kompleksitas
  pemeliharaan perangkat lunak yang lebih besar dan paket-paket
  dengan cara yang efektif.
  ArticleIllustration:[One image that will end up at the top of
  the article]
![[Illustration]](../../common/images2/article377/a_lot_of_lines.jpg) 
  ArticleBody:[The main part of the article]
  Motivasi
Sebuah pribahasa lama mengatakan bahwa sebuah
  buku jangan dinilai dari sampulnya. Hal yang serupa terjadi
  dengan kode sumber terbuka (open source). Bagaimanapun
  juga, sumber terbuka tidak sama dengan dokumentasi terbuka, dan
  proses membaca menjadi semakin sulit seiring dengan berkas-berkas
  yang semakin banyak dan panjang. Saya baru-baru ini harus
  memrogram dengan sebuah perangkat lunak yang memiliki dokumentasi
  setengah halaman html dibandingkan dengan lebih dari 384.000
  baris kode Java sumber terbuka yang tersebar di lebih dari 2060
  berkas (lihat gambar). Dipandang dari sudut dimensi yang
  demikian, alat pengarah elektronik, rekayasa balik dan analisis
  menjadi sangat dibutuhkan, seperti navigator kode sumber Red Hat
  yang disajikan dalam artikel ini.
  Instalasi pada debian
Pada debian anda dapat memperoleh
  semuanya melalui satu baris perintah
  
apt-get install sourcenav sourcenav-doc 
Perintah ini pada saat yang sama juga mengambil
dokumentasinya. Source navigator akan berada di
/usr/lib/sourcenav/, anda dapat memanggil program utamanya
melalui /usr/lib/sourcenav/bin/snavigator (lihat tip
tentang symlinks di bawah ini). Dokumentasi dapat ditemukan di 
  /usr/share/doc/sourcenav/html/.
  Instalasi dari sumber
URL dari laman source navigator
  adalah http://sourcenav.sourceforge.net/,
  unduhan yang sebenarnya dari sini
  (sourceforge.net/project/showfiles.php?group_id=51180).
  Dapatkan tarball terbaru sourcenav-xx.xx.tar.gz. Selagi
  mengunduh, coba lakukan hal lain - ukuran sumbernya mencapai 55
  Megabita. Ini cukup beralasan, semua paket termasuk di dalamnya.
  Meskipun perangkat lunak ini menggunakan pustaka-pustaka lain
  seperti Tcl/Tk, Tix dan Berkeley DB, versi yang sesuai dari
  paket-paket ini semua sudah termasuk di dalamnya. Untuk
  menghindari bentrokan dengan versi lain dari Tcl/Tk dsb.
  pada sistem anda, sebaiknya instal pada direktori yang terpisah,
  misalnya /opt/sourcenav. Selanjutnya dianjurkan untuk
  menggunakan build directory yang terpisah, yang bekerja
  sebagai berikut. Setelah meng-unzip, dalam direktori yang berisi
  sumber-sumber yang sudah diekstrak jalankan perintah berikut:
  
mkdir snbuild; cd snbuild 
../sourcenav-*/configure --prefix=/opt/sourcenav 
make                               ## perlu waktu sejenak ...
make install                       ## mungkin harus jadi root dulu
Opsi --prefix adalah untuk menentukan direktori
instalasi. Selagi konfigurasi berjalan, anda telah dapat mengetahui
tentang bahasa- bahasa yang dapat ditangani oleh snavigator. Juga
dimungkinkan untuk menambahkan pengurai (parser) bagi bahasa
yang anda pilih. Segera setelah instalasi diselesaikan melalui 
  make install, snavigator siap untuk bekerja dan dijalankan
  sebagai /opt/sourcenav/bin/snavigator. Dari pada
  menggunakan lingkungan shell PATH, saya menganjurkan untuk
  menggunakan symlink sebagai gantinya.
  
ln -s /opt/sourcenav/bin/snavigator    /usr/local/bin
Berkas utama yang dapat dieksekusi adalah sebuah skrip shell
yang perlu mengetahui direktorinya. Maka dari itu berkas tersebut
akan bingung jika dipanggil melalui symlink. Ini dapat diatasi
dengan mengubah baris-baris berikut dalam
/opt/sourcenav/bin/snavigator; sebagai ganti
  
snbindir=`dirname $0
gunakan
  
prog=`readlink -f $0`
snbindir=`dirname $prog`
Opsi -f pada readlink(1) membuat representasi
canonical pathname, ini berarti bahwa perintah tersebut
tetap bekerja jika berkas tersebut diakses melalui symlink
tersarang (nested) yang sangat panjang. 
  Penggunaan snavigator
Pertama kali snavigator dipanggil,
  ia menanyakan direktori-direktori yang berisi berkas-berkas
  sumber, seperti yang ditunjukkan tangkapan layar berikut. Bahasa-bahasa yang didukung mencakup, tapi tidak terbatas pada,
  Java, C, C++, Tcl, Fortran, COBOL, dan program-program assembly.
  Setelah diberi rincian dari lokasi-lokasi kode, ia secara mandiri
  membangun sebuah basis data proyek yang mencakup informasi
  referensi, hierarki kelas, saling ketergantungan berkas ... dan
  banyak lagi. Waktu yang dibutuhkan untuk membangun tergantung
  pada ukuran proyek anda. Setelah selesai, basis data dapat
  di-query dan informasi tambahan tentang kode akan ditanyakan.
  Berikut adalah sorotan tentang beberapa fitur untuk memberi anda
  penjelasan. Sebuah user guide bergambar, dan juga
  reference manual, dimasukkan dalam direktori html
  dari direktori instalasi.
  Bahasa-bahasa yang didukung mencakup, tapi tidak terbatas pada,
  Java, C, C++, Tcl, Fortran, COBOL, dan program-program assembly.
  Setelah diberi rincian dari lokasi-lokasi kode, ia secara mandiri
  membangun sebuah basis data proyek yang mencakup informasi
  referensi, hierarki kelas, saling ketergantungan berkas ... dan
  banyak lagi. Waktu yang dibutuhkan untuk membangun tergantung
  pada ukuran proyek anda. Setelah selesai, basis data dapat
  di-query dan informasi tambahan tentang kode akan ditanyakan.
  Berikut adalah sorotan tentang beberapa fitur untuk memberi anda
  penjelasan. Sebuah user guide bergambar, dan juga
  reference manual, dimasukkan dalam direktori html
  dari direktori instalasi.
  Manajemen proyek
Bagian dari perangkat ini adalah
  editor dengan sorotan sintaks, ini juga dapat digunakan
  untuk berkas-berkas yang dicetak indah. Tangkapan layar berikut
  menggambarkan jendela utama editor. Ini hampir menyerupai
  sebuah lingkungan pengembangan yang hadir dengan fasilitas
  pengawakutuan(debugging), perintah membangun proyek,
  kendali versi dan sebagainya.
  
  
  Secara khusus, panah-panah hijau besar pada menu bekerja
  seperti pada peramban (browser) web. Editor proyek
  mengijinkan anda untuk mengendalikan informasi basis data,
  misalnya jika sebuah berkas telah diperbaharui; untuk menambah
  atau menghapus berkas dari daftar dan tugas-tugas manajemen
  lainnya. Semua berkas diperlakukan sebagai satu proyek besar.
  Maka jika perubahan dilakukan, anda dapat memperbaharui informasi
  basis data melalui Refresh Project atau Reparse
  Project.
  Ketika berada dalam jendela editor, menyorot sesuatu,
  misalnya nama fungsi, wilayah yang disorot akan berwarna kuning.
  Kemudian klik-kanan dengan tetikus(mouse) - ada pilihan
  untuk mencari (a) declaration dari apa yang anda baru
  saja sorot (misalnya berkas header) atau (b)
  implementation dari simbol yang disorot (misalnya berkas
  .cpp), ditambah pilihan-pilihan berguna
  lainnya.
 
  Peramban Simbol
Ini adalah jendela pertama yang terbuka
  setelah menghasilkan basis data proyek. Biasanya peramban ini
  berisi nama berkas, tapi ia juga menampilkan metode kelas,
  simbol-simbol fungsi dan sejenisnya. Ketika sebuah nama berkas
  diklik, berkas akan dibuka pada editor.
  Jendela grep
Jendela ini berlaku sesuai
  namanya, ia menyediakan antarmuka grafis yang nyaman untuk
  melakukan grep melalui semua berkas kode sumber yang terlibat.
  Entri-entri yang bersesuaian akan disorot dan
  dihipertaut(hyper-linked), sehingga kode sumber dapat
  dirambah seolah-olah ia adalah sekumpulan halaman web.
  Sebagaimana yang ditampilkan tangkapan layar, masing-masing
  berkas dan lokasinya dapat dipilih dan hanya dengan mengklik
  entri tersebut anda bisa membuka editor pada posisi yang tepat.
  (Cara pencarian khusus ini memberikan hasil positif pada banyak
  berkas Java :)
  
  Jendela Xref
Di sini kita memiliki senarai
  lintas-referensi dari semua simbol, secara khusus kita dapat
  melihat metode mana yang melakukan read (r), write (w), ... pada
  data yang mana dan melihat hubungan di antara simbol yang
  digambarkan secara hierarkis. Entri-entrinya dapat diklik.
   
  Jendela kelas
Antarmuka ini mengumpulkan semua informasi
  yang berguna yang kita ingin ketahui tentang kelas-kelas dalam
  bahasa berorientasi objek. Secara khusus, super- dan
  subclass ditunjukkan, juga atribut dan nama metode bersama
  dengan parameter- parameternya. Untuk perubahan, jendela di bawah
  ini menunjukkan kelas C++ ClientSocket yang mewarisi
  dari Socket dan mempunyai beberapa metode. Sekali lagi,
  dengan mengklik salah satu entri anda dapat membuka jendela
  editor pada posisi yang tepat.
  
  Alternatif lain
cscope adalah peramban kode
  sumber C berbasis layar-konsol (dapat digunakan untuk
  C++ juga). Peramban ini memiliki beberapa fungsi
  snavigator, tangkapan layarnya ada di sini.
  Kenyataannya, peramban ini jauh lebih tua dan telah digunakan
  dalam banyak proyek besar. Lamannya adalah http://cscope.sourceforge.net/.
  Tapi anda tidak perlu ke sana, peramban ini tertanam dalam
  vim dan dapat digunakan sebagaimana (g)vim digunakan
  dengan dikombinasikan bersama tags. Cukup ketik
  
:help cscope
pada sesi vim anda untuk memeriksa keberadaan opsi tersebut.
Ada beberapa turunan dari cscope. Freescope merupakan klon
dari cscope yang memiliki beberapa fungsionalitas tambahah
seperti pelengkapan simbol. Sekarang ada juga cscope dengan sisi
depan(front end) antarmuka KDE yang disebut kscope,
peramban ini dapat ditemukan di http://kscope.sourceforge.net/.
  Kesimpulan
Bagi siapapun yang terlibat dalam paling tidak
  sebagian rekayasa ulang atau pemaduan kode sumber, snavigator
  adalah alat yang sangat berguna dan tangguh. Saya pernah memiliki
  aplikasi Qt yang lama yang sayangnya tidak dapat bekerja dengan
  pustaka Qt versi baru. Dengan melihat pesan kesalahan dan
  menjelajah sedikit dengan snavigator, saya segera menemukan bahwa
  hanya senarai parameter dari satu fungsi yang perlu diubah.
  Menggunakan fungsionalitas click-and-locate, adalah
  mungkin untuk memperbaharui paket perangkat lunak hanya dalam
  beberapa menit.