tentang php

Upload: cindyfzh

Post on 16-Oct-2015

55 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/25/2018 Tentang PHP

    1/71

    A. Sejarah Tentang PHP

    PHP pertama kali dibuat oleh Rasmus lerdroft pada tahun 1995. Pada waktu ituPHP masih bernama Form Interpreted (FI), yang wujudnya berupa sekumpulan scriptyang digunakan untuk mengolah data formulir pada sebuah web.

    Kemudian ia mengeluarkan Personal Home Page Tools versi 1.0 secara gratis. Versiini pertama kali keluar tahun 1995. isinya adalah sekumpulan script PERL yangdibuatnya untuk membuat halaman webnya menjadi dinamis. Selanjutnya Rasmusmerilis kode sumber tersebut secara umum dan menamakannya PHP/FI, kependekandari "Hypertext Preprocessor"/"Form Interpreted".

    1. Pada tahun 1992, dirilis PHP/FI versi 2.0 yang kemampuannya telah dapatmengakses database dan terintegrasi dengan HTML. Pada rilis iniinterpreter PHP sudah diimplementasikan pada program C. Dalam rilis inidisertakan juga modul-modul ekstensi yang meningkatkan kemampuanPHP/Fi secara signifikan.

    2. Pada tahun 1997, perusahaan bernama Zend menulis ulang interpreter PHPmenjadi lebih bersih,lebih baik dan lebih cepat. Kemudian pada Juni 1998,perusahaan tersebut merilis PHP versi 3.0.

    3. Pada pertengahan tahun 1999, Zend merilis interpreter baru dan rilistersebut dikenal dengan PHP versi 4.0. Perubahan yang paling mendasardari PHP 4.0 ini adalah terintegrasi nya Zend engine yang dibuat oleh ZendSuraski dan Andi Gutmans yang merupakan penyempurnaan dari PHPscripting engine. Yang lainnya adalah build in HTTP session, tidak lagimenggunakan library tambahan. Tujuan dari bahasa scripting ini adalahuntuk membuat aplikasi-aplikasi yang dijalankan di atas teknologi web.Dalam hal ini, aplikasi pada umumnya akan memberikan hasil pada web

    browser, tetapi prosesnya secara keseluruhan dijalakan pada web server.PHP ini adalah PHP yang paling banyak digunakan dikarenakankemampuannya untuk membangun aplikasi web kompleks tetapi tetapmemiliki kecepatan dan stabilitas yang tinggi.

    4. Pada Juni 2004, Zend merilisi PHP versi 5.0. Dalam versi ini, inti dariinterpreter PHP mengalami perubahan besar. Versi ini juga memasukkanmodel pemrograman berorientasi objek ke dalam PHP untuk menjawab

    perkembangan bahasa pemrograman ke arah paradigma berorientasi objek.

    B. Pengertian PHPPHP merupakan bahasa scripting yang terpasang pada HTML. Sebagian

    besar sintaks mirip dengan bahasa C, Java dan Perl ditambah beberapa fungsi PHPyang spesifik. Tujuan utama penggunan bahasa ini adalah untuk memungkinkan

    perancangan web menulis halaman web dinamis dengan cepat.

    C. Kelebihan PHP dari bahasa pemrograman web, antara lain :1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak

    melakukan sebuah kompilasi dalam penggunaannya. 2. Web server yang mendukung PHP dapat ditemukan diman-mana dari mulai

    Apache, IIS, lighttpd hingga Xitami dengan konfigurasi yang relatif lebihmudah.

    3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milisdandeveloper yang siap membantu dalam pengembangan.

  • 5/25/2018 Tentang PHP

    2/71

    4. Dalam sisi pemahaman, PHP adalah scripting yang paling mudah karenamemiliki referensi yang banyak.

    5. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin(Linux,Unix, Macintosh, Windows ) dan dapat dijalankan secara runtimemelalui console serta juga dapat menjalankan perintah-perintah system.

    D. Tipe data PHP

    Ada 8 macam tipe data pada PHP, diantaranya :

    1.I ntegerTipe 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.

    Namun bila terdapat data diluar jangkauan tersebut, maka secara otomatisPHP akan

    mengkonversikannya ke dalam tipe data Floating Point.Integer merupakan Tipe Data yang berisikan bilangan bulatnegatif dan positif atautanpa

    ada nilai pecahan.

    Tipe ini juga dapat dinyatakan dalam bentuk oktal (berbasis 8), desimal (berbasis 10),

    heksadesimal (berbasis 16). Seperti dalam contoh berikut :

    $oktal = 031;

    $desimal = 25;

    $heksadesimal = 010;

    2.Double FloatingTipe 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 penulisannya :

    3. BooleanTipe Data ini adalah tipe data yang paling sederhana. Hanya berupa trueatau false.

    Cara memasukan ke dalam variabel adalah dengan memberikan nilai trueatau falsepada

    variabel tersebut. Penulisannya tidak dipengaruhi penggunaan huruf besar atau kecil.

    Contoh penulisannya:

  • 5/25/2018 Tentang PHP

    3/71

    ?>

    Setiap Tipe Data dalam PHP mempunyai Boolean untuk melakukan Seleksi Kondisi. dan

    Tipe Data tersebut akan memberikan nilai trueatau falsepada seleksi kondisi tersebut.

    a) Pada Variabel yang bertipe Data integer=0 (nol) mempunyai boolean false, selain itu

    true.

    b) Pada Variabel yang bertipe Data float=0.0 (nol) mempunyai boolean false, selain itutrue.

    c) Pada Tipe Data string yang kosong, dan string="0" mempunyai boolean false, selain

    itu true.

    d) Array yang tidak mempunyai element mempunyai boolean false, selain itu true.

    e) Objek yang tidak mempunyai member mempunyai boolean false, selain itu true.

    f) Tipe NULL dan Variabel yang belum terisi mempunyai boolean false.

    4. String

    String adalah sebuah tipe data yang terdiri dari kata, bisa berupa kata tunggal maupunkalimat. Penulisan string harus diapit oleh tanda petik, baik petik tunggal( ) maupun petik

    ganda ( )

    Contoh penulisan tipe data string :

    Perbedaan antara petik ganda dan petik tunggaladalah, ketika kita menggunakan petik

    tunggal maka variabel tidak akan terbaca nilainya. Beda halnya dengan penggunaan petik

    genap yang akan membaca nilai dari suatu variabel.

    Lebih spesifiknya :

    Jika string yang tertutup dalam tanda kutip ganda ( ), PHP akan

    menafsirkanescape sequence lebih untuk karakter khusus. Maka penulisan untuk karakter

    khusus tersebut harus ditambahkan slash didepan karakter tersebut.

    5. Objek

    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.

    Agar lebih mudah dapat menggunakan variabel dengan nilai string :

    class Nama {

  • 5/25/2018 Tentang PHP

    4/71

    var $jenis = Beroo Haloo;

    function ganti_nama($jenis) {

    $this->jenis = $jenis;

    }

    }$nama = new Nama;

    echo $nama->jenis;

    $nama->ganti_nama(Haloo Beroo);

    echo
    .$nama->jenis;

    Hasilnya :

    Beroo Haloo

    Haloo Beroo

    6. ArrayArrayatau Larikmerupakan Tipe Compound Primitif, terdapat pada bahasa-bahasa

    pemrograman lain.

    Tipe data array digunakan untuk menyimpan banyak data dalam satu variabel. Jenis array

    dalam phpada 3 (tiga) macam yakni :

    Numeric Array

  • 5/25/2018 Tentang PHP

    5/71

    $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]" ;

    ?>Pada contoh associative array diatas dapat disimpulkan bahwa pemanggilan data array

    tersebut menggunakanstring yang ditentukan oleh kita, dengan kata lain pemanggilan

    menggunakan angka kita ganti menjadi string yang kita inginkan.

    Multidimensional ArrayPengertian multidimension arrayadalah 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.

    7. NullNULL adalah Tipe Data yang tidak memuat apapun. Setiap Variabel yang diset

    menjadi Tipe Data NULL ini akan menjadikan Variabel tersebut kosong, seperti dalam

    penggunaan fungsi unset(). Cara untuk menset Variabel menjadi NULL adalah

    dengan memasukan nilai NULL pada variabel yang dimaksud seperti pada

    Contoh berikut:

    8. ResourcesTipe Data Spesial yang satu ini di khususkan untuk menyimpan

    resource, sumberatau alamat. Variabel tersebut hanya dapat diciptakan oleh suatu fungsikhususyang mengembalikan nilai berupa resource seperti penggunaan

    fungsi fopen, opendir, mysql_connect, mysql_querydan semacam

    http://f/web/Tipe%20Data%20Dalam%20PHP%20_%20Kode%20PHP.htm%23con_stringhttp://f/web/Tipe%20Data%20Dalam%20PHP%20_%20Kode%20PHP.htm%23con_string
  • 5/25/2018 Tentang PHP

    6/71

    E.Contoh Program dan Penjelasannya

    Ada beberapa contoh program diantaranya :

    1. Kondisi

    2. Looping

    3. Form

    4. Session

    5. Input Data

    6. Database

    Didalam pemrograman kondisi dikenal dalam bentuk IF, CASE ataupun yang setara.:

    1. MacamMacam Kondisi

    a) Struktur Kondisi If

    if (kondisi) {

    statement-jika-kondisi-true;

    }

    Keterangan :

    kondisi merupakan statemen atau variabel yang akan diperiksa TRUE atau

    FALSE-nya

    b) Struktur Kondisi If ... Else

    if (kondisi) {

    statement-jika-kondisi-true;

    } else {

    statement-jika-kondisi-false;

    }

    Keterangan :

    kondisi merupakan statemen atau variabel yang akan diperiksa TRUE

    atau FALSE-nya. Jika kondisinya TRUE maka statemen yang berada di

    blok if akan dieksekusi, sebaliknya jika kondisinya FALSE maka

    statemen yang berada di blok else yang akan dieksekusi.

    c) Struktur Kondisi Khusus

    (kondisi) ? benar : salah;

    Keterangan :

    kondisi merupakan statemen atau variabel yang akan diperiksa TRUE atau

    FALSE-nya. Statement pada blok benar dan salah hanya boleh satu

    statemen saja.

  • 5/25/2018 Tentang PHP

    7/71

    d) Struktur Kondisi Switch ... Case

    switch ($var) {

    case '1' : statement-1; break;

    case '2' : statement-2; break;

    ....

    }

    Keterangan :

    $var merupakan variabel yang akan diperiksa isi atau nilainya. Tipe data

    variabel ini tidak dibatasi.

    Value pada case juga bisa berupa string, integer, boolean, bahkan bisa

    berupa conditional-statement. Boleh memakai kutip tunggal maupun kutip

    ganda.

    Contoh Program 1Nama File : if.php

    Deskripsi : Program Struktur Kondisi If.

    Penjelasan Program 1:

    Pada program di atas, terdapat pemeriksaan kondisi apakah isi variabel $nilai

    lebih dari 60 (baris 3). Jika kondisi ini bernilai TRUE (variabel $nilai berisi nilai

    yang lebih besar dari 60) maka statement pada baris ke-4 akan dijalankan.

    Sebaliknya jika kondisinya FALSE, maka statement pada baris ke-4 tidak akan

    dijalankan.

    Contoh Program 2:

    Nama File : if_else.phpDeskripsi : Program Struktur Kondisi If..Else.

  • 5/25/2018 Tentang PHP

    8/71

    Penjelasan Program 2 :

    Pada program di atas, terdapat pemeriksaan kondisi apakah isi variabel $nilai

    lebih dari 60 (baris 3). Jika kondisi ini bernilai TRUE (variabel $nilai berisi nilai

    yang lebih besar dari 60) maka statement pada baris ke-4 akan dijalankan.

    Sebaliknya jika kondisinya FALSE, maka statement pada baris ke-6 yang akandijalankan. Pada contoh program di atas, kondisi pada baris ke-3 bernilai FALSE

    karena isi variabel $nilai adalah 50.

    Contoh Program 3Nama File : if_else2.php

    Deskripsi : Program Memeriksa username dan password dengan If..Else.

    Penjelasan Program 3:

    Pada program di atas, terdapat pemeriksaan kondisi apakah isi variabel $nilai

    sama dengan achmatim dan apakah isi variabel $pass sama dengan 123

    (baris 4). Jika kedua kondisi tersebut bernilai TRUE maka statement pada baris

    ke-5 akan dijalankan. Sebaliknya jika salah satunya bernilai FALSE, maka

    statement pada baris ke-7 yang akan dijalankan.

    Contoh Program 4Nama File : if_var.php

    Deskripsi : Program Memeriksa suatu variabel ada atau tidak.

    Penjelasan Program 4 :

    Pada program di atas, terdapat fungsi isset() yang merupakan fungsi untuk

    memeriksa apakah suatu variabel sudah terbentuk (ada) atau belum. Fungsi akanbernilai TRUE jika variabelnya ada. Jadi jika baris ke-2 dari program di atas diremark

    atau dihilangkan maka statement pada baris ke-4 yang akan dijalankan.

  • 5/25/2018 Tentang PHP

    9/71

    Contoh Program 5Nama File : switch.php

    Deskripsi : Program Struktur Switch..Case untuk menampilkan nama hari

    dalam bahasa Indonesia.

    Penjelasan Program 5 :

    Pada program di atas, variabel $day (baris ke-2) akan berisi 3 (tiga) digit

    pertama dari nama hari dalam bahasa Inggris. Dengan fungsi date(), kita akan

    memperoleh informasi tanggal, hari dan waktu sekarang. Fungsi ini akan

    diperlajari lebih lanjut pada Bab mendatang. Selanjutnya isi variabel $day akan

    diperiksa dengan switch (baris ke-3), jika isinya adalah Sun maka $hari adalah

    Minggu dan seterusnya.

    Contoh Program 6Nama File : if_khusus.php

    Deskripsi : Program Struktur Kondisi Khusus ? untuk memeriksa tahun kabisat.

    Penjelasan Program 6 :

    Pada program di atas, fungsi date() dengan parameter Y (baris ke-2) akan

    menghasilkan 4 digit tahun sekarang. Pada baris ke-3 akan diperiksa apakah isi

    variabel $tahun jika dimodulus dengan 4 akan menghasilkan nilai 0. Jika TRUE

    maka $kabisat akan berisi KABISAT dan jika FALSE $kabisat akan berisi

    BUKAN KABISAT.

  • 5/25/2018 Tentang PHP

    10/71

    2. Macam-Macam Looping

    a) WHILE

    Struktur whileadalah jenis pengulangan yang penulisan kondisi algoritma

    nya di awal blok, maksudnya jika kondisi algoritma tadi tidak terpenuhi maka

    kondisi bernilai false dan proses pengulangan pun tidak akan dilakukan. Dibawah

    ini merupakan bentuk umum penulisan dari struktur pengulangan

    menggunakan while.

    while(ekspresi) {

    blok program

    }

    Contoh Lainnya

    b) FORSturktur forbiasanya digunakan ketika kita akan melakukan pengulangan

    yang banyaknya sudah pasti atau sudah diketahui oleh kita sebelumnya. Dalam

    menuliskan pengulngan for ini sebelumnya kita harus mendefinisikan inisial dan

    kondisi terlebih dahulu untuk melakukan pengulangannya. Berikut adalah bentuk

    umum dari pengulangan menggunakan for.

    for (inisial; kondisi; iterasi) {

    //isi dari pengulangan

    }

    Contoh lainnya,

  • 5/25/2018 Tentang PHP

    11/71

    Program diatas akan mencetak teks PHP sebanyak 10 kali dengan indeks dimulai dari 10

    sampai 1 (menurun)

    Varisai FOR (Menentukan Bilangan Prima)

    Contoh Lainnya,

    Hasil keluaran program diatas adalah melakukan penjumlahan seperti dibawah ini,

    1 + 2 + 3 = 6

    c) DOWHILE

    Sebelumnya kita tadi sudah mengenal pengulangan dengan

    menggunakan while , terus kenapa? hahaya karena sebenarnya struktur

    pengulangan ini mirip dengan struktur while, mungkin perbedaannya hanya terdapat

  • 5/25/2018 Tentang PHP

    12/71

    pada penempatan kondisi saja yang dengan kata lain pada struktur pengulangan ini

    kondisinya terletak di akhir blok pengulangan sedangkan pada struktur whileyang

    kita kenal tadi berada di awal blok pengulangan.

    Berikut adalah bentuk umun dari penggunaan struktur pengulangan do-while,

    inisial

    do {

    //proses pengulangan

    iterasi

    } while(kondisi);

    d) FOREACH

    Selain fungsi yang telah dituliskan diatas PHP juga menyediakan cara

    mengakses data kedalam bentuk array dengan menggunakan fungsiforeach().

    Adapun sintaknya adalah:

    foreach($data as $value) {

    $pernyataan yang akan diproses yaitu $value

    }

    Silahkan ketikan kode dibawah ini,

    Perulang Dalam Perulangan

    Adakalanya dalam menuliskan bahasa pemrograman sering terjadi dimana perulangan

    tersebut berada dalam pengulangan yang lain. Silahkan ketikan kode dibawah ini,

  • 5/25/2018 Tentang PHP

    13/71

    ?>

    = tag pembuka =diakhiri dengan tag penutup = pembuka = penutup = (header) informasi dari dokumen HTML = penutup informasi dari dokumen HTML = merupakan bagian dari Head, tag ini adalah sebagai Titel dari dokumen HTML,

    titel ini akan tampil di titel dan tab browser. = merupakan isi dari suatu dokumen HTML yang akan ditampilkan di web

    browser, yang terdiri dari berbagai macam format file berupa teks, grafik, link, animasi

    maupun audio-video (multimedia).

    = untuk mebuat sebuah kalimat
    = untuk membuat sebuah kalimat baru = membuat garis horizontal sampai = ukuran yang paling besar adalah h1 dan yang terkecil adalah h6. = Comments digunakan untuk memasukkan (menyisipkan) suatu komentar di

    dalam HTML. Suatu comments akan diabaikan oleh browser. Kamu dapat menggunakan

    komentar untuk menjelaskan sesuatu hal.

    = misalnya jika anda menuliskan syair sebuah lagu atau puisi yang menggunakan

    tab = kemudian diikuti dengan href sebagai alamat tujuan dari link tersebut.

    = digunakan untuk memasukan gambar dalam html. jika ingin

    memasukan gambar dalam keadaan offline harus disatukan file notepad dan gambar yang

    akan di masukan dalam 1 folder. = untuk memasukan background ke dalam html. caranya sama

    dengan cara memasukan gambar ke html dengan cara menyatukan filenya di 1 folder. = dengan tag ini kita bisa menentukan jenis font (face), warna (color), dan ukuran

    (size). Sesuai dengan recomendasi dari World Web Consortium (W3C), Untuk HTML 4.0

    keatas, tag tidak dipergunakan lagi, sebagai gantinya dibuat tag atau

    disebut dengan Cassading Style Sheets (CSS). Dengan CSS penggunaannya akan lebih

    kompleks dan lebih luas lagi karena dapat dikombinasikan dengan tag elemen-elemen

    lainnya di dalam dokumen HTML. atribut font di bagi sebagi berikut : face="Jenis font yang digunakan", contoh: face="Tahoma" size="Ukuran dari font (1-7)", contoh: size="3"

  • 5/25/2018 Tentang PHP

    14/71

    size="Memperbesar ukuran font", contoh: size="+1" size="Memperkecil ukuran font", contoh: size="-1" color="Warna dari font", contoh: color="blue"

    color="Warna dari font", contoh: color="#FF0000"

    3. Membuat Form PHP dan XAMPPPada posting kali ini saya akan membahas tentang bagaimana cara membuat database dan

    form php dengan menggunakan XAMPP. Hal ini terinspirasi dari tugas kuliah jaringan

    komputer dan komunikasi data. Langsung saja ke langkah-langkahnya, kawan.

    Buat database dan tabel di XAMPP, untuk lebih mudahnya saya tampilkan saja

    penampakannya. Jadi kawan tinggal mencontoh. Pada pembuatan database ini, nama

    database adalah peantist dan nama tabel adalah bento.

    Lalu langkah kedua, yang harus kalian lakukan adalah

    membuat file dengan ekstensi .php dan menyimpannya pada folder xampp/htdocs. Daripada

    ribet dan bingung membuat, langsung saja copas sourcecode berikut ini. Kebetulan saya

    membuatnya dengan notepad++ jadi tinggal memilih language-->php maka tinggal save aja,

    jika membuat dengan notepad maka file disimpan dengan namafile.php kemudian all file.

    http://3.bp.blogspot.com/-Jq0_u1VU7mo/UYqA3E6rSZI/AAAAAAAAAIY/7cl3cavnwYs/s1600/XAMPP.jpg
  • 5/25/2018 Tentang PHP

    15/71

    Simpan dengan nama "koneksi.php" (tanpa tanda petik) di dalam folder htdocs.

    Langkah ketiga, buat formnya. Ketikkan saja sourcecode dibawah ini.

    Form Pengisian

    Selamat Datang Tugas

    Silahkan Mengisi Form Di Bawah Ini!

    111113035

    NIM

    Nama

  • 5/25/2018 Tentang PHP

    16/71

    Email

    Komentar

    Simpan dengan nama isi.php

    Langkah keempat, copas sourcecode berikut ini:

  • 5/25/2018 Tentang PHP

    17/71

    Data Masuk


    Isi buku tamu

    Data Masuk

  • 5/25/2018 Tentang PHP

    18/71

    {

    echo "Pesan ke-"; echo $a=$a+1; echo "
    ";

    echo "NIM :$row[nim]
    ";

    echo "Nama :$row[nama]
    ";

    echo "E-mail :$row[email]
    ";echo "Komentar :$row[komentar]
    ";

    echo "";

    }

    ?>


    Isi buku tamu

    Simpan dengan nama "bukutamu.php"

    Lalu langkah terakhir adalah menjalankan XAMPP, klik start pada Apache dan MySQL.

    Kemudian ketikkan "localhost/isi.php", isi data --> klik kirim --> pada halaman selanjutnya

    klik Lihat Data Masuk dan kemudian akan tampil daftar data yang telah dimasukkan. Hasil

    dari yang sudah dibuat seperti ini:

    Penampakan form (isi.php)

    Form kontak adalah salah satu bagian penting yang harus ada dalam sebuah website. Andabisa lihat website-website yang pernah anda kunjungi, semuanya pasti menyediakan formkontak ini. Form kontak biasanya digunakan sebagai media komunikasi yang nantinyamengirimkan pesan langsung ke email pemilik website.

    Pada tulisan berikut ini saya akan berbagi tentang bagaimana membuat form kontak danmengirim pesannya ke email dalam satu file php. Untuk form kontak ini saya tidak buatdatabase karena from setelah diisi akan langsung dikirim ke email.

    Kita mulai dari membuat sebuah model form kontak dengan script html berikut :

    http://2.bp.blogspot.com/-tVXyG7VhAdM/UYqJQf1On9I/AAAAAAAAAI0/SgAE5lDHAIU/s1600/penampakan1.png
  • 5/25/2018 Tentang PHP

    19/71

    ?1234

    56789101112131415

    16171819202122232425262728

    Form Kontak

    Judul Pesan

    Nama

    Email

    Pesan

    Untuk form diatas, saya gunakan method post dengan action dikosongkan dengan tujuan isiform akan dikirim dan diproses dalam file itu sendiri. Untuk memastikan semua diisi, sayatambahkan atribut required="true" pada semua isian.

    Tampilan form jika anda jalankan akan terlihat seperti gambar berikut :

    http://www.zainalhakim.web.id/posting/membuat-form-kontak-dengan-html-dan-php.htmlhttp://www.zainalhakim.web.id/posting/membuat-form-kontak-dengan-html-dan-php.html
  • 5/25/2018 Tentang PHP

    20/71

    Setelah form siap, kita memerlukanscript php untuk mengirim pesan tersebut ke email.Script kirim email dengan php saya tulis seperti berikut :

    ?1

    23456789101112

    131415161718

    Karena rancangan awal, form kontak dibuat dalam satu file maka harus dibuat pengecekanagar mengetahui kapan form kontak ditampilkan, dan kapan form kontak harus dikirim.Untuk pengecekannya saya buatscript php seperti berikut :

    ?1234567

  • 5/25/2018 Tentang PHP

    21/71

    89101112

    1314151617181920212223

    242526272829303132333435363738394041424344

    454647

    $pengirim=$_POST['pengirim'];$header = "From:$pengrim \r\n";$kirim = mail ($tujuan,$judul,$pesan,$header);if( $kirim == true ){

    echo "Pesan berhasil terkirim";}else{

    echo "Pesan gagal terkirim";}

    }?>

    Form KontakJudul Pesan

    Nama

    Email

    Pesan

    Script diatas bisa anda copy dan simpan dalam file dengan nama kontak.php.

    Catatan :

    1. Untuk mencoba menjalankanya sampai proses kirim, komputer anda harus memilikilayanan email server.

    2. Cara mudah mencobanya yaitu dengan mengupload file kontak.php ke dalam hosting

    di internet.

  • 5/25/2018 Tentang PHP

    22/71

    3. Ada beberapa hosting yang tidak mendukung pengiriman email dari alamat emailluar, jadi harus diubah sesuai dengan nama domain anda. Perubahan anda bisalakukan pada bagian $pengirim=$_POST['pengirim'];

    Membuat session dengan PHP

    Di dalam sebuah website atau aplikasi basis web, terutama yang memiliki jumlahhalaman yang banyak, seringkali dibutuhkan suatu kesinambungan dari informasi-informasitertentu pada saat pengunjung berpindah-pindah dari satu halaman ke halaman lain. Ambilcontoh aplikasi toko online yang menyediakan beberapa kategori barang. Satu kategori

    barang ditampilkan dalam sebuah halaman web tersendiri. Jika pengunjung hendak membelibeberapa barang dengan kategori barang yang berbeda-beda, maka sudah pasti ia akan bolak-balik dari satu halaman kategori ke halaman kategori yang lain. Tentu saja informasi daribarang-barang yang telah dibeli sebelumnya harus tetap dijaga sekalipun pengunjung tersebuttelah berpindah ke halaman kategori barang yang lain.

    Adanya kemampuan melakukan koneksi ke database yang dimiliki oleh pemrogramansemacam PHP atau ASP sangat membantu dalam menyimpan informasi-informasi tersebut,akan tetapi jika setiap hal yang terjadi harus disimpan ke dalam database, maka beban serverakan menjadi sangat berat sehingga dapat berakibat server tersebut menjadi lamban biladiakses. Belum lagi ukuran database bisa membengkak sangat besar, dan itu jelas tidakekonomis.

    Oleh karena itu diperlukan suatu alternatif lain. Session adalah jawabannya. Sessionmemiliki kemampuan untuk menyimpan informasi secara berkesinambungan asalkan sessionitu masih "aktif". Pada PHP 3 session belum dikenal, sehingga saat itu PHP kurang begitudilirik oleh para web developer. Untunglah para programmer PHP tanggap sehingga mulaiPHP 4 dan diatasnya session telah dikenal. Dan ternyata memang reputasi PHP meroket

    dengan cepat semenjak versi 4 dirilis.Ada beberapa cara yang dapat dilakukan untuk memulai sebuah session. Yang

    pertama adalah dengan menetapkan nilai session.auto_startdi php.ini menjadi 1 atau on.Dengan demikian maka setiap sebuah aplikasi yang dibangun dengan PHP diakses, seketikaitu pulalah sebuah session akan otomatis "aktif". Namun sekalipun cara ini tidak salah, tetapiamat sangat tidak dianjurkan. Mengapa? Karena secara default nilai session.auto_startdi

    php.ini adalah 0 atau off. Anda memang bisa mengedit php.ini di komputer Anda, akan tetapibila suatu ketika Anda harus melakukan web hosting di tempat lain, Anda tentu tidak berhakmengubah file php.ini di web server tersebut. Dan jika php.ini di server tersebut dibiarkandefault apa adanya, maka aplikasi Anda tidak akan berjalan baik di server tersebut.Untuk itu dianjurkan menggunakan cara lain dalam mengaktifkan sebuah session. Ada dua

    cara yang dapat digunakan dalam mengaktifkan session tanpa mengedit php.ini, yaitu secaraeksplisit dan secara implisit. Pengaktifan session secara eksplisit dilakukan denganfungsi session_start(), sedangkan secara implisit menggunakan fungsi session_register().Penggunaan fungsi session_start() tentunya jelas. Dengan menjalankan fungsi tersebut, makasebuah session akan dimulai. Fungsi ini tidak memerlukan parameter apapun, sehinggasintaks penggunaanya adalah dengan langsung saja menuliskanfungsi session_start()tersebut. Sedangkan fungsisession_register()pada prinsipnya adalah"mendaftarkan" variabel sehingga variabel-variabel tersebut akan dikenal sepanjang sebuahsession sekaligus memulai sebuah session apabila belum dimulai. Sintaks penggunaan fungsisession_register() adalah sebagai berikut:

    session_register(variabel1[,variabel2[,...]])Harap diperhatikan, nama variabel di sini ditulis tanpa tanda $ di depannya. Setelah

    sebuah variabel di register, maka otomatis variabel tersebut akan menjadi variabel session.

    http://simasdap.blogspot.com/2012/05/membuat-session-dengan-php.htmlhttp://simasdap.blogspot.com/2012/05/membuat-session-dengan-php.html
  • 5/25/2018 Tentang PHP

    23/71

    Contoh:session_register("var1")

    Nantinya dalam rangkaian aplikasi web tersebut, variabel $var1 akan dikenal sebagai

    variabel session dan bersifat global. Namun sayangnya hal ini tidak lagi berlaku sejak PHP4.2.0 dan diatasnya, karena nilai register_globals di php.ini adalah off. Sebelum PHP 4.2.0nilai register_globals adalah on. Sebagai gantinya, PHP memperkenalkan superglobals arrayuntuk menangkap variabel-variabel session tersebut. Superglobal arrays tersebutadalah $_SESSION. Sebelum versi 4.0.6 Anda juga dapatmenggunakan$HTTP_SESSION_VARS.

    Kedua array ini bersifat asosiatif dan sebagai indeksnya adalah nama dari variabelsession yang hendak digunakan. Sebagai akibat dari perubahan ini, makafungsi session_register()tidak lagi diperlukan. Efek dominonya,fungsi session_unregister()dan session_is_registered()juga tidak lagi diperlukan.Fungsisession_unregister()adalah kebalikan dari fungsi session_register(), yaitu untuk

    "mencabut" variabel dari sebuah session, sedangkan fungsi session_is_registered() digunakanuntuk memeriksa apakah sebuah variabel pernah didaftarkan pada sebuah session atau tidak.Lalu sekarang bagaimana caranya mendaftarkan variabel ke dalam session dan mencabutvariabel dari session serta memeriksa apakah variabel tersebut pernah didaftarkan atau

    belum?Untuk mendaftarkan variabel ke dalam session, Anda tinggal menggunakan array

    $_SESSION saja. Misalnya Anda ingin memasukkan variabel var1 sebagai variabel session,maka caranya adalah sebagai berikut:$_SESSION['var1'] = nilai

    Jadi prinsipnya adalah sama dengan deklarasi implisit variabel biasa. Untukmenghapus dan memeriksa variabel session tersebut, Anda dapat "meminjam" fungsi variabel

    biasa yaitu unset() dan isset(). Bahkan fungsi-fungsi variabel yang lain dapat juga digunakandalam pengolahan variabel session ini.Fungsi unset() digunakan untuk menghapus variabel, sedangkan fungsi isset() digunakanuntuk memeriksa apakah variabel tersebut sudah pernah dideklarasikan atau belum. Untukmenghapus variabel session Anda juga dapat menggunakan cara di bawah ini:$_SESSION = array();

    Dengan demikian, array $_SESSION dideklarasikan sebagai array baru yang kosong.Pada akhir aplikasi jangan lupa untuk menghapus seluruh informasi session ini. Fungsi yangdigunakan adalah session_destroy().Berikut ini akan diberikan contoh penggunaan session. Kita akan memanfaatkan contoh

    Artikel sebelumnya yaitu buat_form.html dan proses.php. Biarkan file buat_form.html sepertiapa adanya sedangkan file proses.php di edit menjadi sebagai berikut: Fungsi Session

  • 5/25/2018 Tentang PHP

    24/71

    Hallo Selamat Datang di situs Saya

    Umur Anda saat ini adalah tahun
    Alamat email Anda adalah

    Anda login pada jam
    Klik di sini untuk menuju ke halaman berikut.

    Setelah itu buatlah sebuah file lagi bernama next.php yang isinya sebagai berikut:

    Halaman Dua

    Hallo

    Anda memasuki halaman kedua di situs Saya Berikut adalah informasi yang Anda bawa dari halaman pertama:

    Umur Anda saat ini adalah tahun

    Alamat email Anda adalah

    Anda login pada jam

    Jalankan file buat_form.html, lalu isikan data-data pada form tersebut. Setelah Andamengklik tombol submit, maka browser akan menuju ke file proses.php. Pada file proses.phpakan terdapat sebuah link untuk menuju ke halaman next.php. Jika link ini Anda klik, maka

    browser akan menuju ke halaman next.php dan semua nilai variabel yang didaftarkan ke

    dalam session, yaitu variabel $_SESSION['nama'], $_SESSION['umur'],$_SESSION['email'], dan $_SESSION['waktu'] akan dipertahankan pada halaman next.php.Jika variabel pada file proses.php tidak dimasukkan ke dalam session, maka nilainya tidakakan muncul pada halaman next.php. Perhatikan bahwa fungsi session_start() harusdituliskan pada bagian skrip paling awal sebelum ada output apapun yang diberikan kepada

    browser, selamat mencoba.

    Fungsi-fungsi session :

    1. session_start(), untuk memulai session.

    session_start Menginisialisasi data dari session.

  • 5/25/2018 Tentang PHP

    25/71

    session_start()membuat sebuah session atau melanjutkan session sebelumnya berdasarkan pada

    pengidentifikasi session via GET atau POST atau cookie.

    2. session_destroy()

    session_destroyMenghancurkan semua data yang terdaftar dari sebuah session

    session_destroy()menghancurkan semua data yang berhubungan dengan session saat ini. Hal ini

    tidak merubah variabel global yang berhubungan dengan session tersebut, Hal ini juga tidak merubah

    cookie dari session. Untuk menggunakan lagi variabel sssion tersebut,session_start()haruslah

    dipanggil.

    3. session_id(), untuk mengambil atau menentukan identitas sebuah session.

    session_idMengambil atau mengatur session id saat ini.

    session_id() digunakan untuk mengambil atau mengatur session id saat ini.

    SID yang konstan dapat juga digunakan untuk mengambil nama dari SID saat ini dansession_id dalam bentuk string cocok untk ditambahkan kedalam URL.

    4. session_register(), untuk mendaftarkan variabel ke sebuah session.

    session_is_registeredMengetahui apakah sebuah variabel telah terdaftar atau belum dalam

    sebuah session.

    Fungsi ini tidak diperkenankan oleh PHP 5.3.0 dan dihapus pada PHP 6.0.0.

    Contoh Pemograman PHP menggunakan Session

    Langkah Pertama membuat file setup.phpuntuk membuat database:

    setup.php12345678

    910111213141516171819

    202122

    Setup Database

  • 5/25/2018 Tentang PHP

    26/71

    2324252627

    2829303132333435363738

    3940414243444546474849505152535455

    mysql_query("create table tb_user (

    login_username varchar(32) not null,

    login_password char (32),

    login_rights varchar (32),

    primary key(login_username)

    )", $cn) ordie("Gagal membuat table.");

    mysql_query("insert into tb_user values('admin', md5('admin'), '[A] [U]')", $cn);

    mysql_query("insert into tb_user values('user', md5('user'), '[U]'", $cn);

    mysql_close($cn);

    ?>

    Sukses meng-setup database!

    username: admin dan Password: admin

    username: user dan Password: user

    Silakan menuju index.php

    Kedua Membuat File Halaman Utama :

    index.php1234567891011

    121314

    Homepage

    Home |

  • 5/25/2018 Tentang PHP

    27/71

    1516171819

    20212223242526272829

    Login |

    Member |

    Logout

    Selamat datang. Di sini semua orang bisa mengakses.

    Ketiga membuat file yang hanya dapat diakses untuk member saja :

    member.php12345678

    910111213141516171819

    2021222324252627282930

    313233

  • 5/25/2018 Tentang PHP

    28/71

    3435363738

    3940414243444546474849

    505152535455565758596061626364656667686970

    7172737475767778798081

    828384

    };

    };

    ?>

    Members Only

    Home |

    login |

    member |

    logout

    Selamat datang

  • 5/25/2018 Tentang PHP

    29/71

    85

    Keempat membuat form login

    login.php123456789101112131415161718192021

    2223242526272829303132

    3334353637383940414243

    444546

  • 5/25/2018 Tentang PHP

    30/71

    4748495051

    5253545556575859606162

    636465666768697071727374757677787980818283

    8485868788899091929394

    959697

    Login

    Home |

    Login |

    Member |

    Logout

    username:

    password:

  • 5/25/2018 Tentang PHP

    31/71

    9899100101102

    103104105106107108109

    Anda telah berhasil melakukan login.

    Kelima atau yang terakhir membuat file logout

    logout.php12345678910

    1112131415161718192021

    2223242526272829303132

    33

    logout

    Home |

    Login |

    Member |

    Logout

  • 5/25/2018 Tentang PHP

    32/71

    1. Input Data Di Mysql Dengan PHP

    "Menginput Data ke Database MYSQL Dengan PHP"

    kemudian buatlah table dengan nama tbl_input , copy code kedalam text editor

    CREATE TABLE `tbl_input` (`id` int(3) NOT NULL AUTO_INCREMENT,`nis` varchar(20) NOT NULL,`nama` varchar(50) NOT NULL,`alamat` varchar(100) NOT NULL,`jk` varchar(40) NOT NULL,`umur` varchar(20) NOT NULL,`kelas` varchar(20) NOT NULL,PRIMARY KEY (`id`));

    simpan dengan extensi .sql

    setelah selesai buat koneksi ketik pada text editor kesayangan anda

    simpan dengan nama koneksi.php (disini pass database saya 1

    Setelah database selesai dibuat. Sekarang kita akan membuat file "input_data.php" yangberguna sebagai form penginputan data :berikut kode nya :

    ketik pada text editor anda

    INPUT DATA SISWA

    Nis :

    Nama

    :

  • 5/25/2018 Tentang PHP

    33/71

    Alamat:

    Jenis Kelamin :

    Laki-LakiPerempuan

    Umur

    :

    Kelas :

    beri nama input_data.php

    ini hasilnya

  • 5/25/2018 Tentang PHP

    34/71

    Setelah itu, Kita buat Pemrosesnya "aksi_input_data.php"dengan menggunakan kode php.

  • 5/25/2018 Tentang PHP

    35/71

  • 5/25/2018 Tentang PHP

    36/71

    echo "Data berhasil di hapus";

    ?>

    simpan dengan nama delete.php

    Query yang digunakan untuk menghapus data yang ada di database ialah :

    mysql_query("DELETE FROM nama_tabel WHEREstatement")"statement di atas ialah kondisi penghapusannya .

    4. Membuat Edit dan Update Data Dengan PHP

    copas code di bawah ini

    EDIT DATA

  • 5/25/2018 Tentang PHP

    37/71

    Jenis Kelamin :

  • 5/25/2018 Tentang PHP

    38/71

    Pada khasus mengedit data di mysql dengan php yang perlu di perhatikan ialah.. query yangdigunakan dan statement nya :

    mysql_query("Update nama_tabel SETstatement ");"statement di atas ialah kondisi penghapusannya

    PERTEMUAN KE 1

    Pengantar Kuliah Database

    Ilmu Database Teori Database Belajar bagaimana cara merancang suatu konsep database

    Pemrograman Database Cursor/Recordset

    Operasi database didasarkan pada proses secara langsung pada tabel yang

    bersesuaian SQL

    Operasi berdasarkan satu baris perintah untuk satu jenis operasi PL/SQL

    Operasi berdasarkan perintah prosedural (rangkaian langkah-langkah kegiatan,seperti bahasa pemrograman pada umumnya) dari perintah SQL

    Aplikasi Database Bagaimana membangun aplikasi yang menggunakan database

    Database Lanjutan Data MiningMenggali informasi lebih jauh dari data yang tersedia Ware House Kumpulan dari berbagai data, berbagai bentuk, berbagai

    keperluan Distributed Database System Bagaimana cara supaya database dapat dijalankan

    pada daerah yang luas Keterkaitan Kuliah Database dengan Kuliah lainnya

    Pemrograman

    Aplikasi

    Operating

    System

    Database NetworkingSoftware

    Engineering Aplikasi yangBaik

    Multi-userClient Server

    Web

    Pembuatan

    Aplikasi

    File

    Tujuan kuliah database Banyak aplikasi yang memerlukan penyimpanan Tidak standardnya cara penyimpanan pada berbagai aplikasi yang berbeda Muncul berbagai model penyimpanan Menuju standardisasi database

  • 5/25/2018 Tentang PHP

    39/71

    PERTEMUAN KE 2

    Pengantar Database

    Pengantar Database

    Database dan Teknologi Database memiliki peran/pengaruh yang cukup padaperkembangan dunia komputer

    Database adalah kumpulan dari data yang saling berkaitan. Data adalah suatu faktayang dapat direkam/dicatat/disimpan yang memiliki arti tertentu. Contoh : Alamat,

    Nama, Nomor Telepon Arti Khusus Database: Representasi beberapa aspek dari dunia nyata, yang sering disebut dengan mini

    world atau universe of Discourse (UoD). Jika mini world berubah, databasesecara keseluruhan ikut berubah

    Kumpulan dari data-data yang saling berhubungan satu dengan lainnya yangmemiliki arti tertentu

    Dirancang, dibuat, dan dipergunakan untuk keperluan tertentu. Terdapatsekelompok pemakai dan aplikasi tertentu yang saling terikat

    Database bisa berupa sistem manual atau terkomputerisasi System manajemen database atau Database Management System (DBMS) adalah

    kumpulan program yang digunakan untuk pengolahan Database Sistem Database atau Database System adalah Database dengan DBMS

    GambarPenyederhanaan ruang lingkup sistem database

    SistemDatabase

    Software

    DBMS

    Program/Query Aplikasi

    Software untuk Memproses

    Program/Query

    Software untuk Mengakses

    Data yang Tersimpan

    DefinisiDatabase

    yangTersimpan

    Meta-Data

    Databaseyang

    Tersimpan

    Pengguna/Programm

  • 5/25/2018 Tentang PHP

    40/71

    Arsitektur Database

    - Database Application- Database Engine/Server/Service- Database File

    Pengantar Database

    Pendahuluan

    Database adalah suatu kumpulan data-data yang disusun sedemikian rupa sehingga

    membentuk informasi yang sangat berguna. Database terbentuk dari sekelompok data-data

    yang memiliki jenis/sifat sama. Ambil contoh, data-data berupa nama-nama, kelas-kelas,

    alamat-alamat. Semua data tersebut dikumpulkan menjadi satu menjadi kelompok data baru,

    sebut saja sebagai data-data mahasiswa. Demikian juga, kumpulan dari data-data mahasiswa,

    data-data dosen, data-data keuangan dan lainnya dapat dikumpulkan lagi menjadi kelompok

    besar, misalkan data-data politeknik elektronika. Bahkan dalam perkembangannya, data-data

    tersebut dapat berbentuk berbagai macam data, misalkan dapat berupa program, lembaran-

    lembaran untuk entry (memasukkan) data, laporan-laporan. Kesemuanya itu dapat

    dikumpulkan menjadi satu yang disebut dengan database.

    Perlunya Database

    Data secara umum dapat dikatakan sebagai segala sesuatu yang dapat dikumpulkan.Tentu saja hal ini akan membuat segala sesuatu di dunia ini menjadi data, dan masing masingdapat dikumpulkan menurut jenisnya. Segala bentuk catatan mengenai data-data tersebutsebenarnya dapat dianggap sebagai database (tempat kumpulan data-data). Biasanya catatan

    dari data-data tersebut dilakukan dengan relatif sederhana dan dilakukan dengan cara manual(dicatat di atas lembaran-lembaran kertas, atau paling tidak diketik menggunakan programaplikasi tertentu). Setelah data-data tersebut dikumpulkan, biasanya diperlukan untuk

    pembuatan laporan, pengambilan keputusan atau segala sesuatu bentuk pengolahan yangberhubungan dengan data tersebut.

    Jika data-data tersebut tercatat secara manual, maka segala bentuk pengolahan juga

    dilakukan secara manual (disusun, dihitung atau dibuat laporannya secara manual). Cara ini

    tentu saja membutuhkan ekstra tenaga dan waktu. Dan lebih sering lagi, diperlukan

    pengumpulan data-data yang sejenis secara berkali-kali dan dilakukan juga pengolahan dan

    pembuatan laporan secara berkali-kali pula. Bisa dibayangkan ini merupakan pekerjaan yang

    sangat membosankan.Dari kenyataan tersebut, akan lebih mudah jika dibuat suatu sistem yang digunakan

    untuk menyimpan data-data tersebut secara lebih terorganisasi, dan dengan bantuan program-

    program aplikasi tertentu, data-data tersebut dapat diolah dan dibuat laporannya secara lebih

    cepat dan lebih mudah. Hal inilah yang menjadikan perlunya dibuat sistem database.

    Beberapa Jenis Database

    Meskipun sebenarnya tujuan dari database tersebut sama, yaitu lebih mempermudah

    dalam pengolahan data, namun caranya ada berbagai macam. Macam dari database tersebut

    dapat dilihat dari bentuk konfigurasi sistemnya atau dari bentuk/isi dari database tersebut.

    Ada beberapa jenis dari database, mulai dari yang menggunakan text biasa,

    menggunakan exel, lotus, foxpro, dbase, paradoc, access, oracle, SQL dan banyak lagi.

  • 5/25/2018 Tentang PHP

    41/71

    Masing-masing dapat berbeda dari sisi format datanya, fasilitas yang disediakan dan teknik

    pengolah databasenya (database engine).

    Bentuk Umum Database

    Seperti pada uraian-uraian sebelumnya, database terdiri dari kumpulan sekelompok

    data, dan biasanya dinyatakan dalam bentuk tabel. Data-data tersebut tersimpan dalam suatu

    file. Ambil sebagai contoh data-data mahasiswa, yang terdiri dari data nama, kelas, dan NRP.

    Ada beberapa orang mahasiswa, misalkan 5 mahasiswa, seperti pada contoh berikut.

    Tabel Mahasiswa

    nomor NAMA KELAS NRP

    1 ANDI BARIA II ELKA 100210001

    2 KARMAN II LISTRIK 100220003

    3 SUBARI I ELKA 100210080

    4 MARIA SARI III 100220033

    5 UDIN PURNOMO I LISTRIK 100220010

    Dari contoh tabel tersebut, nama, kelas dan NRP disebut dengan field (bagian data-

    data dengan jenis yang sama). Nomor, dapat dianggap satu field tersendiri yang berisi nomor

    urut dari data, atau hanya dianggap sebagai penunjuk nomor urut saja (bukan sebuah

    field/tidak ada, dan ditulis hanya untuk mempermudah susunan tabel). Penggunaan dari

    nomor ini nantinya tergantung dari pembuatan struktur database sesuai dengan yang

    diinginkan. Urutan data-data dengan nomor 1, 2, 3, 4 dan 5 disebut dengan record (satu

    kumpulan data lengkap tentang satu mahasiswa). Sedangkan keseluruhan data-datamahasiswa tersebut (terdiri dari beberapa jumlah mahasiswa), disebut dengan tabel.

    Dengan demikian, nanti akan ada data-data dari pegawai (tabel pegawai), data-data

    dari barang inventaris (tabel iventaris) dan lainnya. Yang perlu diperhatikan di sini, setiap

    tabel-tabel tersebut dapat disimpan dalam file-file tersendiri (satu file untuk satu tabel), atau

    semua tabel disimpan dalam satu file. File-file tersebut disebut dengan file-file database.

    MAHASISWA.DBF - File yang berisi tabel mahasiswa

    PEGAWAI.DBF - File yang berisi tabel pegawai

    KEUANGAN.DBF - File yang berisi tabel keuangan

    IVENTARIS.DBF - File yang berisi tabel barang iventarisPOLTEK.MDB - File yang berisi tabel mahasiswa, pegawai, dll.

    Pada contoh di atas, ada beberapa file dengan file ekstensi *.DBF yang setiap file

    digunakan untuk menyimpan satu jenis tabel. Sedangkan file *.MDB adalah contoh, dimana

    satu file digunakan untuk menyimpan beberapa jenis tabel. Pemilihan cara penyimpanan

    tersebut tergantung dari perancangan databasenya atau tergantung dari jenis database yang

    akan digunakan. Misalkan file *.DBF biasanya digunakan pada database foxpro, dbase.

    Sedangkan *.MDB digunakan oleh database ACCESS.

    Di dalam penggunaannya, data-data dalam tabel tersebut perlu diolah/dibuat

    laporannya. Misalkan data mahasiswa kelas satu saja, atau mahasiswa jurusan listrik saja,

    atau mahasiswa laki-laki saja dan lain sebagainya. Untuk itu diperlukan suatu program atau

  • 5/25/2018 Tentang PHP

    42/71

    pengolahan tertentu. Yang menarik di sini adalah, program-program pengolahan atau

    laporan-laporan tersebut dapat dianggap juga sebagai data, sehingga dapat juga disimpan

    dalam suatu file database. Namun ini hanya dapat dilakukan pada jenis-jenis database tertentu

    saja.

    Agar file-file database dapat diolah dengan mudah, diperlukan suatu database engine.Database engine adalah suatu program khusus yang dibuat untuk menangani suatu file-file

    database. Dengan adanya database engine ini, program-program aplikasi yang menggunakan

    database, tidak memerlukan program khusus untuk pengolahan database (tidak diperlukan

    pengetahuan khusus mengenai format/susunan dari file-file database). Selain itu, dengan

    database engine ini, jika ingin mengembangkan aplikasi database yang berbeda, program

    aplikasi dapat dengan mudah menggunakan database engine yang sama.

    Database engine yang digunakan harus sesuai dengan jenis database yang digunakanagar database engine mengenali dan dapat mengolah file-file database tersebut (karena ada

    berbagai jenis database, maka setiap jenis dari database tersebut memerlukan database engine

    yang berbeda pula).

    Gambar a. Tanpa database engine. b. Dengan database engine

    Program aplikasi yang dimaksudkan di sini adalah program-program tertentu yang

    dikembangkan dan menggunakan database. Misalkan program iventarisari peralatan lab, yang

    digunakan untuk penyimpanan barang-barang lab dan pembuatan laporan kondisi barang lab.

    Konfigurasi Database

    Selain ada beberapa jenis perbedaan database dilihat dari file-file database itu sendiri,

    database juga dibedakan dari susunan/konfigurasi dari sistem database. Yang terbanyak dapat

    dibagi menjadi tiga bagian.

    Database lokal

    Jika file-file database, program database engine dan program aplikasi terletak pada

    satu mesin komputer yang sama, maka konfigurasi seperti ini disebut dengan database lokal.

    Keuntungan utama dari konfigurasi ini adalah sederhana, tidak memerlukan banyak

    peralatan, murah dan tidak banyak memerlukan perhatian khusus.

    Kekurangan, tidak dapat multi-user (lebih dari satu user menggunakan databasesecara bersama-sama), tidak dapat remote access (database dijalankan dari kejauhan).

    Program

    Program

    File-file

    Program

    Database

    File-file

  • 5/25/2018 Tentang PHP

    43/71

    Gambar Database Lokal

    Database file server

    Jika file-file database diletakkan pada satu komputer khusus (server), sedangkan

    database engine dan program aplikasi diletakkan pada komputer lain (tersendiri) dan masing-

    masing komputer tersebut terhubung dalam satu jaringan komputer, maka konfigurasi seperti

    ini disebut sebagai file server (server hanya melayani file-file database). Kuntungan

    utamanya adalah, file-file database tersebut dapat digunakan oleh lebih dari satu pengguna

    (multi-user).

    Kekurangan, komunikasi dalam jaringan berat (database engine melakukan proses

    yang sangat intensif dengan database file melalui jaringan komputer)

    Gambar Database File Server

    Database client-serverKalau pada file server, server hanya digunakan untuk menyimpan file database, maka

    pada client-server, server digunakan untuk menyimpan file database maupun database

    engine-nya. Database dan database engine terintegrasi menjadi satu yang disebut dengan

    database server. Pada sisi client hanya terdapat program aplikasi. Dengan teknik ini, client

    menjadi lebih ringan cara kerjanya karena semua operasi atau proses database dilakukan oleh

    server. Client hanya perlu untuk memerintahkan pengolahan database dan menerima hasil

    jadinya.

    Client Server

    File

    Aplikasi

    DB Engine

    Client Server

    File

    AplikasiDB Engine

    Host

    File

    Aplikasi

    DB Engine

  • 5/25/2018 Tentang PHP

    44/71

    Gambar Database Client Server

    Arsitektur Umum Database Desktop/Form Local Database File Server Database

    Client Server Kelebihan

    Operasi lebih cepat dan lebih mudah dalam pembuatan aplikasi

    Lebih bersifat private (suatu aplikasi hanya digunakan sendiri oleh pihak-pihak yang berkepentingan)

    Kekurangan

    Proses pengembangan aplikasi dan instalasi menjadi berat, karena setiapinstalasi atau perubahan aplikasi harus dimasukkan satu per satu pada setiapclient yang memerlukan

    Tidak dapat digunakan secara global (suatu aplikasi tidak dapat digunakansecara ramai-ramai oleh banyak orang dimanapun berada)

    Aplikasi Web Kelebihan mengatasi kekurangan Desktop/Form Kekurangan aplikasi lambat dan masalah keamanan yang cukup kompleks Aplikasi Database berbasis Web (Web Database)

    Client

    Web Browser

    (IE)

    Server

    Web Server

    (Apache)

    Web File

    (*.html)

    Network

    (Internet/Eternet)

  • 5/25/2018 Tentang PHP

    45/71

    Client

    Web Browser

    (IE)

    Server

    Web Server

    (Apache)

    Web File

    (*.html)

    Network

    (Internet/Eternet)

    Application

    (Content) Server

    (PHP Server)

    Application File

    (*.php)

    Database

    Server

    (ORACLE)

    Database File

    (*.ORA)

    Jumlah Tier Single Tier

    2-Tier 3-Tier

    ServerClient

    Web Browser

    (IE)

    Server

    Web Server

    (Apache)

    Web File

    (*.html)

    Network

    (Internet/Eternet)

    Application

    (Content) Server

    (PHP Server)

    Application File

    (*.php)

    Database

    Server

    (ORACLE)

    Database File

    (*.ORA)

    Front Tier (end)

    (Presentation)

    Middle Tier (end)

    (Business Process)

    Back Tier (end)

    (Database)

  • 5/25/2018 Tentang PHP

    46/71

    PERTEMUAN KE 3

    Contoh Macam-macam DBMS Berbentuk File

    DBase*.DBF Fox Pro*.DBF Paradox *.DB ACCESS*.MDB

    Berbentuk Server InterBase MySQL MS SQL Server ORACLE

    Sebuah Contoh Database Universitas, meliputi mahasiswa, matakuliah, nilai, kuliah, masing-masing

    disimpan pada file terpisah Mendefinisikan struktur record setiap file, dengan menentukan jenis dari setiap

    datanya. Misal mahasiswa terdiri atas nrp, nama, kelas dan sebagainya Menyediakan data untuk setiap file dengan data yang sesuai. Ada kemungkinan, suatu

    data dari suatu file berhubungan dengan data lain pada file lainnya Contoh Struktur Database dan Datanya

    MAHASISWA Nama NRP Kelas Jurusan

    Andi 123456789 1 1

    Edi 214365870 2 1

    Pada database yang besar, bisa terdapat sejumlah file dengan struktur yang besar,serta banyak hubungan (relasi) antar data-data tersebut

    Adanya manipulasi database, yang terdiri dari query dan pengubahan data (updating).

    Karakteristik dari Pendekatan Database Beberapa perbedaan, antara pendekatan pengolahan file dan database Pada pengolahan file, setiap pengguna mendefinisikan sendiri data-data dalam file

    yang diperlukan untuk aplikasi tertentu. Muncul adanya redundansi Pada pendekatan database, satu kumpulan data hanya didefinisikan sekali saja,

    dan dapat digunakan oleh lebih dari satu pengguna Karakteristik utama dari pendekatan database dibandingkan pendekatan file, Dengan sendirinya menjelaskan sifat alami dari sistem database Isolasi antara Program dan Data, dan Abstraksi Data Dapat melihat data dari berbagai sudut pandang Bagi-bagi Pemrosesan Data dan Transaksi Multi-user

    Pelaku Utama pada Sistem Database

    Administrator Database Mengatur Akses pengguna Koordinasi dan mengawasi

  • 5/25/2018 Tentang PHP

    47/71

    Mempersiapkan sumber daya Perancang Database Mendefinisikan data-data yang akan disimpan pada database, serta menentukan

    struktur yang sesuai Mengerti keperluan database dari sudut pandang pengguna

    Pengguna Akhir Yang menjalankan suatu aplikasi tertentu yang berhubungan dengan database

    System Analyst dan Programmer Aplikasi System Analyst menentukan kebutuhan dari pengguna akhir, dan membuat

    spesifikasi tertentu Programmer Aplikasi membuat program sesuai dengan yang telah direncanakan System Analyst dan Programmer Aplikasi sering disebut sebagai Perekayasa

    Software (software engineers)

    Pelaku Pembantu pada Sistem Database Perancang dan Pembuat Sistem DBMS Pengembang/Pembuat Alat Bantu Operator dan Perawat Database

    Kelebihan Penggunaan DBMS Mengendalikan adanya Redudansi. Mencegah setiap pengguna memiliki data yang

    sama Membatasi adanya akses pengguna yang tidak diinginkan. Ada beberapa pengguna

    yang dibatasi kemampuan aksesnya pada data-data tertentu. Dapat digunakan sebagai penyimpan tetap untuk obyek program dan struktur data. Ini

    diterapkan pada Database berorientasi obyek

    Dapat digunakan untuk menghasilkan data-data tambahan yang berasal dari data-datayang telah ada

    Bisa digunakan untuk lebih dari satu pengguna secara bersamaan Dapat digunakan untuk menunjukkan hubungan antar data yang cukup rumit

    sekalipun Menyediakan integritas data yang baik Menyediakan keperluan backup dan recovery

    Implikasi dari Pendekatan Database

    Kapan Tidak Menggunakan DBMS

    Konsep dan Arsitektur System Database

    Model Data, Skema dan Instant Kategori dari Model Data Skema, Instant dan State Database Skema Database, terdiri atas Konstruksi Skema, Misal Mahasiswa, Jurusan

    MAHASISWA

    Nama NRP Kelas Jurusan

    JURUSAN

    Kode Nama

  • 5/25/2018 Tentang PHP

    48/71

    Arsitektur DBMS dan Ketidak-tergantungan Data Arsitektur Tiga Skema (Tiga Tingkat Abstraksi) Ketidak-Tergantungan Data

    Bahasa Database dan Interface

    Bahasa DBMS Interface DBMS

    Lingkungan Sistem Database Klasifikasi dari Sistem Manajemen Database

    PERTEMUAN KE 4

    Pemodelan Data menggunakan Model Entity-Relational (ER)

    Menggunakan Model Data Konsepsual Tingkat Tinggi untuk Perancangan Database

    Penyederhanaan Penjelasan Proses Perancangan Database Analisis Kebutuhan, untuk mendapatkan Kebutuhan Database dan Kebutuhan

    Fungsional Perancangan konsepsual, untuk mendapatkan Skema konsepsual (HLDM) dan

    Analisis Fungsional untuk mendapatkan Spesifikasi Transaksi Tingkat Tinggi Perancangan Logikal, untuk mendapatkan Skema Logikan (Konsepsual) (DBMS) Perancangan Fisikal, untuk mendapatkan Skema Internal (Fisik) dan Perancangan

    Program Aplikasi Implementasi Transaksi, untuk mendapatkan Hasil akhir berupa Program Aplikasi

    Contoh Aplikasi Database, PERUSAHAAN

    Data-data : PEGAWAI, DEPARTEMEN, PROYEK Mini-word/Spesifikasi/User Requirement : Perusahaan dibagi dalam Departemen. Tiap Departemen memiliki Nomor dan

    Nama yang unik, Pegawai tertentu yang membawahi Departemen (Manajer), dancatat Awal Pegawai tersebut sebagai Manajer. Setiap Departemen bisa memiliki

    beberapa Lokasi Sebuah Departemen mengendalikan beberapa Proyek. Setiap Proyek memiliki

    Nomor dan Nama yang unik, serta satu Lokasi. Data Pegawai yang disimpan antara lain, Nama, NIP, Alamat, Gaji, Sex, Tanggal

    Lahir. Setiap Pegawai menempati satu Departemen, dan mungkin bekerja padabeberapa Proyek, yang mungkin di bawah Departemen lain. Dicatat jumlahJam/Minggu setiap Pegawai yang bekerja pada tiap Proyek. Termasuk Pengawasuntuk tiap Pegawai.

    Perlu dicatat Tanggungan tiap Pegawai, dengan mencatat Nama, Sex, TanggalLahir dan Hubungan Keluarga.

    Istilah-istilah Entity Strong, Weak

    Attribute Key, Partial Key, Atomic, Multi-valued, Composite, Derived

    Relationship Participation

    All, Partial

  • 5/25/2018 Tentang PHP

    49/71

    Ratio

    One to One, One to Many, Many to Many Tuple Instance

    Jenis Entitas, Set Entitas, Atribut dan Kunci (Key)

    Model ER Menggambarkan Data sebagai Entiti, Hubungan Relasi, dan Atribut. Entitas dan Atribut Entiti adalah representasi dari obyek dasar pada Model ER, yang benar-benar

    secara fisik (contoh orang) atau Konsepsual (contoh perusahaan) ada dan tidaksaling bergantung keberadaannya.

    Atribut adalah sesuatu yang dimiliki oleh Entiti dan menjelaskan segala sesuatuyang berhubungan dengan Entiti.

    Atribut Sederhana (Atomik) atau Komposit (gabungan atribut sederhana)

    Atribut dengan satu nilai atau banyak nilai (jamak)

    Atribut yang tersimpan dan Turunan

    Atribut dengan nilai NULL Ada kemungkinan bernilai NULL, atau banyak sekali yang bernilai NULL

    (tidak diisi)

    Atribut Kompleks

    Kombinasi dari berbagai macam atribut Jenis Entitas, Set Entitas, Kunci dan Set Nilai Kumpulan (Set) Entitas yang memiliki atribut sama disebut dengan Jenis Entitas

    (Entity Type) Jenis Entitas dinyatakan dengan Nama dan Atributnya Atribut Kunci (Key) adalah atribut yang dapat digunakan untuk membedakan satu

    informasi dengan informasi lainnya dalam suatu entity, yang disebut dengan

    keunikan (Uniquely) Perancangan Kosepsual Awal dari Database PERUSAHAAN

    Hubungan Relasi, Jenis Hubungan Relasi, Role dan Konstrain Struktural Jenis Hubungan Relasi, Set dan Instan Jenis-jenis Derajat Relasi Adalah jumlah entiti yang berpartisipasi pada suatu relasi Relasi dua entiti berarti derajad dua, disebut binary Relasi tiga entiti berarti derajad tiga, disebut ternary Derajad relasi dapat berapa saja, namun derajad dua adalah yang paling umum

    Relasi sebagai Atribut

    Nama Role dan Hubungan Relasi Rekursif Nama role adalah nama yang digunakan untuk menunjukkan peran/kegunaan dari

    suatu entiti dalam suatu relasi

    Contoh, relasi antara dosen dan mahasiswa dalam memberikan bimbingantugas akhir (MEMBIMBING). Bagi dosen disebut sebagai PEMBIMBINGdan bagi mahasiswa disebut YANG_DIBIMBING (BIMBINGAN atau namalainnya)

    Relasi rekursif adalah relasi yang terjadi pada entiti yang sama

    Contoh, pada entiti pegawai ada kemungkinan relasi antara pegawai denganpegawai, misalkan relasi MENGATUR/MENGAWASI (TO

    MANAGE/SUPERVISE), dimana ada yang diatur dan ada yang mengatur(MANAGER/SUPERVISOR) Konstrain pada Jenis Hubungan Relasi

  • 5/25/2018 Tentang PHP

    50/71

    Perbandingan kardinaliti

    One to one

    PEGAWAIKAJUR JURUSAN

    1 1

    (0,1) (1,1)

    1 Pegawai menjadi Kajur 1 Jurusan

    1 Jurusan memiliki Kajur 1 Pegawai

    1 Pegawai bisa menjadi Kajur 1 Jurusan atau tidak (Tidak semua Pegawaimenjadi Kajur) dan maksimal 1 Pegawai menjadi Kajur pada 1 Jurusan(0,1)

    1 Jurusan memiliki Kajur dari 1 Pegawai (Semua Jurusan memiliki Kajur)dan Maksimal 1 Jurusan dipegang oleh 1 Pegawai (1,1)

    One to many

    PEGAWAIBEKERJA JURUSAN

    (1,1) (2,N)

    N 1

    JURUSAN : PEGAWAI memiliki perbandingan 1 : N

    1 Jurusan memiliki banyak Pegawai yang Bekerja

    1 Pegawai Bekerja pada 1 Jurusan

    1 Pegawai minimal Bekerja pada 1 Jurusan (Semua Pegawai Bekerja pada

    Jurusan) dan maksimal 1 Pekerja Bekerja pada 1 Jurusan (1,1) 1 Jurusan Minimal memiliki 2 Pegawai dan Maksimal banyak Pegawai

    (2,N)

    Many to many

    PEGAWAIMENGERJAKAN PROYEK

    (1,M)

    N

    (1,N)

    M

    1 Pegawai Mengerjakan banyak Proyek

    1 Proyek Dikerjakan oleh banyak Pegawai 1 Pegawai minimal Mengerjakan 1 Proyek dan maksimal banyak Proyek

    1 Proyek minimal Dikerjakan oleh 1 Pegawai dan maksimal banyakPegawai

    Partisipan

    Total/All

    Semua menjadi bagian dari relasi

    Partial

    Ada anggota yang tidak ikut dalam relasi, contoh relasi PEGAWAI danJURUSAN dengan relasi KAJUR, tidak semua PEGAWAI menjadi

    KAJUR pada suatu JURUSAN Atribut dari Jenis hubungan Relasi

    Jenis Entitas Weak

  • 5/25/2018 Tentang PHP

    51/71

    Sebuah entity seharusnya dapat dibedakan antara satu informasi dengan informasilainnya, sehingga harus memiliki satu atau gabungan beberapa atribut yang dapatdigunakan sebagai pembeda, yang disebut dengan key

    Jika key yang ada benar-benar dapat digunakan sebagai pembeda, artinya bersifatuniks (tidak ada yang sama), maka suatu entity dikatakan kuat

    Jika key yang ada memiliki beberapa informasi yang mirip, maka dikatakan keytersebut bersifat tidak penuh (partial), sehingga entity disebut sebagai entity lemah

    Perbaikan Perancangan ER untuk Database Perusahaan Diagram ER, Perjanjian Penamaan, Isu Perancangan Notasi Diagram ER

    (Strong) EntityPEGAWAI

    Pegawai memiliki atribut NIP yang dapat digunakan sebagai kunci

    Weak EntityKELUARGA

    Keluarga tidak memiliki atribut tertentu yang dapat digunakan sebagai kunci

    Relationship

    MENGAJAR

    Jika Dosen dan Mahasiswa bertemu pada Jam dan Ruangan tertentu untukmembahas Matakuliah tertentu akan terjadi proses Mengajar

    Identifying RelationshipMENANGGUNG

    Pegawai Menanggung Keluarga

    Attribute Sex

    Sex merupakan informasi yang sederhana

    Key AttributeNRP

    NRP merupakan atribut yang dapat digunakan untuk membedakan satuMahasiswa dengan lainnya

    Partial Key AttributeNAMA

    Nama adalah atribut yang dapat digunakan untuk membedakan Keluarga satudengan lainnya, namun kemungkinan ada yang sama

    Multi-valued AttributeALAMAT

    Dalam beberapa hal, ada seseorang yang memiliki lebih dari satu alamat

    Composite Attribute

    ALAMAT

    KELURAHAN KECAMATAN

    KOTAJALAN

    Dalam beberapa hal, alamat dapat dipecah menjadi beberapa atribut yang lebihsederhana

    Derived AttributeUMUR

    Atribut umur tidak perlu disimpan, tetapi dapat dihitung dari tanggal lahir Total Participation of Entity In Relationship

    Total ParticipationMEMBIMBINGDOSEN MAHASISWA

    Semua Dosen harus sebagai Pembimbing

    Partial Participation

    Tidak semua Mahasiswa mengambil TA Cardinality Ratio

  • 5/25/2018 Tentang PHP

    52/71

    One to OneKAJURJURUSAN PEGAWAI

    1 1

    1 Jurusan memiliki 1 Pegawai sebagai Kajur

    1 Pegawai bekerja sebagai Kajur pada 1 Jurusan

    One to Many

    BEKERJAJURUSAN PEGAWAI1 N

    1 Jurusan memiliki N (banyak) Pegawai yang bekerja

    1 Pegawai bekerja pada 1 Jurusan

    Many to ManyMEMBIMBINGDOSEN MAHASISWA

    N M

    1 Dosen Membimbing M (banyak) Mahasiswa

    1 Mahasiswa Dibimbing oleh N (banyak) Dosen Structural Constraint (min, max) on Participation of Entity in Relationship

    1 Jurusan harus memiliki minimal 4 sampai N Pegawai yang bekerja

    1 Pegawai harus bekerja minimal 1 sampai 1 Jurusan

    BEKERJAJURUSAN PEGAWAI(4,N) (1,1)

    Penamaan yang Benar dari Pembentukan Skema Pilihan Perancangan untuk Perancangan konsepsual ER Notasi Alternatif untuk Diagram ER

    5. Tata cara penggambaran ERD

    Penggambaran harus sesuai dengan kebiasaan (model yang umum digunakan) Jangan menggunakan konsep perancangan secara praktek, karena akan mengalami

    kebingungan saat menggambar ERD. Anggap bahwa komponen dari ERD adalah Entiti,Atribut, Relasi dan garis-garis penghubung. Jangan berfikir mengenai tabel, primary key,

    foreign key Gambarkan semua item dalam mini world selengkap mungkin, jangan ditambahi ataudikurangi. Untuk memudahkan, catat/coret item yang sudah digambarkan

    Jika ada suatu permasalahan yang belum jelas (tidak tertulis dalam mini world), dapatdianggap berlaku secara umum (asumsi yang biasa digunakan)

    Pemahaman pada suatu mini world bisa muncul perbedaan, tergantung bagaimanamelihat suatu mini world dari sudut pandang tertentu. Yang penting proses pemindahandari mini world ke dalam model ERD tidak ada yang terlewatkan dan salah

    Periksa/catat adanya entiti Entiti adalah suatu item yang dia dapat berdiri sendiri (tidak menjelaskan item

    lainnya, dan keberadaannya tidak bergantung item lain), serta ada item lain yang

    menjelaskan entiti tersebut Periksa semua atribut dari suatu entiti Atribut dari entiti adalah suatu item yang digunakan untuk menjelaskan suatu entiti

    dan keberadaannya disebabkan entiti tersebut. Atribut dari entiti ini adalah suatu itemyang tidak berhubungan dengan entiti lain

    Jika ada yang dianggap sebagai atribut, tetapi terdapat suatu entiti yang dapatdianggap mewakili atribut tersebut, maka atribut ini dianggap sebagai relasi darikedua entiti tersebut. Misalkan, mahasiswa memiliki dosen wali. Mahasiswa adalahentiti, dan jika tidak ada entiti lain yang berhubungan dengan dosen wali, maka dosenwali dapat dianggap sebagai atribut dari entiti mahasiswa. Namun jika terdapat entiti,misalkan dosen, maka dosen wali dapat dianggap berupa relasi antara mahasiswa dan

    dosen Jika ada di antara atribut tersebut yang dapat dianggap sebagai kunci utama, entiti

    dianggap sebagai entiti kuat, jika tidak, dianggap entiti lemah

  • 5/25/2018 Tentang PHP

    53/71

    Kunci utama adalah atribut yang nilainya unik (tidak ada yang sama) pada entititersebut. Kunci utama bisa terdiri dari satu atribut untuk mendapatkan nilai yangunik. Atribut ini ditandai sebagai kunci utama.

    Meskipun suatu entiti lemah tidak memiliki atribut yang bernilai unik yang dapatdigunakan sebagai kunci utama, setidaknya ada atribut yang dapat dianggap

    sebagai kunci sementara. Misalkan nama, dan tandai sebagai kunci lemah Periksa adanya relasi Relasi adalah adanya sesuatu yang menyebabkan lebih dari satu entiti saling bertemu

    (muncul suatu urusan atau kegiatan atau hubungan antar entiti) Periksa partisipan dari relasi, semua atau tidak Periksa perbandingan relasi, satu atau banyak Relasi bisa muncul pada lebih dari dua entiti

    Periksa adanya atribut dari suatu relasi Atribut ini muncul karena adanya suatu relasi dan hanya digunakan untuk

    menjelaskan relasi tersebut

    PEGAWAI

    TANGGUNGAN

    DEPARTEMEN

    PROYEK

    PENGAWASAN

    MENANG

    GUNG

    BEKERJA

    MENGA

    TUR

    MENGENDA

    LIKAN

    Nama

    Sex Tgl_Lahir

    Hubungan

    Nama

    SexAlamat Gaji

    Tgl_Lahir

    Mulai

    NamaNomor

    Lokasi

    Nama

    Nomor Lokasi

    Jumlah

    Pegawai

    BEKERJA_

    PADA

    Jam

    NIP

    1

    1

    1

    1

    1N

    N

    N

    M

    N

    1

    N

    Pengawas

    Pegawai

    Tanggungan

    Pegawai

    Pegawai Departemen

    ManajerDepartemen

    Pekerja

    Proyek

    Proyek

    Departemen

    Keterangan Seorang Pengawas adalah Pegawai yang ditugaskan sebagai Pengawas, karena itu,

    Pengawas menjadi suatu relasi Pegawasan antara Pegawai sebagai Pengawas danPegawai yang Diawasi

    Nama atau Keterangan pada tiap relasi menunjukkan fungsi relasi dari tiap-tiap entityPERTEMUAN KE 7

    Pengubahan/Mapping dari ERD ke Skema Database

    Pendahuluan Dua level Skema

  • 5/25/2018 Tentang PHP

    54/71

    Logical (conceptual) Level : Bagaimana User menterjemahkan skema relasi danarti dari atributnya. Level ini akan memberikan pengertian yang benar mengenaidata-data dalam suatu relasi.

    Implementation (storage) Level : Bagaimana baris-baris data disimpan dandiubah.

    Pendekatan perancangan DB Bottom-up design methodology (sintesis) : Dari atribut-atribut yang ada, disusun

    relasi-relasinya Top-down design methodology : Berangkat langsung dari pengelompokan atribut-

    atribut beserta relasinya Istilah-istilah Skema Suatu gambaran mengenai entiti-entiti beserta atributnya yang saling berelasi

    Entiti Atribut Relasi

    Instance Suatu nilai atau data atau isi dari entiti

    Tuple Baris data dari instance

    PASIEN

    Nama Alamat Tgl_Lahir

    Suhardi Jl. Baliwerti 10 Sby 12-10-1992

    Bobo Jl. Ngagel 20 Sby 4-2-2000

    Muarta Jl. Indrapura 1 Sby 11-9-1980

    Nama Entiti

    Nama Atribut

    Satu tuple

    instance

    Catatan

    Pada tahap Pemetaan (mapping atau pembuatan skema), jangan menambahkan atributbaru, misalkan atribut kunci, dengan alasan tidak ada kunci atau alasan lainnya.Lakukan penambahan kunci dan sebagainya pada tahap masih di ERD atau dispesifikasinya. Pada saat Pemetaan (mapping atau pembuatan skema), tidakdiperkenankan menambahkan atribut baru, kecuali entiti baru hasil dari relasi N:Matau relasi orde lebih dari 2 atau hasil dari Normalisasi.

    Penambahan kunci baru dapat dilakukan nanti, jika pada tahap Normalisasi (biasanyaNF1) ditemukan data yang redundant sehingga harus dibuatkan entiti baru danterpaksa diberikan atribut kunci baru untuk entiti baru tersebut

    Entiti Gambar skema dari entiti sangat bergantung dari atribut yang dimiliki oleh entiti

    tersebut

    Atribut 1 Atribut 2 Atribut 3 Atribut 4 Atribut n

    Nama Entiti

    Nama Entiti

    Atribut 3

    Atribut 1

    Atribut 2

    Atribut 4

    Atribut n

    Atribut Tunggal Atribut tunggal digambarkan dalam bentuk satu kolom atribut dan satu baris

    (tuple)

  • 5/25/2018 Tentang PHP

    55/71

    NAMA

    Andi

    NIP

    123456780

    Sugeng123456781

    Amin123456782

    Satu satuan informasi

    memiliki satu tuple

    data NAMA

    Atribut Turunan Atribut turunan tidak perlu digambarkan, karena ia nantinya (dari program

    aplikasi) dapat diturunkan dari atribut lainnya Atribut Kunci Utama (memiliki nilai unik) Atribut ini dapat terdiri dari satu atribut atau gabungan beberapa atribut yang

    memiliki nilai unik dan digambarkan dengan pemberian garis bawahNAMA

    Andi

    NIP

    123456780

    Sugeng123456781

    Amin123456782

    Satu jenis informasi

    (NIP) memiliki data

    yang tidak akan ada

    yang sama

    Atribut Kunci Sementara

    Seperti pada kunci utama, hanya digambarkan dengan garis titik-titikNAMA

    Andi

    TGL_LAHIR

    12-02-2000

    Sugeng 10-10-1998

    Amin 03-12-1970

    Satu jenis informasi

    (NAMA) memiliki data

    yang kemungkinan ada

    yang sama

    Atribut Komposit Dapat digambarkan sebagai beberapa atribut tunggal dengan jumlah atribut sesuai

    jumlah atribut komposit Dapat dibuatkan tabel baru dengan relasi 1:1

    NAMA JALAN KOTA PROVINSI

    PEGAWAI

    PEGAWAI

    Alamat

    Jalan

    Nama

    Kota

    Provinsi

    NIP NAMA

    PEGAWAI

    NIP JALAN KOTA PROVINSI

    ALAMAT

    NIP

    NIP

    atau

    Atribut Jamak Seperti pada atribut tunggal, namun memiliki beberapa baris (tuple) sesuai dengan

    jumlah atribut

    NAMA

    Andi

    NIP

    123456780

    Sugeng123456781

    Amin123456782

    Satu satuan informasi

    memiliki lebih dari

    satu tuple data TELP

    TELP

    081123456

    081132123

    081232167

    7070123

    PEGAWAI

    Cara menyimpan data:

    NAMA

    Andi

    NIP

    123456780

    Sugeng123456781

    Amin123456782

    TELP

    081123456

    081132123

    081232167

    Andi123456780 7070123

    Muncul data kembar,

    dan kunci NIP

    memiliki data yang

    sama

    tidak boleh

    PEGAWAI

  • 5/25/2018 Tentang PHP

    56/71

    Normalisasi langsung Atribut jamak diganti dengan entiti baru, dimananama entiti sama dengan nama atribut dan entiti tersebut memiliki atributreferensi yang sama dengan kunci utama dari entiti sebelumnya, dan atribut

    jamak

    NAMA

    Andi

    NIP

    123456780

    Sugeng123456781

    Amin123456782

    NIP

    123456780

    123456781

    123456782

    TELP

    081123456

    081132123

    081232167

    123456780 7070123

    PEGAWAI TELP

    Bukan key,sehingga tidak

    masalah kalau

    ada data yang

    sama

    Catatan: Istilah Redundansi (ada data yang sama) Adalah suatu data yang memang arti atau maksudnya sama yang disimpan lebih

    dari satu kali

    Contoh, data jurusan Elektronika disimpan lebih dari satu kali

    Tidak mungkin ada dua jurusan yang tidak sama tetapi memiliki nama

    yang sama Jika data-data tersebut sangat sederhana dan tidak dapat disederhanakan lagi,

    maka tidak mengapa ada redundansi

    Contoh, KODE_JURUSAN, misalkan jurusan Elektronika dikodekandengan nilai 1, maka tidak mengapa kode 1 disimpan dibanyak tempat,asalkan bukan nama Elektronika yang disimpan di banyak tempat

    Ini berbeda dengan istilah unik atau tidak unik Tidak unik artinya ada kemungkinan data-data yang berbeda memiliki nilai yang

    sama

    Contoh, dua orang yang perbeda bisa memiliki nama yang sama Relasi 1:1

    Relasi dapat diwaliki dengan menambahkan atribut kunci utama (entiti denganpartisipan sebagian/parsial) beserta atribut pada relasi tersebut pada entiti denganpartisipan lebih banyak/penuh (why, sebab menghindari banyaknya nilai NULL)

    PEGAWAI JURUSANMemimpin(Kajur)

    NIP

    1 1

    Nama KodeMulai

    KODE NAMA NIP_KAJUR MULAI

    JURUSAN

    NIP NAMA

    PEGAWAI

    Relasi dengan partisipan sama-sama penuh, dapat dimasukkan pada salah satu entiti. Sebenarnya kedua entiti ini dapat dijadikan satu, karena pasti memiliki jumlah

    tuple yang sama, dengan relasi 1:1 Relasi dengan parsisipan sama-sama sebagian, dimasukkan pada entiti dengan derajat

    partisipan paling banyak/penuh Relasi 1:m Relasi dapat diwakili dengan menambahkan atribut kunci utama dari entiti yang

    memiliki relasi 1, termasuk atribut pada relasi tersebut, menjadi atribut dari entitiyang memiliki relasi

    PEGAWAI JURUSAN

    NIP

    N 1

    Nama KodeMulai

    NIP NAMA KODE_JUR MULAI

    PEGAWAI

    Nama

    BERGABUNG

    KODE NAMA

    JURUSAN

    Relasi m:n

  • 5/25/2018 Tentang PHP

    57/71

    Relasi m:n harus diubah menjadi entiti baru dengan atribut terdiri dari atribut kunciutama dari kedua entiti, serta kalau ada atribut pada relasi tersebut

    PEGAWAI PROYEKBekerja

    (Proyek)

    NIP

    N M

    Nama KodeMulai

    NIP KODE_PROYEK MULAI

    BEKERJA

    Nama

    KODE NAMA

    PROYEK

    NIP NAMA

    PEGAWAI

    Relasi lebih dari 2 entiti Relasi ini dapat dipecah menjadi beberapa relasi dari dua entiti dan aturan

    pemetaannya sama dengan sebelumnya Relasi dapat juga dibentuk menjadi entiti baru dengan atribut sesuai dengan atribut

    kunci utama dari setiap entiti, termasuk kalau ada atribut dari relasi tersebut

    PERTEMUAN KE 8

    Ketergantungan Fungsional (Functional Dependency, FD)

    Pengertian Nilai dari suatu atribut dipengaruhi/tergantung dari nilai atribut lain

    Suatu konstrain antara dua set atribut Atribut Y bergantung dari atribut X dalam suatu relasi R : X Y, sehingga Akan selalu t1[X] = t2[X] maka t1[Y] = t2[Y], dimana t1dan t2adalah tuple dalam R AB, Jika A maka B, Implikasi

    A B A B

    Salah Salah Benar

    Salah Benar Benar

    Benar Salah Salah

    Benar Benar Benar

    Pengujian dilakukan untuk semua keadaan A dan B Pengujian paling singkat adalah, B tidak bergantung dari A jika B salah tetapi A

    benar

    Jika ada data pada A yang sama, maka apakah data pada B ada kemungkinantidak sama, jika demikian maka artinya tidak B tidak bergantung dari A

    ContohABSENSI_MAHASISWA

    NRP NAMA JURUSAN KULIAH TANGGAL KAJUR

    1 1234 Agung IT Database 12-01-2008 Arna2 1235 Enok IT Database 12-01-2008 Arna

    3 1236 Nono IT Database 12-01-2008 Arna

    4 1237 Sugi IT Database 12-01-2008 Arna

    5 1244 Agung ELKA RE 12-01-2008 Syafruddin

    6 1246 Nanang ELKA RE 12-01-2008 Syafruddin

    7 1248 Munir ELKA RE 12-01-2008 Syafruddin

    8 1234 Agung IT Database 19-01-2008 Arna

    NRPNAMA ? Ya t1[NRP]=t8[NRP]

    t1[NAMA]=t8[NAMA] Untuk NRP yang sama tidak mungkin dengan dua NAMA yang berbeda

    NRPJURUSAN ? Ya

  • 5/25/2018 Tentang PHP

    58/71

    Untuk NRP yang sama tidak mungkin dua JURUSAN yang berbeda NAMAJURUSAN ? Tidak t1[NAMA]=t5[NAMA]t1[JURUSAN]t5[JURUSAN] Untuk NAMA yang sama (nama kembar) ada kemungkinan JURUSAN yang

    berbeda

    NRPKULIAH ? Tidak Untuk NRP yang sama ada kemungkinan KULIAH yang berbeda (lebih dari satu

    mata kuliah) NRPTANGGAL ? Tidak Untuk NRP yang sama ada kemungkinan pada TANGGAL yang berbeda (kuliah

    lain pada tanggal yang lain) NRPKAJUR ? Ya Untuk NRP yang sama tidak mungkin ada dua KAJUR yang berbeda

    JURUSANKAJUR ? Ya Untuk JURUSAN yang sama tidak mungkin memiliki KAJUR yang berbeda

    KULIAHNRP ? Tidak

    Untuk KULIAH yang sama ada kemungkinan NRP berbeda (beda orang) TANGGAL NRP ? Tidak Pada TANGGAL yang sama ada kemungkinan beda NRP (orang lain)

    KULIAH, TANGGAL NRP ? Tidak Ada kemungkinan KULIAH dan TANGGAL sama, tetapi NRP berbeda (orang

    lain) KULIAH, NRPTANGGAL ? Ya Untuk satu KULIAH dengan NRP yang sama tidak mungkin ada dua TANGGAL

    yang berbeda (kecuali kuliah dilakukan dua kali) Dalam kasus NRP JURUSAN, NRP KAJUR, tetapi JURUSAN KAJUR,

    maka ketergantungan fungsionalnya dapat dibuat NRP JURUSAN KAJUR,artinya KAJUR bergantung secara tidak langsung kepada NRP.

    Sehingga diagram FD

    NRP NAMA JURUSAN KULIAH

    ABSENSI_MAHASISWA

    TANGGAL KAJUR

    FD I

    FD II

    FD III

    Mengingat banyak kemungkinan adanya saling ketergantungan, maka untukmemudahkan dapat dibuat asumsi-asumsi atau berdasarkan pengamatan sesuai dengan

    biasanya, suatu atribut biasanya bergantung dengan atribut apa, atau suatu atributbiasanya mempengaruhi atribut apa saja.

    Normalisasi

    Pengertian Alasan Informasi dengan Redundansi dalam Tuple

    Suatu baris data (tuple) memiliki informasi (sekelompok atribut) yang samadengan baris data lainnya. Ini akan menyebabkan terjadinya ketidak-normalan(Anomaly) pada saat proses pengubahan data (Update)

    Ketidak-normalan dalam Update

    Jika akan melakukan penambahan data baris baru dengan kelompok atributtertentu yang sama dengan data yang sudah ada (misalkan departemen), maka

  • 5/25/2018 Tentang PHP

    59/71

    data baru tersebut harus benar-benar sama. Kesulitan akan muncul jika databaru tersebut belum ada pada data yang lama, maka kemungkinan yangdilakukan adalah mengisikan data kosong atau membuat tabel khusus untukmenyediakan data atribut tersebut.

    Jika melakukan penghapusan pada suatu baris yang mengandung informasi

    penting pada suatu atribut, maka ini akan menghilangkan informasi tersebut.Lain halnya jika informasi disimpan pada tabel terpisah

    Jika melakukan pengubahan suatu baris yang memiliki kelompok atributtertentu (misalkan departemen), maka harus juga dilakukan pengubahan padasemua baris data yang memiliki kelompok atribut yang sama

    Null Values pada Tuple

    Jika suatu skema memiliki banyak relasi (relasi yang gemuk/fat relation),maka akan banyak kemungkinan saat melakukan pengisian data, tidak semuaatribut terisi yang akan menyebabkan pemborosan media simpan. Hal ini juga

    banyak menimbulkan masalah saat dilakukan operasi tertentu, misalkanmenjumlahkan atau menghitung suatu atribut yang banyak mengandung nilai

    Null, bisa berarti, tidak digunakan, tidak diisi, atau isinya salah, danseterusnya.

    Kapan melakukan dan tidak melakukan Super key, Key, Candidate key, Primary Key

    Saat suatu skema dianalisa berdasarkan contoh instant, ada atribut atau beberapa atribut

    atau kombinasi dari beberapa atribut yang memiliki nilai unik, artinya tidak sama satu

    dengan lainnya. Atribut-atribut tersebut dapat digunakan sebagai key.

    Super key Kombinasi dari beberapa atribut (1 s/d semua atribut) dijadikan kunci (key)

    Key

    Adalah atribut yang dapat digunakan sebagai kunci (key) dari suatu skema (entiti).Salah satu dari super key yang paling sederhana.

    Candidate key Jika suatu skema memiliki lebih dari satu key, maka setiap key disebut candidate

    key Primary Key Salah satu dari candidate key umumnya dianggap sebagai primary key.

    Contoh, dalam skema PEGAWAI, ada beberapa atribut yang dapat digunakan sebagaikey, misalkan {NIP}, atau {NIP, NAMA}, atau {NIP, NAMA, TGLLAHIR}, ketiganya disebut

    sebagai super key dari PEGAWAI {NIP} dianggap sebagai key Jika {NIP} dan {NAMA} keduanya dapat dianggap key (misalkan isi dari NAMA

    dianggap unik), maka keduanya dianggap sebagai candidate key, dan NIP dapatdianggap sebagai primary key

    First Normal Form (1NF) Tidak diperkenankan atribut dengan nilai jamak, komposit, dan segala kombinasinya

    yang akan menyebabkan redundansi Contoh Departemen{DNUMBER, DNAME,DMGR,DLOC} DLOC memiliki kemungkinan lebih dari satu lokasi Skema DEPARTEMEN dengan kunci DNUMBER

  • 5/25/2018 Tentang PHP

    60/71

    DNUMBER DNAME DMGR DLOC

    DEPARTEMEN

    Instant DEPARTEMEN

    DNUMBER DNAME DMGR DLOC

    DEPARTEMEN

    1

    2

    3

    Riset

    Produksi

    Administrasi

    Edi

    Budi

    Andi

    {Surabaya}

    {Malang, JKT, SBY}

    {Surabaya}

    1NF dengan Redundansi, Kunci menjadi {DNUMBER dan DLOC}

    DNUMBER DNAME DMGR DLOC

    DEPARTEMEN

    1

    2

    3

    Riset

    Produksi

    Administrasi

    Edi

    Budi

    Andi

    Surabaya

    Malang

    Surabaya

    2 Produksi Budi JKT

    2 Produksi Budi SBY

    Muncul

    redudansi

    1NF tanpa redundansi, tabel dipecah menjadi dua

    DNUMBER DNAME DMGR DLOC

    DEPARTEMEN

    1

    2

    3

    Riset

    Produksi

    Administrasi

    Edi

    Budi

    Andi

    Surabaya

    SBY

    Surabaya

    DNUMBER

    DLOC

    1

    2

    3

    Malang

    JKT

    2

    2

    Contoh Lain:

    CASHFLOW{NO_TRANSAKSI, ITEM, JUMLAH, NOMINAL, STATUS} STATUS adalah atribut yang berisi data Keluar/Masuk atau Debit/Kredit Dalam aplikasinya nanti, proses untuk memasukkan data Keluar atau Masuk

    bisa menimbulkan kesalahan data yang menyebabkan ketidak-konsistenan carapenulisan

    Normalisasi NF1, STATUS dijadikan entiti baru dengan atribut STATUS danatribut kunci baru (misalkan) KODE.

    CASHFLOW

    NO_TRANS ITEM JUMLAH NOMINAL STATUS

    12345 MendapatBonus

    1 1000000 MASUK

    12346 MembeliSampoo

    2 50000 KELUAR

    12347 MembeliRujak

    1 10000 KELUAR

    12348 MenerimaBagi-hasil

    1 500000 MASUK

    Dilakukan NF1 menjadi:

    CASHFLOW

    NO_TRANS ITEM JUMLAH NOMINAL STATUS

  • 5/25/2018 Tentang PHP

    61/71

    12345 MendapatBonus

    1 1000000 1

    12346 MembeliSampoo

    2 50000 2

    12347 Membeli

    Rujak

    1 10000 2

    12348 MenerimaBagi-hasil

    1 500000 1

    STATUS

    KODE STATUS

    1 MASUK

    2 KELUAR

    Contoh Lain:

    SISWA{NRP, NAMA, KELAS, JENIS_KELAMIN} Jika penulisan JENIS_KELAMIN misalkan Laki-laki atau Pria atau

    Perempuan atau Wanita bisa menimbulkan masalah konsistensi Kalau penulisan menggunakan L/P atau 1/2 masih dianggap benar Normalisasi NF1, JENIS_KELAMIN dijadikan entiti baru dengan atribut KODE

    sebagai key dan JENIS_KELAMIN

    Catatan: Perbedaan antara redundansi dan tidak unik lihat penjelasan mengenai mapping

    pada atribut jamak Masalah penambahan kunci baru pada entiti yang tidak memiliki kunci (dianggap

    banyak data yang kembar atau tidak unik) lihat penjelasan pada Catatan saatdilakukan mapping

    Data yang kebetulan kembar bukan masalah, yang tidak diperbolehkanadalah data yang benar-benar kembar lihat penjelasan mengenai

    perbedaan redundansi dan tidak unik. Contoh lain: Anggap ada suatu relasi MELANGGAR antara SISWA dan GURU dengan rasio

    N:M sehingga dalam mapping-nya harus dibuatkan entiti baru Pada entiti baru tersebut memiliki atribut NRP, NIP, TANGGAL dan

    PELANGGARAN

    Contoh data-datanyaNRP NIP TANGGAL PELANGGARAN

    1234 1111 12-01-2010 Mencontek

    1233 2222 01-02-2010 Terlambat

    1234 2222 10-03-2010 Membuang sampah sembarangan

    1234 1111 12-03-2010 Memakai sandal

    1233 1111 12-03-2010 Merokok di kelas

    1235 1111 12-03-2010 Memakai kaos oblong

    1235 1111 12-03-2010 Rambut Gondrong

    1235 1111 12-03-2010 Mencoret-coret bangku

    Apakah atribut NRP, NIP dan TANGGAL tidak unik ? Ya, karena memangbanyak data yang kembar

  • 5/25/2018 Tentang PHP

    62/71

    Apakah atribut tersebut redundant ? Ya, karena pada atribut tersebut digunakanuntuk menyimpan data yang memang maksudnya sama. Contoh NRP 1235disimpan berulang-ulang

    Apakah entiti tersebut perlu dibuatkan kunci yang bersifat unik ? Tidak perlu,selama entiti PELANGGARAN dianggap memang tidak memerlukan kunci.

    Kalau memang diinginkan suatu kunci ? Harus sudah dibuat sejak dirancangspesifikasi atau ERD, misalkan NO_PELANGGARAN

    Apakah entiti tersebut perlu dinormalisasi (dipisahkan NRP, NIP dan TANGGALmenjadi entiti baru) ? Tidak

    Mengapa ? Karena atribut tersebut sudah berupa data yang dianggapsederhana dan mungkin tidak dapat disederhanakan lagi.

    Contoh, apakah ada kunci lain sebagai pengganti NRP ? Kalau ada, kunci iniseharusnya sudah digunaan saat merancang spesifikasi atau ERD

    Contoh, apakah ada data lain yang lebih sederhana untuk menggantikantanggal ?

    Contoh tabel yang sama namun dengan data-data yang berbeda

    NRP NIP TANGGAL PELANGGARAN

    1234 1111 12-01-2010 Mencontek

    1233 2222 01-02-2010 Merokok di kelas

    1234 2222 10-03-2010 Memakai kaosoblong

    1234 1111 12-03-2010 Memakai sandal

    1233 1111 12-03-2010 Merokok di kelas

    1235 1111 12-03-2010 Memakai kaosoblong

    1235 1111 12-03-2010 Rambut Gondrong

    1235 1111 12-03-2010 Mencontek Apakah atribut NRP, NIP, TANGGAL dan PELANGGARAN tidak unik ? Ya,

    karena memang banyak data yang kembar Khusus untuk NRP, NIP dan TANGGAL sudah dibahas pada penjelasan

    sebelumnya Apakah atribut PELANGGARAN berisi data yang redundant ? Ya, karena berisi

    data yang maksudnya sama Apakah entiti tersebut perlu dinormalisasi dengan memisah atribut

    PELANGGARAN menjadi entiti baru ? Bisa Ya, bisa Tidak. Loh ? Jika data-data pada atribut PELANGGARAN dimaksudkan berupa data yang

    bersifat mandiri, berupa keterangan yang boleh ditulis bebas, tidak mengapamenuliskan dengan cara yang berbeda meskipun maksudnya sama, maka tidak

    perlu dilakukan normalisasi.

    Contoh, tidak mengapa menuliskan pelanggar