Saturday, 17 May 2014

BAB 1 Sebuah perkenalan

Small Basic dan Pemrograman Pemrograman komputer didefinisikan sebagai proses pembuatan perangkat lunak komputer menggunakan bahasa pemrograman. Seperti kita berbicara dan mengerti bahasa Inggris dan Spanyol, komputer-komputer dapat memahami program-program yang ditulis dalam bahasa tertentu. Bahasa-bahasa ini disebut bahasa-bahasa pemrograman.

Pada mulanya hanya ada sedikit bahasa pemrograman dan mereka sangat mudah untuk dipelajari dan dimengerti. Tapi saat komputer-komputer dan perangkat lunak menjadi semakin canggih, bahasa pemrograman berevolusi dengan cepat, mengumpulkan konsep-konsep yang lebih kompleks sepanjang jalan. Sebagai hasilnya, kebanyakan bahasa pemrograman yang modern dan konsepnya cukup menantang untuk dikuasai oleh para pemula. Fakta-fakta ini telah membuat orang-orang berkecil hati untuk mempelajari atau mencoba pemrograman komputer.

Small Basic adalah sebuah bahasa pemrograman yang didesain untuk membuat pemrograman sangat-sangat mudah, mudah didekati, dan menarik bagi para pemula.


Lingkungan Small Basic Mari kita mulai dengan perkenalan cepat ke lingkungan Small Basic. Ketika kamu membuka Small Basic pertama kali, kamu akan melihat sebuah jendela yang kelihatan seperti jendela berikut ini.



Ini adalah environment dari Small Basic, dimana kita akan menulis dan menjalankan program-program Small Basic kita. Environment ini mempunyai elemen-elemen yang ditandai dengan angka-angka.

Editor, ditandai dengan [1] adalah dimana kita akan menulis program-program Small Basic kita. Ketika kamu membuka program contoh atau program yang sebelumnya kamu simpan, program itu akan muncul pada editor ini. Kamu dapat kemudian memodifikasi program itu dan menyimpannya untuk digunakan lagi kemudian.

Kamu juga dapat membuka dan bekerja dengan lebih dari satu program pada waktu bersamaan. Tiap program yang kamu sedang kerjakan ditampilkan di editor terpisah. Editor yang memuat program yang kamu sedang kerjakan disebut active editor.

Toolbar, ditandai dengan [2] digunakan untuk mengeluarkan perintah-perintah ke salah satu ke active editor atau ke environment. Kita akan belajar mengenai perintah-perintah di toolbar sembari kita berjalan.

Surface, ditandai dengan [3] adalah tempat dimana jendela-jendela editor pergi.






Program pertama kita

Sekarang kamu sudah familiar dengan Environment Small Basic, kita maju kedepan dan mulai memprogram di dalamnya. Seperti yang kita telah catat diatas, editor adalah tempat dimana kita menulis program-program kita. Jadi ayo kita maju dan mengetik baris berikut di editor:





Ini adalah program pertama kita. Dan jika kamu sudah mengetikkannya dengan tepat, kamu akan melihat sesuatu yang mirip gambar dibawah ini



Sekarang kita telah mengetik program baru kita, ayo kita jalankan program itu dan melihat apa yang terjadi. Kita dapat menjalankan program kita dengan melakukan klik pada tombol Run di toolbar [2] atau dengan menggunakan jalan-singkat perintah F5 pada keyboard. Jika semua berjalan dengan baik, program akan berjalan dengan hasil seperti yang ditunjukkan dibawah.

Selamat! Kamu baru saja menulis dan menjalankan program pertama Small Basic. Sebuah program yang sedikit dan sederhana namun sebuah langkah besar untuk menjadi programmer yang sejati! Sekarang, tinggal satu hal lagi yang perlu diketahui sebelum kita melanjutkan pembuatan program yang lebih besar. Kita harus memahami apa yang baru saja terjadi -- apa sebenarnya yang kita katakan kepada komputer dan bagaimana komputer tahu apa yang harus dia lakukan? Di bab berikutnya kita akan menganalisa program yang baru saja kita tulis, jadi kita boleh tambah mengerti.

Menyimpan program kita

Jika kamu mau menutup Small Basic dan membukanya lagi nanti untuk mengerjakan lagi progam yang baru saja kamu ketik, kamu boleh menyimpannya. Hal ini sebenarnya sebuah praktik yang baik untuk menyimpan program-program kamu dari waktu ke waktu, jadi kamu tidak kehilangan informasi pada waktu laptop atau komputer kamu mati tanpa kamu sengaja. Kamu dapat menyimpan programmu yang terbuka saat ini dengan cara mengklik icon "save" pada toolbar [3] atau dengan menggunakan jalan pintas "Ctrl+S".

 BAB 2 Memahami Program Pertama Kita

Apa sebenarnya sebuah program komputer?

Sebuah program adalah satu set instruksi-instruksi bagi komputer. Instruksi-instruksi ini memberitahu komputer secara tepat apa yang harus ia lakukan, dan komputer selalu patuh. Seperti manusia, komputer hanya dapat mematuhi instruksi jika dijelaskan didalam bahasa yang dapat ia mengerti. Bahasa ini disebut bahasa pemrograman. Ada banyak sekali bahasa-bahasa yang komputer mengerti dan Small Basic adalah salah satunya.

Imajinasikan sebuah percakapan yang sedang berlangsung antara kamu dan teman kamu. Kamu dan teman kamu akan menggunakan kata-kata, yang disusun sebagai sebuah kalimat-kalimat untuk menyampaikan informasi dari kamu ke temanmu dan dari temanmu ke kamu. Demikian pula, bahasa-bahasa pemrograman memuat kumpulan-kumpulan kata-kata yang bisa disusun kedalam kalimat-kalimat yang menyampaikan informasi kepada komputer. Dan program-program adalah pada dasarnya sekumpulan kalimat-kalimat (kadang-kadang hanya sedikit dan kadang-kadang ratusan) yang secara bersama dipahami oleh komputer dan programmer.

Program-program small basic

Ciri khas program Small Basic adalah terdiri dari sekumpulan pernyataan-pernyataan (statements). Setiap baris dari program merepresentasikan satu statement dan setiap statement merupakan satu instruksi bagi komputer. Ketika kita meminta komputer untuk menjalankan (Run) suatu program Small Basic, komputer mengambil program dan kemudian membaca statement pertama. Komputer memahami apa yang kita coba sampaikan dan kemudian mengeksekusi perintah atau instruksi kita. Ketika komputer selesai melaksanakan/melakukan statement pertama kita, komputer datang lagi ke program dan membaca dan mengeksekusi baris kedua. Komputer melanjutkan melakukannya sampai komputer mencapai akhir dari program. Yaitu ketika program kita selesai.

Kembali ke program pertama kita sebelumnya

Berikut ini program yang telah kita tulis sebelumnya:

Program ini adalah sebuah program yang sangat sederhana yang berisi dari satu statement. Statement ini memberitahu komputer untuk menulis sebaris text Hello World kedalam Jendela Text.

Statement diatas secara harafiah diterjemahkan didalam otak komputer sebagai:

