Wednesday, April 25, 2012

CARA MEMBANGUN TABEL FORWARDING

Forwarding table adalah tabel yang terdiri dari pasangan alamat IP (alamat host atau alamat jaringan), alamat router berikut, dan antarmuka tempat keluar datagram.
Jika tidak menemukan sebuah baris pun dalam forwarding table yang sesuai dengan alamat tujuan, router akan memberikan pesan kepada pengirim bahwa alamat yang dimaksud tidak dapat dicapai. Kejadian ini dapat dianalogikan dengan pesan “kembali ke pengirim” pada pos biasa. Sebuah router juga dapat memberitahu bahwa dirinya bukan router terbaik ke suatu tujuan, dan menyarankan penggunaan router lain. Dengan ketiga fungsi yang terdapat pada router ini, host-host di Internet dapat saling terhubung.
router menggunakan alamat tujuan paket untuk indeks meja forwarding dan menentukan link outbound yang sesuai. Tapi pernyataan ini belum menimbulkan pertanyaan lain: bagaimana tabel forwarding bisa diatur? Apakah mereka dikonfigurasi dengan tangan di setiap router dan setiap, atau apakah Internet menggunakan prosedur yang lebih otomatis? kami akan perhatikan sekarang bahwa Internet memiliki sejumlah protokol routing khusus yang digunakan untuk secara otomatis mengatur tabel forwarding. Sebuah protokol routing mungkin, misalnya, menentukan jalur terpendek dari setiap router ke tujuan masing-masing dan menggunakan hasil jalur terpendek untuk mengkonfigurasi tabel forwarding di router.

Contoh 

CARA MEMBANGUN TABEL ROUTING

Dua cara membangun tabel Routing :
  1.   Static Routing
    • Dibangun berdasarkan definisi dari administrator
    •  Administrator harus cermat, satu saja tabel routing salah jaringan tidak terkoneksi

  2.  Dynamic Routing
    • Secara otomatis router jalur routingnya, dengan cara bertukar informasi antar router menggunakan protokol TFTP
    • Kategori algoritma dinamik :
      • Distance Vector
      • Link State
      • Hybrid
KARAKTERISTIK STATIC ROUTING
Merupakan sebuah mekanisme pengisian tabel routing yg dilakukan oleh admin secara manual pd tiap2 router.
Keuntungannya:     
  1. Meringankan kerja prosesor yg ada pd router
  2. Tdk ada BW yg digunakan utk pertukaran informasi isi tabel routing antar router  
  3. Tingkat keamanan lebih tinggi vs mekanisme lainnya
Kekurangannya:
  1. Admin hrs mengetahui informasi tiap2 router yg terhubung jaringan
  2. Jika terdpt penambahan/perubahan topologi jaringan admin hrs mengubah isi tabel routing
  3. Tdk cocok utk jaringan yg besar
Dalam Cisco Router, static routing secara default sudah dalam posisi enable, jadi jika ingin membuat IP static routing cukup dengan mengetikkan perintah:      

Router(config)#ip route <network destination id> <subnet mask> <default gateway> <administrative distance> 

Penjelasan :
  • <network destination id> adalah alamat jaringan yg dituju
  • <subnet mask> adalah subnet mask dari jaringan yg dituju   
  • <default gateway> adalah IP address Gateway, biasanya IP address router yg berhubungan langsung.
  • <administrative distance> ??? adalah nilai 0-255 yg diberikan pada routing. Bertambah rendah nilai yg diberikan bertambah tinggi kegunaannya. Jika tidak diberikan, nilai default akan dipakai. Nilai default untuk directly connected (C) =0 dan statically connected (S) =1. 
Contoh :
Router0(config)# ip route 192.168.12.0 255.255.255.0 202.200.100.2
  1. Supaya router bisa melayani permintaan untuk meneruskan pengiriman data, maka router harus mempunyai tabel yang dipakai sebagai patokan data ini harus saya kirim ke jaringan yang mana? 
  2. Tabel yang dipunyai oleh router disebut sebagai tabel routing yang berisi NETID dan Default gatewaynya.

Berdasarkan gambar diatas adalah skenario pengiriman data dari komputer 192.168.1.5 ke komputer 192.168.2.36 :
  1. Komputer 192.168.1.5 ingin mengirim data ke 192.168.2.36, menyadari bahwa alamat tujuan tidak berada di jaringan lokal, maka komputer mencari daftar “default gateway” pada property TCP/IP yaitu 192.168.1.13. Paket data kemudian dikirim ke Gateway tersebut.
  2. Pada komputer 192.168.1.13 paket data tersebut kembali diperiksa, dan ditemukan pada tabel routing bahwa paket tersebut dapat dikirim ke jaringan 192.168.2 lewat IP 192.168.2.43
  3. Via IP 192.168.2.43 akhirnya data dapat ditransmisi ke tujuan yaitu 192.168.2.36

