beranda

Kamis, 19 April 2012

Inheritance & Polimorfisme

Pewarisan / Inheritance
Pengertian
Inheritance (pewarisan) proses pewarisan data dan method dari suatu
kelas kepada kelas lain.
Pewarisan bersifat menyeluruh
Semua data dan method milik kelas asalnya diturunkan ke kelas baru.
Kelas yang mewariskan Super Class atau Kelas Induk
Kelas yang diwariskan Sub Class atau Kelas Anak
Misal :
kelas B adalah kelas anak dari kelas A, maka sifat sifat dari kelas A
otomatis akan dimiliki juga oleh kelas B.
Jika kelas induk merupakan turunan dari kelas lain, maka data dan method
yang berasal dari kelas tersebut akan ikut diwariskan pula kepada kelas
anaknya.
Contoh :
o Kelas C adalah kelas anak dari kelas B
o Kelas B merupakan kelas anak dari kelas A.
o Maka sifat sifat yang diwariskan kelas A ke kelas B juga akan
diwariskan ke kelas C.
Keyword untuk pewarisan : extends
 
Contoh Program
class Induk {
private String var1; //hak akses private berarti tidak dapat diakses oleh kls
anak
public int var2; //hak akses public berarti dapat diakses oleh kls anak
//konstruktor
Induk (){
}
//method
public void cetakData() {
}
}
class Anak extends Induk{
private String dataAnak; //variabel
//konstruktor
Anak () {
}
public void cetak() {
cetakData();//method milik Induk
// ada jg yang memanggil dgn super.cetakData()
}
}
class DemoPewarisan {
public static void main(String args[]) {
Anak anak = new Anak();
anak.cetak();
anak.cetakData();
System.out.println("Demo Pewarisan");
System.out.println("isi var 2="+anak.var2);
}
}

Output Program:
C:\Documents and Settings\suherman\My Documents>javac
DemoPewarisan.java
C:\Documents and Settings\suherman\My Documents>java DemoPewarisan
Demo Pewarisan
isi var 2=0


Polimorfisme
Polimorfisme sesuatu yang memiliki banyak bentuk.
Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang
memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda
sehingga listing code implementasinya juga berbeda

