Menyederhanakan Pengalamatan IP

Soal tentang hitung-menghitung IP termasuk jenis yang banyak keluar di Ujian Nasional atau UN alias UNas. Karena materi tentang topik ini diajarkan di kelas 2, atau bahkan akhir kelas 1, maka tidak aneh bila bagi kelas 3 agak terasa berat, terutama yang catatannya tidak lengkap (atau ada yang tidak punya catatan tentang topik ini?)

 Pada saat ujian, penting sekali menguasai “rumus” khusus agar penyelesaian yang tepat bisa diperoleh secepat-cepatnya. Namun demikian, dasar pemahaman yang kuat juga perlu dimiliki agar tidak bingung “angka yang dimasukkan ke variabel-variabel di rumus itu asalnya dari mana yah?”

 Nah kita mulai dari titik paling awal, bagaimana membedakan kelas-kelas IP; di angka berapa setiap kelas mulai dan di angka berapa pula berakhirnya. Untuk memahaminya, kita ingat-ingat sedikit pelajaran tentang angka biner.

 Alamat IP (versi 4) sebenarnya tersusun dari angka biner 4 byte; setiap 1 byte adalah 8 bits, dan yang disebut “1 bit” adalah satu buah angka biner, entah itu “1” atau pun “0” (karena sistem biner memang hanya terdiri dari 2 lambang bilangan itu). Tidak ada hal yang rumit di sini; jadi, “10010101” adalah 1 byte, dan “11100000” adalah 1 byte yang lain lagi.

 Karena manusia kesusahan bila terlalu lama terpapar oleh bilangan biner, maka IP lebih sering ditulis sebagai angka desimal; bagaimana mengonversi angka biner ke desimal? Bilangan biner di posisi paling kanan mempunyai bobot “1”, ini berasal dari 20 (dua pangkat nol). Demikianlah, semakin ke kiri, bobotnya semakin besar karena pangkatnya semakin tinggi.

 Mengapa bilangan dasarnya 2? Ya karena ini sistem bilangan dasar 2 alias sistem biner. Jadi bobotnya makin ke kiri, berturut-turut adalah 21, 22, 23, 24, 25, 26dan 27. Dan mengapa pula berhenti sampai bobot dua pangkat tujuh? Karena IP yang lebar totalnya 32 bit itu dipecah-pecah menjadi 4 byte, alias dipecah per 8 bits.

 Dasar dalam menghitung IP adalah pada tiap byte ini, maka itu kita berhenti di “27” (bilangan biner 8 bits, bobotnya mulai dari dua pangkat 0 sampai pangkat 7, silakan dihitung sendiri jika tidak percaya; mulai dari 20 sampai 27 tentu jumlahnya 8 buah). Lihat tabel 1 ini.

+------------------------------------.--------------------+
|                 BOBOT              |                    |
+-----.----.----.----.---.---.---.---+    BIL. DESIMAL    |
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |                    |
+-----+----+----+----+---+---+---+---+--------------------+
|  1  |  0 |  0 |  0 | 0 | 0 | 0 | 0 |        128         |
|  1  |  1 |  0 |  0 | 0 | 0 | 0 | 0 |        192         |
|  1  |  1 |  1 |  0 | 0 | 0 | 0 | 0 |        224         |
|  1  |  1 |  1 |  1 | 0 | 0 | 0 | 0 |        240         |
|  1  |  1 |  1 |  1 | 1 | 0 | 0 | 0 |        248         |
|  1  |  1 |  1 |  1 | 1 | 1 | 0 | 0 |        252         |
|  1  |  1 |  1 |  1 | 1 | 1 | 1 | 0 |        254         |
|  1  |  1 |  1 |  1 | 1 | 1 | 1 | 1 |        255         |
'-----'----'----'----'---'---'---'---'--------------------'
                         Tabel 1

Dengan penghitungan bobot, maka bilangan biner “10101001“, jika dikonvert ke desimal menjadi:

(1x1) + (1x8) + (1x32) + (1x128) = 169

Keterangan: deret hitung di atas dimulai dengan bobot terendah yakni bobot di posisi paling kanan, walau deret tersebut ditulis dari kiri. Posisi yang angkanya nol sengaja dilewati (tidak ditulis di deret itu).

Sekarang untuk contoh kedua, misalnya, berapa desimal dari “00001111” itu? Ada dua cara; cara yang “susah” dulu, yakni seperti deret tadi (posisi yang angkanya nol tidak ikut ditulis di sini).

(1x1) + (1x2) + (1x4) + (1x8) = 15

Cara yang mudah: gunakan urutan bobot seperti di tabel 1 tadi, yaitu (mulai dari bobot tertinggi) 128, 64, 32, 16, 8, 4, 2, dan 1. Kemudian ambil bobot dari posisi nol pertama, posisi 24 = 16, dan langkah terakhir, kurangi 1. Kita akan peroleh “15”.