Sumber : http://yanto-ssi.blogspot.com/2010/02/static-router.html   
     

Sunday, April 22, 2012

Rapid Application Development

Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk model ini. Rapid application development menggunakan metode iteratif (berulang) dalam mengembangkan sistem dimana working model (model bekerja) sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement) user dan selanjutnya disingkirkan. Working model digunakan kadang-kadang saja sebagai basis desain dan implementasi sistem final.

Penerapan

Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
  1. Component based construction ( pemrograman berbasis komponen bukan prosedural).
  2. Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
  3. Pembangkitan kode program otomatis/semi otomatis.
  4. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.
Jika kebutuhan yang diinginkan pada tahap analisis kebutuhan telah lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari. Model RAD hampir sama dengan model waterfall, bedanya siklus pengembangan yang ditempuh model ini sangat pendek dengan penerapan teknik yang cepat.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.


Contoh Diagram RAD


Kelebihan

  1.     Hasil pengembangan bisa lebih cepat  .
  2.     Memerlukan biaya yang lebih sedikit.
  3.     Mementingkan dari segi bisnis dan teknik.
  4.     Berkonsentrasi pada sudut pandang user .
  5.     Menyediakan kemungkinan perubahan secara cepat sesuai permintaan user.
  6.     Menghasilkan jarak kesesuaian yang kecil antara kebutuhan user dan spesifikasi sistem.
  7.     waktu, biaya, dan effort minimal.

Kelemahan

Beberapa hal (kelebihan dan kekurangan) yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD :
  1. Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
  2. Model ini cocok untuk proyek dengan skala besar.
  3. Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesan, bahkan keduanya bisa tergabung dalam 1 tim
  4. kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
  5. sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
  6. penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
  7. proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
  8. risiko teknis yang tinggi juga kurang cocok untuk model ini.



Sumber : 
  • http://id.wikipedia.org/wiki/Rapid_Application_Development
  • http://www.scribd.com/ukht_marutu/d/9757835-Rapid-Application-Development-RAD

Saturday, April 21, 2012

Unified Modeling Language



  • Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut.UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP. UML merupakan dasar bagi perangkat (tool) desain berorientasi objek dari IBM.
  • UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi.Penggunaan UML dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.
Contoh Diagram UML






  • UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek, Yaitu :
    • Use Case Diagram untuk memodelkan proses bisnis.
    • Conceptual Diagram untuk memodelkan konsep-konsep yang ada di dalam aplikasi.
    • Sequence Diagram untuk memodelkan pengiriman pesan (message) antar objects.
    • Collaboration Diagram untuk memodelkan interaksi antar objects.
    • State Diagram untuk memodelkan perilaku objects di dalam sistem.
    • Activity Diagram untuk memodelkan perilaku Use Cases dan objects di dalam system.
    • Class Diagram untuk memodelkan struktur kelas.
    • Object Diagram untuk memodelkan struktur object.
    • Component Diagram untuk memodelkan komponen object.
    • Deployment Diagram untuk memodelkan distribusi aplikasi.
  • 4 macam diagram yang paling sering digunakan dalam pembangunan aplikasi berorientasi object, yaitu : 
    • use case diagram

    • Collaboration Diagram


    • Class Diagram


    • sequence diagram




Langkah-Langkah Penggunaan UML


Berikut ini adalah tips pengembangan piranti lunak dengan menggunakan UML:

1. Buatlah daftar business process dari level tertinggi untuk mendefinisikan aktivitas dan proses yang mungkin muncul.

2. Petakan use case untuk tiap business process untuk mendefinisikan dengan tepat fungsionalitas yang harus disediakan oleh sistem. Kemudian perhalus use case diagram dan lengkapi dengan requirement, constraints dan catatan-catatan lain.

3. Buatlah deployment diagram secara kasar untuk mendefinisikan arsitektur fisik sistem.

4. Definisikan requirement lain (non-fungsional, security dan sebagainya) yang juga harus disediakan oleh sistem.

5. Berdasarkan use case diagram, mulailah membuat activity diagram.

6. Definisikan objek-objek level atas (package atau domain) dan buatlah sequence dan/atau collaboration diagram untuk tiap alir pekerjaan. Jika sebuah use case memiliki kemungkinan alir normal dan error, buatlah satu diagram untuk masing-masing alir.

7. Buarlah rancangan user interface model yang menyediakan antarmuka bagi pengguna untuk menjalankan skenario use case.

8. Berdasarkan model-model yang sudah ada, buatlah class diagram. Setiap package atau domain dipecah menjadi hirarki class lengkap dengan atribut dan metodanya. Akan lebih baik jika untuk setiap class dibuat unit test untuk menguji fungsionalitas class dan interaksi dengan class lain.

9. Setelah class diagram dibuat, kita dapat melihat kemungkinan pengelompokan class menjadi komponen-komponen. Karena itu buatlah component diagram pada tahap ini. Juga, definisikan tes integrasi untuk setiap komponen meyakinkan ia berinteraksi dengan baik.