Contoh Program
class Hewan {
private String jenis;
private int kaki;
Hewan (){
}
Hewan (String jenis, int kaki){
this.jenis = jenis;
this.kaki = kaki;
}
public void bersuara() {
System.out.print("suara hewan "+jenis+" berkaki"+kaki);
}
}
class Anjing extends Hewan {
Anjing() {
super();
}
public void bersuara() { //overriding method
System.out.println("guk guk guk....");
}
}
class Kucing extends Hewan {
Kucing(String jenis, int kaki) {
super(jenis, kaki);
}
public void bersuara() { //overriding method
super.bersuara();
System.out.println( miaowwww....");
}
}
class DemoPoli {
public static void main(String args[]) {
Anjing doggy = new Anjing();
Kucing tom = new Kucing("Kucing", 4);
doggy.bersuara();
tom.bersuara();
}}


Output Program
C:\Documents and Settings\suherman\My Documents>javac DemoPoli.java
C:\Documents and Settings\suherman\My Documents>java DemoPoli
guk guk guk....
suara hewan Kucing berkaki 4 miaowwww....

Kamis, 12 April 2012

Penghitungan Subnetting, Siapa Takut?

Penghitungan Subnetting, Siapa Takut?

subnetrouter2.JPGSetelah anda membaca artikel Konsep Subnetting, Siapa Takut? dan memahami konsep Subnetting dengan baik. Kali ini saatnya anda mempelajari teknik penghitungan subnetting. Penghitungan subnetting bisa dilakukan dengan dua cara, cara binary yang relatif lambat dan cara khusus yang lebih cepat. Pada hakekatnya semua pertanyaan tentang subnetting akan berkisar di empat masalah: Jumlah Subnet, Jumlah Host per Subnet, Blok Subnet, dan Alamat Host- Broadcast.
Penulisan IP address umumnya adalah dengan 192.168.1.2. Namun adakalanya ditulis dengan 192.168.1.2/24, apa ini artinya? Artinya bahwa IP address 192.168.1.2 dengan subnet mask 255.255.255.0. Lho kok bisa seperti itu? Ya, /24 diambil dari penghitungan bahwa 24 bit subnet mask diselubung dengan binari 1. Atau dengan kata lain, subnet masknya adalah: 11111111.11111111.11111111.00000000 (255.255.255.0). Konsep ini yang disebut dengan CIDR (Classless Inter-Domain Routing) yang diperkenalkan pertama kali tahun 1992 oleh IEFT.
Pertanyaan berikutnya adalah Subnet Mask berapa saja yang bisa digunakan untuk melakukan subnetting? Ini terjawab dengan tabel di bawah:
Subnet Mask Nilai CIDR
255.128.0.0 /9
255.192.0.0 /10
255.224.0.0 /11
255.240.0.0 /12
255.248.0.0 /13
255.252.0.0 /14
255.254.0.0 /15
255.255.0.0 /16
255.255.128.0 /17
255.255.192.0 /18
255.255.224.0 /19
Subnet Mask Nilai CIDR
255.255.240.0 /20
255.255.248.0 /21
255.255.252.0 /22
255.255.254.0 /23
255.255.255.0 /24
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30


SUBNETTING PADA IP ADDRESS CLASS C
Ok, sekarang mari langsung latihan saja. Subnetting seperti apa yang terjadi dengan sebuah NETWORK ADDRESS 192.168.1.0/26 ?
Analisa: 192.168.1.0 berarti kelas C dengan Subnet Mask /26 berarti 11111111.11111111.11111111.11000000 (255.255.255.192).
Penghitungan: Seperti sudah saya sebutkan sebelumnya semua pertanyaan tentang subnetting akan berpusat di 4 hal, jumlah subnet, jumlah host per subnet, blok subnet, alamat host dan broadcast yang valid. Jadi kita selesaikan dengan urutan seperti itu:
  1. Jumlah Subnet = 2x, dimana x adalah banyaknya binari 1 pada oktet terakhir subnet mask (2 oktet terakhir untuk kelas B, dan 3 oktet terakhir untuk kelas A). Jadi Jumlah Subnet adalah 22 = 4 subnet
  2. Jumlah Host per Subnet = 2y – 2, dimana y adalah adalah kebalikan dari x yaitu banyaknya binari 0 pada oktet terakhir subnet. Jadi jumlah host per subnet adalah 26 – 2 = 62 host
  3. Blok Subnet = 256 – 192 (nilai oktet terakhir subnet mask) = 64. Subnet berikutnya adalah 64 + 64 = 128, dan 128+64=192. Jadi subnet lengkapnya adalah 0, 64, 128, 192.
  4. Bagaimana dengan alamat host dan broadcast yang valid? Kita langsung buat tabelnya. Sebagai catatan, host pertama adalah 1 angka setelah subnet, dan broadcast adalah 1 angka sebelum subnet berikutnya.
  5. Subnet
    192.168.1.0
    192.168.1.64
    192.168.1.128
    192.168.1.192
    Host Pertama
    192.168.1.1
    192.168.1.65
    192.168.1.129
    192.168.1.193
    Host Terakhir
    192.168.1.62
    192.168.1.126
    192.168.1.190
    192.168.1.254
    Broadcast
    192.168.1.63
    192.168.1.127
    192.168.1.191
    192.168.1.255
Kita sudah selesaikan subnetting untuk IP address Class C. Dan kita bisa melanjutkan lagi untuk subnet mask yang lain, dengan konsep dan teknik yang sama. Subnet mask yang bisa digunakan untuk subnetting class C adalah seperti di bawah. Silakan anda coba menghitung seperti cara diatas untuk subnetmask lainnya.
Subnet Mask Nilai CIDR
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30


SUBNETTING PADA IP ADDRESS CLASS B
Berikutnya kita akan mencoba melakukan subnetting untuk IP address class B. Pertama, subnet mask yang bisa digunakan untuk subnetting class B adalah seperti dibawah. Sengaja saya pisahkan jadi dua, blok sebelah kiri dan kanan karena masing-masing berbeda teknik terutama untuk oktet yang “dimainkan” berdasarkan blok subnetnya. CIDR /17 sampai /24 caranya sama persis dengan subnetting Class C, hanya blok subnetnya kita masukkan langsung ke oktet ketiga, bukan seperti Class C yang “dimainkan” di oktet keempat. Sedangkan CIDR /25 sampai /30 (kelipatan) blok subnet kita “mainkan” di oktet keempat, tapi setelah selesai oktet ketiga berjalan maju (coeunter) dari 0, 1, 2, 3, dst.
Subnet Mask Nilai CIDR
255.255.128.0 /17
255.255.192.0 /18
255.255.224.0 /19
255.255.240.0 /20
255.255.248.0 /21
255.255.252.0 /22
255.255.254.0 /23
255.255.255.0 /24
Subnet Mask Nilai CIDR
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30
Ok, kita coba dua soal untuk kedua teknik subnetting untuk Class B. Kita mulai dari yang menggunakan subnetmask dengan CIDR /17 sampai /24. Contoh network address 172.16.0.0/18.
Analisa: 172.16.0.0 berarti kelas B, dengan Subnet Mask /18 berarti 11111111.11111111.11000000.00000000 (255.255.192.0).
Penghitungan:
  1. Jumlah Subnet = 2x, dimana x adalah banyaknya binari 1 pada 2 oktet terakhir. Jadi Jumlah Subnet adalah 22 = 4 subnet
  2. Jumlah Host per Subnet = 2y – 2, dimana y adalah adalah kebalikan dari x yaitu banyaknya binari 0 pada 2 oktet terakhir. Jadi jumlah host per subnet adalah 214 – 2 = 16.382 host
  3. Blok Subnet = 256 – 192 = 64. Subnet berikutnya adalah 64 + 64 = 128, dan 128+64=192. Jadi subnet lengkapnya adalah 0, 64, 128, 192.
  4. Alamat host dan broadcast yang valid?
  5. Subnet
    172.16.0.0
    172.16.64.0
    172.16.128.0
    172.16.192.0
    Host Pertama
    172.16.0.1
    172.16.64.1
    172.16.128.1
    172.16.192.1
    Host Terakhir
    172.16.63.254
    172.16.127.254
    172.16.191.254
    172.16.255.254
    Broadcast
    172.16.63.255
    172.16.127.255
    172.16.191.255
    172.16..255.255
Berikutnya kita coba satu lagi untuk Class B khususnya untuk yang menggunakan subnetmask CIDR /25 sampai /30. Contoh network address 172.16.0.0/25.
Analisa: 172.16.0.0 berarti kelas B, dengan Subnet Mask /25 berarti 11111111.11111111.11111111.10000000 (255.255.255.128).
Penghitungan:
  1. Jumlah Subnet = 29 = 512 subnet
  2. Jumlah Host per Subnet = 27 – 2 = 126 host
  3. Blok Subnet = 256 – 128 = 128. Jadi lengkapnya adalah (0, 128)
  4. Alamat host dan broadcast yang valid?
Subnet
172.16.0.0 172.16.0.128 172.16.1.0 172.16.255.128
Host Pertama 172.16.0.1 172.16.0.129 172.16.1.1 172.16.255.129
Host Terakhir 172.16.0.126 172.16.0.254 172.16.1.126 172.16.255.254
Broadcast 172.16.0.127 172.16.0.255 172.16.1.127 172.16.255.255
Masih bingung juga? Ok sebelum masuk ke Class A, coba ulangi lagi dari Class C, dan baca pelan-pelan ;)