Mungkin kamu sudah memperhatikan bahwa statement dapat dipisah atau dipecah kedalam segmen-segmen yang lebih kecil seperti kalimat dipecah kedalam kata-kata. Pada pernyataan pertama kita itu kita bisa memecahnya kedalam 3 segmen yang berbeda:
a) Text Window
b) Writeline
c) "Hello World"

Titik, tanda tutup kurung, dan tanda kutip semuanya adalah tanda baca yang harus diletakkan pada posisi yang benar didalam statement (pernyataan) supaya komputer mengerti maksud kita.


Program kedua kita

Sekarang kamu sudah memahami program pertama kita, mari kita lanjutkan dan buat program itu lebih menarik dengan menambahkan beberapa warna.



 Waktu kamu jalankan program diatas, kamu melihat bahwa program itu mencetak frasa "Hello World" yang sama didalam TextWindow, tapi kali ini program itu mencetaknya di dalam warna kuning daripada warna abu-abu seperti yang dilakukannya sebelumnya.


Perhatikan statement baru yang kita tambahkan ke program awal kita. Statement itu menggunakan sebuah kata baru, ForegroundColor yang kita sama-dengankan dengan suatu nilai "Yellow". Ini bisa diartikan kita telah memberi "Yellow" ke ForegroundColor. Sekarang, perbedaan antara ForegroundColor dan operasi Writeline adalah ForegroundColor tidak mengambil input apa-apa ataupun membutuhkan tanda kurung apapun. Akan tetapi ForegroundColor diikuti simbol sama dengan dan sebuah kata. Kita mendefenisikan ForegroundColor sebagai sebuah Property dari TextWindow. Berikut ini daftar dari nilai-nilai yang valid untuk properti ForegroundColor. Coba untuk menggantikan "Yellow" dengan salah satu nilai berikut dan lihat keluarannya -- jangan lupa dua tanda petik, mereka adalah tanda baca yang dibutuhkan.



Bab 3 Pengenalan terhadap variabel-variabel

Penggunaan Variabel-Variabel pada program kita

Alangkah lebih baik jika program kita dapat mengatakan "Hello" disertai nama dari pengguna daripada hanya sekedar mengatakan "Hello World" saja? Untuk dapat melakukan itu pertama kita harus menanyakan nama dari pengguna tersebut dan kemudian menyimpan nama itu disuatu tempat dan kemudian menampilkan "Hello" dengan nama user tersebut. Ayo kita lihat bagaimana kita dapat melakukannya:

Ketika kamu mengetik dan mengeksekusi program ini, kamu akan melihat sebuah output seperti berikut ini:
Dan ketika kamu mengetikkan kedalamnya nama kamu dan menekan ENTER, kamu melihat output berikut:


Sekarang, jika kamu jalankan program ini lagi, kamu akan ditanya pertanyaan yang sama lagi. Kamu boleh mengetikkan sebuah nama yang berbeda dan komputer akan mengatakan Hello serta nama itu.

Analisis program

Pada program yang baru saja kamu jalankan, baris yang mungkin menangkap perhatianmu adalah ini:


Read() itu kelihatan seperti Writeline() tapi tanpa input-input. Read() adalah sebuah kegiatan dan pada dasarnya Read() memberitahu komputer untuk menunggu user mengetikkan sesuatu dan menekan kunci ENTER. Ketika user menekan ENTER, Read() mengumpulkan apa yang telah diketikkan oleh pengguna dan menyerahkannya kembali kepada program. Poin yang paling menarik disini adalah apapun yang diketik oleh pengguna akan disimpan di dalam variabel name. Variabel didefinisikan sebagai tempat dimana kamu dapat menyimpan suatu nilai untuk sementara dan dapat menggunakannya lagi nanti. Pada baris statement atau perintah diatas, name telah digunakan untuk menyimpan nama dari pengguna.

Baris berikut ini juga menarik:

Inilah saatnya kita memakai nilai yang tersimpan di variabel kita, variabel name dan menambahkannya ke kata "Hello" dan menuliskannya ke TextWindow.

Ketika variabel sudah diisi, kita dapat menggunakannya lagi untuk beberapa waktu. Contohnya, kamu dapat melakukan berikut:


Dan kamu akan melihat output seperti berikut:


Aturan dalam penamaan variabel

 Setiap variabel mempunya nama yang dikaitkan kepada variabel-variabel itu dan beginilah caranya mengidentifikasi mereka. Ada beberapa aturan dan panduan yang baik untuk menamai variabel ini. Yaitu:
1. Nama harus diawali sebuah huruf dan tidak boleh menggunakan nama dari keyword: if, for, then, dan lain-lain.
2. Sebuah nama dapat memuat kombinasi dari huruf-huruf alfabet, angka-angka dan garisbawah (underscore).
3. Menamai variabel dengan nama yang mempunyai arti sangat berguna -- gunakan nama yang mendeskripsikan maksud dari variabel itu.

Bermain dengan angka

Kita telah melihat bagaimana kamu dapat menggunakan variabel untuk menyimpan nama pengguna. Pada program-program berikutnya, kita akan melihat bagaimana cara menyimpan dan memanipulasi angka-angka yang ada di dalam variabel. Ayo kita mulai dengan program yang sangat sederhana:


Playing with Numbers
Ketika kamu menjalankan program ini kamu akan mendapat output seperti dibawah ini:
Pada baris pertama program, kamu memberi variabel number1 nilai 10. Dan pada baris kedua, kamu memberi variabel number2 nilai 20. Dan pada baris ketiga, kamu menambahkan number1 dan number2 dan kemudian memasukkan hasilnya ke number3. Jadi pada kasus ini, number3 akan memiliki nilai 30. Dan itu apa yang akan kita cetak pada TextWindow.

Sekarang ayo kita modifikasi program itu sedikit dan melihat hasilnya:
Program diatas akan mengalikan number1 dengan number2 dan menyimpan hasilnya di number3. Dan kamu bisa melihat hasil program itu dibawah ini:
Dengan cara yang sama, kamu dapat mengurangi dan membagi angka-angka. Berikut pengurangan:

Dan simbol untuk pembagian adalah ‘/’. Program akan terlihat seperti ini:
Dan hasil dari pembagian ini akan seperti:

Sebuah Konverter Suhu

Untuk program berikutnya kita akan menggunakan formula  untuk mengubah temperatur Fahrenheit ke temperatur Celcius.

Pertama, kita ambil temperatur dalam Fahrenheit dari user dan menyimpan nilai itu ke dalam suatu variabel. Ada operasi khusus yang memungkinkan kita membaca angka dari user yaitu TextWindow.ReadNumber.

Setelah nilai temperatur Fahrenheit tersimpan di sebuah variabel, kita konversikan nilai itu ke Celsius seperti berikut:

Tanda tutup kurung memberitahu komputer untuk mengkalkulasi bagian fahr-32 terlebih dahulu baru kemudian memproses bagian yang lain. Sekarang yang harus kita lakukan adalah mencetak hasilnya ke pengguna. Dengan menyatukan bagian-bagian program diatas menjadi satu, program akan menjadi seperti ini:


Dan hasil dari program itu akan seperti ini:

BAB 4 Kondisi dan Percabangan


