Sabtu, 26 Februari 2011

Router, penunjuk jalan di internet

Secara definisi, route atau routing adalah rute (jalur) atau metode untuk mencari jalan / path dari tempat asal ke tempat tujuan dalam jaringan seperti internet bersamaan dengan informasi yang bisa dilewatkan. Router mengacu pada suatu sistem yang dapat melanjutkan (forwarding) paket data dalam jaringan komputer. Router dapat diartikan sebagai sebuah perangkat yang dipergunakan untuk menghubungkan antar jaringan dengan atau melalui penjaluran.


Tugas utama router dalah memeriksa paket data untuk alamat tujuan, dan detail format protokolnya kemudian menentukan jika path dapat dilalui. Setiap router memiliki tabel yang berisi alamat yang dapat dilalui / alamat tujuan setiap perangkat yang terhubung ke jaringan. Jika router menemukan bahwa hasil penelusurannya cocok pada tabel alamat (address table) maka router akan meneruskan paket data tersebut ke alamat tujuan. Jika alamat tujuan berada pada jenis jaringan yang memerlukan protokol transmisi berbeda, data protokol yang diperlukan akan ditambahkan ke paket data.


Kehadiran router pada jaringan sangat penting karena router berperan menunjukkan arah yang harus dilalui oleh paket data dalam perjalanannya menuju alamat tujuan. Karena meski kita sudah punya alamat yang dituju tapi nggak tahu harus lewat jalan mana, percuma juga kan??



Dilihat dari fisiknya, Router ada 2 macam :



  • Dedicated Router : Sebuah router yang dibuat khusus oleh pabrik dan berbentuk seperti perangkat khusus. Contoh: (Level one : WRT),Cisco & Linksys

  • PC Router : Perangkat router yang terbuat dari PC biasa (bukan perangkat khusus yang dibuat pabrik) dan diisi sistem operasi yang digunakan untuk router. Contoh: PC biasa dengan OS Mikrotik/Linux




Selain itu, ada 3 kategori router berdasarkan cara kerjanya. Yaitu:



  • Router statis : Tabel routingnya tetap

  • Router default : Mengirim paket ke jaringan yang tidak ada di dalam tabel routing ke Router selanjutnya. Ini terjadi jika router hanya memiliki satu port saja

  • Router dinamis : Router ini memiliki kemampuan mengubah penjaluran saat digunakan (tidak statis). Biasanya menggunakan protokol-protokol tertentu seperti RIP, & OSPF


Jaringan Komputer

Jaringan komputer, atau sering disebut sebagai jaringan, adalah kumpulan komputer dan perangkat yang saling terhubung oleh saluran komunikasi yang memfasilitasi komunikasi antarpengguna dan membolehkan pengguna untuk saling berbagi sumberdaya (resource). Jaringan dapat diklasifikasikan menurut beragam karakteristik. Sebuah jaringan komputer dapat juga membagi sumberdaya dan informasi atara perangkat yang terhubung.


Jaringan komputer dapat digunakan untuk berbagai tujuan, diantaranya:




  • Memfasilitasi komunikasi. Menggunakan jaringan, setiap orang bisa berkomunikasi secara efisien dan cepat melalui email, instant messaging, chat room, telephone, video telephone, dan video conference.

  • Berbagi hardware. Dalam lingkungan yang mendukung jaringan, setiap komputer dapat mengakses dan menggunakan perangkat keras yang terhubung ke jaringan (seperti printer, scanner, dsb) tanpa harus menghubungkan setiap komputer dengan sebuah perangkat individu. Bayangkan jika dalam suatu kantor setiap komputer memiliki 1 printer dan 1 scanner. Sangat boros. Dengan jaringan komputer diperlukan hanya 1 printer / scanner yang dapat dipakai bersama. Praktis dan hemat :D

  • Berbagi file, data, dan informasi. Dalam lingkungan jaringan komputer, user yang otentik dapat mengakses data dan informasi yang tersimpan dalam komputer lain pada jaringan. Kemampuan untuk menyediakan akses data dan informasi pada media penyimpanan adalah fitur utama kebanyakan jaringan.

  • Berbagi software. Ini nih yang enak. Pengguna yang terhubung ke jaringan dapat menjalankan program aplikasi yang ada pada komputer lain. Jadi nggak perlu install di komputer sendiri :D

  • Pemeliharaan nformasi.

  • Keamanan


