Tuesday, 26 May 2015

Subnetmask

Actually subnetmask didn't care about network address. Subnetmask correcting it sometimes. Subnetmask also have a lot of secrets.

These are the secrets hide / lies in subnetmask of 255.255.255.128 with any IP address given
1. The maksimum subnet id is would be IPaddressoct1.IPaddressoct2.IPaddressoct3.128
2. The increment would be: 256 - 128 = 128
3. The last usable address would be: 255 - 128 = 127
4. Number of subnets are: 256 / 128 = 2
5. The interesting octet would be: the 4th octet
6. The 1st octet, 2nd octet, 3rd octet would be the same value as the IP prefix

These are the secrets that hide/lies in subnetmask of 255.255.128.0 with any IP address given
1. The maximum subnet id would be: IPaddressoct1.IPaddressoct2.128.0
2. The increment would be: 256 - 128 = 128
3. The last usable address would be: 255 -128 = 127
4. Number of subnets are: 256 / 128 = 2
5. Number of host would be: number of zero * 256 *
6. The interesting octet would be: the 3rd octet
7. The 1st octet, 2nd octet, would be the same value as the IP prefix
8.The 4th octet would be 0 in the IP prefix

These are the secrets that hide/lies in subnetmask of 255.128.0.0 with any IP address given
1. The maximum subnet number would be: IPaddressoct1.128.0.0
2. The increment would be: 256 - 128 = 128
3. The last usable address would be: x.127.255.255
4. Number of subnets are: 256 / 128 = 2
5. Number of host per subnet would be: number of zero * 256 * blocksize (point 2)
6. The interesting octet would be: the 2nd octet
7. The 1st octet of the subnet ids would be the same value as the 1st octet of the IP address
8. The 3rd octet, and the 4th octet of the subnet ids would b zero.




How to use Windows task manager

Average user pengguna window menggunakan window task manager untuk mematikan secara memaksa (force) program yang tidak responding / hang.

Tapi window task manager bisa digunakan juga untuk melihat besar memori yang dipakai program saat running. Misalkan aku telah membuat dua buah program algoritma / caranya berbeda tapi mengerjakan tugas yang sama, aku mau lihat program mana yang lebih ringan untuk dijalankan atau digunakan berdasarkan jumlah memori yang dipakai / dikonsumsi.



XOR,AND dan OR ladies and gentlemen

Congratulations you accidentally unleash the logic of XOR
For i = 0 To 7
    If b[i] <> c[i] Then
      d[i] = 1
    Else
      d[i] = 0
    EndIf
    TextWindow.WriteLine("d[i] : "+d[i])
    EndFor

Yang ini gw gak tau
  For i = 0 To 7
    If b[i] = c[i] Then
      d[i] = 1
    Else
      d[i] = 0
    EndIf
    TextWindow.WriteLine("d[i] : "+d[i])
    EndFor

AND
   For i = 0 To 7
    If b[i] = 1 and c[i] = 1 Then
      d[i] = 1
    Else
      d[i] = 0
    EndIf
    TextWindow.WriteLine("d[i] : "+d[i])
    EndFor

OR
  For i = 0 To 7
    If b[i] = 0 and c[i] = 0 Then
      d[i] = 1
    Else
      d[i] = 1
    EndIf
    TextWindow.WriteLine("d[i] : "+d[i])
    EndFor

There a lot change in my code

pertanyaanawal()
 ipprefixdetektor()
 maskdetektor()
 processing()

 Sub pertanyaanawal
  TextWindow.WriteLine("1. Please enter the IP address group :")
  d = TextWindow.Read()
  TextWindow.WriteLine("")
  TextWindow.WriteLine("2. Please enter the slash (/). Can be number between 0 to 32 : ")
  s = TextWindow.Read()
EndSub


Sub ipprefixdetektor
'Memproses / mengolah prefix IP. Output sub : variabel f,g,h,i, input : variabel d
'1.1 Mengambil satu karakter persatu karakter dari IP prefix (termasuk tanda titik)
For i=0 To Text.GetLength(d)
  c[i] = text.GetSubText(d,i,1)
EndFor