Kembali ke program pertama kita, bukankah lebih keren daripada hanya sekedar mengatakan Hello World saja, kita bisa mengatakan Good Morning World, atau Good Evening World tergantung dari waktu saat program dijalankan? Untuk program kita berikutnya, kita akan membuat komputer mengatakan Good Morning World jika waktu kurang dari 12PM; dan Good Evening jika waktu lebih dari 12PM.


Tergantung dari kapan waktu-kamu menjalankan program kamu akan melihat salah satu dari output ini:


Ayo analisa baris ketiga pertama dari program. Kamu telah mengetahui bahwa baris ini memberitahu komputer bahwa jika Clock.Hour itu lebih kecil dari 12, cetak keluar “Good Morning World”. Kata If, Then dan EndIf adalah kata-kata spesial yang dipahami oleh komputer sewaktu program ini dijalankan. Kata If selalu diikuti oleh sebuah kondisi, yang dalam hal ini adalah (Clock.Hour < 12). Ingat bahwa tutup kurung adalah penting untuk komputer bisa mengerti kemauan anda. Kondisi itu diikuti oleh then dan operasi aktual untuk dieksekusi. Dan setelah operasi datang EndIf. Ini mengatakan komputer bahwa eksekusi kondisional telah berakhir.

Antara then dan Endif, bisa terdapat lebih dari satu operasi dan komputer akan mengeksekusi mereka semua jika kondisi adalah valid. Sebagai contoh, kamu dapat menulis seperti ini:



Else

Di program pada awal bab ini, kamu mungkin memperhatikan bahwa kondisi kedua itu seperti berlebih. Nilai Clock.hour bisa kurang dari 12 atau bisa tidak. Sebenarnya kita tidak perlu melakukan pemeriksaan kedua. Pada waktu seperti ini, kita dapat mempersingkat 2 statement if..then..endif menjadi hanya 1 dengan menggunakan satu kata baru, else.

Jika kita menulis ulang program diatas menggunakan else, seperti ini terlihat:


Dan program ini akan melakukan hal yang sama seperti program yang satu lagi, yang membawa kita ke sebuah pelajaran yang penting dalam pemrograman komputer:
"Di dalam pemrograman, biasanya ada banyak jalan untuk melakukan hal yang sama. Kadang-kadang jalan yang satu memberikan lebih banyak pengertian daripada yang satu. Pilihannya ada pada si programmer. Saat kamu menulis lebih banyak program dan mempunyai lebih banyak pengalaman, kamu mulai akan memperhatikan kedua tehnik yang berbeda ini dan keuntungan dan tidak keuntungannya".

Indentation

Di semua contoh kamu dapat melihat bagaimana statement-statement antara if, else dan EndIf diindentasi. Indentasi ini tidak penting. Komputer paham walaupun tanpa indentasi itu. Akan tetapi, indentasi itu menolong kita melihat dan memahami struktur dari program lebih mudah. Jadi, itu biasanya dianggap sebagai sebuah praktik yang baik untuk menginden pernyataan-pernyataan antara blok itu.

Even or Odd

Sekarang kita telah mempunyai pernyataan If..Then..Else..EndIf di dalam kantong trik kita, ayo tulis sebuah program jika diberi angka, akan mengatakan apakah angka itu ganjil atau genap.


Dan ketika kamu jalankan program ini, kamu akan melihat output:


Didalam program ini, kita telah dikenalkan dengan operasi yang berguna lainnya, Math.Remainder. Dan Ya, seperti kamu pahami, Math.Remainder akan membagi angka pertama dengan angka kedua dan mengembalikan kembali sisanya.

Branching

Ingat, di bab kedua kamu belajar bahwa komputer memproses sebuah program satu statement satu waktu, dengan susunan dari atas ke bawah. Akan tetapi, ada statement khusus yang membuat komputer melompat ke statement lain diluar dari urutan. Mari kita lihat program berikutnya:



Pada program diatas, kita memberikan nilai 1 ke variabel i. Dan kemudian kita menambahkan sebuah statement baru yang diakhiri dengan sebuah tanda baca titik dua (:)


Ini disebut suatu Label. Label-label itu adalah seperti bookmarks yang komputer mengerti. Kamu bisa menamai bookmark dengan nama apapun dan kamu dapat menambah label sebanyak yang kamu mau di dalam programmu, selama mereka semua dinamai dengan nama yang berbeda-beda.

Statement menarik lainnya adalah:


Statement ini cuma mengatakan kepada komputer untuk menambahkan 1 ke varibel i dan hasilnya dimasukkan kembali ke variabel i. Jadi nilai dari i adalah 1 sebelum statement ini, dan nilai i menjadi 2 setelah statement ini dijalankan.

Dan akhirnya,


Ini merupakan bagian yang mengatakan kepada komputer bahwa jika nilai dari i adalah lebih kecil dari 25 maka mulai mengeksekusi statement-statement dari bookmark start.

Eksekusi yang gak berakhir-akhir

Dengan menggunakan statement Goto kamu dapat membuat komputer mengulangi sesuatu beberapa kali yang kamu mau. Sebagai contoh, kamu bisa mengambil contoh program Genap dan Ganjil dan ubah program itu seperti dibawah ini, dan program itu akan jalan selamanya. Kamu bisa menghentikan program ini dengan cara mengklik tombol Close(X) di sudut kanan atas jendela.



BAB 5 LOOPS

Loop For


Ambil lah sebuah program yang telah dibuat di bab sebelum bab ini.


Program diatas melakukan pencetakan angka-angka dari angka 1 sampai 24 berurutan. Proses penambahan variabel seperti ini sangat sering dilakukan dalam pemrograman jadi bahasa-bahasa pemrograman menyediakan sebuah metode yang lebih gampang untuk proses ini. Program diatas itu sebanding dengan program dibawah ini:


Dan keluarannya adalah:

Perhatikan bahwa kita telah mengurangi program awal dari 8 baris menjadi program dengan 4 baris, dan program itu masih melakukan hal yang sama dengan program 8 baris! Ingat sebelumnya kita sudah tahu bahwa biasanya ada banyak cara melakukan hal yang sama? Program ini adalah contoh yang tepat.

For..EndFor adalah dalam pengertian pemrograman, disebut sebuah loop. For..EndFor memungkinkan kamu untuk mengambil sebuah variabel, memberinya sebuah nilai awal dan nilai akhir dan biarkan komputer menambah-nambahkan variabel itu untuk mu. Setiap komputer meningkatkan nilai variabel, komputer menjalankan statement-statement antara For dan EndFor.

Tapi jika kamu mau variabel itu ditingkatkan oleh 2 bukan 1 -- seperti contohnya, kamu mau mencetak semua nomor ganjil antara 1 dan 24, kamu bisa menggunakan loop untuk melakukan itu.



Bagian Step 2 dari pernyataaan For memberitahu komputer untuk menaikkan nilai dari i sebanyak 2 bukan sebanyak 1. Dengan menggunakan Step kamu dapat merincikan berapapun peningkatan yang kamu mau. Bahkan kamu dapat menggunakan suatu nilai negatif sebagai step-nya dan membuat komputer menghitung mundur, kayak contoh berikut ini:




Loop While