Jaringan komputer dapat dikelompokkan berdasarkan teknologi hardware dan software yang digunakan untuk menghubungkan setiap perangkan dalam jaringan, seperti fiber optik, ethernet, wireless LAN, HomePNA, power line communication atau G.hn.


Jaringan juga sering dikelompokkan menurut cakupan wilayahnya. Seperti Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), Virtual Private Network (VPN), Campus Area Network (CAN), Storage Area Network (SAN) dan lain-lain bergantung pada skala, cakupan dan tujuan.


Jaringan komputer juga dapat dikategorikan menurut fungsional dan hubungan antarelemen dalam jaringan. Misalnya arsitektur Active Networking, Client-Server, Wireless ad hoc Network dan peer-to-peer (workgroup).


Artikel ini tidak akan menjelaskan terlalu rinci masing-masing jenis jaringan. Pembahasan jaringan komputer tersebut akan ada di artikel terpisah.






Mirrored from: Another Satria's Project


Mirrored time: Sunday, 27th February 2011

Definisi Program Komputer

Program komputer, sebagian dari teman-teman pasti sudah mengenal kata ini bukan? Apalagi yang setiap hari berurusan sama komputer. Sebenarnya, apa sih definisi program itu sebenarnya?

Program komputer (juga disebut sebagai software atau hanya program) adalah serangkaian instruksi berurutan yang ditulis untuk melakukan serangkaian tugas untuk komputer. Komputer tak memiliki kemampuan untuk menyelesaikan masalahnya sendiri. Komputer hanyalah berupa alat yang digunakan untuk melakukan perhitungan-perhitungan dan serangkaian tugas yang dibebankan kepadanya. Pembuat program disebut sebagai programmer :D.

Jika diibaratkan program seperti jadwal kegiatan selama hari ini. Misal hari ini saya harus mandi, makan, ke kampus, rapat A, rapat B, makan, tidur, belajar, belanja, dsb. Kegiatan seperti di atas kita sebut sebagai instruksi apa yang harus kita lakukan saat itu. Dan daftar instruksi yang ditulis menjadi satu berkas utuh disebut sebagai program.

Minggu, 30 Januari 2011

Membuat Aplikasi di Linux dengan GTK+ dan Pascal

