belajar php pengenalan

Upload: sidneyvalent

Post on 14-Oct-2015

54 views

Category:

Documents


0 download

DESCRIPTION

Jika mau belajar PHP Programming

TRANSCRIPT

  • 5/24/2018 Belajar PHP Pengenalan

    1/117

    PHP Workshop Intellisys Tripratama - 2006

  • 5/24/2018 Belajar PHP Pengenalan

    2/117

    Perkenalan

    Nama : Emilia Khonato Khouw

    Perusahaan : Intellisys

    Jabatan : Software Development Trainer

    Tugas : Trainer programming, khususnya

    .NET dan SQL Server.Apa pengalaman Anda dalam:

    HTML

    PHP

    Object Oriented Programming

    Bahasa lainnya

    Apa yang Anda harapkan dari course PHP ini?

  • 5/24/2018 Belajar PHP Pengenalan

    3/117

    Fasilitas

    Class hours Building hours

    Restrooms

    Coffee breaks and Meals Phones

    Smoking

    Recycling

  • 5/24/2018 Belajar PHP Pengenalan

    4/117

    Tujuan Workshop ini

    Tujuan Workshop ini sangat sederhana: mengajarkanAnda dasar-dasar penggunaan PHP termasuk carainstalasi dan konfigurasi, serta mengapa PHP sangatpopuler dalam pengembangan aplikasi Web saat ini.

    Saya tidak akan membuat asumsi apapun tentangpengetahuan Anda dalam PHP, selain bahwa Andamengerti dasar-dasar HTML, dan juga memiliki selerahumor yang baik. Workshop ini akan membahas baik

    PHP 4 maupun PHP 5, dengan highlight pada fitur-fiturbaru PHP 5. Secara umum, metode yang digunakanpada PHP 4 dapat dijalankan seluruhnya pada PHP 5.

  • 5/24/2018 Belajar PHP Pengenalan

    5/117

    Questions?

    Feel free to interrupt me!

  • 5/24/2018 Belajar PHP Pengenalan

    6/117

    Apa itu PHP?

    PHP: Hypertext Preprocessor. Lokasi PHP engine terletak pada web server,

    biasanya sebagai Apache module, atau pun IIS.

    Biasa disebut LAMP (Linux Apache mySQL, PHP)atau WAMP (Windows Apache mySQL PHP)

    Adalah bahasa script yang menempel padaHTML.

    PHP (dan Apache + mySQL) adalah software

    opensource (gratis)! PHP memungkinkan Anda menambahkan logika

    pada HTML yang bodoh dan static!

  • 5/24/2018 Belajar PHP Pengenalan

    7/117

    Mengapa PHP?

    Open Source. Tersedia gratis, tidak dipungut biaya sama sekali.

    Terbuka (dapat dimodifikasi).

    Cross-platform. Bekerja di Linux, UNIX, Windows, dan Mac.

    Server-independent.

    Dapat bekerja di Apache, MS IIS, dan web server lain.

    Mendukung OOP dan procedural programming.

  • 5/24/2018 Belajar PHP Pengenalan

    8/117

    Ok, tapi apakah PHP bisa diandalkan?

    Perusahaan berikut adalah partner ZendTechnology, Inc.

    IBM

    Oracle

    SAP

    Sun

    Adobe

    MySQL Bila cukup baik bagi mereka

  • 5/24/2018 Belajar PHP Pengenalan

    9/117

    Masalah Konfigurasi

    Dengan berbagai alasan, konfigurasi PHP secaramanual dapat memusingkan Anda

    Oleh sebab itu tersedia banyak paket software yangdapat membantu Anda melakukan instalasi dan

    konfigurasi Apache + PHP + MySQL, baik untukplatform Windows maupun Linux.

    Contoh:

    [Easy]PHP - http://www.easyphp.org/

    XXAMP - http://www.apachefriends.org/en/xampp-windows.html

    http://www.easyphp.org/http://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.apachefriends.org/en/xampp-windows.htmlhttp://www.easyphp.org/
  • 5/24/2018 Belajar PHP Pengenalan

    10/117

    Instalasi PHP dengan IIS (1 of 2)

    Tersedia installer CGI, namun biasanya sangat terbatasdan kurang flexible.

    Cara manual: Copy source PHP ke C:\PHP

    Copy php5ts.dll atau php4ts.dll ke C:\Windows

    Copy php.ini-dist ke C:\Windows dan rename menjadi php.ini

    Ubah beberapa baris berikut pada php.ini: doc_root = "c:\inetpub\wwwroot"

    extension_dir = "c:\php\ext"

    extension=php_mysql.dll

    Copy libmysql.dll ke C:\Windows (optional, lakukan bilaterjadi masalah pada saat loading php_mysql.dll di IIS)

  • 5/24/2018 Belajar PHP Pengenalan

    11/117

    Instalasi PHP dengan IIS (2 of 2)

    Buka Internet Information Service.

    Expand Web Sites sampai menemukan

    Default Web Site, klik kanan,

    pilih Properties.

    Pada tab ISAPI Filter, pilih Add:

    Pada tab Home Directory,

    pilih Configuration, pilih Add:

    Pada tab Documents, pilih Add:

  • 5/24/2018 Belajar PHP Pengenalan

    12/117

    Instalasi MySQL

    Instalasi dengan installer dapat dilakukan dengan

    mudah, cukup download installer dari official websiteMySQL.

    Setelah selesai instalasi, Configuration Wizard otomatisakan dijalankan. Tidak perlu melakukan perubahanpada pilihan konfigurasi yang ada. Cukup tambahkanpassword untuk root yang dapat Anda ingat. Janganmelupakan password root ini, karena Anda akankehilangan akses ke MySQL apabila Andamelupakannya.

    Nice to have: mysql-administrator (Free) PHPMyAdmin (Free)

  • 5/24/2018 Belajar PHP Pengenalan

    13/117

    Text Editor

    Walaupun sebenarnya Anda dapat melakukan codingPHP hanya dengan menggunakan Notepad, namuntidak ada salahnya Anda mencoba beberapa TextEditor berikut untuk memudahkan hidup Anda bersamaPHP:

    ConTEXT (Free)

    PHPEdit (Free)

    RapidPHP (Not Free)

    EditPlus (Not Free)

    Macromedia Dreamweaver (Not Free)

    Microsoft FrontPage (Not Free)

  • 5/24/2018 Belajar PHP Pengenalan

    14/117

    Mari kita mulai

    PHP menempel pada HTML

    PHP script dimulai dengan

    File HTML yang ditempeli PHP diakhiri dengan

    .php (bukan .html) PHP code diproses oleh web server; hasilnya

    berupa HTML. HTML asli beserta HTML yangdibuat oleh PHP kemudian dikombinasikan dan

    dikirim oleh web server ke browser user.

  • 5/24/2018 Belajar PHP Pengenalan

    15/117

    Lab: Installing PHP

    Install PHP & MySQL. Konfigurasi IIS supaya semua bekerja dengan

    baik.

    Install Text Editor favorit Anda.

  • 5/24/2018 Belajar PHP Pengenalan

    16/117

    Lab: PHP pertama Anda

    Buatlah PHP pertama Anda. Buka text editor favorit Anda, dan ketiklah code berikut.

    Exercise 1

    This is the plain HTML text

  • 5/24/2018 Belajar PHP Pengenalan

    17/117

    Statement dan Akhir Baris

    Statement dalam PHP adalah baris code yangdapat dieksekusi, yang biasanya berisi fungsidan argumen.

    Perhatikan bahwa statement PHP yang terdapat

    di lab sebelumnya () diakhiri dengan titik koma(;).

    Semua statement dalam PHP diakhiri dengan ;

  • 5/24/2018 Belajar PHP Pengenalan

    18/117

    Output ke Browser

    Beberapa cara: print(); adalah fungsi yang akan mencetak isi dari

    argumen ke dalam layar.

    Ex.print("An argument isn't justcontradiction.");

    Ex.print("

    It can be.

    ");

    echo bukanlah sebuah fungsi, melainkan berupaconstruct, jadi echo tidak membutuhkan tandakurung ().

    Ex. echo "

    No it can't. An argument is aconnected series of statements intended toestablish a proposition.

    ";
  • 5/24/2018 Belajar PHP Pengenalan

    19/117

    Lab: Output ke browser

    Code:

    PHP Lecture Ex. 1

    This is the plain HTML text

    Final Output:

    PHP Lecture Ex. 1

    This is the plain HTML text

    Today is May 6, 2005

  • 5/24/2018 Belajar PHP Pengenalan

    20/117

    Memberikan komentar pada Code

    Komentar berupa satu baris diawali dengan//

    Komentar berupa blok teks diawali dengan /*dan diakhiri dengan */

    Contoh:

    // This is a single line comment

    /* This text block is a comment

    which includes this line.And this line too! */

  • 5/24/2018 Belajar PHP Pengenalan

    21/117

    Variable

    Apakah variable itu? Penampung data. Dapat berisi satu atau lebih karakter (baik huruf maupun angka).

    Variable harus diawali dengan tanda $

    Dapat dimulai dengan huruf atau underscore ("_") tapi tidakdapat dimulai dengan angka.

    Nama variable tidak boleh mengandung spasi dan bersifat casesensitive!

    Variable memiliki scope lokal (akan dibahas pada topikselanjutnya) Hanya dapat diakses pada tingkat di mana mereka dibuat.

    Variable di dalam fungsi tidak tersedia di luar fungsi.

    Variable yang dibuat diluar fungsi tidak tersedia di dalam fungsi.

    Variable yang dibuat dalam fungsi tidak tersedia di dalam fungsi lainnya.

  • 5/24/2018 Belajar PHP Pengenalan

    22/117

    PHP Predefined Variable

    PHP memiliki sejumlah variable yang telah tersedia

    (predefined variables).Variable semacam ini selalu berupa huruf besar. $GLOBALS berisi nama dan nilai dari semua variable

    semacam ini.

    Buatlah sebuah file PHP bernama predefined.php danisi dengan:

    Upload ke server dan lihat hasilnya di browser.

  • 5/24/2018 Belajar PHP Pengenalan

    23/117

    Output dari print_r ($GLOBALS);

    Array (

    [LC_PAPER] => en_US[LESSKEY] => /etc/.less[LC_ADDRESS] => en_US[KDE_MULTIHEAD] => false[HOSTNAME] => cob.uccs.edu[LC_MONETARY] => en_US[SHELL] => /bin/bash[XDM_MANAGED] =>/var/run/xdmctl/xdmctl-:0,rsvd

    [HISTSIZE] => 1000[LC_SOURCED] => 1

    These "keys" can be accessed one at a

    time using the following command:

    echo $GLOBALS[HOSTNAME];

    where "HOSTNAME" is the key name

    you want to access.

  • 5/24/2018 Belajar PHP Pengenalan

    24/117

    Tipe Variable: Numeric

    Numeric

    Integer dan floating-point (double precision)

    Integer berupa bilangan bulat; dapat positif ataupunnegatif, tapi bukan pecahan.

    Floating point numbers dapat mengekspresikan nilaipecahan (seperti desimal)

    Tidak seperti bahasa lainnya, Anda tidak perlumelakukan type castterhadap variable numeric.

  • 5/24/2018 Belajar PHP Pengenalan

    25/117

    Tipe Variable: String

    String adalah variable yang berisi karakter (segala jenis

    kombinasi). Penugasan variable dilakukan dengan tanda kutip dua

    atau kutip satu.

    $name = 'Joe Blow';

    $today = "6.22.05";

    $year = "2005";

    Tanda kutip di dalam kutip harus diberi backslash:

    $greeting = "We'd like to say \"Welcome\".";

    bl ( )

  • 5/24/2018 Belajar PHP Pengenalan

    26/117

    Tipe Variable: String (cont.)

    Tanda kutip dua dan kutip satu memiliki arti yang berbeda.

    Variable yang dibungkus kutip dua akan ditulis sebagai nilaivariable tersebut; Variable dalam kutip satu tidak.

    PHP juga memungkinkan Anda untuk menambahkan stringdengan operator string concatenation, yang dilambangkandengan titik (.)

    L b N i

  • 5/24/2018 Belajar PHP Pengenalan

    27/117

    Lab: Numeric

    Buat script dengan nama numbers.php, upload, dan lihat:

    Perhatikan bahwa $totaltelah di-cast ke float secara otomatiskarena nilainya 16.8

    L b St i

  • 5/24/2018 Belajar PHP Pengenalan

    28/117

    Lab: String

    F

  • 5/24/2018 Belajar PHP Pengenalan

    29/117

    Form

    Kita akan menggunakan form sebagai user interface

    utama. Sejak dulu, form selalu merupakan cara yang tercepat

    dan terbaik untuk menambahkan interaksi pada Website Anda. Form memungkinkan Anda untuk

    menanyakan customer tentang pendapat merekaterhadap produk ataupun Web site Anda.

    Ketika user menekan tombol submit, data dalam formdikirim ke URL yang terdapat pada atribut action:

    F M th d

  • 5/24/2018 Belajar PHP Pengenalan

    30/117

    Form Method

    Atribut methodmerupakan salah satu hal yangharus benar-benar dipertimbangkan. Ada duamethod yang dapat kita gunakan: GET danPOST.

    GET akan mengirimkan data dalam form keserver dalam bentuk URL.

    POST akan mengirimkan data dalam form keserver secara "invisible"

    L b F GET M th d

  • 5/24/2018 Belajar PHP Pengenalan

    31/117

    Lab: Form GET Method

    Form using GET

    L b Fo m POST Method

  • 5/24/2018 Belajar PHP Pengenalan

    32/117

    Lab: Form POST Method

    Form using POST

    Globals

  • 5/24/2018 Belajar PHP Pengenalan

    33/117

    Globals

    Setting register_globals pada php.ini secara default bernilai off,

    oleh sebab itu pengambilan data harus melalui $_POST ataupun$_GET berdasarkan form method: $_POST['email'];atau$_GET['email'];

    Bila register_globals di set on, maka variable yang dikirimkanoleh form dapat dibaca cukup dengan nama variable tersebut. $email;

    Server lokal di Indonesia kebanyakan memiliki settingregister_globals = On, jadi kita dapat memanfaatkankemudahan dalam mengambil variable form.

    Salah satu faktor yang harus dipertimbangkan, metode inimengandung resiko sekuriti karena user dapat mengenali namavariable dengan mudah lewat HTML source code pada form.

    PHP Operators

  • 5/24/2018 Belajar PHP Pengenalan

    34/117

    PHP Operators

    Operator Description Example Result

    + Addition x=2, x+2 4

    - Subtraction x=2, 5-x 3

    * Multiplication x=4, x*5 20

    / Division 15/55/2

    32.5

    % Modulus (division remainder) 5%210%810%2

    120

    ++ Increment x=5, x++ x=6

    -- Decrement x=5, x-- x=4

    PHP Comparison & Logic

  • 5/24/2018 Belajar PHP Pengenalan

    35/117

    PHP Comparison & Logic

    Operator Description Example Result

    greater-than 9 > 10 false

    = 10 false

    == equality operator 9 == 9, "a" = "a" true

    != or not-equal-to 9 != 10, "a" "b" true

    === test both for equality and type '10' == 10'10' === 10

    truefalse

    && logical AND returns true if allconditions are true

    true && truetrue && false

    truefalse

    || logical OR returns true if anycondition is true

    true || truetrue || false

    truetrue

    ! logical NOT returns true if thecondition is false and vice-versa

    !true!false

    falsetrue

    PHP Conditional Statements IF

  • 5/24/2018 Belajar PHP Pengenalan

    36/117

    PHP Conditional Statements - IF

    if (first condition is true) {

    do this!}

    elseif (second condition is true) {

    do this!

    }elseif (third condition is true) {

    do this!

    }

    ... and so on ...

    else {

    do this!

    }

    PHP Conditional Statements Switch

  • 5/24/2018 Belajar PHP Pengenalan

    37/117

    PHP Conditional Statements - Switch

    switch (decision-variable) {

    case first condition is true:

    do this!

    case second condition is true:

    do this!

    ... and so on...

    }

    Beberapa keywords: break: digunakan untuk berhenti dan keluar dari switch(), dan kemudian

    berpindah ke baris selanjutnya setelah switch(). default: digunakan untuk mengeksekusi kumpulan statement apabila

    syarat switch tidak terpenuhi (seperti "case else").

    Kesalahan yang biasa dibuat oleh newbie (pemula) adalahmelupakan break pada akhir setiap block case(). Ingatlah bahwabisa Anda melupakan break, PHP akan terus mengeksekusi codepada block case() selanjutnya.

    Lab: IF

  • 5/24/2018 Belajar PHP Pengenalan

    38/117

    Lab: IF

    Today's special is:

    Lab: Switch

  • 5/24/2018 Belajar PHP Pengenalan

    39/117

    Lab: Switch

    Today's special is:

    PHP Looping Statements - While

  • 5/24/2018 Belajar PHP Pengenalan

    40/117

    PHP Looping Statements - While

    while (condition is true) {

    do this!

    }

    Statement akan terus dieksekusi selama kondisiyang dievaluasi bernilai true. Pengecekankondisi dimulai sejak pertama kali blok

    dieksekusi.

    PHP Looping Statements Do While

  • 5/24/2018 Belajar PHP Pengenalan

    41/117

    PHP Looping Statements Do While

    do {

    do this!

    } while (condition is true)

    Statement akan terus dieksekusi selama kondisiyang dievaluasi bernilai true. Pengecekankondisi dimulai setelah satu kali blok dieksekusi.

    Jadi loop model ini akan dieksekusi minimum1x.

    PHP Looping Statements - For

  • 5/24/2018 Belajar PHP Pengenalan

    42/117

    PHP Looping Statements For

    for (initial value of counter;

    condition; new value of counter){

    do this!

    } Bila Anda sudah mengetahui berapa kali jumlah eksekusi yang

    Anda inginkan, gunakanlah For. "counter" adalah variable PHP yang di-inisialisasi dengan nilai

    numerik, dan mencatat berapa kali loop telah dieksekusi.Sebelum tiap eksekusi, "condition" akan diuji. Bila hasilnya true,

    maka loop akan dieksekusi sekali lagi dan counter akanbertambah; Bila hasilnya false, loop akan berhenti dan barisberikut setelah blok for() akan dieksekusi.

    Lab: While

  • 5/24/2018 Belajar PHP Pengenalan

    43/117

    Lab: While

    Lab: Do While

  • 5/24/2018 Belajar PHP Pengenalan

    44/117

    Lab: Do While

    Lab: For

  • 5/24/2018 Belajar PHP Pengenalan

    45/117

    Lab: For

    Lab: Conditional & Looping

  • 5/24/2018 Belajar PHP Pengenalan

    46/117

    Lab: Conditional & Looping

    Kombinasikan semua yang telah Anda pelajari

    untuk membuat script:

    Variable: firstname, lastname, favnum (favoritenumber) antara 1-20

    Bila favorite number lebih dari 20 maka cetak "Myfavorite number is greater than 20";

    Cetak semua angka dari 0 sampai favorite numberAnda.

    Apa itu Array?

  • 5/24/2018 Belajar PHP Pengenalan

    47/117

    Apa itu Array?

    Array adalah variable kompleks yang memungkinkan

    Anda untuk menyimpan beberapa value sekaligus kedalam satu variable. (yang sangat berguna bila Andaingin menyimpan dan menampilkan informasi yangsaling berhubungan).

    Dua macam: Indexed dan Associative

    Indexed keys dimulai dari 0 dan seterusnya.Associative arrays menggunakan string sebagai keys.

    $colors = array("red", "green", "blue", "purple", "pink");

    Indexed Keys

  • 5/24/2018 Belajar PHP Pengenalan

    48/117

    Indexed Keys

    Karena array memiliki keys yang spesifik, kita dapatmenggunakan index untuk mengakses nilainya dengan []

    // Single colors will just print

    $color = "red";print $color;

    // Arrays need to be indexed using []'s. Which colors will print?$colors = array("red", "green", "blue", "purple", "pink");print $colors[0];

    print $colors[2];

    Associative Arrays

  • 5/24/2018 Belajar PHP Pengenalan

    49/117

    Associative Arrays

    Bagaimana bila kita ingin membuat keys kita sendiri?

    Caranya:key => value

    $grades = array("Homer" => 20, "Marge" => 80,

    "Lisa" => 100, "Bart" => 0, "Maggie" => 50);

    print $grades["Homer"];print $grades["Bart"];

    Looping dalam Arrays

  • 5/24/2018 Belajar PHP Pengenalan

    50/117

    oop g da a ays

    Daripada mengakses value satu per satu, mengapa tidaksekaligus mengakses semua value yang ada dengan looping?

    foreach($array as $key=>$value);

    $grades = array("Homer" => 20, "Marge" => 80, "Lisa" =>100, "Bart" =>0, "Maggie" => 50);

    // Prints out all the names and gradesforeach($grades as $key => $value){

    print $key . " has a score of " . $value . "
    ";}

    // Same thing as above, notice we can call it whatever we want

    foreach($grades as $name => $grade){print $name . " has a score of " . $grade . "
    ";

    }

    Array Push dan Pull

  • 5/24/2018 Belajar PHP Pengenalan

    51/117

    y

    Anda dapat menambahkan elemen terakhir

    array dengan fungsi array_push() Dan Anda dapat membuang elemen terakhir

    array dengan fungsi array_pop()yangmemiliki nama cukup aneh..

    Bila Anda ingin membuang elemen di awal array(seperti pop), gunakan fungsi array_shift()

    Dan fungsi array_unshift()akan menangani

    penambahan elemen di awal array.

    Fungsi Array lainnya

  • 5/24/2018 Belajar PHP Pengenalan

    52/117

    g y y

    Fungsi explode()memisahkan string menjadi elemen-elemenarray berdasarkan pembatas (delimiter) yang didefinisikan user.

    Sebaliknya, Anda dapat menggunakan fungsi implode(), yangmenggabungkan semua elemen array ke dalam sebuah stringdengan pembatas (delimiter) yang didefinisikan user.

    Fungsi sort()dan rsort()dapat digunakan untuk mengurutkanisi array secara alfabet ataupun numerik, secara ascending

    maupun descending. Fungsi sizeof()mengembalikan ukuran (baca: jumlah elemen

    dalam) array. Bila Anda menggunakan associative array, fungsi array_keys()

    dan array_values() akan sangat berguna bagi Anda untukmendapatkan daftar seluruh keys dan values yang ada di dalamarray.

    Lab: Array (1 of 2)

  • 5/24/2018 Belajar PHP Pengenalan

    53/117

    y ( )

    Buatlah lima orang siswa dengan nilai antara 0

    sampai 100. Tampilkan siswa yang memiliki nilailebih dari 80.

    Hints:$array = array("key"=>5);foreach($array as $key => $value){

    if($something > 4){ }

    }

    Lab: Array (2 of 2)

  • 5/24/2018 Belajar PHP Pengenalan

    54/117

    y ( )

    Modifikasi lab sebelumnya untuk

    mengimplementasikan fungsi berikut: array_push() & array_pop()

    array_shift() & array_unshift()

    sort() & rsort()

    sizeof()

    array_keys() & array_values()

    Buatlah array baru untuk mengeksplorasi fungsi

    berikut: explode()

    implode()

    File Operations

  • 5/24/2018 Belajar PHP Pengenalan

    55/117

    p

    Di bagian ini, kita akan mempelajari operasi utama pada text fileexternal, yaitu membuka (shock!), membaca isi file (shriek!),dan (horror of horrors!) menulis data ke dalamnya.

    Saya akan mulai dengan operasi yang paling sederhana:membuka file dan membaca isinya. Mari berasumsi bahwa Andamemiliki text file bernama baca.txt pada folder php Anda, dan

    saat ini Anda ingin membaca isi file tersebut ke dalam scriptPHP.

    Untuk itu, ada tiga langkah yang harus dikerjakan: Buka file, dan berikan sebuah file handle.

    Lewat handle tersebut, ambil isi file ke dalam variable PHP. Tutup file.

    Mengecek file - file_exists()

  • 5/24/2018 Belajar PHP Pengenalan

    56/117

    g ()

    Salah satu fungsi yang paling sering digunakan untuk mengecek

    file adalah file_exists(). file_exists() akan mengembalikan true apabila file yang

    dimaksud ditemukan.

    Membaca Text Filefread()

  • 5/24/2018 Belajar PHP Pengenalan

    57/117

  • 5/24/2018 Belajar PHP Pengenalan

    58/117

    Cara lain untuk membaca data dari file adalah dengan fungsifile() yang sangat keren. Fungsi file() membaca seluruh isi fileke dalam array (ingat makhluk yang bernama array?) cukupdengan satu baris code. Masing-masing elemen array berisi satubaris dari isi file. Untuk menampilkan seluruh isi file, lakukanloop foreach() untuk tiap elemen array dan cetak elementersebut.

    Membaca Text Filefile_get_contents()

  • 5/24/2018 Belajar PHP Pengenalan

    59/117

    Tidak butuh data dalam bentuk array? Coba lah fungsifile_get_contents(), perintah baru di PHP 4.3.0 dan PHP 5.0,yang membaca seluruh isi file ke dalam sebuah string.

    Terlalu mudah? Saya biasa menggunakan fungsi ini dibandingharus menulis tiga baris code fopen(), fread(), dan fclose().Kemalasan mengalahkan segalanya

    Menulis Text Filefwrite()

  • 5/24/2018 Belajar PHP Pengenalan

    60/117

  • 5/24/2018 Belajar PHP Pengenalan

    61/117

    Bila saya sudah memanjakan Anda dengan menunjukkan fungsiyang membaca dengan cukup satu baris, maka fungsifile_put_contents(), baru di PHP 5.0, dapat mengambil stringdan menuliskannya ke file dengan satu baris code. Attribut

    FILE_APPEND bersifat optional. Ingatlah bahwa direktori dan file yang akan ditulis dari PHP

    harus sudah ada sebelum penulisan. Melupakan langkah iniseringkali menyebabkan error pada script.

    Import filesinclude() & require()

  • 5/24/2018 Belajar PHP Pengenalan

    62/117

    Perbedaan antara include()dan require(): require()

    akan mengembalikan fatal error apabila file tidakditemukan dan proses selanjutnya akan terhenti.include() hanya akan mengembalikan warning dankemudian terus menjalankan proses script selanjutnya.

    PHP juga memiliki fungsi require_once()daninclude_once(), yang menjamin bahwa file yangtelah dibaca tidak dibaca sekali lagi. Ini sangatberguna dalam situasi di mana Anda inginmenghilangkan pembacaan file yang sama berulang-

    ulang, entah untuk alasan performance, atau punmenghindari bentroknya nilai variable.

    Lab: File Operations

  • 5/24/2018 Belajar PHP Pengenalan

    63/117

    Buatlah sebuah text file dummy untuk

    menampung beberapa baris text. Buatlah script untuk membaca text file tersebut

    dalam bentuk array dan tampilkan hasilnya per

    baris supaya format tetap seperti aslinya. Buatlah form dan script untuk menulis isi ke text

    file tersebut:

    Write: hapus isi text sebelumnya

    Append: tambahkan isi text ke dalam file

    Function

  • 5/24/2018 Belajar PHP Pengenalan

    64/117

    Function adalah sekumpulan statement yang dapat melakukantugas tertentu, dan dapat dipanggil, atau pun dieksekusi, daribagian program Anda.

    Ada tiga alasan mengapa function akan memudahkan hidupAnda: user-defined function memungkinkan Anda untuk memisahkan code ke

    dalam sub bagian yang mudah diidentifikasiyang berarti lebih mudah

    dimengerti dan di-debug. Function membuat program Anda bersifat modular, yang berarti Anda

    dapat menuliskan sepotong code sekali saja dan menggunakan potongantersebut berkali-kali dalam program Anda.

    Function menyederhanakan proses update ataupun perubahan, karenaperubahan cukup diimplementasikan pada satu tempat (yaitu pada fungsiyang bersangkutan). Oleh sebab itu, function akan menghemat waktudan uang!

    Functionmengembalikan nilai

  • 5/24/2018 Belajar PHP Pengenalan

    65/117

    Ada dua macam procedure, yaitu sub (tidak

    mengembalikan nilai), dan function (mengembalikannilai). Namun PHP tidak membedakan keduanya. BilaAnda ingin mengembalikan nilai kepada pemanggilfunction, gunakanlah keyword return.

    Functiontidak mengembalikan nilai

  • 5/24/2018 Belajar PHP Pengenalan

    66/117

    FunctionDefault Value

  • 5/24/2018 Belajar PHP Pengenalan

    67/117

    Dengan default value, kita dapat melakukan

    pemanggilan function walaupun parameterfunction tidak lengkap.

    Shrinking Argument List

  • 5/24/2018 Belajar PHP Pengenalan

    68/117

    Dengan built-in function berikut, Anda dapat mengekstraksemua argumen yang dilemparkan dari pemanggil function kefunction tersebut ke dalam bentuk array dengan mudah.

    Lab: Functions

  • 5/24/2018 Belajar PHP Pengenalan

    69/117

    Buatlah sebuah fungsi untuk mengembalikan

    nilai penjumlahan lima parameter dengandefault value 0 supaya bila user tidakmemberikan value, perhitungan tetap dapat

    dilakukan. Tambahkan func_get_args() untuk

    menampilkan seluruh argumen yangdilemparkan kepada function tersebut.

    Variable Scope

  • 5/24/2018 Belajar PHP Pengenalan

    70/117

    Variable Reference Type

  • 5/24/2018 Belajar PHP Pengenalan

    71/117

    Apa perbedaan "passing by reference" dan "passing by value"? Sejauh ini,semua contoh yang telah dibahas adalah jenis "passing by value", tapi PHP

    juga memungkinkan Anda untuk menggunakan "passing by reference".

    Lab: Variable Scope

  • 5/24/2018 Belajar PHP Pengenalan

    72/117

    Buatlah contoh fungsi yang mengakses variable

    local. Buatlah contoh fungsi yang mengakses variable

    global dengan memanfaatkan keyword global.

    Buatlah contoh fungsi yang melakukan passingparameter by reference.

    Object Oriented Programming

  • 5/24/2018 Belajar PHP Pengenalan

    73/117

    Dalam PHP, sebuah class adalah sekumpulan statement yang melakukantugas tertentu. Sebuah class umumnya berisi kumpulan variable dan fungsi,

    dan berperanan sebagai template untuk instance dari class tersebut.

    Instance dari class disebut sebagai object. Setiap object memilikikarakteristik masing-masing, yaitu property (variable) dan method (function).

    Setelah class didefinisikan, Anda dapat membuat sebanyak mungkin instancedari class yang Anda miliki. Masing-masing instance akan berupa object yangberdiri sendiri, dengan property dan method milik mereka sendiri. Olehkarena itu, object-object tersebut dapat digunakan tanpa harus bergantungpada object lainnya.

    Class juga membantu menjaga coding Anda tetap modularAnda dapatmendefinisikan class dalam file yang terpisah, dan kemudian melakukan

    include file tersebut pada saat Anda ingin menggunakannyadanmenyederhanakan perubahan coding, karena Anda hanya perlu mengeditsatu file untuk mengubah fungsi atau menambahkan fungsi baru kedalamsemua object yang ada.

    Lab: Class (PHP5)

  • 5/24/2018 Belajar PHP Pengenalan

    74/117

    Lab: Class (PHP4)

  • 5/24/2018 Belajar PHP Pengenalan

    75/117

    Lab: Object (1 of 2)

  • 5/24/2018 Belajar PHP Pengenalan

    76/117

  • 5/24/2018 Belajar PHP Pengenalan

    77/117

    // and a baby to complete the family$baby = new Bear;$baby->name = "Baby Bear";

    $baby->age = 1;$baby->sex = "male";$baby->colour = "black";$baby->weight = 180;

    // a nice evening in the Bear family// daddy kills prey and brings it home

    $daddy->kill();

    // mommy eats it$mommy->eat();// and so does baby$baby->eat();

    // mommy sleeps$mommy->sleep();

    // and so does daddy$daddy->sleep();// baby eats some more

    $baby->eat();

    ?>

    Keyword: This

  • 5/24/2018 Belajar PHP Pengenalan

    78/117

    Bila Anda ingin mengakses fungsi atau variable dalam class, tersedia keyword $thispada PHP4 maupun PHP5.

    Contoh:

    Dalam kasus ini, $this mengindikasikan bahwa variable yang akan dimodifikasi beradadalam class, atau bila diterjemahkan: tambahkan argumen yang disediakan untukeat() ke dalam variable $weight dalam object ini. $this menyediakan cara yangmudah untuk mengakses variable dan fungsi yang local dalam class ini.

    Lab: This

  • 5/24/2018 Belajar PHP Pengenalan

    79/117

    Constructor

  • 5/24/2018 Belajar PHP Pengenalan

    80/117

    Bila Anda ingin mengeksekusi suatu fungsi pada setiap

    kali pembuatan object baru dari suatu class, Andadapat menggunakan constructor yang dalam PHP5berupa fungsi__construct().

    Dalam PHP4, constructor berupa fungsi yang memiliki

    nama yang sama dengan nama class tersebut. Misalnya, Anda ingin semua beruang yang baru lahir

    otomatis berwarna coklat dan memiliki berat badan100, maka Anda dapat menggunakan contructor

    seperti berikut:

    Lab: Constructor (PHP5)? h

  • 5/24/2018 Belajar PHP Pengenalan

    81/117

    Lab: Constructor (PHP4)? h

  • 5/24/2018 Belajar PHP Pengenalan

    82/117

    Lab: Constructor (Usage)

  • 5/24/2018 Belajar PHP Pengenalan

    83/117

    Hasilnya:

    Baby Bear is brown and weighs 100 units at birth

    Destructor

  • 5/24/2018 Belajar PHP Pengenalan

    84/117

    Seperti halnya constructor, kita mengenal

    adanya destructor. Destructor adalah metode yang akan dieksekusi

    pada saat object dihancurkan dari memory, dan

    biasanya berhubungan dengan tugaspembersihanseperti menutup koneksidatabase atau file, menghancurkan session, danlain-lain.

    Destructor hanya tersedia di PHP5, dan harusdiberi nama__destruct().

    Lab: Destructor (PHP5)

  • 5/24/2018 Belajar PHP Pengenalan

    85/117

    Lab: Destructor (Usage)

  • 5/24/2018 Belajar PHP Pengenalan

    86/117

    Hasilnya:Daddy Bear is killing prey...

    Daddy Bear is eating 2000 units of food...

    Daddy Bear is running...

    Daddy Bear is eating 100 units of food...Daddy Bear is dead. He was 10 years old and 2200 units heavy. Rest

    in peace!

    Public, Private, Protected

    PHP 5 memperkenalkan 3 tingkat visibility: public private dan

  • 5/24/2018 Belajar PHP Pengenalan

    87/117

    PHP 5 memperkenalkan 3 tingkat visibility: public, privatedanprotected.

    PHP 4 tidak mendukung visibility, maka seluruh property danmethod dalam class PHP4 bersifat public.

    Secara default, property dan method dalam class bersifatpublic; ini memungkinkan script pemanggil untuk masuk kedalam instance object dan memanipulasi secara langsung.

    Privateberarti property atau method tersebut tidak dapatdimanipulasi ataupun dilihat dari luar class. Ini berguna untukmelindungi proses yang ada dalam class dari manipulasi yangtidak terpantau.

    Protectedberarti property atau method tersebut tidak dapatdimanipulasi ataupun dilihat selain oleh class tersebut danturunannya (akan dibahas lebih lanjut).

    Lab: Private

  • 5/24/2018 Belajar PHP Pengenalan

    88/117

    p p// PHP 5class Bear {

    public $name;public $age;public $weight;private $_lastUnitsConsumed;

    public function __construct() {$this->age = 0;

    $this->weight = 100;

    $this->_lastUnitsConsumed = 0;}public function eat($units) {

    echo $this->name." is eating ".$units." units of food...\n";$this->weight += $units;

    $this->_lastUnitsConsumed = $units;}public function getLastMeal() {

    echo "Units consumed in last meal were ".$this->_lastUnitsConsumed."\n";}

    }

    ?>

    Lab: Private (Usage)

  • 5/24/2018 Belajar PHP Pengenalan

    89/117

    Inheritance atau Extends

    Dengan pen nan seb ah class (e tends) kita

  • 5/24/2018 Belajar PHP Pengenalan

    90/117

    Dengan penurunan sebuah class (extends), kita

    dapat membuat class baru berdasarkan classyang sudah ada, dan menambahkan fungsi-fungsi baru ke dalam class baru tersebut tanpamempengaruhi class yang sudah ada.

    Class yang sudah ada dapat dianggap sebagaiorang tua (parent), dan class hasil extendsdisebut juga anak (child).

    Hasil dari extends berupa class, bukan sebuahobject.

    Lab: Extends (PHP5)

  • 5/24/2018 Belajar PHP Pengenalan

    91/117

    class Bear {public $name;public $weight;

    public $age;public $sex;public $colour;

    public function __construct() {$this->age = 0;$this->weight = 100;

    }public function eat($units) {

    echo $this->name." is eating ".$units."units of food...\n";

    $this->weight += $units;}

    public function run() {echo $this->name." is running...\n";

    }public function kill() {

    echo $this->name." is killingprey...\n";

    }

    public function sleep() {echo $this->name." is sleeping...\n";}

    }

    // extended class definition

    class PolarBear extends Bear {

    public function __construct() {

    parent::__construct();

    $this->colour = "white";

    $this->weight = 600;

    }

    public function swim() {

    echo $this->name." is swimming..";

    }

    }

    ?>

    Lab: Extends (PHP4)

  • 5/24/2018 Belajar PHP Pengenalan

    92/117

    // PHP 4

    // extended class definitionclass PolarBear extends Bear {

    // constructor

    function PolarBear() {

    parent::Bear();

    $this->colour = "white";

    $this->weight = 600;}

    // define methods

    function swim() {

    echo $this->name." is swimming...\n";

    }

    }

    ?>

    Lab: Extends (Usage)

  • 5/24/2018 Belajar PHP Pengenalan

    93/117

    // create instance of Bear()

    $tom = new Bear;$tom->name = "Tommy Bear";

    // create instance of PolarBear()

    $bob = new PolarBear;

    $bob->name = "Bobby Bear";

    // $bob can use all the methods of Bear() and PolarBear()$bob->run();

    $bob->kill();

    $bob->swim();

    // $tom can use all the methods of Bear() but not PolarBear()

    $tom->run();

    $tom->kill();$tom->swim();

    ?>

    Menghindari inheritance?

    Khusus di PHP5, kita dapat mengunci class supaya tidak dapat

  • 5/24/2018 Belajar PHP Pengenalan

    94/117

    , p g p y pdi extends, yaitu dengan keyword final.

    Informasi tentang class

    get class(): nama class dari sebuah object

  • 5/24/2018 Belajar PHP Pengenalan

    95/117

    get_class(): nama class dari sebuah object

    get_parent_class(): nama parent class darisebuah nama class/object

    get_class_vars(): seluruh property atauvariable yang dimiliki oleh class

    get_class_methods(): seluruh method ataufunction yang dimiliki oleh class

    get_object_vars(): seluruh property beserta

    nilainya dari object tertentu. Catatan: tidak ada get_object_methods()

    Lab: Informasi Class

  • 5/24/2018 Belajar PHP Pengenalan

    96/117

    // PHP 5

    class Bear {

    public $name;public $weight;

    public function __construct() {

    }

    public function eat() {

    }

    public function run() {

    }public function sleep() {

    }

    }

    // derived class

    class GrizzlyBear extends Bear {

    public function kill() {}

    }

    ?>

    Lab: Informasi Class (Usage)

  • 5/24/2018 Belajar PHP Pengenalan

    97/117

    $joe = new GrizzlyBear;$joe->name = "Joe Bear";

    $joe->weight = 1000;echo "Class: " . get_class($joe);echo "Parent class: " . get_parent_class(get_class($joe));

    // get class name$className = get_class($joe);

    // get class propertiesecho "Class properties:\n";print_r(get_class_vars($className));

    // get class methods

    echo "\nClass methods:\n";print_r(get_class_methods($className));

    // get this instance's properties

    echo "\nInstance properties:\n";print_r(get_object_vars($joe));

    ?>

    Koneksi ke Database MySQL Buatlah database berikut:

  • 5/24/2018 Belajar PHP Pengenalan

    98/117

    CREATE DATABASE testdb;CREATE TABLE `symbols` (

    `id` int(11) NOT NULL auto_increment,

    `country` varchar(255) NOT NULL default '',

    `animal` varchar(255) NOT NULL default '',PRIMARY KEY (`id`)

    ) TYPE=MyISAM;

    INSERT INTO `symbols` VALUES (1, 'America', 'eagle');

    INSERT INTO `symbols` VALUES (2, 'China', 'dragon');INSERT INTO `symbols` VALUES (3, 'England', 'lion');

    INSERT INTO `symbols` VALUES (4, 'India', 'tiger');

    INSERT INTO `symbols` VALUES (5, 'Australia', 'kangaroo');INSERT INTO `symbols` VALUES (6, 'Norway', 'elk');

    Syntax untuk akses MySQL open connection

    $connection = mysql connect($host $user $pass) or die ("Unable to connect!");

  • 5/24/2018 Belajar PHP Pengenalan

    99/117

    $connection = mysql_connect($host, $user, $pass) or die ( Unable to connect! ); select database

    mysql_select_db($db) or die ("Unable to select database!"); create query

    $query = "SELECT * FROM symbols"; execute query

    $result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); see if any rows were returned

    if (mysql_num_rows($result) > 0)

    fetch rows (ada beberapa metode, akan dijelaskan di slide berikutnya) while($row = mysql_fetch_row($result)) while(list($id, $country, $animal) = mysql_fetch_row($result)) while($row = mysql_fetch_assoc($result))

    while($row = mysql_fetch_object($result)) free result set memory

    mysql_free_result($result); close connection

    mysql_close($connection); check number of affected rows

    mysql_affected_rows()

    Lab 1: mysql_fetch_row()

  • 5/24/2018 Belajar PHP Pengenalan

    100/117

    // set database server access variables:

    $host = "localhost";$user = "test";

    $pass = "test";

    $db = "testdb";

    // open connection

    $connection = mysql_connect($host, $user, $pass) or die ("Unable to

    connect!");

    // select database

    mysql_select_db($db) or die ("Unable to select database!");

    // create query

    $query = "SELECT * FROM symbols";

    // execute query

    $result = mysql_query($query) or die ("Error in query: $query.".mysql_error());

    // see if any rows were returned

    if (mysql num rows($result) > 0) {

  • 5/24/2018 Belajar PHP Pengenalan

    101/117

    if (mysql_num_rows($result) > 0) {

    echo "";

    while($row = mysql_fetch_row($result)) {echo "";

    echo "".$row[0]."";echo "".$row[1]."";echo "".$row[2]."";echo "";

    }

    echo "";}

    else {

    echo "No rows found!";

    }

    mysql_free_result($result);

    mysql_close($connection);

    ?>

    Lab 2: list() dan mysql_fetch_row()if (mysql_num_rows($result) > 0) {

    // yes

  • 5/24/2018 Belajar PHP Pengenalan

    102/117

    // yes

    // print them one after another

    echo "";while(list($id, $country, $animal) = mysql_fetch_row($result))

    echo "";

    echo "$id";echo "$country";echo "$animal";

    echo "";}

    echo "";}

    else {

    // no

    // print status messageecho "No rows found!";

    }

    Lab 3: mysql_fetch_assoc()if (mysql_num_rows($result) > 0) {

    // yes

  • 5/24/2018 Belajar PHP Pengenalan

    103/117

    // yes

    // print them one after another

    echo "";while($row = mysql_fetch_assoc($result)) {

    echo "";

    echo "".$row['id']."";echo "".$row['country']."";echo "".$row['animal']."";

    echo "";}

    echo "";}

    else {

    // no

    // print status messageecho "No rows found!";

    }

    Lab 4: mysql_fetch_object()if (mysql_num_rows($result) > 0) {

    // yes

  • 5/24/2018 Belajar PHP Pengenalan

    104/117

    // yes

    // print them one after another

    echo "";while($row = mysql_fetch_object($result)) {

    echo "";

    echo "".$row->id."";echo "".$row->country."";echo "".$row->animal."";

    echo "";}

    echo "";}

    else {

    // no

    // print status messageecho "No rows found!";

    }

    Lab 5: Insert Data

  • 5/24/2018 Belajar PHP Pengenalan

    105/117

  • 5/24/2018 Belajar PHP Pengenalan

    106/117

    // escape input values for greater safety

    $country = empty($_POST['country']) ? die ("ERROR: Enter a country") :mysql_escape_string($_POST['country']);

    $animal = empty($_POST['animal']) ? die ("ERROR: Enter an animal") :mysql_escape_string($_POST['animal']);

    $connection = mysql_connect($host, $user, $pass) or die ("Unable toconnect!");

    mysql_select_db($db) or die ("Unable to select database!");

    $query = "INSERT INTO symbols (country, animal) VALUES ('$country',

    '$animal')";$result = mysql_query($query) or die ("Error in query: $query.

    ".mysql_error());

    // print message with ID of inserted record

    echo "New record inserted with ID ".mysql_insert_id();

    mysql_close($connection);

    }?>

    Lab 6: Delete Data

  • 5/24/2018 Belajar PHP Pengenalan

    107/117

  • 5/24/2018 Belajar PHP Pengenalan

    108/117

    $query = SELECT * FROM symbols ;$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());

    if (mysql_num_rows($result) > 0) {echo "";while($row = mysql_fetch_object($result)) {

    echo "";echo "".$row->id."";echo "".$row->country."";

    echo "".$row->animal."";echo "Delete";

    echo "";}echo "";

    }

    else {echo "No rows found!";

    }mysql_free_result($result);

    mysql_close($connection);?>

    Lab 7: Error Handling

  • 5/24/2018 Belajar PHP Pengenalan

    109/117

    $connection = mysql_connect("localhost", "test", "test") or

    die("Invalid server or user");

    mysql_select_db("testdb", $connection) or die("Invalid database");

    $query = "SELECT FROM symbols";

    $result = mysql_query($query,$connection);

    // look for errors and printif(!$result) {

    $error_number =mysql_errno();$error_msg =mysql_error();echo "MySQL error $error_number: $error_msg";

    }

    mysql_close($connection);?>

    State Management

    Cookie:memungkinkan Web site untuk

  • 5/24/2018 Belajar PHP Pengenalan

    110/117

    menyimpan informasi tentang client ke dalamsystem client itu sendiri, dan mengaksesinformasi tersebut apabila diperlukan.

    Session: menyimpan informasi client di dalamserver selama kunjungan client, dan dibuangsetelah kunjungan berakhir. Session bekerjadengan cara mengasosiasikan masing-masing

    session dengan session ID yang di-generateoleh PHP.

    Lab: Session (Intro)

  • 5/24/2018 Belajar PHP Pengenalan

    111/117

    // initialize a session

    session_start();

    // increment a session counter

    $_SESSION['counter']++;

    // print valueecho "You have viewed this page " . $_SESSION['counter'] .

    " times";

    // print session ID

    echo "I'm tracking you with session ID " . session_id();

    ?>

    Lab: Session (Remember Me)

  • 5/24/2018 Belajar PHP Pengenalan

    112/117

  • 5/24/2018 Belajar PHP Pengenalan

    113/117

    }

    }

    else if (isset($_SESSION['name'])) {

    // if a previous session exists

    // calculate elapsed time since session start and nowecho "Welcome back, " . $_SESSION['name'] . ". This

    session was activated " . round((time() -$_SESSION['start']) / 60) . " minute(s) ago. Click here to refresh thepage.";

    }

    ?>

    Lab: Session (Logout/Destroy)

  • 5/24/2018 Belajar PHP Pengenalan

    114/117

    // initialize a session

    session_start();

    // then destroy itsession_destroy();

    header("Location: session1.php");

    exit;?>

    Lab: Cookie (Set)

  • 5/24/2018 Belajar PHP Pengenalan

    115/117

    _ ()

    if (!isset($_COOKIE['test123'])) {// if a cookie does not exist// set it

    setcookie("test123", "test", mktime()+86400);

    echo "This is your first visit here today.";

    }else {

    // if a cookie already exists

    echo "Nice to see you again, old friend!";}

    ?>

    Lab: Cookie (Delete)

  • 5/24/2018 Belajar PHP Pengenalan

    116/117

    // delete cookie

    setcookie("test123", NULL, mktime() -

    3600);

    ?>

    Lab: Login with Database

    Buatlah sebuah website kecil yangmenggunakan cek login ke database dengan

  • 5/24/2018 Belajar PHP Pengenalan

    117/117

    menggunakan cek login ke database denganpage berikut: Login page

    Beberapa page yang dilindungi supaya hanya bisadiakses setelah login

    Logout

    Buat dengan dua metode penyimpanan info: Session

    Cookies (Remember Me) supaya tidak perlu loginulang pada kunjungan berikutnya.