Loop while adalah metode looping lainnya, yang berguna khusunya ketika jumlah loop tidak diketahui kedepan. Sedangkan loop For jalan untuk jumlah waktu yang sudah ditentukan sebelumnya, while loop berjalan hingga sebuah kondisi yang telah ditetapkan tercapai. Pada contoh dibawah, kita mengurangi separuh suatu angka hingga hasilnya lebih besar dari 1.



Didalam program diatas, kita memasukkan angka 100 kedalam variabel number dan kemudian menjalankan loop while selama isi variabel number itu lebih besar dari 1. Di dalam loop, kita cetak angka

Friday, 16 May 2014

Bermain dengan pointer C

#include<stdio.h>
main()
{
/*deklarasi variabel bertipe integer*/
int a = 1;
int b = 2;
int c = 3;

/*deklarasi variabel-variabel pointer p1,p2 dan p3 dengan menambahkan asteriks (*) didepannya*/
int *p1;
int *p2;
int *p3;

/*assignment alamat memori dari masing-masing variabel a, b, c ke variabel pointer p1, p2, p3*/
p1 = &a;
p2 = &b;
p3 = &c;

/* memunculkan nilai alamat memori darimasing-masing variabel dengan mencetak printf setiap variabel pointer */
printf("alamat memori variabel a: %d", p1);
printf("alamat memori variabel b: %d", p2);
printf("alamat memori variabel c: %d", p3);

}

Thursday, 15 May 2014

TP-LINK Bandwidth control

Bandwidth Control Rules List Help

This page shows the Bandwidth Control rules list.
  • ID - The sequence of entry.
  • Description - The information of description include address range, the port range and protocol of transport layer.
  • Egress Bandwidth - The max upload speed which through the WAN port, default number is 0.
  • Ingress Bandwidth - The max download speed which through the WAN port, default number is 0.
  • Enable - Rule status, show whether the rule takes effect.
  • Modify - Choose to modify or delete an existing entry.

Tabelisasi: Belajar inventarisasi

Yuk belajar inventarisasi. Kita lakukan di Microsot Excel saja.

Jenis-jenis objyek yang saya tahu sampai saat ini adalah benda dan peristiwa.

Pertama kita belajar mendata informasi/keterangan dari teman-teman kita.

Manusia

Object ID: Nama
Contoh:

Buku

Object ID terserah: bisa ISBN atau nama buku. Kita contohkan nomor ISBN saja
Contoh:


Barang elektronik

Setiap barang elektronik mempunyai?


Peristiwa/kegiatan/event
Contoh: Panen kelapa sawit, 1 bulan 2 kali panen.
Apa yang jadi objek id nya? Kita buat tanggal panen saja.
Apa saja properties setiap panen? Jumlah tandan/buah, jumlah pekerja, jumlah ton,



Wednesday, 14 May 2014

Mini troubleshooting

Tools:
1. Debug ip packet 100
2. Ping
3. Extended ping
4. Traceroute
5. Extended Traceroute

Tips belajar geografi

1. Draw the world first using pen, microsoft paint, etc. To give brain a visual.

2. Placement

Monday, 12 May 2014

Manfaatnya?

Aku bisa .... (Hal yang membuatmu bertambah)

Sejarah dan Standard C

Alur penciptaan C
Akar dari C adalah BCPL oleh Martin Richards tahun 1967.
Ken Thompson kemudian mengembangkan bahasa yang diesbut B tahun 1970.
Perkembangan selanjutnya dari bahasa B adlah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di AT&T Bell Laboratories.

Penggunaan pertama kali bahasa C
C pertama kali digunakan pada komputer PDP dari vendor DEC(Digital Equipment Corporation). Komputer PDP menggunakan sistem operasi UNIX

Varian bahasa C
Bahasa Turbo C oleh Borlan International telah dinyatakan mengikuti standar untuk bahasa C yang ditentukan oleh badan ANSI. Hal ini disebabkan Turbo C telah menyediakan 32 kata kunci yang telah ditetapkan oleh badan ANSI dengan tata cara penulisan (syntax) yang sama dengan yang telah ditetapkan ANSI.

32 kata kunci itu adalah:
auto, breakcase
char
const
continue
default
do
double
else


Konsep Dasar Pemrograman Bahasa C

Daftar isi dari buku Konsep Dasar Pemrograman Bahasa C oleh Jogiyanto Hartono, MBA,Ph.D
ISBN: 979-731-103-1
Penerbit ANDI

BAB1
Konsep Dasar C
1.1 Sejarah dan standar C
1.2 Alasa menggunakan bahasa C
1.3 Struktur Program C
1.4 Program C yang sederhana
1/5 File Judul
1.6 Gaya Penulisan Program C
1.7 Memecah Baris Statemen
1.8 Kata-kata kunci
1.9 Nama Pengenal
1.10 Deklarasi Variabel
1.11 Sekilas tentang konstanta, operator dan ungkapan
1.12 Statemen
1.12.1 Statemen Kosong
1.12.2 Statemen Ungkapan
1.12.3 Statemen Kendali
1.12.4 Statemen Jamak
1.13 PREPROCESSOR DIRECTIVE #define


BAB 2 KONSEP TIPE DATA
2.1 TIPE DATA
2.2 KONSTANTA
2.2.1 Konstanta Numerik Integer
2.2.2 Konstanta Numerik PEcahan
2.2.3 Konstanta Karakter dan Konstanta String
2.2.4 Konstatnta Karakter Escape

2.3 VARIABEL
2.3.1 Mendeklarasikan Variabel
2.3.2 Deklarasi dengan memberi nilai awal variabel
2.4 PEMBAHASAN TIPE-TIPE DATA
2.4.1 Tipe Data Numerik Integer
2.4.2 Tipe Data Karakter
2.4.3 Tipe Data String

BAB 3 OPERATOR
3.1 MACAM-MACAM OPERATOR YANG TERSEDIA
3.2 OPERATOR ARITMATIKA
3.3 OPERATOR UNARY
3.3.1 Operator Unary Munus
3.3.2 Operator Unary ++ dan --
3.3.3 Operator Unary (tipe)
3.3.4 Operator Unary sizeof
3.4 OPERATOR PENGERJAAN
3.5 OPERATOR HUBUNGAN
3.6 OPERATOR LOGIKA
3.7 OPERATOR KOMA
3.8 OPERATOR BITWISE
3.8.1 Operator bitwise Komplemen Satu
3.8.2 Operator Bitwise Logika
3.8.3 Operator Pergeseran Bit
3.8.4 Operator Bitwise Pengerjaan

BAB 4 MENAMPILKAN HASIL
4.1 FUNGSI-FUNGSI YANG DIGUNAKAN
4.2 ALAT-ALAT OUTPUT
4.3 MENAMPILKAN HASIL TIDAK TERFORMAT
4.4 MENAMPILKAN HASIL TERFORMAT
4.4.1 Menampilkan nilai karakter
4.4.2 Menampilkan nilai string
4.4.3 Menampilkan Nilai Desicmal Integer
4.4.4 Menampilkan Nilai Desimal Pecahan
4.4.5 Menampilkan Nilai Heksadesimal
4.4.6 Menampilkan Nilai Oktal
4.4.7 Menampilkan Nilai Pointer
4.5 MENAMPILKAH HASIL DI PRINTER
4.6 MEMBERSIHKAN LAYAR
4.7 MELETAKKAN KURSOR DI POSISI LAYAR TERTENTU