Beberapa waktu yang lalu, kami STEI 2010 mendapatkan tugas. Ya, sebuah project yang akan mengakhiri malam-malam Lailatul Qoding selama ini. Tugas ini disebut Tugas Besar PTI A, membuat suatu project yang merepresentasikan apa yang telah kami pelajari selama kuliah.
Untuk Tugas Besar ini kami dibentuk dalam beberapa kelompok dengan masing-masing kelompok beranggotakan 3 orang. Saya pun membentu sebuah kelompok bernama Starlight.
Project yang diberikan adalah sebuah aplikasi mini dengan master desain ditentukan oleh pihak dosen. Saya pun memunyai sebuah inisiatif, bagaimana jika program yang kami, tim Starlight, buat berbentuk window. Tentu saja ini adalah hal yang luar biasa, terutama platform yang kami garap nggak main-main, linux. Ya, kami memang gila dengan membuat aplikasi untuk linux dan saat saya berkata demikian, saya belum tahu apa-apa tentang bagaimana cara membuat aplikasi GUI di linux, bahkan saya nggak tahu linux itu kayak gimana modelnya *nah lho*. Ini emang beneran, tapi saya nggak main-main dengan niat saya tersebut (cieee....)
Akhirnya saya melakukan sebuah riset sederhana dan mencari segala data yang diperlukan. Riset dibatasi 2 hari karena hari-hari selanjutnya digunakan untuk pengerjaan program.
Kok malah jadi curhat ya? Ok, langsung aja saya berbagi tutorial bagaimana cara bikin aplikasi GUI di linux dengan GTK+ dan Pascal (actually I didn't really like Pascal @@~) 

#------------------------------------------------------------------------ CHAPTER 1 - Set up the Compiler

Yang saya pakai adalah compiler FreePascal. Dan untungnya FPC telah menyediakan wrapper untuk gtk, horee...!! Dalam pengerjaan aplikasi ini, saya menggunakan Ubuntu Linux 10.10 Maverick Meerkat (thanks buat Inov yang udah meminjamkan CD Ubuntu buat saya :D).
Jangan lupa untuk menginstall library untuk development GTK.. lakukan perintah berikut
sudo apt-get install libgtk2.0-dev

OK, jika sudah maka teman-teman sudah bisa membuat aplikasi sederhana dengan GTK

#------------------------------------------------------------------------ CHAPTER 2 - Simple Form

Apa itu GTK+? GTK adalah toolkit yang digunakan untuk pengembangan aplikasi GUI di linux berbasis GNOME. Dalam membuat aplikasi GTK sebenarnya kita seperti bermain lego. Kita meletakkan potongan-potongan bangunan untuk membentuk sebuah bangunan utuh. Potongan-potongan yang dimaksud di sini adalah komponen visual seperti button, menu, dkk. Komponen itu disebut sebagai widget. Nah kita menyusun potongan-potongan tersebut di atas sebuah form / window.
Hal pertama yang dilakukan untuk membuat aplikasi adalah membuat sebuah window terlebih dahulu. Coba teman-teman simak source code sederhana ini yang akan membuat sebuah form sederhana.
program sederhana;

uses gtk2, gdk2, glib2;
{ Library yang kita gunakan untuk membuat GUI }

var window : pGtkWidget;
{ Membuat sebuah variabel bertipe pGtkWidget untuk menampung widget / komponen }

begin
{ Sebelum kita memulai, kita harus beritahu bahwa kita akan menggunakan gtk. Maka kita harus inisialisasi gtk terlebih dahulu }
gtk_init(@argc, @argv);

{ Membuat window }
gtk_window_new(GTK_WINDOW_TOPLEVEL);
{ Membuat window yang top level atau window yang dikelola langsung oleh komputer (Window Manager) }

{ Sedikit pengaturan untuk window kita }
gtk_window_set_default_size(GTK_WINDOW(window), 800,600);
gtk_window_set_title(GTK_WINDOW(window), 'Satria Ady Pradana');
{ Dari nama udah kelihatan kan? }

{ Mengatur signal. Signal adalah semacam message atau pesan yang diberikan ketika sesuatu hal terjadi pada aplikasi, seperti saat sebuah button ditekan dkk. GTK adalah sebuah library yang event-driving. Jadi kita akan memprogram berdasarkan event-event }
gtk_signal_connect(GTK_OBJECT(window), 'destroy,' GTK_SIGNAL_FUNC(@gtk_main_quit), nil);
{
Penjelasan:
Parameter pertama adalah widget / komponen yang ingin dikelola
Parameter kedua adalah jenis event yang terjadi. Disini kita pakai 'destroy' artinya saat window di-destroy atau ditutup maka program akan mengeksekusi program berikut.
Parameter ketiga adalah fungsi yang dipanggil ketika event terjadi. Untuk sementara kita pakai fungsi ini dulu, gtk_main_quit() yang akan membersihkan dan mengakhiri proses program.
Parameter keempat adalah data yang diberikan jika fungsi dipanggil. kita isi nil dulu karena kita nggak perlu ngasih apa-apa ke sana.
}

{ Secara default, komponen yang baru terbentuk belum tertampil ke layar. Untuk menampilkannya kita harus "menampilkannya" }
gtk_widget_show(window);

{Memulai program utama gtk, di sini pekerjaan kita selesai}
gtk_main();

end.

Simple kan? Ya emang.... Untuk membuat aplikasi sederhana tidak terlalu susah :D
Lalu bagaimana kalau kita ingin bikin tombol dkk?
Tunggu postingan selanjutnya :D


Cross Compiling - Membuat Program Windows di Linux

Setelah pada artikel sebelumnya kita membahas tentang pengenalan cross compiling, sekarang kita akan mencoba melakukan pengaturan untuk bisa melakukan pengembangan aplikasi secara cross-compiling. Platform yang menjadi tujuan kita adalah OS Windows, sedangkan kita akan membuat program tersebut di linux. Jika teman-teman belum tau apa itu cross-compiling, silahkan merujuk ke artikel ini.


Kita akan melakukannya dalam beberapa tahap. Untuk mempersempit topik, tutorial ini dilakukan pada OS Linux tepatnya GNU/Linux Ubuntu 10.10 Maverick Meerkat. Dan juga kita ambil langkah paling sederhana saja, saya tau temen-temen juga nyari cara gampang sama kayak saya :p


 


1. Siapkan Compiler


Lho, bukannya di linux udah disediain compiler ya? Memang di linux sudah disediakan compiler bawaan yaitu gcc, tapi compiler ini digunakan buat compil program ke platform linux saja. Kita butuh compiler untuk tujuan cross compiling. Kita bisa dapatkan compiler tersebut dengan memberikan perintah berikut ke command line (terminal) :




sudo apt-get install mingw32



MinGW32 adalah package compiler yang kita butuhkan untuk melakukan cross compiling ke platform windows.


Jika sudah selesai teman-teman dapat melakukan kompilasi dengan cara mengetikkan perintah berikut (jangan lupa tekan enter juga ya)




i586-mingw32msvc-gcc file.c -o file.exe



Perhatikan bahwa kita menggunakan kompiler bernama i586-mingw32msvc-gcc untuk mengompil program. Pada contoh di atas kita mengompil file.c dan hasilnya menjadi file.exe. Teman-teman juga bisa mengompil dengan menambahkan beberapa pengaturan tambahan, sintaksnya sama seperti ketika teman-teman menggunakan gcc sebagai compiler.


Terlalu panjang ngetiknya? Tenang! kita bisa persingkat nama filenya dengan cara membuat link (semacam shortcut gitu). Caranya pergi ke /usr/bin. Pada path tersebutlah mingw32 terinstall secara default.




cd /usr/bin



Kemudian ketikkan perintah berikut untuk membuat link:




ln -s i586-mingw32msvc-gcc gcc32



Dengan begitu maka ketika anda mengetikkan gcc32 maka otomatis anda sebenarnya memanggil program i586-mingw32msvc-gcc.


i586-mingw32msvc-gcc adalah perintah untuk mengompil program dalam bahasa C, sedangkan untuk mengompil program bahasa C++ teman-teman bisa menggunakan i586-mingw32msvc-g++


 


2. Siapkan emulator (Wine)


Sebenarnya jika teman-teman sukses melakukan seperti apa yang ada di step 1, teman-teman sudah bisa melakukan pengompilan program untuk windows di OS Linux. Tapi, nggak enak kan kalo cuman compile doang. Gimana ktia tau kalo programnya jalan nggak. Nah karena itu kita pasang sebuah emulator untuk bisa menjalankan program windows. Yang dimaksud tidak lain dan tidak bukan adalah Wine (yang ini gak bikin mabuk :D). Kita akan install melalui mode command line / terminal. Caranya ketik perintah berikut:




sudo apt-get install wine



Jika proses sudah selesai maka teman-teman sudah bisa menjalankan program windows di linux. Caranya:




wine [nama program]



 


Selamat!! teman-teman sudah bisa melakukan cross compiling di linux :D


Nantikan juga tutorial lainnya :D

Perulangan For Positif dan Negatif pada pascal dan C++

Disarankan untuk melihat juga materi Seri Belajar Pemrograman #5.


 


Tak bisa dipungkiri, perulangan atau yang kerap disebut loop adalah salah satu aspek programming penting dalam pemprograman. Kehadirannya sering ditemui dalam suatu aplikasi. Secara umum terdapat 3 macam jenis perulangan bila mengacu pada artikel saya sebelumya yaitu Seri Belajar Pemrograman #5. Salah satunya adalah perulangan dengan kata kunci for (untuk notasi algoritmik, Pascal dan C\C++)


 


Seperti yang sudah dijelaskan pada artikel Seri Belajar Pemrograman #5, statement For (lihat keyword "untuk" pada artikel tersebut, keyword tersebut berkorespondensi dengan keyword for pada pascal dan C++) digunakan untuk mengulang statement atau suatu blok statement dengan jumlah perulangan yang ditentukan sebelumnya. Sama seperti kita mengatakan ingin menonton film A sebanyak 4 kali maka yang kita lakukan adalah melakukan kegiatan dalam hal ini menonton film sebanyak 4 kali secara berturut-turut.