'1.2 menandai posisi titik IP prefix dengan cara mengambil posisinya
j = 0
'untuk i = 0 hingga jumlah dari array c (jumlah angka IP prefix kan berubah-ubah)
For i = 0 To Array.GetItemCount(c)
  'TextWindow.WriteLine(c[i])
  If c[i] = "." Then
    e[j]=i
    'TextWindow.WriteLine(e[j])
    j = j + 1
  EndIf
EndFor


'menyimpan kedalam variabel f, g, h, dan i angka-angka yang dibatasi letak/posisi titik (e[0],...)

oct[0] = Text.GetSubText(d,1,e[0]-1)
oct[1] = Text.GetSubText(d,e[0]+1,e[1]-e[0]-1)
oct[2] = Text.GetSubText(d,e[1]+1,e[2]-e[1]-1)
oct[3] = Text.GetSubTextToEnd(d,e[2]+1)

EndSub


Sub maskdetektor
floor_s = Math.Floor(s/8)
i = 0
if floor_s <> 0 Then
For i = 0 To floor_s - 1
  mask[i] = 255
EndFor
EndIf

sisa_s = Math.Remainder(s,8)
kurang_8 = 8 - sisa_s
powkurang_8 = Math.Power(2,kurang_8)
nil = 256 - powkurang_8
mask[i] = nil

i = i + 1
loop = 4 - i
If loop <> 0 then
For j = 0 To loop
  mask[i] = 0
  i = i + 1
EndFor
EndIf
EndSub

Sub processing
   For j = 0 to 3
 var1 = oct[j]
 var2 = mask[j]
 dectobiner()
 hasil[j] = dec
 TextWindow.WriteLine(hasil[j])
endfor
EndSub


Sub dectobiner
  For i = 0 To 7
    b[i] = 0
  EndFor
 
  TextWindow.WriteLine("Var 1 : " + var1)
  i = 0
  While var1 > 1
    b[i] = Math.Remainder(var1,2)
    var1 = Math.Floor(var1/2)
    i = i + 1
  EndWhile
  b[i] = var1
  For i = 0 To 7
    TextWindow.WriteLine("b[i] : " + b[i])
  EndFor
 
 
  i = 0
  While var2 > 1
    c[i] = Math.Remainder(var2,2)
    var2 = Math.Floor(var2/2)
    i = i + 1
  EndWhile
 
  c[i] = var2
  For i = 0 To 7
    TextWindow.WriteLine("c[i] :" + c[i])
  EndFor
 
 
  For i = 0 To 7
    If b[i] = c[i] Then
      d[i] = 1
    Else
      d[i] = 0
    EndIf
    TextWindow.WriteLine("d[i] : "+d[i])
    EndFor

    dec = 0
      For i = 0 To 7
        dec = dec + d[i] * Math.Power(2,i)
      EndFor
 
EndSub
 Sub pertanyaanawal
  TextWindow.WriteLine("1. Please enter the IP address group :")
  d = TextWindow.Read()
  TextWindow.WriteLine("")
  TextWindow.WriteLine("2. Please enter the slash (/). Can be number between 0 to 32 : ")
  s = TextWindow.Read()
EndSub

Sub ipprefixdetektor
'Memproses / mengolah prefix IP. Output sub : variabel f,g,h,i, input : variabel d
'1.1 Mengambil satu karakter persatu karakter dari IP prefix (termasuk tanda titik)
For i=0 To Text.GetLength(d)
  c[i] = text.GetSubText(d,i,1)
EndFor

'1.2 menandai posisi titik IP prefix dengan cara mengambil posisinya
j = 0
'untuk i = 0 hingga jumlah dari array c (jumlah angka IP prefix kan berubah-ubah)
For i = 0 To Array.GetItemCount(c)
  'TextWindow.WriteLine(c[i])
  If c[i] = "." Then
    e[j]=i
    'TextWindow.WriteLine(e[j])
    j = j + 1
  EndIf
EndFor

'menyimpan kedalam variabel f, g, h, dan i angka-angka yang dibatasi letak/posisi titik (e[0],...)
oct[0] = Text.GetSubText(d,1,e[0]-1)
oct[1] = Text.GetSubText(d,e[0]+1,e[1]-e[0]-1)
oct[2] = Text.GetSubText(d,e[1]+1,e[2]-e[1]-1)
oct[3] = Text.GetSubTextToEnd(d,e[2]+1)
EndSub