BAB 5 MEMASUKKAN DATA
5.1 FUNGSI-FUNGSI YANG DIGUNAKAN
5.2 MEMASUKKAN DATA TIDAK TERFORMAT
5.2.1 Memasukkan Nilai Karakter
5.2.2 Memasukkan Nilai String
5.3 MEMASUKKAN DATA TERFORMAT
5.3.1 Memasukkan nilai karakter
5.3.2 Memasukkan Nilai String
5.3.4 Memasukkan Nilai Numerik
5.4 MENGHAPUS ISI PENYANGGA KEYBOARD
5.5 MENGENDALIKAN PROSES PROGRAM

BAB 6 MENGENDALIKAN PROSES PROGRAM
6.1 ARTI MENGENDALIKAN PROSES PROGRAM
6.2 PENYELEKSI KONDISI
6.2.1 Statemen If
6.2.1.1. Bentuk if Tunggal sederhana
6.2.1.2 Bentuk if Tunggal Blok Statemen
6.2.1.3 Bentuk if-else
6.2.1.4 Bentuk if-else-if ... else
6.2.1.5 Bentuk if Bersarang
6.2.1.6 Bentuk if Dengan Kondisi BerupaSuatu Variabel
6.2.1.7 Bentuk if Kondisi Jamak
6.2.1.8 Operator
6.2.2 Statemen Switch
6.2.2.1 Statemen switch Tunggal
6.2.2.2 Statemen switch Bersarang
6.3 PERULANGAN
6.3.1 Statemen for
6.3.2 Statemen while
6.3.3 Perulangan do-while
6.3.4 Statemen Continue
6.4 LOMPATAN

BAB 7 OPERASI KARAKTER DAN STRING
7.1 OPERASI KARAKTER
7.1.1 Menyeleksi Status Nilai Karakter
7.1.2 Mengonversikan Nilai Karakter
7.2 OPERASI STRING
7.2.1 Panjang Nilai String
7.2.2 Menyalin Nilai String
7.2.3 Menggabung Nilai String
7.2.4 Membandingkan Dua Nilai String
7.2.5 Membandingkan Dua Nilai String
7.2.6 Mencari Nilai Karakter di String
7.2.7 Membuang Spasi di String
7.2.7 Mengambil Bagian String

BAB 8 OPERASI NUMERIK DAN MATEMATIKA
8.1 FILE JUDUL
8.2 KONSTANTA TERDEFINISI
8.3 FUNGSI-FUNGSI STANDAR
8.3.1 Fungsi-fungsi untuk memutlakkan Nilai
8.3.2 Fungsi-fungsi Untuk Pembulatan Nilai
8.3.3 Fungs-fungsi Untuk pengakaran dan Pemangkatan
8.3.4 Fungsi-fungsi untuk Eksponensial
8.3.5 Fungsi Untuk Menghitung sisa Pembagian Bulat
8.3.6 Fungsi-fungsi Logaritma
8.3.7 Fungsi-fingsi Trigonometri
8.3.8 Fungsi-fungsi Hiperbolis
8.3.9 Fungsi-fungsi Penghasil Bilangan Acak
8.3.10 Fungsi Untuk Konversi Karakter ke Numerik


BAB 9 LARIK
9.1 PENGERTIAN LARIK
9.2 DEKLARASI LARIK
9.3 BEDA LARIK DENGAN VARIABEL BIASA
9.4 INISIALISASI LARIK TIDAK BERUKURAN
9.5 LARIK DIMENSI DUA
9.6 LARIK STRING
9.7 INISIALISASI LARIK STRING TAK BERUKURAN

BAB 10 POINTER
10.1 POINTER DASAR
10.2 OPERATOR POINTER
10.3 DEKLARASI POINTER
10.4 OPERASI POINTER
 10.4.1 Operasi Pengerjaan
10.4.2 Operasi Aritmatika
10.4.3 Operasi Logika
10.5 OPERASI POINTER UNTUK LARIK
10.5.1 Mengakses Elemen Larik Menggunakan Pointer
10.5.2 Memberi Nilai Elemen Larik Menggunakan Pointer
10.5.3 Indeks atau Pointer
10.6 POINTER SEBAGAI SUATU LARIK
10.6.1 Pointer Sebagai suatu Larik dimensi satu
10.6.2 Pointer Sebagai larik Dimensi Dua
10.6.3 Pointer Sebagai lari Dimensi Tiga
10.7 LARIK POINTER
10.8 ANALISI PERBEDAAN MEMORI
10.9 POINTER KE POINTER

BAB 11 FUNGSI
11.1 KONSEP DASAR FUNGSI
11.2 MENDEFENISIKAN FUNGSI
11.3 DEKLARASI FUNGSI
11.4 PROTOTYPE FUNGSI
11.4 HASIL BALIK FUNGSI
11.6 RUAN-LINGKUP VARIABEL
11.6.1 Variabel Loka
11.6.2 Variabel Global
11.6.3 Variabel Statik
11.7 PENGIRIMAN PARAMETER
11.7.1 Pengiriman Parameter Secara Nilai
11.7.2 Pengiriman Parameter Secara Acuan
11.8 PENGIRIMAN PARAMETER BERUPA LARIK
11.8.1 Pengiriman Parameter Berupa Larik Dimensi Satu
11.8.2 Pengiriman Parameter Berupa Larik Dimensi Dua
11.9 PENGIRIMAN PARAMETER BERUPA POINTER
11.10 PENGIRIMAN PARAMETER BERUPA FUNGSI
11.11 REKURSI

BAB 12 TIPE DATA TINGKAT LANJUT
12.1 PENDAHULUAN
12.2 ENUMERASI
12.3 STRUKTUR
12.3.1 Mendeklarasikan Suatu Struktur
12.3.2 Mengakses elemen-elemen struktur
12.3.2 Struktur berisi struktur yang lain
12.3.3 Larik Struktur
12.4 MEDAN DIGIT BINARI
12.5 UNION
12.6 KATA KUNCI typedef
12.7 POINTER UNTUK STRUKTUR
12.8 PENGIRIMAN STRUKTUR KE FUNGSI
12.8.1 Pengiriman Parameter Berupa Elemen Struktur
12.8.2 Pengiriman Parameter Berupa Seluruh Struktur
12.8.3 Pengiriman Struktur Dengan Hasil Balik Struktur
12.8.4 Pengiriman Struktur Dengan Hasil Balik Pointer
12.9 DAFTAR BERKAIT
12.9.1 Daftar Berkait Metode MTKP
12.9.1.1 Membuat Daftar Berkait Baru
12.9.1.2 Menambah Simpul di Daftar Berkait
12.9.1.3 Menampilkan Simpul Tertentu
12.9.1.4 Menampilkan Semua Simpul
12.9.1.5 Menghapus Simpul Tertentu
12.9.1.6 Mencari Simpul Tertentu
12.9.2 Daftar Berkait Metode MPKP