SUBNETTING PADA IP ADDRESS CLASS A
Kalau sudah mantab dan paham, kita lanjut ke Class A. Konsepnya semua sama saja. Perbedaannya adalah di OKTET mana kita mainkan blok subnet. Kalau Class C di oktet ke 4 (terakhir), kelas B di Oktet 3 dan 4 (2 oktet terakhir), kalau Class A di oktet 2, 3 dan 4 (3 oktet terakhir). Kemudian subnet mask yang bisa digunakan untuk subnetting class A adalah semua subnet mask dari CIDR /8 sampai /30.
Kita coba latihan untuk network address 10.0.0.0/16.
Analisa: 10.0.0.0 berarti kelas A, dengan Subnet Mask /16 berarti 11111111.11111111.00000000.00000000 (255.255.0.0).
Penghitungan:
  1. Jumlah Subnet = 28 = 256 subnet
  2. Jumlah Host per Subnet = 216 – 2 = 65534 host
  3. Blok Subnet = 256 – 255 = 1. Jadi subnet lengkapnya: 0,1,2,3,4, etc.
  4. Alamat host dan broadcast yang valid?
Subnet
10.0.0.0 10.1.0.0 10.254.0.0 10.255.0.0
Host Pertama 10.0.0.1 10.1.0.1 10.254.0.1 10.255.0.1
Host Terakhir 10.0.255.254 10.1.255.254 10.254.255.254 10.255.255.254
Broadcast 10.0.255.255 10.1.255.255 10.254.255.255 10.255.255.255
Mudah-mudahan sudah setelah anda membaca paragraf terakhir ini, anda sudah memahami penghitungan subnetting dengan baik. Kalaupun belum paham juga, anda ulangi terus artikel ini pelan-pelan dari atas. Untuk teknik hapalan subnetting yang lebih cepat, tunggu di artikel berikutnya ;)
Catatan: Semua penghitungan subnet diatas berasumsikan bahwa IP Subnet-Zeroes (dan IP Subnet-Ones) dihitung secara default. Buku versi terbaru Todd Lamle dan juga CCNA setelah 2005 sudah mengakomodasi masalah IP Subnet-Zeroes (dan IP Subnet-Ones) ini. CCNA pre-2005 tidak memasukkannya secara default (meskipun di kenyataan kita bisa mengaktifkannya dengan command ip subnet-zeroes), sehingga mungkin dalam beberapa buku tentang CCNA serta soal-soal test CNAP, anda masih menemukan rumus penghitungan Jumlah Subnet = 2x – 2
Tahap berikutnya adalah silakan download dan kerjakan soal latihan subnetting. Jangan lupa mengikuti artikel tentang Teknik Mengerjakan Soal Subnetting untuk memperkuat pemahaman anda dan meningkatkan kemampuan dalam mengerjakan soal dalam waktu terbatas.
REFERENSI
  1. Todd Lamle, CCNA Study Guide 5th Edition, Sybex, 2005.
  2. Module CCNA 1 Chapter 9-10, Cisco Networking Academy Program (CNAP), Cisco Systems.
  3. Hendra Wijaya, Cisco Router, Elex Media Komputindo, 2004.

