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


'Main program
pertanyaanawal()
ipprefixdetektor()
maskdetektor()
interestingoctet()
analyzing()

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 analyzing
  If f >= 128 And f <= 191 Then
  TextWindow.WriteLine("You entering a class B address. A class B address is 1st octet started from 128 to 191. ")
  defmask = 16
EndIf

If f >= 192 And f <= 223 Then
  TextWindow.WriteLine("You entering a class C address. A class C address is 1st octet started from 192 to 223. ")
  defmask = 24
EndIf

If f >= 224 And f <= 239 Then
  TextWindow.WriteLine("You entering a class D address")
  TextWindow.WriteLine("This block is dedicated to Multicasting and Newsgroup.")
EndIf

If f >= 240 And f <= 255 Then
  TextWindow.WriteLine("You entering a class E address.")
  TextWindow.WriteLine("This block is dedicated to Research and Development.") 
EndIf

If f > 255 Then
  TextWindow.WriteLine("You enter wrong an IP address ")
EndIf

expandbit = s - defmask
blocksize = Math.Power(expandbit, 2)

If f / blocksize <> 0 Then
  host_id =
 
EndIf


TextWindow.WriteLine("Interesting octet : octet" + intoct)
EndSub

If s > defmask Then
  'your are subnetting
  'your host id is
  'your subnet id is
  'you are subnet number ...
  'there are .... subnets in this group
EndIf
If s = defmask Then
EndIf
If s < defmask Then
EndIf

Sub interestingoctet
If s > 25 then
  intoct = 3
  'interesting octetnya octet keempat
ElseIf s >= 16  and s < 24 then 
  intoct = 2
  'interesting octetnya octet ketiga
elseif s >= 8 and s < 16 then
  intoct = 1
  'interesting octetnya octet kedua
elseif s >= 0 and s < 8 then
  intoct = 0
  'interestin octetnya octet pertama
Else
  TextWindow.WriteLine("error")
EndIf
EndSub


Playing Cheese and Programming

Playing cheese is about creativity there is no formula.
Programming is also about creativity there is no formula.

Saturday, 23 May 2015

Konversi

Konversi adalah mengubah dari sesuatu menjadi sesuatu. Contoh mengubah angka nilai hasil ujian murid sekolah menjadi huruf nilai / abjad nilai.

Btw, ada 2 tipe / jenis konversi yang penulis bisa temukan sampai saat penulisan, antara lain:
1. Konversi angka ke angka pakai rumus/persamaan/formula yang sudah diciptakan sebelumnya.
Contohnya seperti:
- mengubah derajat celcius ke derajat fahrenheit.
- mengubah Km ke Cm.
- dll.

2. Konversi angka ke huruf hampir tidak ada rumus, jadi pakai tabel saja yaitu tabel aturan konversinya.
Contohnya:
Pengkonversian nilai murid sekolah ke huruf abjad (A, B, C, D, E)

Tabel aturan konversinya

Friday, 22 May 2015

Waktu

Waktu adalah hal yang paling berharga.

Perbedaan waktu yang paling jauh adalah UTC +13:00 dan UTC -12:00.

1. Jika waktu di Indonesia adalah UTC + 07:00 dan waktu di Singapore adalah UTC +08:00, berapa perbedaan waktu di Indonesia dan Singapore?
Jawab:
08:00 - 07:00 = 01:00 jam (1 jam 0 menit)

Ingat perbedaan waktu tidak membantu anda dalam menentukan siapa yang lebih cepat.

2. Manakah yang lebih duluan/cepat waktu di Singapore atau Indonesia?
Jawab:


Thursday, 21 May 2015

Jenis-jenis angka atau bilangan

Semua bilangan dari 0 sampai tidak terhingga adalah bilangan:
1. Genap
2. Ganjil
3. Genap dan ganjil, atau
4. Prima

 

0. Bilangan Prima

Bilangan prima adalah bilangan yang tidak habis dibagi bilangan lain selain dirinya sendiri tidak juga dengan kelipatannya.

1. Bilangan genap dan ganjil

Bilangan genap
Bilangan yang habis dibagi 2.
Bilangan yang dibagi 2 tidak berkoma.
Bilangan yang dibagi 2 tidak menghasilkan pecahan atau,
Bilangan yang dibagi 2 tidak bersisa / mempunyai sisa.

Bilangan ganjil
Bilangan yang tidak habis dibagi 2. Setiap bilangan ganjil jika dibagi dua akan menghasilkan bilangan pecahan (bilangan berkoma). Setiap bilangan ganjil jika dibagi dua akan menghasilkan sisa.

Jadi hanya bilangan ganjil yang mempunyai remainder atau modulo-nya lebih besar 0 karena bilangan genap remainder/modulonya 0.

2. Bilangan bulat dan pecahan

  • Bilangan bulat adalah bilangan tanpa koma atau utuh. Contoh:
    • 1
    • 2
    • 3
    • 4
    • dan lain-lain.
  • Bilangan pecahan adalah bilangan yang tidak utuh atau berkoma atau bilangan mempunyai koma dan nilai dibelakang koma bukan 0. Contoh: 
    • 1,2
    • 2,4
    • 4,7
    • 3,14
Bilangan pecahan mempunyai properti atau terdiri atau tersusun dari: bilangan bulat (depan koma) dan bilangan pecahannya (belakang koma)

Untuk mengambil bilangan bulat (nilai yang ada di depan koma) dari suatu bilangan pecahan, bulatkan bilangan itu kebawah (rounded down atau rounded floor).

Untuk mengambil nilai pecahan (nilai yang ada di belakang koma) dari suatu bilangan pecahan, nilai nilai asli dikurangi nilai rounded down diatas.
Contoh:
a = 3.14
x = a - Math.Floor(a)
TextWindow.WriteLine(x)

Jika bilangan ganjil adalah

Bilangan berkoma itu komanya bermakna atau mempunyai makna.

Di dalam programming kamu dibutuhkan untuk mengambil nilai bulat dari suatu bilangan pecahan (disebut floor atau ceiling), nilai sisa pembagian (disebut modulo atau remainder) dan nilai dibelakang koma hasil pembagian.

Sisa bagi semua bilangan dengan 2 kalau tidak 0 ya 1.

Quiz

1. Berapakah sisa bagi 0 dan 2?

2. Berapakah nilai bulat bagi 0 dan 2?
 Jawab: 0, karena hasil bagi 0 dan 2 adalah 0, jadi nilai bulat hasil bagi 0 dan 2 adalah 0 juga.

3. Berapakah hasil bagi 0 dan 2?
Jawab : 0, karena tidak ada yang dibagi maka tiap-tiap pembagi tidak dapat apa-apa.

decimal = 0
TextWindow.WriteLine("Math.floor : " + Math.Floor(decimal/2))
TextWindow.WriteLine("Math remainder : " + Math.Remainder(decimal,2))

4. Jika sisa bagi antara suatu bilangan dengan bilangan yang lain adalah 0 berarti?
Jawab: bilangan yang dibagi adalah kelipatan dari bilangan yang membagi

5. Sebutkan bilangan prima yang habis dibagi dengan kelipatannya
Jawab: Tidak ada