BAB 13 FILE DATA
13.1 PENDAHULUAN
13.2 FILE BERPENYANGGA
13.2.1 Membuka File
13.2.2 Menutup File
13.2.3 Meletakkan Data ke Penyangga
13.2.3.1 Meletakkan Sebuah Karakter ke Penyangga
13.2.3.2 Meletakkan Sebuah Integer ke Penyangga
13.2.3.3 Meletakkan Sebuah String ke Penyangga
13.2.3.4 Meletakkan Data Terformat ke Penyangga
13.2.3.5 Meletakkan Blok Data ke Penyangga
13.2.4 Mengarahkan Posisi Pembacaan atau Perekaman
13.2.4.1 Mengarahkan Posisi Pembacaan atau Perekaman di Awal File
13.2.4.2 Mengarahkan Posisi Pembacaan atau perekaman di tengah file
13.2.4.3 Mengarahkan Posisi Perekaman di Akhir File
13.2.5 Mendapatkan Posisi Pembacaan dan Perekaman
13.2.6 Alternatif Pendeteksian Kesalahan
13.2.7 Alternatif Pembukaan File
13.2.8 Membuka Dua Buah File Sekaligus
13.2.9 Contoh Aplikasi
13.3 FILE TIDAK BERPENYANGGA
13.3.1 Membuka File
133.2 Membuat File Baru
13.3.3 Menutup File
13.3.4 Merekamkan Data ke File
13.3.5 Membaca data dari File
13.3.6 Mengarhkan Posisi Pembacaan atau Perekaman
13.5 HUBUNGAN ANTARA FILE BERPENYANGGA DENGAN TIDAK BERPENYANGGA
13.5 MEMANIPULASI FILE
13.5.1 Mengecek Keberadaan Fle
13.5.2 Mengganti Nama File
13.5.3 Menghapus File Dari Disk
13.5.4 Mendapatkan Nomor Pengenal File
13.5.5 Mendapatkan Ukuran dari File

BAB 14 HUBUNGAN ANTAR BAGIAN PROGRAM
14.1 PENDAHULUAN
14.2 HUBUNGAN DENGAN FUNGSI DI FILE PROGRAM YANG LAIN
14.3 HUBUNGAN DENGAN FILE PUSTAKA
14.4 PARAMETER BARIS PERINTAH
14.5 HUBUNGAN DENGAN PROGRAM YANG LAIN
14.5.1 Prose Anak Dengan Kelompok Fungsi Exec
14.5.2 Proses Anak Dengan Kelompok Fungsi Spawn
14.6 HUBUNGAN DENGAN PERINTAH DOS

LAMPIRAN 1. KODE ASCII
LAMPIRAN 2. FUNGSI-FUNGSI PUSTAKA
LAMPIRAN 3. MAKRO-MAKRO PUSTAKA
DAFTAR PUSTAKA

Hipotenusa VBNET

    Sub Main()
start:
        Dim x As Integer = Nothing
        Dim y As Integer = Nothing
        Dim r As Double = Nothing
        Console.WriteLine("SELAMAT DATANG DI PROGRAM MENCARI NILAI HIPOTENUSA")
        Console.WriteLine("Masukkan nilai x anda: ")
        x = Console.ReadLine()
        Console.WriteLine("Masukkan nilai y anda: ")
        y = Console.ReadLine()
        r = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2))
        Console.WriteLine("Nilai hipotenusa kamu adalah: " & r)
        Console.WriteLine("Lagi?(y/n)")
        Dim lagi = Console.ReadLine()
        If lagi = "y" Then
            GoTo start
        End If
        Console.WriteLine("BYEEEEE!!!!! SIMPLE BUKAN??")
        Console.ReadLine()
    End Sub

Sunday, 11 May 2014

Unix

Everything is a file

Unix

Everything is a file

Unix

Everything is a file

Network programming in the .NET framework

Source: Here
1. Network programming How-to topics
2. Introducing pluggable protocols
3. Requesting data
4. Programming plugable protocols
5. Using Application protocols
6. Internet Protocol Version 6
7. Configuring internet applications
8. Network tracing in the .NET framework
9. Cache management for network applications
10. Security in network programming
11. Best practices in System.Net classes
12. Accessing the internet through a Proxy
13. NetworkInformation
14. Changes to System.Uri namespace in Version 2.0
15. International Resource Identifier Support in System.uri
16. Socket Performance Enhancements in Version 3.5
17. Peer name resolution protocol
18. Peer-to-peer collaboration
19. Changes to NTLM authentication for HttpWebRequest in version 3.5 SP1
20. Integrated Windows Authentication with extended protection
21. NAT traversal using IPv6 and Teredo
22. Network Isolation for Windows Store Apps
23. Network programming samples
 

Development Guide .NET framework topics

1. Application essentials
2. Framework design guidelines
3. Data and modelling
4. Client applications
5. Web Applications with ASP.NET
6. Service-oriented applications with WCF
7. Parallel processing and Concurrency
8. Network Programming in the .NET framework
9. Configuring Apps
10. Compiling Apps with .NET Native
11. Security
12. Debugging, Tracing and Profiling
13. Developing for multiple platforms
14. Deployment
15. Performance
16. Building workflows
17. Advanced Reading

Source: Here

Bilangan

1. Bilangan bulat (tidak berkoma)
2. Bilangan berkoma

chunking

Cara mengingat formula yang baru kamu masukkan di microsoft excel

Cara mengingat formula yang baru kamu masukkan di microsoft excel adalah dengan:
Mengetik kembali formula itu ke dalam notepad atau ke blog seperti yang saya lakukan ini(tanpa harus melihat formula yang baru kamu masukkan)
Contoh:
=sqrt(power(a1,2)+power(b1,2))
alias nilai hypotenusa

Bila cara ini kamu lakukan dan kamu publish (jika menggunakan media blog) kamu akan melihat/memvisualisasikan gambaran global / keseluruhannya dan kamu sendiri jadi lebih mengerti.

Semoga bermanfaat.

Tidak ada ibu yang sempurna yang ada ibu yang berusaha yang memberi yang terbaik bagi anak-anaknya


Penemuan hukum / teorema phytagoras

Ditemukannya hukum phytagoras adalah secara tidak sengaja. Ketika seseorang bermain dengan kotak persegi sebanyak 12 buah. Ia menyusun kotak itu 3 kotak kearah utara kemudian dilanjut dengan 4 kotak kearah timur, dan mendapati dengan terkejut bahwa jumlah kotak kearah titik asal adalah 5 kotak


Kemudian ia mengembangkan penemuan ini dengan memperbanyak jumlah kotak mainannya. Kali ini ia membuat kotak sebanyak

Belum ada penggaris.
Mengambil 10 sampel nilai yang baik(tidak berkoma).
Merumuskan
 

Gaya-gaya dalam fisika dan menyebabkan apa

1. Gaya gravitasi
Menyebabkan benda yang bermassa (mempunyai massa) tertarik kebawah ke arah bumi alias jatuh ke bumi. Besar gaya gravitasi = 9.8 m/s^2

2. Gaya gesek
Menyebabkan benda yang bergerak ke kiri atau bergerak ke kanan tertahan. Besar gaya gesek = ....

3. Gaya electromotive
Menyebabkan elektron bergerak (motivate). Besarnya gaya electromotive = ....

Pelukis1