Enkapsulasi Java



1.  Enkapsulasi(Pembungkusan)

Enkapsulasi adalah pelindung program dan data yang sedang diolah.  Enkapsulasi mendefinisikan perilaku dan melindungi program dan data agar tidak diakses secara sembarangan oleh program lain.
Dalam Java, dasar enkapsulasi adalah class. Dalam menentukan control access dari suatu member class diperlukan access spesifier yaitu:
-          Public.
Siapa pun dapat mengakses member ini, baik kode yang ada di dalam class itu sendiri ataupun yang berada di luar class.
Dapat diakses oleh package yang berbeda.
-          Private.
Hanya dapat digunakan oleh internal member dari class tersebut saja.
Tidak ada kode satu pun dari luar class tersebut yang diizinkan mengakses/mengubah nilai dari member tersebut.
-          Protected
Dapat diakses oleh member class itu sendiri
Dapat diakses oleh member class turunannya
Dapat diakses oleh member dari class lain yang berada dalam package yang sama.
-          Tanpa access specifier (Default)
Akan diperlakukan seperti public, namun tidak dapat diakses oleh member class lain yang berada dalam package yang berbeda.

 
Dalam kehidupan sehari hari enkapsulasi dapat dimisalkan sebagai arus listrik pada generator, dan sistem perputaran generator untuk menghasilkan arus listrik. Kerja arus listrik tidak mempengaruhi kerja dari sistem perputaran generator, begitu pula sebaliknya. Karena didalam arus listrik tersebut, kita tidak perlu mengetahui bagaimana kinerja sistem perputaran generator, apakah generator berputar kebelakang atau ke depan atau bahkan serong. Begitu pula dalam sistem perputaran generator, kita tidak perlu tahu bagaimana arus listrik, apakah menyala atau tidak.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan dari awal.


B.    Contoh Program

class belajar {
public String x = "Pintar";
private String y = "Java";
}
public class pintar{
public static void main(String[] args){
belajar panggil = new belajar();
System.out.println("Panggil X : " + panggil.x);
System.out.println("Panggil Y : " + panggil.y);
}
}


C.   Logika Program

Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.


D.   Output Program