10. Perhalus deployment diagram yang sudah dibuat. Detilkan kemampuan dan requirement piranti lunak, sistem operasi, jaringan, dan sebagainya. Petakan komponen ke dalam node.

11. Mulailah membangun sistem. Ada dua pendekatan yang dapat digunakan :
• Pendekatan use case, dengan meng-assign setiap use case kepada tim pengembang tertentu untuk mengembangkan unit code yang lengkap dengan tes.
• Pendekatan komponen, yaitu meng-assign setiap komponen kepada tim pengembang tertentu.

12. Lakukan uji modul dan uji integrasi serta perbaiki model berserta codenya. Model harus selalu sesuai dengan code yang aktual.

13. Piranti lunak siap dirilis.

Tool Yang Mendukung UML


Saat ini banyak sekali tool pendesainan yang mendukung UML, baik itu tool komersial maupun opensource. Beberapa diantaranya adalah:
  • Rational Rose (www.rational.com)
  • Together (www.togethersoft.com)
  • Object Domain (www.objectdomain.com)
  • Jvision (www.object-insight.com)
  • Objecteering (www.objecteering.com)
  • MagicDraw (www.nomagic.com/magicdrawuml)
  • Visual Object Modeller (www.visualobject.com)


Sumber :
  • http://id.wikipedia.org/wiki/Unified_Modeling_Language
  • http://saiiamilla.wordpress.com/2010/04/19/contoh-use-case-diagram/
  • http://www.justlikefie.com/2011/02/laporan-pendahuluan-uml-activity.html
  • http://www.comptechdoc.org/independent/uml/begin/umlcoldiagram.html
  • http://kaptenteknologi.blogspot.com/2010/03/uml-unified-modeling-language.html
  • http://ilmukomputer.com
  • http://setia.staff.gunadarma.ac.id/Downloads/files/6077/Modul_UML.pdf

Sunday, April 15, 2012

How To Make Your Code Easy To Understand?

Dalam membuat suatu program kita dibebaskan untuk membuat code sesuai dengan keinginan kita asal masih bisa di run oleh compiler. Tapi bagaimana jika program tersebut ditujukan untuk orang lain misal untuk client atau dosen, orang tersebut akan kebingungan membaca codingannya bahkan terkadang kita sendiri pun kebingungan membaca codingan sendiri karena algortima nya yang acak-acakan atau sudah lama program tersebut dibuat. Jadi bagaimana agar code yang kita buat mudah Easy To Understand?


  1. Menambahkan comment 

  •  Penambahan Comment ditujukan untuk memberi penjelasan kepada suatu perintah yang kita buat.Sehingga dengan membaca comment diharapkan orang yang membaca codingan kita akan mengerti apa maksud dari perintah kita
  1. Menambahkan ENTER(pindah baris) pada setiap baris kode

Program Hello A
 
Program Hello B
  •  Bisa kita lihat perbandingan codingan program Hello A dengan Hello B, meskipun program A dan B sama-sama jalan tetapi program Hello A lebih mudah dipahami karena setelah menulis perintah kita tambahkan ENTER sehingga lebih enak dibaca.
  1. Membuat Dokumentasi Program

  • Dengan membuat dokumentasi program kita bisa mengetahui seluruh details dari program yang kita buat sehingga kita tidak kebinggungan dalam memahami program tersebut.
  1.  Memberi nama variabel yang mudah dimengerti

 Program A

Program B
  • Bisa kita lihat pada program B variabel diberi nama sesuai dengan fungsinya, sehingga kita tahu variabel ini berfungsi untuk apa.
  1.   Tidak Membuat Codingan Hanya Pada Satu Class

  • Pada bahasa pemprograman tertentu kita dapat memecah seluruh program menjadi beberapa Class, hal ini bertujuan agar program tidak menumpuk di satu tempat dan membuat kita kewalahan untuk membacanya konsep ini bernama OOP(Object Oriented Programming).

STYLE Programming

Tiap Bahasa Pemprograman mempunyai Style yang berbeda-beda dalam penulisan codenya. misalnya bagaimana penulisan code untuk menggunakan/memanggil suatu Library, membuat variabel,  menampilkan teks ke layar dll . Tiap Bahasa Pemprograman memiliki caranya/codenya sendiri berikut ini perbedaan bagaimana menampilkan tulisan HELLO WORLD!! di C#,JAVA,dan PASCAL.

1. Bahasa C#


 2. Bahasa Java




3. Bahasa Pascal


Perbedaan COMPILER Dengan INTERPRETER


Interpreter adalah perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi. 
Sedangkan Compiler sendiri adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda.

Perbedaan antara Compiler dengan Interpreter : 
1. Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.
2. Jika menggunakan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses terpisah.
3. compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.
4. Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil ). Sedangkan compiler agak repot karena untuk mengubah suatu modul / kode objek kecil  harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
5. Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan.