Kamis, 12 Januari 2012

Tipe Data PHP

Tipe data yang dikenali PHP ada 8 yaitu :
  1. Integer
  2. Double/Floating point numbers
  3. Boolean
  4. String
  5. Object
  6. Array
  7. Null
  8. Resource
Dalam PHP tipe data tidak dideklarasikan oleh programmer akan tetapi ditentukan secara otomatis oleh Intepreter PHP. Jadi anda tidak perlu deklarasikan tipe data tersebut jika ingin memberikan nilai pada suatu variabel. Anda dapat menuliskan fungsi gettype() untuk mengetahui type data dari nilai yang anda berikan.

Pendeklarasian Tipe Data
<?php
$a = 0.3;
$b = -3;
$c = "Fatih";
echo "$a adalah type data ". gettype($a)."<br />";
echo "$b adalah type data ". gettype($b)."<br />";
echo "$c adalah type data ". gettype($c)."<br />";?>

Tipe data integer
Tipe data integer adalah tipe data yang berguna untuk menyimpan bilangan bulat, bukan desimal. Sebagai contoh (1),(2),(3),(4),(5),(-1),(-2),(-3),(-4) dan lain-lain. Tipe data ini memiliki range antara -2,147,483,648 sampai dengan +2,147,483,648 platform 32bit.

Tipe data double / floating point numbers
Tipe data floating point numbers biasa juga disebut dengan “double”, ” float” atau “real” adalah tipe data yang berguna untuk menyimpan bilangan desimal. Sebagai contoh (0.1),(1.3),(1.7),(1.8),(9.7),(2.4) dan lain-lain.

Contoh penulisan tipe data float






<?php
$a = 1.234;
$b = 1.2e3;
$c = 2E-6;
$d = 1.2E8;?>
Tipe data boolean
Boolean merupakan sebuah type data yang sangat sederhana, dan merupakan nilai sebuah kebenaran, karena akan bernilai True atau False saja. Penulisannya tidak dipengaruhi penggunaan huruf besar atau kecil.

Contoh penulisan tipe data boolean






<?php
$a = TRUE; // bernilai 1
$b = true; // bernilai 1
$c = FALSE; // bernilai 0
$d = false; // bernilai 0
?>
Tipe data string
String adalah sebuah tipe data yang terdiri dari kata, bisa berupa kata tunggal maupun kalimat. Penulisan string harus diapit oleh tanda petik, baik petik tunggal(‘ ‘) maupun petik ganda (” “)

Contoh penulisan tipe data string




<?php
$kata1 = 'string diapit petik tunggal';
$kata2 = "string diapit petik ganda";?>
Perbedaan antara petik ganda dan petik tunggal adalah, ketika kita menggunakan petik tunggal maka variabel tidak akan terbaca nilainya. Beda halnya dengan penggunaan petik genap yang akan membaca nilai dari suatu variabel.

Contoh perbedaan petik tunggal dan genap

<?php
$kata = "Merah";
echo 'warna baju saya adalah $kata';
//jika menggunakan tanda petik tunggal browser
//akan menampilkan $kata
echo "warna baju saya adalah $kata";
//jika menggunakan tanda petik tunggal browser
//akan menampilkan Merah
?>
Jika string yang tertutup dalam tanda kutip ganda (” “), PHP akan menafsirkan escape sequence lebih untuk karakter khusus. Maka penulisan untuk karakter khusus tersebut harus ditambahkan slash didepan karakter tersebut
Sequence
Keterangan
/n
Linefeed
/r
Carriage return
/t
Horizontal tab
/v
Vertical tab
/f
Form feed
//
Backslash
/$
Dollar
/”
Doublequote
Tipe data object
Tipe data object dibuat dengan tujuan agar para programmer terbiasa dengan OOP. Tipe data object bisa berupa bilangan, variabel atau fungsi. Data ini dapat dimasukkan ke dalam kode program sehingga meringkas beberapa fungsi dan memperkecil ukuran file. Biar ga’ bingung contoh mudahnya menggunakan variabel dengan nilai string :
Contoh penulisan tipe data object

<?php
class makan{var $lauk = "ayam";
function makan_malam($lauk){$this-> lauk = $lauk;}}
$hari_ini = new makan;
echo $hari_ini->lauk;
?>
Tipe data array
Tipe data array digunakan untuk menyimpan banyak data dalam satu variabel. Jenis array dalam php ada 3 (tiga) macam yakni
  • numeric array
  • associative array
  • multidimensional array
Sebagai contoh untuk memasukkan daftar nama- nama hari ke dalam suatu variabel, perhatikan script dibawah :

Contoh penulisan array numeric

<?php
$hari[0]="Senin";
$hari[1]="Selasa";
$hari[2]="Rabu";
$hari[3]="Kamis";
$hari[4]="Jum'at";
$hari[5]="Sabtu";
$hari[6]="Minggu";
//menampilkan tanpa perulangan.
echo "sekarang adalah hari $hari[3] <br />" ;
//menampilkan menggunakan perulangan
//perulangan akan dijelaskan pada artikel berikutnya
for($i=0;$i<=6;$i++){
echo $hari[$i]."<br/>";}?>

Contoh penulisan array numeric 2

<?php
$hari = array("Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","Minggu");
//menampilkan tanpa perulangan.
echo "sekarang adalah hari $hari[3] <br />" ;
//menampilkan menggunakan perulangan
//perulangan akan dijelaskan pada artikel berikutnya
for($i=0;$i<=6;$i++){echo $hari[$i]."<br/>";}?>

Pada contoh numeric array diatas dapat disimpulkan bahwa pemanggilan data array tersebut menggunakan angka, angka dimulai dari 0 sampai jumlah data yang dimasukkan. $hari[0]$hari[1] adalah pemanggilan untuk data kedua dan seterusnya. adalah pemanggilan untuk data pertama,

Contoh penulisan associative array

<?php
$hari = array("Senin"=>"Ayam","Selasa"=>"Lele","Rabu"=>"Tempe","Kamis"=>"Tahu","Jum'at"=>"Teri","Sabtu"=>"Krupuk","Minggu"=>"Puasa");
//menampilkan tanpa perulangan.echo "Menu hari senin adalah $hari[Senin]" ;?>

Contoh penulisan associative array 2

$hari["Senin"]=120;
$hari["Selasa"]=123;
$hari["Rabu"]=125;
$hari["Kamis"]=126;
$hari["Jum'at"]=127;
$hari["Sabtu"]=128;
$hari["Minggu"]=129;
echo "Siswa yang mengantri makan pada hari senin sejumlah $hari[Senin]" ;
Pada contoh associative array diatas dapat disimpulkan bahwa pemanggilan data array tersebut menggunakan string yang ditentukan oleh kita, dengan kata lain pemanggilan menggunakan angka kita ganti menjadi string yang kita inginkan.

Pengertian multidimension array
adalah array didalam array. Pemanggilan array ini bisa menggunakan numeric array maupun associative array. $makan[0]["pagi"] dapat diartikan sebagai menampilkan nilai array pertama dan array pagi dari variabel makan, $makan["senin"]["pagi"] dapat diartikan sebagai menampilkan nilai array senin dan array pagi dari variabel makan.

Tipe data Null
Pengertian Null adalah tipe data yang tidak mempunyai nilai.

Tipe data Resource
Pengertian tipe data resource adalah tipe data baru yang diperkenalkan mulai PHP 4. Tipe ini termaksud tipe yang spisial, karena data ini hanya dapat dibuat dengan beberapa fungsi spesial.

Source : kodePHP.com

Pengantar PHP


·       PHP  ?
Ø Bahasa berbentuk skrip yang ditempatkan  dalam server dan diproses server ( Server side).

·       Perkembangan PHP
Ø  PHP Versi I dibuat oleh Rasmus Lerdorf  Thn 1995
Ø PHP Versi 2  diberi nama PHP/F1  Thn 1996
Ø PHP Versi 3 Thn 1997
Ø PHP versi 4 Oktober 2000

·       Memilih PHP ?
Ø PHP  itu Free
Ø Life Cycle yang singkat
Ø Cros Platform
Ø Mendukung banyak database

·       INSTALASI  PHP ?
Ø Install Web server ( Apache, PWS, IIS)
Ø Install PHP
Ø PHP Triad
( download lewat www.PHPGreek.com)

Struktur PHP

·       ANATOMI SKRIP PHP
Ø <?PHP…………?>
Ø <? ………………?>
Ø <script language=”php”>……</script>

   contoh

<HTML>
<HEAD>
<TITLE>Latihan Menampilkan Variabel</TITLE>
</HEAD>
<BODY>
  <?php
    print("Selamat belajar PHP, <B>$nama_pemakai</B>"); 
  ?>
</BODY>
</HTML>

Statement dan Comment

A. Statement
Statement adalah satuan perintah dalam PHP. Statement harus diakhiri dengan tanda semicolon/titik-koma (;).
Contoh statement :

       echo(“hello user … !”);
       echo(“4 + 5 = ” . 4+5);

B. Expression


Expression adalah satu bagian kecil kode yang akan dihitung hasilnya oleh php. Contoh expression :
      4 + 5
Penggunaan expression :

      echo(“4 + 5 = ” . 4+5);

 

C. Comment

Comment adalah bagian dari kode yang tidak dieksekusi . Comment dibuat untuk memperjelas atau memberi keterangan ada kode program. Ada dua cara menulis comment : comment satu baris dan comment banyak baris.
Comment satu baris dibuat dengan menggunakan tanda //. Semua
statement yang ada di kanan // tidak dijalankan oleh interpreter.
Contoh
penggunaan:

    echo(“4 + 5 = ” . 4+5); // menampilkan hasil 4 + 5

Comment banyak baris dibuat dengan menggunakan pasangan /* dan */. Semua tulisan yang dibuat di antara tanda tersebut tidak akan dieksekusi oleh interpreter. Contoh penggunaan :
 
   /*
   kode ini akan menampilkan hasil dari
   4 + 5
   */
   ec

Variabel dan Tipe Data


Variabel digunakan sebagai tempat penyimpanan data sementara. Data yang disimpan dalam variabel akan hilang setelah program selesai dieksekusi.Untuk penyimpanan data yang permanen, kita dapat menyimpan data di database atau di disk.

Variabel di PHP diawali dengan tanda $. Untuk dapat menggunakan variabel, ada dua langkah yang harus dilakukan,deklarasi dan inisialisasi.

A. Deklarasi variabel
Deklarasi variabel bisa disebut juga memperkenalkan atau mendaftarkan variabel ke dalam program.Dalam php, deklarasi variabel seringkali digabung dengan inisialisasi. Variabel dalam PHP dinyatakan dengan awalan $.

Contoh :
$namaPembeli
$jumlahBarang
$harga

Ada beberapa aturan yang diikuti berkenaan dengan penggunaan nama
variabel. Aturan pemberian nama variabel :
ÞDimulai dengan tanda $
ÞKarakter pertama harus huruf atau garis bawah ( _ )
ÞKarakter berikutnya boleh huruf, angka, atau garis bawah.

B. Inisialisasi variabel
Inisialisasi variabel adalah mengisi nilai untuk pertama kalinya ke dalamvariabel.

Contoh inisialisasi :

$namaDepan = “Endy”;
$namaBelakang = “Muhardin”;
$jumlahBarang = 3;
$harga = 1000;


C. Tipe data
Dalam bahasa pemrograman yang lain, ada bermacam-macam tipe data, misalnya integer(bilangan bulat), float(bilangan pecahan),char(karakter angka dan huruf), string(kumpulan huruf atau kata), dan berbagai tipe lainnya. PHP mengenal dua tipe data sederhana; numerik dan literal. Ditambah dengan dua tipe data yang tidak sederhana, yaitu array dan object.

Source : kodePHP.com

Kamis, 10 November 2011

Penerapan VLSM

Contoh 1:
130.20.0.0/20
Kita hitung jumlah subnet terlebih dahulu menggunakan CIDR, maka
didapat
11111111.11111111.11110000.00000000 = /20
Jumlah angka binary 1 pada 2 oktat terakhir subnet adalah4 maka
Jumlah subnet = (2x) = 24 = 16
Maka blok tiap subnetnya adalah :
Blok subnet ke 1 = 130.20.0.0/20
Blok subnet ke 2 = 130.20.16.0/20
Blok subnet ke 3 = 130.20.32.0/20
Dst… sampai dengan
Blok subnet ke 16 = 130.20.240.0/20
Selanjutnya kita ambil nilai blok ke 3 dari hasil CIDR yaitu 130.20.32.0 kemudian :
- Kita pecah menjadi 16 blok subnet, dimana nilai16 diambil dari hasil
perhitungan
subnet pertama yaitu /20 = (2x) = 24 = 16
- Selanjutnya nilai subnet di ubah tergantung kebutuhan untuk pembahasan ini kita gunakan /24, maka didapat 130.20.32.0/24 kemudian diperbanyak menjadi 16 blok lagi sehingga didapat 16 blok baru yaitu :
Blok subnet VLSM 1-1 = 130.20.32.0/24
Blok subnet VLSM 1-2 = 130.20.33.0/24
Blok subnet VLSM 1-3 = 130.20.34.0/24
Blok subnet VLSM 1-4 = 130.20.35.0/24
Dst… sampai dengan
Blok subnet VLSM 1-16 = = 130.20.47/24
- Selanjutnya kita ambil kembali nilai ke 1 dari blok subnet VLSM 1-1 yaitu
130.20.32.0 kemudian kita pecah menjadi 16:2 = 8 blok subnet lagi, namun oktat ke 4 pada Network ID yang kita ubah juga menjadi8 blok kelipatan dari 32 sehingga didapat :
Blok subnet VLSM 2-1 = 130.20.32.0/27
Blok subnet VLSM 2-2 = 130.20.32.32/27
Blok subnet VLSM 2-3 = 130.20.33.64/27
Blok subnet VLSM 2-4 = 130.20.34.96/27
Blok subnet VLSM 2-5 = 130.20.35.128/27
Blok subnet VLSM 2-6 = 130.20.36.160/27
Blok subnet VLSM 2-1 = 130.20.37.192/27
Blok subnet VLSM 2-1 = 130.20.38.224/27
Contoh 2:
Diberikan Class C network 204.24.93.0/24, ingin di subnet dengan kebutuhan berdasarkan jumlah host: netA=14 hosts, netB=28 hosts, netC=2 hosts, netD=7 hosts, netE=28 hosts. Secara keseluruhan terlihat untuk melakukan hal tersebut di butuhkan 5 bit host(2^5-2=30 hosts) dan 27 bit net, sehingga:
netA (14 hosts): 204.24.93.0/27 => ada 30 hosts; tidak terpakai 16 hosts
netB (28 hosts): 204.24.93.32/27 => ada 30 hosts; tidak terpakai 2 hosts
netC ( 2 hosts): 204.24.93.64/27 => ada 30 hosts; tidak terpakai 28 hosts
netD ( 7 hosts): 204.24.93.96/27 => ada 30 hosts; tidak terpakai 23 hosts
netE (28 hosts): 204.24.93.128/27 => ada 30 hosts; tidak terpakai 2 hosts
Dengan demikian terlihat adanya ip address yang tidak terpakai dalam jumlah yang cukup besar. Hal ini mungkin tidak akan menjadi masalah pada ip private akan tetapi jika ini di alokasikan pada ip public(seperti contoh ini) maka terjadi pemborosan dalam pengalokasian ip public tersebut.

Untuk mengatasi hal ini (efisiensi) dapat digunakan metoda VLSM, yaitu dengan cara sebagai berikut:
  1. Buat urutan berdasarkan penggunaan jumlah host terbanyak (14,28,2,7,28 menjadi 28,28,14,7,2).
  2. Tentukan blok subnet berdasarkan kebutuhan host:
    28 hosts + 1 network + 1 broadcast = 30 –> menjadi 32 ip ( /27 )
    14 hosts + 1 network + 1 broadcast = 16 –> menjadi 16 ip ( /28 )
    7 hosts + 1 network + 1 broadcast = 9 –> menjadi 16 ip ( /28 )
    2 hosts + 1 network + 1 broadcast = 4 –> menjadi 4 ip ( /30 )
Sehingga blok subnet-nya menjadi:
netB (28 hosts): 204.24.93.0/27 => ada 30 hosts; tidak terpakai 2 hosts
netE (28 hosts): 204.24.93.32/27 => ada 30 hosts; tidak terpakai 2 hosts
netA (14 hosts): 204.24.93.64/28 => ada 14 hosts; tidak terpakai 0 hosts
netD ( 7 hosts): 204.24.93.80/28 => ada 14 hosts; tidak terpakai 7 hosts
netC ( 2 hosts): 204.24.93.96/30 => ada 2 hosts; tidak terpakai 0 hosts

Apa itu VLSM?

Vlsm adalah pengembangan mekanisme subneting, dimana dalam vlsm dilakukan peningkatan dari kelemahan subneting klasik, yang mana dalam clasik subneting, subnet zeroes, dan subnet- ones tidak bisa digunakan. selain itu, dalam subnet classic, lokasi nomor IP tidak efisien.
Jika proses subnetting yang menghasilkan beberapa subjaringan dengan jumlah host yang sama telah dilakukan, maka ada kemungkinan di dalam segmen-segmen jaringan tersebut memiliki alamat-alamat yang tidak digunakan atau membutuhkan lebih banyak alamat. Karena itulah, dalam kasus ini proses subnetting harus dilakukan berdasarkan segmen jaringan yang dibutuhkan oleh jumlah host terbanyak. Untuk memaksimalkan penggunaan ruangan alamat yang tetap, subnetting pun diaplikasikan secara rekursif untuk membentuk beberapa subjaringan dengan ukuran bervariasi, yang diturunkan dari network identifier yang sama. Teknik subnetting seperti ini disebut juga variable-length subnetting. Subjaringan-subjaringan yang dibuat dengan teknik ini menggunakan subnet mask yang disebut sebagai Variable-length Subnet Mask (VLSM).

Karena semua subnet diturunkan dari network identifier yang sama, jika subnet-subnet tersebut berurutan (kontigu subnet yang berada dalam network identifier yang sama yang dapat saling berhubungan satu sama lainnya), rute yang ditujukan ke subnet-subnet tersebut dapat diringkas dengan menyingkat network identifier yang asli.
Teknik variable-length subnetting harus dilakukan secara hati-hati sehingga subnet yang dibentuk pun unik, dan dengan menggunakan subnet mask tersebut dapat dibedakan dengan subnet lainnya, meski berada dalam network identifer asli yang sama. Kehati-hatian tersebut melibatkan analisis yang lebih terhadap segmen-segmen jaringan yang akan menentukan berapa banyak segmen yang akan dibuat dan berapa banyak jumlah host dalam setiap segmennya.
Dengan menggunakan variable-length subnetting, teknik subnetting dapat dilakukan secara rekursif: network identifier yang sebelumnya telah di-subnet-kan, di-subnet-kan kembali. Ketika melakukannya, bit-bit network identifier tersebut harus bersifat tetap dan subnetting pun dilakukan dengan mengambil sisa dari bit-bit host.
Tentu saja, teknik ini pun membutuhkan protokol routing baru. Protokol-protokol routing yang mendukung variable-length subnetting adalah Routing Information Protocol (RIP) versi 2 (RIPv2), Open Shortest Path First (OSPF), dan Border Gateway Protocol (BGP versi 4 (BGPv4). Protokol RIP versi 1 yang lama, tidak mendukungya, sehingga jika ada sebuah router yang hanya mendukung protokol tersebut, maka router tersebut tidak dapat melakukan routing terhadap subnet yang dibagi dengan menggunakan teknik variable-length subnet mask.
Perhitungan IP Address menggunakan metode VLSM adalah metode yang berbeda dengan memberikan suatu Network Address lebih dari satu subnet mask. Dalam penerapan IP Address menggunakan metode VLSM agar tetap dapat berkomunikasi kedalam jaringan internet sebaiknya pengelolaan networknya dapat memenuhi persyaratan :
  1. Routing protocol yang digunakan harus mampu membawa informasi mengenai notasi prefix untuk setiap rute broadcastnya (routing protocol : RIP, IGRP, EIGRP, OSPF dan lainnya, bahan bacaan lanjut protocol routing : CNAP 1-2)
  2. Semua perangkat router yang digunakan dalam jaringan harus  mendukung metode VLSM yang menggunakan algoritma penerus packet informasi.

Subnetting dan Supernetting


Subnetting

Subnet mask adalah istilah teknologi informasi dalam bahasa Inggris yang mengacu kepada angka biner 32 bit yang digunakan untuk membedakan network ID dengan host ID, menunjukkan letak suatu host, apakah berada di jaringan lokal atau jaringan luar.
RFC 950 mendefinisikan penggunaan sebuah subnet mask yang disebut juga sebagai sebuah address mask sebagai sebuah nilai 32-bit yang digunakan untuk membedakan network identifier dari host identifier di dalam sebuah alamat IP. Bit-bit subnet mask yang didefinisikan, adalah sebagai berikut:
  • Semua bit yang ditujukan agar digunakan oleh network identifier diset ke nilai 1.
  • Semua bit yang ditujukan agar digunakan oleh host identifier diset ke nilai 0.
Setiap host di dalam sebuah jaringan yang menggunakan TCP/IP membutuhkan sebuah subnet mask meskipun berada di dalam sebuah jaringan dengan satu segmen saja. Entah itu subnet mask default (yang digunakan ketika memakai network identifier berbasis kelas) ataupun subnet mask yang dikustomisasi (yang digunakan ketika membuat sebuah subnet atau supernet) harus dikonfigurasikan di dalam setiap node TCP/IP.

Subnetting dilakukan dengan berbagai alasan, diantaranya:
1.      Untuk efisiensi IP address,alokasi IP address berdasarkan pembagian kelas kurang efisien. Lebih baik jika network kelas misalnay kelas A dibagi beberapa ribu subnet.kemudian setiap subnet dialokasikan menjadi LAN. Hal tersebut akan membuat lebih efisien.
2.      Untuk menjebatani perbedaan topologi fisik seringkali digunakan router. Router bekerja dengan cara meneruskan paket antar network yang berbeda. Sehingga untuk mengatasinya kita harus membagi sebuah network menjadi beberapa subnet yang kemudian dihubungkan oleh router.
3.      Untuk memudahkan proses manajemen atau pengaturan security network.
4.      Untuk mengisolasi trafik. Manakala satu host berkomunikasi dengan host lain pada subnet yang sama,pesan broadcast cukup disebarkan diantara anggota subnet dan tidak diteruskan ke subnet yang lain.
Pada subnet mask, bit-bit yang menyatakan network ID diset bernilai 1 sementara host ID diset bernilai 0. Dengan demikian untuk IP kelas A, B, dan C dapat diketahui bahwa subnet masknya adalah seperti berikut,

Kelas IP

Subnet mask

Dalam desimal
A 11111111.00000000.00000000.00000000 255.0.0.0
B 11111111.11111111.00000000.00000000 255.255.0.0
C 11111111.11111111.11111111.00000000 255.255.255.0

Supernetting

Supernetting  adalah proses menggabungkan dua atau lebih blok IP address menjadi satu kesatuan. Jika proses subnetting dapat membagi sebuah network menjadi beberapa subnet, maka supernetting merupakan proses kebalikannya. Supernetting menggabungkan beberapa network yang berdekatan sehingga terbentukalah sebuah supernet. Pada umumnya diterapkan pada network yang cukup besar untuk memudahkan proses rounting. Supernetting disebut juga Classless Inter-Domain Rounting atau CIDR.

Manfaat dari SUPERNETTING, adalah mengupdate router dengan cara efisien, yaitu mengirimkan informasi banyak route dalam satu pemberitahuan sehingga menghemat bandwidth dan meminimalkan pekerjaan router.