Sub maskdetektor
floor_s = Math.Floor(s/8)
i = 0

if floor_s <> 0 Then
For i = 0 To floor_s - 1
  mask[i] = 255
EndFor
EndIf

sisa_s = Math.Remainder(s,8)
kurang_8 = 8 - sisa_s
powkurang_8 = Math.Power(2,kurang_8)
nil = 256 - powkurang_8
mask[i] = nil

i = i + 1

loop = 4 - i

If loop <> 0 then
For j = 0 To loop
  mask[i] = 0
  i = i + 1
EndFor
EndIf
EndSub

Sub dectobiner
  While a > 1
    b[i] = Math.Remainder
    a = Math.Floor(a/2)
    i = i + 1
  EndWhile
  b[i] = a
EndSub

Monday, 25 May 2015

Decimal to Binary dan Binary to Decimal

Decimal to Binary
Apa itu konversi bilangan desimal ke bilangan biner?

Konversi dari decimal ke biner adalah proses menyimpan sisa bagi suatu bilangan desimal dengan 2 kedalam suatu variabel dan membagi bilangan dengan dua, berulang-ulang hingga angka bilangan desimal itu menjadi 1 atau berhenti ketika angka bilangan itu telah menjadi 1 dan menambahkan angka 1 itu kedalam bit biner berikutnya -- Sulit diungkapkan dengan kata-kata lebih mudah dipraktekkan.

Bagaimana caranya mengkonversi?

Jadi algoritmanya sebagai berikut
1. Taruh angka desimal yang akan diproses kedalam suatu gelas berjudul decimal
2. Taruh jumlah yang sama dari isi gelas decimal kedalam gelas berjudul a
3.

Contoh program:
decimal = 5
i = 0
a = decimal

While a > 1
  b[i] = Math.Remainder(a,2)
  a = math.Floor(a / 2)
  i = i + 1
EndWhile
b[i] = a

 

Binary to Decimal
Apa itu konversi dari bilangan desimal ke bilangan biner?
Konversi dari bilangan desimal ke bilangan biner adalah

Sub binertodec
  For i = 0 To 7
    dec = biner + b[i] * Math.Power(2,i)
  EndFor
EndSub
 

Sunday, 24 May 2015

Once you master IP addressing, other is piece a cake.

192.168.1.1 /16

1. Mencari expanding bit
expanding bit = defmask - masksaatini
expanding_bit = 24 - 16 =

2. Mencari besar ukuran blok
bloksize = 2 ^ (8 - expanding_bit)
bloksize = 2 ^ 16 =  65536

3. Menentukan interesting octet
Berdasarkan besar angka prefix atau letak prefix terakhir.
Interesting octet ini adalah octet yang berubah nilainya jika di AND kan dengan subnetmask.

jika angka prefixnya 8, maka interesting octetnya octet ke-2, 3, dan 4.
jika angka prefixnya 16, maka interesting octetnya octet ke 3, dan 4.
jika angka prefixknya 24, maka interesting octetny octet ke-4.

jika angka prefix 0 - 7, maka interesting octetnya octet ke-1, 2, 3 dan 4. Contoh jika prefixnya /1, maka interesting octetnya octet 1, 2, 3, dan 4.

jika angka prefix 9 - 16, maka interesting octetnya octet ke-3 dan 4.
jika angka prefix 17 - 24, maka interesting octetnya octet ke-3.
jika angka prefix 25-  32, maka interesting octetnya octet ke-4.

4. Menentukan apakah dia supernetting atau subnetting
Berdasarkan besar nilai expanding_bit. Kenapa?
jika expanding_bit < 0, maka supernetting
jika expanding_bit > 0, maka subnetting

4. Xebelum menentukan alamat subnet kita tentukan dulu nomor subnet diatas
nomor_subnet = membulatkan kebawah nilai (octet dari interesting octet / blocksize)

4. Menentukan alamat subnetnya
nilai octet yang baru = nomor_subnet * blocksize

5. Menentukan apakah dia memasukan host atau subnet