GraphicsWindow.MouseDown = catat
GraphicsWindow.MouseMove = gambar
Sub catat
  x1 = GraphicsWindow.MouseX
  x2 = GraphicsWindow.MouseY
EndSub

Sub gambar
  If Mouse.IsLeftButtonDown Then
    GraphicsWindow.DrawLine(x1,x2,GraphicsWindow.mousex,GraphicsWindow.mousey)
  EndIf
EndSub

Saturday, 10 May 2014

Bola Asik (aplikasi game menggunakan Smallbasic)

Copas code berikut ini ke editor bahasa program Smallbasic kamu dan jalankan (run/F5):

bola1 = Shapes.AddEllipse(25,25)
GraphicsWindow.BrushColor = "Red"
bola2 = Shapes.AddEllipse(25,25)
GraphicsWindow.BrushColor = "Green"
bola3 = Shapes.AddEllipse(25,25)
awal:
shapes.animate(bola1, Math.GetRandomNumber(500), Math.GetRandomNumber(500),1000)
shapes.animate(bola2, Math.GetRandomNumber(500), Math.GetRandomNumber(500),1000)
shapes.animate(bola3, Math.GetRandomNumber(500), Math.GetRandomNumber(500),1000)
Program.Delay(1000)
Goto awal

Thursday, 8 May 2014

Hand-on LAB: Konfigurasi EIGRP dasar




Learning objective:
1. Cable a network sesuai dengan diagram topologi
2. Menghapus startup configuration dan me-reload router ke state awal
3. Melakukan tugas konfigurasi dasar pada sebuah router
4. Mengkonfigurasi dan mengaktifkan interface
5. Mengkonfigurasi ruting EIGRP di semua ruter
6. Memastikan EIGRP ruting menggunakan perintah show
7. Mematikan automatic summerization
8. Mengkonfigurasi manual summerization
9. Mengkonfigurasi sebuah default route statik
10. Mempropagasikan default route ke tetangga-tetangga EIGRP
11. Mendokumentasikan konfigurasi EIGRP

1. Cable a network sesuai dengan diagaram topologi
2. Membersihkan konfigurasi-konfigurasi existing pada ruter-ruter
3. Melakukan konfigurasi dasar ruter: konfigurasi hostname ruter, disable dns lookup, mengkonfigurasi EXEC mode password, mengkonfigurasi banner motd, mengkonfigurasi password untuk koneksi console, mengkonfigurasi sebuah password untuk koneksi-koneksi VTY.
4. Mengkonfigurasikan IP address dan mengaktifkan interface-interface di ruter R1, R2 dan R3
5.  Memastikan alamat IP sudah bener dan interface sudah up dengan show ip interface brief.
6. Mengkonfigurasi alamat IP dan default-gateway PC1, PC2 dan PC3
7. Mengkonfigurasi EIGRP pada ruter R1
7.1 Meng-enable EIGRP
R1(config)# router eigrp 1
7.2 Mengkonfigurasi/memasukkan network yang directly connected dengan R1
Ada 3 network / subnetwork yang terkoneksi dengan R1: 172.16.1.0/24, 172.16.3.0/30, 192.168.10.4/30.
Untuk memasukkan kedua network/subnetwork 172.16.1.0/24 dan 172.16.3.0/30 ke dalam network yang akan di advertise EIGRP cukup dengan satu statement yaitu: network 172.16.0.0, seperti contoh berikut:
R1(config-router)# network 172.16.0.0
7.3 Mengkonfigurasi ruter untuk mengadvertise(mengiklankan/mempromosikan) network 192.168.10.4/30
Gunakan wildcard-mask option untuk hanya subnet nya saja yang diadvertise tidak seluruh clasful network 192.168.10.0/24

Intinya: kita kan mau mengadvertise 192.168.10.4/30 (sebuah bagian dari 192.168.10.0/24) bukan seluruhnya 192.168.10.0/24.

Kalau 192.168.10.4/30 angka-angkanya adalah 192.168.10.4, 192.168.10.5, 192.168.10.6, 192.168.10.7

Dan kalau 192.168.10.0/24 angka-angkanya adalah 192.168.10.0, 192.168.10.1, 192.168.10.2, 192.168.10.3, 192.168.10.4, 192.168.10.5, 192.168.10.6, 192.168.10.7, 192.168.10.8, dan seterusnya sampai 192.168.10.255

Berarti 192.168.10.4/30 adalah bagian (subset) dari himpunan angka dari 192.168.10.0/24.

Sementara kita hanya ingin menginformasikan hanya alamat 192.168.10.4, 192.168.10.5, 192.168.10.6 dan 192.168.10.7 bukan seluruh angka dari 192.168.10.0/24. Bagaimana caranya? Dengan menggunakan penjelasan yang lebih rinci dari sekedar menggunakan perintah network 192.168.10.0, yaitu dengan menambahkan keterangan/penjelasan wildcard mask yaitu network 192.168.10.4 0.0.0.3. Dari mana angka 0.0.0.3 itu? Itu berasal dari pengurangan mask dari 192.168.10.4 yaitu /30 atau 255.255.255.252 dengan 255.255.255.255 menjadi
255-255 = 0
255-255 = 0
255-255 = 0
255-252 = 3

Mungkin penjelasannya kurang jelas, nanti akan lebih dijelaskan
R1(config-router)# network 192.168.10.4 0.0.0.3

8. Mengkonfigurasi EIGRP pada ruter R2 dan R3
8.1 Enable EIGRP pada router R2. Gunakan process ID yang sama dengan process ID yang digunakan pada waktu meng-enable EIGRP di R1 yaitu process ID 1.
R2(config)# router eigrp 1
8.2 Masukkan network statement
R2 terhubung dengan network
10.1.1.1/30
172.16.2.0/24
172.16.3.0/30
192.168.10.8/30
Defenisikan network ini kedalam EIGRP dengan menggunakan keyword network.
R2(config-router)# network 172.16.0.0
R2(config-router)# network 192.168.10.8 0.0.0.3

8.3 Konfigurasi EIGRP R3
8.3.1 Enable EIGRP pada router R1. Gunakan process ID yang sama dengan process ID yang digunakan pada waktu meng-enable EIGRP di R1 dan R2 yaitu process ID 1.
R3(config)# router eigrp 1
8.3.2 Masukkan network statement
R3 terhubung dengan network (bisa dilihat dari diagram topologi):
192.168.10.8/30, network yang terhubung ke interface fa0/0
192.168.1.0/24, network yang terhubung ke interface
192.168.10.4/30, network yang terhubung ke interface
Defenisikan network ini kedalam EIGRP dengan menggunakan keyword network.
R3(config-router)# network 192.168.1.0
R3(config-router)# network 192.168.10.4 0.0.0.3
R3(config-router)# network 192.168.10.8 0.0.0.3

9. Memastikan EIGRP
9.1. Melihat neighbors (bertetangga dalam EIGRP) dari ruter R1 dengan perintah show ip eigrp neighbors
Pada R1 gunakan perintah show ip eigrp neighbors untuk melihat tabel neighbors (tetangga) dan sekalian memastikan bahwa R1 sudah membangun sebuah kekerabatan dengan ruter tetangganya R2 dan R3. Kamu harus bisa melihat alamat IP dari setiap router yang bertetangga dan interface yang digunakan R1 untuk menjangkau tetangga itu.