Kesimpulan: jika bilangan biner itu  “1” semua mulai dari kanan, maka nilai desimalnya bisa diperoleh dengan mengambil bobot dari posisi nol pertama segera setelah “1” yang paling kiri, lalu kurangi bobot itu dengan 1. Syaratnya: bilangan biner tersebut harus serangkaian angka 1 mulai dari kanan (tidak harus penuh 1 semua). Karena bobot bit posisi ke-9 adalah “256”, maka apabila kita punya 1 byte yang terdiri dari angka “1” semua, nilanya dalam desimal adalah: bobot bit posisi ke-9 dikurangi 1, yakni 256 – 1 = 255.

Tabel 1 di atas tadi bisa kita mampatkan agar lebih ringkas lagi menjadi seperti tabel 2. Dengan tabel ini, bila kita punya 1 byte “11100000” maka nilainya dalam desimal adalah “224”.

+------.-----.-----.-----.-----.-----.-----.-----------------------+
| 128 | 64  | 32  | 16  |  8  |  4  |  2  |  1  | Bobot per posisi |
+-----+-----+-----+-----+-----+-----+-----+-----+------------------+
| 128 | 192 | 224 | 240 | 248 | 252 | 254 | 255 | Dijumlahkan dgn  |
|     |     |     |     |     |     |     |     | bobot di kirinya |
'-----'-----'-----'-----'-----'-----'-----'-----'------------------'
                              Tabel 2

Bilangan “11100000” terdiri dari 3 buah angka 1 mulai dari kiri, jadi silakan lihat ke tabel 2, di baris 2 kolom 3, kita akan memperoleh “224”.

Isi setiap kolom di baris ke-2 diperoleh dari menjumlahkan bobot per posisi (yakni baris 1) dengan sebelah kirinya. Jadi, asal muasal “224” di baris kedua, kolom ketiga tadi adalah (lihat baris 1) dari: 128 + 64 + 32 = 224.

Tabel 2 cocok dipakai ketika kita punya bilangan biner yang berisi deretan “1” urut dari kiri.

Oke, sudah cukup kita membahas tentang bilangan biner dan konversinya ke sistem desimal. Sekarang masuk ke pembahasan alamat IP (versi 4). Format alamat IP adalah angka biner 32 bit, alias 4 byte. Setiap byte ditulis dipisahkan oleh “dot” atau titik, tidak peduli kita menuliskannya dengan biner atau pun desimal.

Jadi apabila desimal, maka ditulis sebagai “mmm.nnn.xxx.yyy” (dengan angka terendah adalah 0 dan angka tertinggi 255).

ALamat IP dibagi menjadi beberapa kelas; kelas A, B, C, D dan E. Karena kelas D dan E dicadangkan untuk keperluan khusus, maka di keseharian orang memakai kelas A, B dan C. Termasuk ke kelas mana suatu alamat IP, akan ditentukan oleh byte pertama (ditegaskan, “byte” berarti biner).

Jadi, alamat IP “205.140.187.31” adalah anggota kelas C karena byte pertama bernilai “205” (desimal). Bagaimana bisa? Lihat tabel 3.

+-------.--------------.-----------------.------------------+
| Kelas | Byte pertama | Desimal pertama | Desimal terakhir |
+-------+--------------+-----------------+------------------+
|   A   | 0000         | 0               | 126              |
|       |              |                 | 127 (loopback)   |
|   B   | 1000         | 128             | 191              |
|   C   | 1100         | 192             | 223              |
|   D   | 1110         | 224             | 239              |
|   E   | 1111         | 240             | 247              |
'-------'--------------'-----------------'------------------'
                            Tabel 3

Mudah saja kan. Hanya perlu mengingat bahwa byte pertama menentukan IP itu akan masuk ke kelas mana. Kelas A, byte pertama nol semua; kelas B, byte pertama berisi sebuah “1” (mulai dari kiri). Demikian seterusnya hingga yang terakhir kelas E, byte pertamanya semua “1”.

Kemudian konversilah byte pertama tersebut ke desimal, ini akan menjadi nilai IP yang mengawali kelas itu (kali ini IP sudah mulai ditulis dengan desimal). Dan berapa nilai akhir bagi sebuah kelas? Sangat mudah, tentu akhir sebuah kelas adalah angka sebelum awal kelas berikutnya.

Jadi, karena kelas  dimulai dari 128, maka kelas A berakhir di 126 (ya ya, saya tahu, ini merupakan sedikit perkecualian karena 127 dicadangkan untuk loopback). Kelas C berakhir di 223 karena kelas D mulai di 224, demikian seterusnya.

Tidak terlalu banyak yang harus dihafalkan, kan?

Anda mungkin bertanya-tanya, bagaimana bisa mengetahui berakhirnya kelas E di 247? Well, kelas D dan E tidak usah dipusingkan😎

Sumber / bahan bacaan: artikel Linux Journal berjudul Simplified IP Addressing, halaman 1.

Artikel ini akan berlanjut ke bagian 2 insya Allah.

One response to “Menyederhanakan Pengalamatan IP

  1. Ping-balik: Soal Pengalamatan IP Tipe 1 « ~fat72009/

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s