9.2. Melihat informasi protokol routing di R1 dengan show ip protocols
Pada ruter R1, gunakan perintah show ip protocols untuk melihat informasi tentang penjalanan protokol ruting. Perhatikan parameter berikut: protokol, process ID dan network-network.

10. Memeriksa routing tabel router R1, R2 dan R3
Menurutmu seperti apakah tampilan routing tabel dari R2 bila no auto-summary tidak dikonfigurasikan kedalam konfigurasi EIGRP semua router? Yup, di R2 akan muncul sedikit ketidak-okean. Kenapa?

10. Mengenal successor dan feasible successor dan feasible distancenya
Siapa itu successor? Successor adalah salah satu dari ruter tetangga (entah itu R1 atau R2), yang diandalkan buat nerusin paket dari ruter kita ke network yang tidak directly-connected dengan ruter kita. Siapa successor kita (R2) untuk network 1

Siapa itu feasible successor? Feasible successor adalah backup / cadangan dari successor. Jadi kalau router successor kita lagi berhalangan; kita lempar ke feasible successor biar feasible successor yang meneruskan.

R2# show ip route
 Jawab pertanyaan berikut dengan modal routing tabel dari R2 diatas:
1. Apa jalur terbaik ke PC1(172.16.1.10/24)?
2. Berapa alamat IP ruter successor dan siapa nama ruter successor untuk jalur terbaik ke PC1 diatas?
3. Berapa feasibel distance ke network dimana PC1 itu berada?

Jawab:
1. D 172.16.1.0/24 [90/40514560] via 172.16.3.1, 00:00:52, Serial0/0/0
2. 172.16.3.1, Router
3. 40514560

Wednesday, 7 May 2014

Hand-on LAB: Konfigurasi dasar RIP v2



1. Cable network sesuai dengan diagram topologi
2. Load skrip yang telah disediakan ke dalam router
3. Memeriksa status terkini dari network
4. Mengkonfigurasi RIPv2 di semua router
5. Memeriksa rute-rute dari automatic summerization
6. Memeriksa update routing-routing dengan debug ip rip
7. Menonaktifkan automatic summerization
8. Memeriksa tabel ruting
9. Memeriksa keterkoneksian jaringan
10. Mendokumentasikan Konfigurasi RIPv2

1. Cable a network
2. Clear the configuration on each router
3. Load following scrip to R1
!
hostname R1
!
!
!
interface FastEthernet0/0
ip address 172.30.1.1 255.255.255.0
duplex auto
speed auto
no shutdown
!
interface FastEthernet0/1
ip address 172.30.2.1 255.255.255.0
duplex auto
speed auto
no shutdown
!
interface Serial0/0/0
ip address 209.165.200.230 255.255.255.252
clock rate 64000
no shutdown
!
router rip
passive-interface FastEthernet0/0
passive-interface FastEthernet0/1
network 172.30.0.0
network 209.165.200.0
!
line con 0
line vty 0 4
login
!
end

4. Load the following script to R2
hostname R2
!
!
!
interface FastEthernet0/0
ip address 10.1.0.1 255.255.0.0
duplex auto
speed auto
no shutdown
!
interface Serial0/0/0
ip address 209.165.200.229 255.255.255.252
no shutdown
!
interface Serial0/0/1
ip address 209.165.200.233 255.255.255.252
clock rate 64000
no shutdown
!
router rip
passive-interface FastEthernet0/0
network 10.0.0.0
network 209.165.200.0
!
line con 0
line vty 0 4
login
!
end

5. Load the following script to R3
hostname R3
!
!
!
interface FastEthernet0/0
ip address 172.30.100.1 255.255.255.0
duplex auto
speed auto
no shutdown
!
interface Serial0/0/1
ip address 209.165.200.234 255.255.255.252
no shutdown
!
interface Loopback0
ip address 172.30.110.1 255.255.255.0
!
interface Loopback1
ip address 172.30.200.17 255.255.255.240
!
interface Loopback2
ip address 172.30.200.33 255.255.255.240
!
router rip
passive-interface FastEthernet0/0
network 172.30.0.0
network 209.165.200.0
!
line con 0
line vty 0 4
login
!
end

6.Cek kedua serial link di R2 up up dengan show ip interface brief
7. Test ping dari R2 ke host di PC1, Test ping dari R2 ke host di PC4
8. Tes ping antar PC
Ping dari PC1 ke PC2
Ping dari PC1 ke PC3
Ping dari PC1 ke PC4
Ping dari PC4 ke PC2
Ping dari PC4 ke PC3

9. Cek keadaan routing tabel R2.
Ada dua entri di tabel ruting R2 untuk network 172.30.0.0/16. Kenapa? Karena R1 dan R3 mengadvertise 172.30.0./16 bersamaan. Oleh karena hal itu, R2 memutuskan untuk menaruh network ini di routing tabel dengan alamat next-hop yang berbeda--satu entry dengan R1 sebagai alamat next-hopnya, satu entry lagi dengan R3 sebagai alamat next-hopnya (biar adil :D). Contoh:


Oleh karena format ruting tabel R2 begini, R2 jadi mengirimkan paket (contoh paket ping / ICMP) ke tujuan 172.30.0.0/16 (contoh: tujuan host 172.16.30.1.1), akan mengalternate--paket ICMP pertama ke 209.165.200.230(R1) paket kedua ke 209.165.200.234(R3), paket ketiga ke 209.165.200.230(R1), paket keempat 209.165.200.234(R2) begitu seterusnya. Padahal kan host ini (PC1) ini ada di R1 (terhubung dengan R1), kenapa paket ICMP itu dikirim ke R3, siapa yang akan membalas disana? Tidak ada!

Jadi semua ini gara-gara R1 dan R3 terpancing untuk mensummerize/meringkas network 172.30.1.0/24, 172.30.2.0/24 dan 172.30.100.0/24 menjadi 172.30.0.0/16 dan mengadvertisenya ke R2 ya?

Trus kalau begitu, kapan R1 dan R3 terpancing untuk mensummerize / meringkas network 172.30.1.0/24, 172.30.2.0/24 (network yang directly-connected dengan R1), 172.30.100.0/24 (network yang directly-connected dengan R3) menjadi 172.30.0.0/16 sehingga R2 menerima 172.30.0.0 dari kedua ruter ini?

10. Memeriksa tabel ruting di ruter R1 dengan show ip route
11. Memeriksa tabel ruting di R3, show ip route
12. Memeriksa paket RIPv1 yang diterima oleh R2 dengan debug ip rip
R2 menerima dua buah informasi route 172.30.0.0 dari kedua router R1 dan R3 dengan jumlah hop yang sama yaitu 1 hop, maka R2 menyimpulkan informasi route ini adalah equal (seimbang) dalam hal cost. Coba kalau misalnya R1 mengirim informasi route 172.30.0.0 dengan jumlah hop 1, dan R3 mengirim informasi route 172.30.0.0 dengan jumlah hop 2, R2 tidak akan menyimpulkan kedua informasi route ini equal dalam hal cost, dengan kata lain, R2 akan menyimpilkan informasi route dari R1 lebih baik dari informasi yang diterima dari R3.
13.