Docstoc

kk_19_data base

Document Sample
kk_19_data base Powered By Docstoc
					                  Menentukan Kebutuhan Sistem

    7.1
                        Proses pembangunan / development sebuah sistem mempunyai siklus hidup
sistem / SDLC (System Development Life Cycle) yang pada umumnya meliputi :
1. Perencanaan
2. Analisis
3. Development
4. Implementasi
5. Penggunaan

       Urutan-urutan logis tersebut memiliki ketergantungan dan saling mempengaruhi. Sebagai misal
Perencanaan Sistem yang baik terhadap suatu sistem yang hendak dibangun tentu akan mempertajam
dan memperdalam aspek-aspek analisis yang dilakukan. Analis yang tajam dan medalam tentu akan
semakin memudahkan dalam proses Development dan mengurangi kerancuan-kerancuan, demikian
seterusnya.
       Pemilihan teknologi hardware, software, maupun middleware hanyalah sebagian aspek dari
pembangunan sistem, yang mana pemilihan teknologi hardware, software, maupun middleware tersebut
harus searah dan sejalan dengan proses-proses lain dalam siklus hidup sistem. Pada saat perencanaan dan
analisis sistem akan tampak kebutuhan kebutuhan sistem yang secara spesifik mengacu pada suatu
kebutuhan teknologi yang harus dipenuhi, demikian juga tidak menutup kemungkinan pada saat
implementasi diadakan penyempurnaan maupun revisi terhadap teknologi hardware, software maupun
middleware tersebut.
       Sebagai contoh adalah pada suatu tahap perancanaan dan analisis tampak bahwa sebuah
perusahaan yang hendak dibangun sistemnya ternyata mempunyai beberapa kantor cabang yang saling
berbeda letaknya, sementara tidak setiap kantor cabang memiliki koneksi yang sama dengan kantor pusat,
ada yang sudah memiliki jaringan FO, ada yang terhubung menggunakan dial-up line telepon saja, bahkan
ada beberapa kantor cabang baru yang belum memiliki koneksi apapun. Dari analisis sistem tampak
bahwa agar seluruh data dapat terintegrasi dengan baik, maka seluruh kantor-kantor cabang tersebut
harus dikoneksikan dengan kantor pusat minimal menggunakan teknologi microwave misalnya. Demikian
juga pada saat pemilihan teknologi database, mengingan data yang ditangani kecil-kecil namun memiliki
lalu lintas koneksi yang tinggi, sementara dituntut bahwa database tersebut harus memiliki kemampuan
tertentu seperti misalnya roll back transaksi dan stored procedure, maka perlu digunakan database
dengan basis Web MySQL minimal versi 5 menggunakan jenis tabel InnoDb misalnya.
       Pembuatan atau pembangunan Sistem dengan basis Web juga menggunakan pendekatan-
pendekatan yang sama dengan pembangunan sistem secara umum. Demikian juga sesuai dengan pokok
bahasan ini yaitu pada saat melakukan pemilihan teknologi database berbasis web yang sesuai maka perlu
diperhatikan beberapa hal berikut ini :
 Pertimbangan dalam pemilihan Database Web dengan melihat apakah menggunakan metode
     pendistribusian Pendistribusian Stand Alone atau Client Server
 Pertimbangan dalam pemilihan Database Web dengan Mengidentifikasi volume data dan beban kerja
 Pertimbangan dalam pemilihan Database Web melihat strategi/kebijakan yang ada
 Pertimbangan dalam pemilihan Database Web melihat teknologi/database yang sudah ada
     perusahaan
 Pertimbangan dalam pemilihan Database Web melihat model biaya/manfaat

   Sebelum mampu melakukan pemilihan teknologi database, tentu ada beberapa pemahaman dasar
dan pengetahuan sitem yang perlu dimiliki yang akan dibahas pada point-point berikut ini.

7.1.1. Pengertian Dasar
       Data :
        Fakta-fakta yang dapat disimpan dan mempunyai arti tertentu.
        Fakta mengenai obyek, orang, dll.
        Dinyatakan dengan nilai (angka, deretan karakter, atau symbol).
        Data terdiri dari :
           Elemen data : satuan data terkecil yang tidak dapat dipecah lagi menjadi unit lain yang
              bermakna
           Rekaman (Record) : gabungan sejumlah elemen data yang saling berhubungan.

                                                                                       Halaman     |1
           Berkas (file) : kumpulan dari record-record yang bertipe sama.
         Contoh : data siswa, guru, dll

      Beda Data dengan Informasi
       Data, adalah Sekumpulan dari lambang-lambang yang teratur dan mewakili/merepresentasikan
         sebuah obyek atau benda
       Informasi, hasil dari pengolahan data yang kemudian akan digunakan untuk pengambilan
         keputusan




      Definisi Database :
       “a collection of related data” (Elmazri & Navathe, 1994)
       “an organized collection of logically related data” (McFadden, Hoffer, and Presscot, 2002)
       “a collection of data, typically describing the activities of one or more related organizations”
          (Ramakrishnan & Gerke, 2000)
       Himpunan kelompok data yang saling berhubungan yang diorganisasi sedemikian rupa
          sehingga kelak dapat dimanfaatkan dengan cepat dan mudah.
       Kumpulan data yang saling berhubungan yang disimpan bersama sedemikian rupa tanpa
          pengulangan (redundancy) yang tidak perlu untuk memenuhi kebutuhan.
       Kumpulan file/tabel/arsip yang saling berhungan yang disimpan dalam media penyimpanan
          tertentu.

      Analogi Database dan Lemari Arsip
           Database bisa dibayangkan sebagai lemari arsip dengan berbagai cara pengaturannya
      (misalnya pengelompokan dan pengurutan). Database dan lemari arsip memiliki prinsip kerja dan
      tujuan yang sama; prinsipnya yakni pengaturan data/arsip. Tujuan utamanya adalah kemudahan
      dan kecepatan dalam pengambilan kembali data/arsip.


7.1.2. Sistem DataBase

      Perkembangan Model Sistem Database
       1960, Produk database pertama muncul, teknologi yang digunakan model jaringan dan hirarki
       1970, Relational database, muncul oracle, informix, sybase, dll. Mulai menggunakan Entity
          Relationship Model
       1980, Distributed database, SQL standar (ANSI,ISO), Object Oriented Database.
       1990, Client/Server Application, First Object DB Product, SQL-92, SQL-99, Decision Support
          System, Datawarehouse, dan Data Mining.
       2000, Three-Tier Application, Object Relation Model, Mobile DB.


      Model Sistem Database
      1. Sistem Database Model Hirarki

                                     Guru
                                  Andi, S.Kom



                     Matadiklat                 Matadiklat
                     Database                     WiFi




            Siswa      Siswa       Siswa           Siswa     Siswa
             Evi       Fajar       Dedi             Evi      Fajar




      2. Sistem Database Model Jaringan

                                                                                        Halaman     |2
                               Guru
                            Andi, S.Kom



               Matadiklat                 Matadiklat
               Database                     WiFi




      Siswa      Siswa       Siswa           Siswa     Siswa
       Evi       Fajar       Dedi             Evi      Fajar



3. Sistem Database Relational / RDBMS (Relational Database Management System)
        Dalam database relasional, data disimpan dalam bentuk relasi atau tabel dua dimensi, dan
   antar tabel satu dengan tabel lainnya terdapat hubungan atau relationship, sehingga sering kita
   baca diberbagai literatur, database didefinisikan sebagai “kumpulan dari sejumlah tabel yang
   saling hubungan atau keterkaitan”.
        Kumpulan dari data yang diorganisasikan sebagai tabel tadi disimpan dalam bentuk data
   elektronik di dalam hardisk komputer. Untuk membuat struktur tabel, mengisi data ke tabel,
   mengubah data jika diperlukan dan menghapus data dari tabel diperlukan software. Software
   yang digunakan membuat tabel, isi data, ubah data dan hapus data disebut Relational
   Database Management System atau dikenal dengan singkatan RDBMS sedangkan perintah
   yang digunakan untuk membuat tabel, isi, ubah dan hapus data disebut perintah SQL yang
   merupakan singkatan dari Structure Query Language. Jadi, setiap software RDBMS pasti bisa
   digunakan untuk menjalankan perintah SQL

4. Sistem Database Terdistribusi
         Kumpulan data yang dipakai secara bersama-sama yang terintegrasi secara logis, tetapi
   secara fisik tersebar pada beberapa komputer yang terhubung jaringan, Disebut juga DDBMS
   (Distributed DBMS). Mengelola database terdistribusi sehingga aspek penyebarannya tidak
   terlihat user Ingres/Star (Relational Tech. Inc.)




5. Sistem DataBase Web (Three-tier Architechture)

   Arsitektur Aplikasi Two-Tier dan Three-Tier




                                                                                  Halaman     |3
     Arsitektur two-tier, contoh : client menggunakan ODBC/JDBC untuk komunikasi dengan
      database.
     Arsitektur three-tier, contoh : aplikasi web dan aplikasi menggunakan ‘midleware’


               Database
            MySQL, MSSQL,
           PostgreSQL, Oracle          Akses
                                     Resource
                                    Lokal Server
                     Query




              Server Side
               Language             Server Web
            PHP, ASP, Java,         Apache / IIS
              Perl, Python


                                  Request




                                   HTML
                                            Response



                                      Client
             Client Side                                 Akses
                                     Browser
              Language                                  Resource
                                                        Resource
                                    IE, Opera,
           Java Script, Java                           Lokal Client
                                      Firefox




    Database Management System (DBMS)
    Kumpulan program yang memungkinkan pengguna (user) untuk membuat dan memelihara
    database
.




                                                                          Halaman   |4
      Query Processor
       – DDL interpreter and DML compiler
       – Query evaluation-optimization
      Storage Manager (program)
       – menyediakan interface antara database dan program aplikasi serta query yang
          ditujukan ke sistem.
       – Betanggung jawab atas interaksi dengan file manager, efisiensi penyimpanan,
          memperoleh dan update data.
      Transaction Manager
       Kontrol terhadap proses secara bersamaan berdasarkan query processing terhadap
       storage, agar :
       – Konsistensi (Consistency)
       – Daya tahan (Durability)
      Pysical Storage, berisi data dan metadatanya.


Komponen Sistem Database
1. Hardware
   Biasanya berupa perangkat komputer standar, media penyimpan sekunder dan media
   komunikasi untuk sistem jaringan.
2. Operaring System
   Yakni merupakan perangkat lunak yang memfungsikan, mengendalikan seluruh sumber daya
   dan melakukan operasi dasar dalam sistem komputer. Harus sesuai dengan DBMS yang
   digunakan.
3. Database
   Yakni database yang mewakili sistem tertentu untuk dikelola. Sebuah sistem database bisa
   terdiri dari lebih dari satu database.
4. DBMS
   (Database Management System). Perangkat lunak yang digunakan untuk mengelola database.
   Contoh kelas sederhana: dBase, Foxbase, Rbase, MS. Access, MS. Foxpro, Borland Paradox.
   Contoh kelas kompleks: Borland-Interbase, MySQL, MS. SQL Server, Oracle, Informix, Sybase.
5. User
   Orang-orang yang berinteraksi dengan sistem database, mulai dari yang merancang sampai
   yang menggunakan di tingkat akhir.
6. Optional Software
   Perangkat lunak pelengkap yang mendukung. Bersifat opsional.

Keuntungan DBMS
1. Integritas data sehingga memudahkan mengontrol dan meminimalkan duplikasi data /
   redudansi data serta menghasilkan data yang konsisten dan data yang berkualitas. Kualitas
   data sangat berpengaruh pula terhadap pemerolehan informasi yang berkualitas.

      Redundansi data dapat dikurangi dengan cara data yang sama untuk aplikasi yang berbeda
       dijadikan satu




                                                                              Halaman    |5
            Pengurangan redundansi data berimplikasi pada peningkatan konsistensi data (mengurangi
             kemungkinan untuk tidak konsisten)
             Contoh : Dua biro perjalan tidak terhubung ke database milik maskapai penerbangan. Apa
                      yang terjadi kalau salah satu biro sudah menjual tempat duduk nomor 4 padahal
                      biro yang lain tidak tahu?

      2. Tidak tergantung terhadap program aplikasi (independensi program-data) Struktur data pada
         database terpisah dengan program, Perubahan struktur data tidak membuat program harus
         dimodifikasi dengan menyimpan data secara seragam – standarisasi.

               Bahasa yang digunakan oleh berbagi macam program aplikasi / user untuk
         berkomunikasi/berinteraksi dengan DBMS adalah SQL (Structured Query Language). Terdiri
         dari sejumlah perintah (statement) yang dapat diformulasikan oleh program aplikasi /
         pengguna pengguna.

               Standarisasi seperti nama data, panjang data, kemungkinan nilainya, dan bahkan
         prosedur untuk mengaksesnya dapat diatur / dikekangan (constraint) oleh yang berwewenang
         (DBA, Database Administrator). Adanya kekangan (constraint) dalam database membuat
         pelanggaran terhadap isi data oleh pemakai tidak akan ditoleransi oleh sistem dengan
         sendirinya. Kekangan / constraint adalah suatu aturan yang diterapkan pada data dan tidak
         bisa dilanggar oleh program aplikasi / pemakai. Contohnya :
          Nama pegawai selalui bertipe Char dengan panjang maksimal 35 karakter, selain itu DBMS
             akan menolak. Semua pemrogram yang ingin menggunakan database tersebut, mau tidak
             mau akan menggunakan standar yang telah ditetapkan di atas
          Agama hanya bisa diisi dengan I, K, H, B, P. Sistem database akan menolak kalau huruf X
             dicoba untuk dimasukkan

      3. Data sharing - sebuah database dapat digunakan oleh banyak user dan banyak aplikasi.
         Data dapat diakases oleh banyak pemakai dengan tetap memperhatikan otorisasi. Istilah
         multiuser menyatakan bahwa sebuah data bisa diakses oleh banyak orang dalam waktu yang
         bersamaan
      4. Backup dan Recovery
      5. Security dan Privacy
      6. Meningkatkan tanggapan dan kemudahan akses terhadap data / kemudahan mendapatkan
         informasi yang diinginkan
         Dengan menggunakan perintah dalam level SQL (Structured Query Language) yang mudah
         untuk dipahami oleh orang awam, akses terhadap database mudah sekali dilakukan
      7. Meningkatkan produktivitas pengembangan aplikasi (level pengembang / Programmer)
         Kemudahan dalam mengakses database membuat waktu untuk pengembangan aplikasi dapat
         dipersingkat.
      8. Berbagai cara pandang terhadap data (level user)
         Database menyediakan pandangan yang berbeda-beda untuk tiap-tiap user. Misalnya kita
         memiliki data-data dari perusahaan yang bergerak di bidang retail. Data yang ada berupa data
         barang, penjualan dan pembelian. Ada beberapa jenis user yang memerlukan informasi terkait
         dengan data perusahaan tersebut. Misalnya pelanggan, kasir, bagian gudang,bagian keuangan
         dan juga manager. Pelanggan diperbolehkan melihat data barang, tetapi tidak boleh melihat
         data keuangan hasil penjualan barang. Sedangkan bagian keuangan diperbolehkan melihat
         data keuangan hasil penjualan barang.

      Kekurangan / Kerugian DBMS
      1. Kompleksitas yang tinggi
      2. Kapasitas daya tampung, apabila data sudah sangat besar sekali.
      3. Biaya DBMS
      4. Biaya hardware
      5. Dampak dari kesalahan cara kerja


7.1.3. Tingkatan Data dalam Database Relasi
       Dalam suatu sistem database relasi, data yang tersimpan dalam DBMS mempunyai tingkatan-

                                                                                      Halaman    |6
      tingkatan, sebagai berikut :




      1. Karakter (Characters)
         Merupakan bagian terkecil dalam database, dapat berupa karakter numerik (angka 0 s.d 9),
         huruf ( A - Z, a - z) ataupun karakter-karakter khusus, seperti *, &. %, # dan lain-lain.
      2. Field atau Attribute
         Merupakan bagian dari record yang menunjukkan suatu item data yang sejenis, Misalnya : field
         nama, file NIM dan lain sebagainya. Setiap field harus mempunyai nama dan tipe data tertentu.
         Isi dari field di sebut Data Value. Dalam table database, field ini disebut juga kolom.
      3. Record atau Tupple
         Tuple/Record adalah kumpulan data value dari attribute yang berkaitan sehingga dapat
         menjelaskan sebuah entity secara lengkap. Misal : Record entity siswa adalah kumpulan data
         value dari field NISN, nama, jurusan dan alamat per-barisnya. Dalam tabel database, Record
         disebut juga baris.
      4. Table/Entity
         Entity merupakan sesuatu yang dapat diidentifikasi dari suatu sistem database, bias berupa
         objek, orang, tempat, kejadian atau konsep yang informasinya akan disimpan dalam database.
         Misal. Pada sistem database akademik, yang menjadi entity adalah, siswa, guru, matadiklat dan
         lain-lain. Dalam aplikasi, penggunaan istilah Entity sering di samakan dengan istilah Tabel.
         (Entity = table).
         Disebut tabel, karena dalam merepresentasikan datanya di atur dalam bentuk baris dan kolom.
         Baris mewakili 1 record dan kolom mewakili 1 field. Dalam system database tradisional,
         entity/table ini disebut juga dengan file.
      5. Database
         Kumpulan dari tabel-tabel yang saling berelasi, disusun secara logis, sehingga menghasilkan
         informasi yang bernilai guna dalam proses pengambilan keputusan.

7.1.4. Level Abstraksi
              Dalam database, data disimpan dan diperlihara dengan baik dan terstruktur oleh DBMS.
       Sistem ini menyembunyikan detail tentang bagaimana data disimpan dipelihara. Sehingga
       seringkali data yang terlihat oleh user, berbeda dengan data yang tersimpan secara fisik.
              Abstraksi data merupakan tingkatan/level dalam melihat bagaimana menampilkan data
       dalam sebuah sistem database, yaitu :

      1. Conceptual Level
         mendeskripsikan data apa saja yang sesungguhnya disimpan pada database dan hubungan
         antar data. Didefinisikan sebagai sebuah skema.
      2. Physical Level
          mendeskripsikan bagaimana data sesungguhnya disimpan, metode akses, indeks dan
             struktur data dijabarkan secara rinci.
          Menunjukkan bagaimana representasi fisik dari penyimpanan/pengorganisasian data →
             sebagai teks, angka, atau himpunan bit
      3. View Level
         mendeskripsikan penggunaan data yang berorientasi pada kebutuhan pengguna. Data yang
         dikenal oleh masing-masing pengguna bisa saja berbeda dan bisa saja hanya mencakup
         sebagian dari database bergantung pada otoritas pengguna. Didefinisikan sebagai sub skema.

                                                                                       Halaman    |7
      Contoh Penerapan Level Abstraksi Pada Data Siswa
      1. Conceptual Level
          Siswa (nisn : string, nama : string, alamat : string)
          Matadiklat (kodemd : string, nama : string, jam : integer)
          Guru (nip : string, nuptk : string, nama : string)
          Mengajar (kodemd : string, nip : string)
      2. Physical Level
          Relasi-relasi disimpan sebagai file-file.
          Indeks berdasarkan pada kolom pertama.
      3. View Level
          Inforuangan (kodemd : string, Ruang : string)




7.1.5. Bahasa Database / SQL
             Merupakan bahasa yang digunakan oleh user untuk berkomunikasi/berinteraksi dengan
       DBMS yang bersangkutan. Terdiri dari sejumlah perintah (statement) yang dapat diformulasikan
       oleh pengguna. Bahasa yang digunakan adalah SQL (Structured Query Language).
             Semenjak tahun 70-an bahasa ini telah dikembangkan oleh IBM, yang kemudian diikuti
       dengan adanya Oracle, Informix dan Sybase. Dengan menggunakan SQL, proses akses database
       menjadi lebih user-friendly dibandingkan dengan misalnya dBase ataupun Clipper yang masih
       menggunakan perintah - perintah pemrograman murni.

      Bahasa SQL terdiri dari :
      1. Data Definition Language (DDL)
      2. Data Manipulation Language (DML)
      3. Data Control Language (DCL)


      1. DDL
         Menyediakan perintah untuk membuat database, mendefinisikan dan memodifikasi struktur
         tabel temasuk konstrain-konstrain yang ada pada suatu tabel, pembuatan index, dsb.


      2. DML
         Merupakan bahasa query yang digunakan untuk melakukan manipulasi dan pengambilan data
         yang ada dalam suatu database. Manipulasi yang dilakukan adalah :
          Penyisipan/penambahan data baru (insert)
          Penghapusan data (delete)
          Pengubahan data (update)
         Jenis :
          Prosedural
             mensyaratkan agar pemakai menentukan data apa yang diinginkan serta bagaimana cara
             mendapatkannya.

                                                                                    Halaman    |8
              Non-prosedural
               pemakai menentukan data yang diinginkan tanpa menyebutkan bagaimana cara
               mendapatkannya.

       3. DCL
          DCL terdiri dari sekolompok perintah SQL yang digunakan untuk memberikan hak
          akses/otoritas user terhadap database.


7.1.6. Pengantar Web Database MySQL
              Saat ini ada beberapa jenis pemograman yang berorientasi database yang dapat digunakan
       untuk aplikasi di web seperti Oracle. Oracle merupakan sebuah perusahaan besar di dunia yang
       cakupan bisnis salah satunya adalah penjualan software dan pembuatan software database yang
       diperuntukkan bagi perusahaan-perusahaan besar di dunia. Oracle merupakan salah satu
       perusahaan yang mendapatkan keuntungan terbesar dalam bisnis software database. Namun
       karena softwarenya tidak bebas di pasaran atau tidak free software maka sebagian besar
       perusahaan kecil atau menengah atau programmer web masih menggunakan database MySQL
       sebagai software database perusahaan atau webnya.
              MySQL merupakan Database Management System SQL open source yang paling populer,
       yang dikembangkan, didistribusikan, dan didukung oleh MySQL AB. MySQL AB adalah sebuah
       perusahaan komersial, yang didirikan oleh para pengembang MySQL. MySQL AB adalah
       perusahaan open source generasi kedua yang menyatukan nilai-nilai dan metodologi open source
       dengan suatu model bisnis yang sukses.
              MySQL adalah sebuah server database SQL multiuser dan multi-threaded. SQL sendiri adalah
       salah satu bahasa database yang paling populer di dunia. Implementasi program server database
       ini adalah program daemon 'mysqld' dan beberapa program lain serta beberapa pustaka. MySQL
       pernah dipercaya mengelola sistem dengan 40 buah database berisi 10,000 tabel dan 500 di
       antaranya memiliki 7 juta baris (kira-kira 100 gigabyte data). Hal tersebut menunjukkan bahwa
       MySQL sesuai dengan keperluan sistem database yang cepat, handal dan mudah digunakan.
                Sebagaimana database sistem yang lain, dalam SQL juga dikenal hierarki server dengan
       database-database. Tiap-tiap database memiliki tabel-tabel. Tiap- tiap tabel memiliki field-field.
       Umumnya informasi tersimpan dalam tabel - tabel yang secara logik merupakan struktur 2 dimensi
       terdiri atas baris dan kolom.Field-field tersebut dapat berupa data seperti int , realm char, date,
       time dan lainnya.MySQL dipilih karena berbagai kelebihannya. Antara lain :
       1. MySQL adalah relational database management system
       2. Software MySQL adalah open source, Source MySQL dapat diperoleh dengan mudah dan gratis
       3. Database server MySQL sangat cepat, reliable, dan mudah digunakan
       4. Sintaksnya lebih mudah dipahami dan tidak rumit
       5. Pengaksesan database dapat dilakukan dengan mudah
       6. MySQL merupakan program yang multi-threaded, sehingga dapat dipasang pada server yang
            memiliki multi-CPU.
       7. Didukung program-program umum seperti C, C++, Java, Perl, PHP, Python, TCL APIs dls.
       8. Bekerja pada berbagai platform. (tersedia berbagai versi untuk berbagai sistem operasi).
            Bahkan cMySQL mampu bekerja dalam client/server embedded system
       9. Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi sistem database.
       10. Memiliki sistem sekuriti yang cukup baik dengan verifikasi host.
       11. Mendukung ODBC untuk sistem operasi Microsoft Windows.
       12. Mendukung record yang memiliki kolom dengan panjang tetap atau panjang bervariasi.




    Bagaimana MySQL Server memberikan akses ke Data



                                                                                          Halaman     |9
   Dimana Tab1 atau table lain dalam gambar sebelumnya dijelaskan sbb :




                 Merancang Arsitektur Database

   7.2         Pada bagian ini anda akan belajar tentang prinsip dasar dalam merancang database
               relasi, karena jenis database ini yang paling banyak dipakai saat ini. Perancangan
database model hirarki dan jaringan sudah mulai ditinggalkan, karena ketidakmampuannya dalam
mengakomodasi berbagai persoalan dalam suatu sistem database.

     Merancang database merupakan hal yang sangat penting, karena disini anda akan menentukan

                                                                                 Halaman    | 10
entity, attribut, relasinya dan konsep lainnya dalam suatu sistem database, sehingga hasil rancangan
tersebut memenuhi kebutuhan anda akan informasi untuk saat ini dan masa yang akan datang.

      Sebelum merancang suatu database anda harus mengetahui, apakah akan merancang database
baru atau merancang pengembangan database dari sistem yang sedang berjalan. Jika yang dirancang
adalah pengembangan dari database yang telah berjalan, maka anda harus memahami konsep yang
berlaku pada sistem yang lama dan berusaha merancang database baru agar tetap mengakomodasi
sistem yang lama.

     Proses pengembangan merancang database lebih sulit daripada merancang database yang benar-
benar baru.


7.1.7. Pengetahuan Dasar Perancangan Database
           Ada 4 Jenis hubungan antar tabel dalam model database relasi, yaitu didefinisikan dengan
       hubungan :
       a. Satu ke satu (One to One)
       b. Satu ke Banyak (One to Many)
       c. Banyak ke satu (Many to One)
       d. Banyak ke Banyak (Many to Many)

           Untuk lebih jelasnya penggunaan hubungan ini, sering digunakan Diagram Entity Relationship
      (Diagram E-R) yang merupakan bagian dari Model Data Entity Relationship.

      7.2.1.1 Model Data Entity Relationship.
                  Hubungan antar data dan batasan-batasannya dalam suatu sistem database, dapat
              diolah secara hirarki, jaringan dan relasional. Ketiga tipe model data ini mengacu kepada
              hubungan antar record (Record Based Data Models) dalam masing-masing entity/tabel.
              Tapi disisi lain, hubungan dan batasan data ini, dapat juga berupa Object Based Data
              Model (Model Data Berbasis Object).

                  Konsep utama dalam model data berbasis object ini adalah penggunaan entity, atribut
               dan hubungan antar entitynya (Entity Relationship).

                   Yang tergolong kedalam Object Based Data Model ini adalah Model Data Entity
               Relationship. Model data entity relationship sering dijadikan acuan dalam merancang
               suatu sistem database.

                   Pada Model Data Entity Relationship ini, data yang ada ditransformasikan dengan
               memanfaatkan sejumlah perangkat konseptual menjadi diagram data, yang sering disebut
               Diagram Entity Relationship (Diagram E-R). Ada dua komponen utama pembentuk model
               data ini, yaitu :
                Entity beserta attributenya.
                Relasi dan jenis hubungannya

               Contoh :
                   Dalam dunia akademis terdapat entity siswa, guru, dan matadiklat. Setiap entity
               mempunyai atribut atau field. Attribute adalah ciri khas yang melekat pada suatu entity.
               Misalnya entity siswa, ciri khas dari siswa adalah mempunyai nama, tempat tanggal lahir,
               alamat dan lain sebagainya, begitu juga dengan guru, mempunyai nama, alamat, dan lain
               sebagainya. Lalu keterkaitan antara entity siswa dengan entity guru, siswa dengan
               matadiklat atau guru dengan matadiklat, digambarkan dengan simbol-simbol sehingga
               lebih mudah dipahami. Penggambaran hubungan inilah yang disebut dengan diagram E-R.

      7.2.1.2 Diagram Entity Relationship (Diagram E-R)
                  Diagram E-R digunakan untuk menggambarkan secara sistematis hubungan antar
              entity-entity yang ada dalam suatu sistem database menggunakan simbol-simbol sehingga
              lebih mudah dipahami. Simbol-simbol yang boleh digunakan adalah :
               Persegi Panjang, berfungsi untuk menyatakan suatu entity.

                                                                                      Halaman    | 11
         Elips, berfungsi untuk menyatakan attribute, jika diberi garis bawah menandakan
          bahwa attribute tersebut merupakan attribute/field kunci.
         Belah Ketupat, menyatakan jenis relasi.
         Garis, penghubungan antara relasi dengan entity dan antara entity dengan attribute.

        Misal : Hubungan antara entity Guru dengan entity matadiklat

          nama_guru           nama_guru             kode_mdk            kode_mdk




                Guru                    Mengajar                Matadiklat



          alm_guru              waktu                 ruang             nama_mdk

            Dalam hubungan antar entity, juga harus ditentukan derajat relasi antar entity.
        Derajat relasi menunjukkan jumlah maksimum record suatu entity ber-relasi dengan
        record pada entity yang lainnya. Misalnya pada contoh sebelumnya, entity siswa dapat
        berelasi dengan lebih dari satu record yang ada pada entity matadiklat sebaliknya satu
        record pada entity matadiklat hanya boleh ber-relasi dengan satu siswa yang sama pada
        entity siswa, begitu juga satu record pada entity matadiklat berhubungan paling banyak
        satu record juga pada entity guru, dan seterusnya.

           Berikut dijelaskan secara lengkap jenis relasi antar entity (misalnya entity A dan B)
        beserta derajat relasinya disertai contohnya menggunakan diagram E-R.

7.2.1.3 Jenis Hubungan Antar Tabel
            Jenis hubungan antar tabel dalam model database relasi, juga didefinisikan dengan
        hubungan :
        a. Satu ke satu (One to One)
        b. Satu ke Banyak (One to Many)
        c. Banyak ke satu (Many to One)
        d. Banyak ke Banyak (Many to Many)

        a. Relasi Satu ke Satu (One to One)
                Artinya satu record pada entity A ber-relasi paling banyak satu record juga pada
           entity B, begitu juga sebaliknya, satu record pada entity B, ber-relasi paling banyak
           satu record juga dengan entity A. Dalam diagram E-R, relasi ini disimbolkan dengan
           angka 1.

            Contoh : Dalam proses belajar mengajar secara privat misalnya, seorang (satu) tutor
            hanya mengajar satu siswa, begitu juga sebaliknya, satu siswa hanya diajar oleh satu
            tutor. Hubungan antar entity tutor dengan siswa ini dapat digambar dengan diagram
            E-R sebagai berikut :

                 kd_tutor               kd_tutor              kd_sis            kd_sis




                                    1                             1
                      TutorPrivat                Mengajar               Siswa



                nm_tutor                 waktu                ruang             nm_sis

            Keterangan :
             Entity TutorPrivat mempunya dua attribute, yaitu kode tutor (kd_tutor) yang
                berfungsi sebagai field kunci, dan nama tutor (nm_tutor).



                                                                                         Halaman   | 12
        Entity siswa juga mempunyai dua attribute, yaitu kode siswa (kode_sis) sebagai
         field kunci dan nama siswa (nm_sis).
        Hubungan antara kedua entity tersebut dinyatakan dalam entity mengajar, yang
         mempunyai 4 attribute, yaitu kode tutor (kd_tutor) dan kode siswa (kd_sis) yang
         berfungsi sebagai kunci tamu (foreign key) pada entity mengajar serta attribute
         waktu mengajar (waktu) dan ruang mengajar (ruang).
        Derajat relasi dinyatakan dengan 1 : 1, yang menandakan bahwa hubungan antar
         entity adalah satu ke satu, seperti terlihat pada gambar.

       Dalam diagram E-R, attribute yang berfungsi sebagai field kunci harus di beri
       garis bawah, sebagai pembeda dengan attribute yang lain.


b. Relasi Satu ke Banyak (One to Many)
        Artinya satu record pada entity A ber-relasi dengan beberapa record pada entity
   B, tapi tidak sebaliknya, setiap record pada entity B ber-relasi paling banyak satu
   record dengan entity A. Dalam Diagram E-R, relasi ini disimbolkan dengan angka 1
   untuk menyatakan satu dan huruf M atau N untuk menyatakan banyak.
   Contoh : Dalam proses belajar mengajar di sekolah dasar misalnya, satu orang guru
   mengajar beberapa (banyak) murid, tetapi satu kelas (beberapa murid) hanya di ajar
   oleh satu guru. Hubungan antara entity guru dan murid seperti ini dapat dibuat
   diagram E-R, sebagai berikut :

         kd_guru            kd_guru              kd_murid             kd_murid




                        1                            M
              GuruSD                  Mengajar               Murid



         nm_guru             waktu                ruang               nm_murid

   Keterangan :
    Entity GuruSD mempunya dua attribute, yaitu kode guru (kd_guru) yang berfungsi
       sebagai field kunci, dan nama guru (nm_guru).
    Entity murid juga mempunyai dua attribute, yaitu kode murid (kd_murid) sebagai
       field kunci dan nama murid (nm_murid).
    Hubungan antara kedua entity tersebut dinyatakan dalam entity mengajar, yang
       mempunyai 4 attribute, yaitu kode guru (kd_guru) dan kode murid (kd_murid)
       yang berfungsi sebagai kunci tamu (foreign key) pada entity mengajar serta
       attribute waktu mengajar (waktu) dan ruangan mengajar (ruang).
    Derajat relasi dinyatakan dengan 1 : M, yang menandakan bahwa hubungan antar
       entity adalah satu ke banyak, seperti terlihat pada gambar diatas.

c. Relasi Banyak ke Satu (Many to One)
        Ini adalah kebalikan dari relasi satu ke banyak, dimana setiap record pada entity
   A hanya dapat ber-relasi paling banyak 1 record pada entity B, tapi tidak sebaliknya,
   satu record pada entity B dapat ber-relasi dengan beberapa record pada entity A.
   Dalam diagram E-R, relasi ini disimbolkan dengan angka 1 untuk menyatakan satu dan
   huruf M atau N untuk menyatakan banyak

   Contoh : Pada saat kegiatan PSB / Penerimaan Siswa Baru, beberapa (banyak) siswa
   hanya mempunyai satu pilihan jurusan, sebaliknya satu jurusan dapat dipilih oleh
   beberapa (banyak) siswa. Dalam diagram E-R, hal ini dapat digambar sebagai berikut



           nisn              nisn                kd_jur                kd_jur




                        M                            1
           CalonSiswa                   PSB                 Jurusan              Halaman   | 13



        nm_cln_sis          tanggal               skor                nm_jur
   Keterangan :
    Entity CalonSiswa mempunya dua attribute, yaitu nomor induk siswa nasional
       (nisn) yang berfungsi sebagai field kunci, dan nama calon siswa (nm_cln_sis).
    Entity jurusan juga mempunyai dua attribute, yaitu kode jurusan (kode_jur)
       sebagai field kunci dan nama jurusan (nm_jur).
    Hubungan antara kedua entity tersebut dinyatakan dalam entity Penerimaan
       Siswa Baru (PSB), yang mempunyai 4 attribute, yaitu nomor induk siswa nasional
       (nisn) dan kode jurusan (kd_jur) yang berfungsi sebagai kunci tamu (foreign key)
       pada entity PSB serta attribute tanggal saat calon siswa mendaftar (tanggal) dan
       skor calon siswa (skor).
    Derajat relasi dinyatakan dengan M : 1, yang menandakan bahwa hubungan antar
       entity adalah banyak ke satu, seperti terlihat pada gambar diatas.

d. Relasi Banyak ke Banyak (Many to Many)
        Artinya beberapa record pada entity A dapat ber-relasi dengan beberapa record
   juga pada entity B, begitu juga sebaliknya, beberapa record pada entity B dapat ber-
   relasi dengan beberapa record juga pada entity A. Dalam diagram E-R, relasi ini
   disimbolkan dengan huruf M atau N untuk menyatakan banyak.

   Contoh : Dalam hubungan antara siswa dengan guru, yaitu seorang seorang guru
   mengajar banyak siswa, sebaliknya seorang siswa dapat diajar oleh beberapa guru,
   sehingga terjadi hubungan banyak ke banyak.

   Perhatikan diagram E-R berikut :

        nuptk            nuptk              nisn             nisn




                     M                         N
            Guru                 Mengajar           Siswa



       nm_guru           waktu              ruang           nm_sis



   Keterangan :
    Entity guru mempunya dua attribute, yaitu nomor unik pendidik dan tenaga
       kependidikan (nuptk) yang berfungsi sebagai field kunci, dan nama guru
       (nm_guru).
    Entity siswa juga mempunyai dua attribute, yaitu nomor induk siswa nasional
       (nisn) sebagai field kunci dan nama siswa (nm_siswa).
    Hubungan antara kedua entity tersebut dinyatakan dalam entity mengajar, yang
       mempunyai 4 attribute, yaitu nomor unik pendidik dan tenaga kependidikan
       (nuptk) dan nomor induk siswa nasional (nisn) yang berfungsi sebagai kunci tamu
       (foreign key) pada entity mengajar serta attribute waktu mengajar (waktu) dan
       ruangan mengajar (ruang).
    Derajat relasi dinyatakan dengan M : N, yang menandakan bahwa hubungan antar
       entity adalah banyak ke banyak, seperti terlihat pada gambar diatas.




                                                                      Halaman    | 14
7.1.8. Tahapan Membuat Diagram E-R.
       Berikut panduan bagaimana tahapan dalam membuat Diagram E-R;
       1. Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database tersebut.
       2. Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya.
       3. Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan
           entity yang ada beserta kunci tamu (foreign key)-nya.
       4. Menentukan derajat relasi untuk setiap himpunan relasi.


      1. Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database
         tersebut.
               Sebagaimana telah dijelaskan diawal, bahwa entity merupakan sesuatu yang dapat
         diidentifikasi dengan mudah dari suatu sistem database, bisa berupa objek, orang, tempat,
         kejadian atau konsep yang informasinya akan disimpan. Dari sekian banyak kemungkinan
         entity yang ada, anda harus memilah-milah entity mana saja yang sesuai dan mampu
         mengakomodasi kebutuhan sistem yang akan dirancang.
               Misalnya dalam ruang lingkup perbelajaran, ada banyak entity yang mungkin, misalnya
         entity siswa, matadiklat, guru, asistensi, jadwal, jurusan dan lain sebagainya. Namun dalam
         ruang lingkup perbelajaran sederhana, anda dapat menggunakan tiga entity saja, yaitu entity
         siswa, guru dan matadiklat.
               Proses menentukan entity ini memang agak sulit tapi akan menjadi mudah apabila diserta
         latihan dengan berbagai macam kasus database.

      2. Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)-nya.
              Menentukan attribute dari suatu entity sangat menentukan baik atau tidaknya sistem
         database yang dirancang, karena attribute ini sangat menentukan nantinya dalam proses relasi.
         Attribute merupakan ciri khas yang melekat pada suatu entity, misalnya attribute pada siswa
         dapat berupa NISN, nama, tempat lahir, tanggal lahir, alamat, nama orang tua, pekerjaan orang
         tua dan lain-lain. Dari sekian banyak kemungkinan attribute yang ada pada entity siswa, anda
         dapat menggunakan hanya yang perlu saja. Setelah menentukan attributenya selanjutnya
         adalah menentukan field kunci. Field kunci adalah penanda entity tersebut sehingga bisa
         digunakan untuk relasi nantinya dan field kunci ini harus bersifat unik. Misalnya pada entity
         siswa, attribute nisnbisa dijadikan field kunci, karena bersifat unik dan tidak ada siswa yang
         mempunyai nisn sama.

          Jenis-Jenis Kunci (Key)
               Key atau kunci adalah suatu field yang dapat mewakili dari suatu record. Misal : nisn
          merupakan field kunci dari entity siswa, sehingga setiap melakukan pencarian atas entity siswa
          cukup menyebutkan nisnsaja, maka field nama, jurusan dan alamat dapat diketahui. Syarat
          utama pemilihan suatu field kunci dari entity adalah field tersebut harus unik dan tidak boleh
          bernilai NULL. Ada 4 jenis dari key ini :
          a. Candidate Key (Kunci Calon)
              Sebuah attribute atau lebih yang secara unit mengidentifikasi sebuat record, disebut
              candidate key. Attribute ini mempunyai nilai yang unik pada hampir setiap recordnya.
              Fungsi dari candidate key ini adalah sebagai calon primary key.

              Misal : Entity guru dalam database akademik :
                KodeGuru              NIP               Nama               Alamat     Pendidikan
                    AD         123324345546       Andi, S.Kom        Jl. Antasena IIA    S1
                    DD         232354536546       Ummu, ST           Jl. Diponegoro 6    S1
                    MI         346337567764       Isnaeni, S.Pd.T    Jl. Jambu X/12      S1
              Dalam kasus ini, field KodeGuru dan NIP merupakan Candidate Key karena masing-masing
              bersifat unik dan tidak boleh ada yang sama atau bernilai Null.

          b. Primary Key (Kunci Utama)
             Merupakan candidate key yang telah dipilih untuk mengidentifikasi setiap record secara
             unik. Primary key harus merupakan field yang benar-benar unik dan tidak boleh ada nilai
             NULL. Misal : Perhatikan kembali entity guru di atas, yaitu mempunyai dua Candidate Key,
             maka anda dapat mengambil field KodeGuru sebagai Primary Key, Karena lebih sederhana

                                                                                      Halaman     | 15
       dalam jumlah digit dan unik. Boleh juga menggunakan NIP atau NUPTK sebagai Primary
       Key-nya, hal ini tergantung kepada si perancang database itu sendiri.

   c. Alternate Key (Kunci Alternatif)
      Adalah candidate key yang tidak terpilih. Misal : dalam suatu entity terdapat dua field yang
      bisa dijadikan sebagai kunci. Sementara yang boleh dijadikan kunci hanya satu, maka anda
      harus memilih salah satu. Field yang anda pilih, disebut primary key, sedangkan field yang
      tidak dipilih disebut dengan alternate key. Misal : Kembali ke kasus entity guru diatas, jika
      anda pilih field KodeGuru sebagai Primary Key, maka otomatis field NIP menjadi Alternate
      Key-nya, begitu juga sebaliknya.

   d. Foreign Key (kunci Tamu)
      Jika sebuah primary key terhubungan ke table/entity lain, maka keberadaan primary key
      pada entity tersebut di sebut sebagai foreign key. Misal : Primary Key KodeGuru dari entity
      Guru digunakan juga pada field entity Mengajar, maka keberadaan field KodeGuru pada
      entity Mengajar disebut sebagai foreign key.

3. Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan
   entity yang ada beserta kunci tamu (foreign key)-nya.
        Setelah menentukan entity dan attribute beserta field kuncinya, maka selanjutnya adalah
   menentukan entity yang terbentuk akibat adanya relasi antar entity. Misalnya antara entity
   siswa dengan entity guru, terjadi suatu hubungan proses mengajar, maka proses mengajar ini
   merupakan entity baru. Entity mengajar ini harus anda tentukan juga attribute yang melekat
   padanya beserta kunci tamu (foreign key). Kunci tamu adalah field kunci utama pada tabel lain,
   dan field tersebut digunakan juga pada tabel yang satu lagi. Misalnya nisn adalah field kunci
   dari entity siswa, pada entity mengajar terdapat juga attribute nisn, maka keberadaan attribute
   nisn pada entity mengajar disebut sebagai kunci tamu. Proses menentukan hubungan antar
   entity juga sangat menentukan kualitas sistem database yang dirancang.

4. Menentukan derajat relasi untuk setiap himpunan relasi.
        Setelah semua entity dan attribute yang dibutuhkan terbentuk, maka selanjutnya adalah
   menentukan derajat relasi antar entity tersebut, apakah satu kesatu, satu ke banyak atau
   sebaliknya, atau banyak ke banyak. Berhati-hatilah dalam menentukan derajat relasi ini, karena
   nantinya akan berhubungan dengan proses query terhadap data.




                                                                                 Halaman     | 16
7.1.9. Perancangan Database
            Agar memudahkan dalam memahami konsep perancangan database, dalam panduan ini anda
       akan langsung mempraktekkan, bagaimana membangun sistem informasi akademik, karena proses
       kegiatan akademik sudah terbiasa dengan kegiatan anda sehari-hari dalam dunia akademik.




                                                      Kasus :
                                      Perancangan Sistem Informasi Akademik
                                        SMK Negeri 2 Bawang Banjarnegara

                     SMK Negeri 2 Bawang Banjarnegara merupakan salah satu SMK Negeri di kota Banjarnegara
           yang dalam perkembangannya, dari beberapa jurusan yang ada, ternyata Jurusan TKJ (Teknik Komputer
           dan Jaringan) menunjukkan perkembangan yang begitu pesat, hal ini terlihat dari semakin
           meningkatnya jumlah lulusan SLTP yang mendaftar setiap tahunnya.
                     Melihat kondisi seperti itu, Kepala Sekolah SMK Negeri 2 Bawang, menginstruksikan kepada
           Unit Produksi TKJ, agar merancang suatu Sistem Database untuk mengelola sistem informasi akademik
           yang terpadu. Karena selama ini, proses registrasi dan kegiatan akademik masih banyak dilakukan
           secara manual, sehingga sering mengalami tumpang tindih kerja, pemborosan serta banyaknya duplikasi
           data, yang paling sulit adalah lambatnya mendapatkan informasi akademik seorang siswa, karena
           bagian kesiswaan harus mencek kembali satu persatu arsip siswa tersebut. Akibatnya proses
           pengambilan keputusan juga berjalan lambat. Dalam instruksinya tersebut, Bapak Kepala Sekolah
           mengharapkan setidaknya dari hasil rancangan sistem informasi tersebut, dapat melakukan hal-hal
           sebagai berikut :
           1. Dapat membuat Informasi detil tentang data siswa
           2. Dapat membuat Informasi detil tentang matadiklat
           3. Dapat membuat Informasi detil tentang staf pengajar
           4. Dapat mencetak absensi secara otomatis untuk setiap matadiklat, sesuai dengan siswa yang mengambil
               matadiklat tersebut.
           5. Dapat menginformasikan, setiap matadiklat berapa siswa yang mengambilnya ?
           6. Dapat mencetak data nilai siswa, baik Kartu Hasil Studi maupun Transkrip Akademik.
           7. Dapat memberikan informasi siapa guru pembimbing seorang siswa, dan atau berapa siswa yang
               dibimbing oleh seorang guru ?.
           8. Dapat memberikan informasi jadwal belajar.
           9. Dapat menentukan berapa lama seorang siswa membuat laporan Prakerin?
           10. Dan informasi akademik lainnya.
           Tujuan utamanya adalah terkomputerisasinya seluruh data akademik, dan mampu mengefisiensikan
           penggunaan kertas, penggunaan SDM yang terlibat proses akademik, dan yang paling penting adalah
           cepat, tepat dan akurat dalam menyajikan informasi yang diinginkan.




      Ada tiga langkah dalam merancang database, yaitu :
      1. Perancangan Database Konseptual (Conceptual Database Design)
      2. Perancangan Database Logik (Logical Database Design)
      3. Perancangan database Fisik (Physical Database Design)


      7.2.3.1 Perancangan Database Konseptual
                  Perancangan secara konsep merupakan langkah pertama dalam merancang database.
              Sesuai dengan namanya, pada tahap ini anda hanya menentukan konsep-konsep yang
              berlaku dalam sistem database yang akan di bangun.

              Dalam tahap ini, setidaknya anda harus mengetahui :
              1. Prosedur kerja secara keseluruhan yang berlaku pada sistem yang sedang berjalan.
              2. Informasi (output) apa yang diinginkan dari database?
              3. Apa saja kelemahan-kelemahan dari sistem yang sedang berjalan?
              5. Pengembangan sistem di masa yang akan datang.
              6. Bagaimana tingkat keamanan data saat ini?
              7. Siapa saja yang terlibat dalam sistem yang sedang berjalan.
                                                                                                  Halaman          | 17
        8. Apa saja input yang di perlukan?

            Seorang perancang database harus paham benar terhadap sistem yang sedang
        berjalan dan harus mengetahui sistem yang bekerja pada database yang akan di bangun
        serta output apa yang diharapkan. Jika anda akan merancang Sistem Informasi Akademik,
        maka anda harus mengetahui bagaimana prosedur kerja dalam dunia akademik secara
        keseluruhan, siapa-siapa saja yang terlibat didalamnya, apa saja peraturan-peraturan yang
        berlaku, apakah sebuah ruang belajar dibatasi siswanya?, apakah siswa dengan nilai <
        6.50 boleh lulus atau tidak?, apakah semua karyawan boleh mengakses database tersebut
        ?, dan lain sebagainya.

            Pemahaman seorang perancang database terhadap sistem yang akan di bangun
        sangat menentukan baik atau tidaknya hasil rancangan databasenya.

7.2.3.2 Perancangan Database Logik
            Perancangan database logik merupakan tahapan untuk memetakan proses
        perancangan konseptual kedalam model database yang akan digunakan, apakah model
        data hirarki, jaringan atau relasi.Perancangan database secara logik ini tidak tergantung
        pada DBMS yang digunakan, sehingga tahap perancangan ini disebut juga pemetaan
        model data.
        Berikut langkah-langkah dalam merancang database logik :

        a. Mendefinisikan Entity Yang Dibutuhkan
                Entiti adalah sesuatu yang mudah diidentifikasi dengan mudah dari suatu sistem
           database, bisa berupa objek, orang, tempat, kejadian atau konsep yang informasinya
           akan disimpan. Hal-hal yang terlibat dalam suatu sistem database dapat dijadikan
           entity. Dari sekian banyak kemungkinan entity yang ada, anda harus memilah-milah
           entity mana saja yang sesuai dan mampu mengakomodasi kebutuhan sistem yang
           akan dirancang. Misalnya dalam proses merancang Sistem Informasi Akademik, ada
           banyak kemungkinan yang bisa di jadikan entity, Misalnya entity siswa, matadiklat,
           guru, jurusan, ruangan dan lain sebagainya.

                 Maka secara sederhana, anda dapat menentukan tiga entity utama yang terlibat
            dalam proses kegiatan akademik, yaitu :
            1. Entity Siswa, berfungsi untuk menyimpan data siswa.
            2. Entity Guru, berfungsi untuk menyimpan data guru, dan
            3. Entity Matadiklat, untuk menyimpan data matadiklat.

                Proses menentukan entity ini memang agak sulit tapi akan menjadi mudah
            apabila sering latihan terhadap berbagai macam kasus database.

        b. Menentukan Attribut Setiap Entity Beserta Kuncinya
                Setelah menentukan entity-entity yang terlibat pada sistem database yang
           dirancang, langkah berikutnya adalah menentukan attribut yang melekat pada entity
           tersebut. Attribut adalah ciri khas yang melekat pada suatu entity dan menunjukkan
           item sejenis. Sama halnya dalam menentukan entity, dalam menentukan attribut ini
           juga banyak kemungkinan, maka anda harus memilah-memilah attribut apa saja yang
           diperlukan oleh sistem database yang dirancangan. Berikut beberapa entity yang
           mungkin pada entity siswa :
            Nisn
            Nama
            Tempat Lahir
            Tanggal Lahir
            Jurusan
            Agama
            Jenis Kelamin
            Tanggal Masuk
            Nama Pembimbing Akademik
            Asal SMP

                                                                                Halaman    | 18
    Alamat
    Nama Orang Tua
    Pendidikan Orang Tua
    Pekerjaan Orang Tua
    Alamat Orang Tua
    Dan seterusnya.

      Anda boleh saja menggunakan semua kemungkinan attribut tersebut, selama
attribut-attribut tersebut dibutuhkan dalam sistem database.

     Berikutnya adalah menentukan attribut kunci (key) dari entity. Kunci ini bersifat
unik, sehingga antara satu tuple dengan tuple yang lainnya tidak boleh sama, disebut
juga primary key. Namun perlu juga diketahui bahwa tidak semua kunci bersifat unik,
tergantung kepada keberadaan attribut tersebut pada suatu entity. Sebuah kunci
dapat saja berupa satu attribut, bisa juga terdiri dari beberapa attribut. Kunci ini akan
digunakan nantinya dalam relasi antar entity.

     Dalam entity siswa, attribut nisn dapat dijadikan sebagai kunci, karena antara
satu siswa dengan siswa lainnya tidak akan ada mempunyai nisn yang sama (unik).
Beda halnya, kalau attribut nama anda jadikan kunci, maka bisa saja ada dua siswa
atau lebih yang mempunyai nama sama, artinya attribut nama tidak unik. Kalau dalam
suatu entity tidak ada attribut yang bersifat unik, maka anda boleh menambahkan
satu buah attribut lagi, sebagai kunci yang bersifat unik. Misalnya dalam entity
matadiklat, terdapat attribut sebagai berikut :

    Nama matadiklat
    Semester
    Pra syarat
    Jenis matadiklat, Produktif, Normatif, atau Adaptif
    Dan sebagainya.

     Terlihat pada daftar attribut diatas, tidak ada attribut yang bersifat unik, maka
anda tambahkan satu buat attribut lagi dengan nama kode matadiklat, attribut ini
yang aka dijadikan kunci, karena masing matadiklat mempunya kode yang berbeda.

Dalam entity guru, banyak juga attribut yang dapat anda tentukan, seperti :
 NIP
 NISN
 Nama Guru
 Pendidikan guru (S.1, S.2)
 Status Perkawinan
 Jenis kelamin
 Nama Istri
 Jumlah Anak
 Alamat
 Bidang Keahlian
 Jurusan
 Tanggal diangkat
 Dan sebagainya

     Pada prinsipnya, semakin banyak attribut dari suatu entity yang ditentukan,
semakin banyak pula informasi detil yang diperoleh terhadap entity tersebut,
tentunya hal ini juga berimbas kepada semakin besarnya kapasitas daya tampung
dalam media penyimpanan database. Yang penting, gunakanlah entity dan attribut
yang diperlukan saja.

    Usahakan dalam pemberian nama entity dan attribut menggambarkan isi dari
    entity atau attribut tersebut. Misalnya : entity proses belajar mengajar, bisa di
    beri nama entity belajar. Sehingga memudahkan anda dalam mengolah datanya
    nanti.
                                                                     H a l a m a n | 19
        Berikut daftar attribut dan kunci dari entity siswa, matadiklat dan guru yang
   digunakan dalam perancangan Sistem Informasi Akademik SMKN 2 Bawang
   Banjarnegara:

          Entity                     Attribute
     Siswa             1 NISN
                       2 Nama Siswa
                       3 Tempat Lahir Siswa
                       4 Tanggal Lahir Siswa
                       5 Agama
                       6 Jenis Kelamin
                       7 Alamat
     Matadiklat        1 Kode Matadiklat
                       2 Nama Matadiklat
                       3 Jenis
                       4 Bobot
                       5 Semester
     Guru              1 NIP
                       2 NUPTK
                       3 Nama Guru
                       4 Jurusan
                       5 Bidang Keahlian
                       6 Alamat
                       7 Pendidikan
     Keterangan : attribut yang di cetak tebal dan bergaris
     bawah merupakan kunci utama (Primery Key)

c. Menentukan Relasi Antar Entity Beserta Kunci Tamunya.
         Setelah menentukan entity dan attribut beserta kuncinya, maka selanjutnya
   adalah menentukan relasi antar entity. Bisa saja antara satu entity dengan entity yang
   lainnya tidak saling berhubungan, tapi entity tersebut berhubungan dengan entity
   yang satu lagi. Jika antara satu entity dengan entity yang lain saling berhubungan,
   maka hubungan tersebut dinyatakan sebagai entity baru, dan harus ditentukan pula
   attribut dan field kuncinya. Entity hasil relasi pasti mempunyai kunci tamu (foreign
   key). Kunci tamu adalah attribute yang berfungsi sebagai kunci pada entity yang lain,
   tapi digunakan juga sebagai kunci pada entity hasil relasi, maka keberadaan attribut
   tersebut pada entity hasil relasi di sebut kunci tamu.

        Untuk menentukan relasi antar tabel, dapat dilakukan dengan merelasikan
   secara satu per satu (one by one). Dalam merancang sistem informasi akademik, anda
   telah mendapatkan 3 buah entity, yaitu :
   1. Siswa
   2. Matadiklat
   3. Guru

   Maka anda dapat melakukan relasi :
   1. Entity Guru dengan Entity Matadiklat
   2. Entity Siswa dengan Entity Guru
   3. Entity Siswa dengan Entity Matadiklat

   Untuk lebih jelasnya, penggambaran relasi ini, anda gunakan Diagram E-R.

   1. Relasi Antara Entity Guru Dengan Entity Matadiklat.
           Antara entity guru dengan entity matadiklat, terdapat relasi dalam bentuk
      jadwal. Perhatikan gambar berikut :

                                                                       Halaman     | 20
       Guru                Jadwal             Matadiklat

        Terlihat pada gambar diatas, antara entity guru dengan matadiklat terdapat
   relasi yaitu jadwal. Maka jadwal merupakan entity baru pada sistem informasi
   akademik yang dirancang, sebagai akibat dari relasi antara entity guru dengan
   matadiklat.

        Selanjutnya adalah menentukan attribut yang melekat pada entity baru hasil
   relasi (entity jadwal), berikut attribut yang mungkin :
    NIP
    Kode Matadiklat
    Hari
    Jam
    Ruang

        Attribut NIP dan Kode Matadiklat pada entity jadwal disebut kunci tamu
   (foreign key), karena attribut tersebut merupakan kunci utama (primary key) pada
   entity guru dan matadiklat. Boleh saja anda menambahkan attribut baru sebagai
   kunci utama pada entity jadwal ini, seperti kode jadwal dan lain sebagainya, kalau
   seandainya keberadaan kunci tamu tidak dapat mewakili entity jadwal.
        Berikut diagram E-R dengan notasi lain untuk menggambarkan secara
   lengkap jenis hubungan ini :


       Guru                Jadwal             Matadiklat


   Kamus data :
    Guru       = (NIP, NUPTK, Nama Guru, Jurusan, Bidang Keahlian, Alamat,
                  Pendidikan)
    Matadiklat = (Kode Matadiklat, Nama Matadiklat, Jenis, Bobot, semester)
    Jadwal     = (NIP, Kode Matadiklat, Hari, Jam, Ruang)

2. Relasi Antara Entity Siswa Dengan Entity Guru.
        Relasi atau hubungan antara guru dengan siswa dapat berupa hubungan
   dalam hal bimbingan Laporan Praktek Kerja Industri atau dalam proses belajar
   mengajar. Proses belajar mengajar sudah terangkum pada entity jadwal diatas.
   Maka hubungan yang mungkin antara guru dengan siswa adalah dalam hal
   bimbingan Laporan Praktek Kerja Industri (LapPrakerin).

   Perhatikan gambar berikut :


       Siswa              LapPrakerin            Guru


        Terlihat pada gambar diatas, antara entity siswa dengan guru terbentuk
   relasi dalam hal bimbingan Laporan Praktek Kerja Industri / Prakerin
   (LapPrakerin). Maka LapPrakerin merupakan entity baru pada sistem informasi
   akademik yang dirancang, sebagai akibat dari relasi antara entity siswa dengan
   guru.

        Berikutnya menentukan attribut yang melekat pada entity baru hasil relasi
   (entity LapPrakerin), attribut yang mungkin :
    NISN
    NIP
    Judul LapPrakerin
    Tanggal Mulai
    Tanggal Selesai

                                                                   Halaman     | 21
        Attribut NISN dan NIP pada entity LapPrakerin disebut kunci tamu (foreign key),
        karena attribut tersebut merupakan kunci utama (primary key) pada entity siswa
        dan guru. Berikut diagram E-R dengan menggunakan kamus data untuk
        menggambarkan secara lengkap jenis hubungan ini :


            Siswa              LapPrakerin             Guru


        Kamus data :
         Siswa       = (NISN, Nama Siswa, Tempat Lahir Siswa, Tanggal Lahir Siswa,
                        Agama, Kenis Kelamin, Alamat)
         Guru        = (NIP, NUPTK, Nama Guru, Jurusan, Bidang Keahlian, Alamat,
                        Pendidikan)
         LapPrakerin = (NISN, NIP Judul LapPrakerin, Tanggal Mulai, Tanggal Selesai)

    3. Relasi Antara Entity Siswa Dengan Entity Matadiklat.
             Relasi antara siswa dengan matadiklat dapat berupa hubungan dalam hal
       nilai hasil studi dan kelulusan berupa Kartu Hasil Studi (KHS). Relasi yang
       terbentuk anda beri nama KH. Perhatikan gambar berikut :


            Siswa                 KHS               Matadiklat


            KHS sebagai entity baru pada sistem informasi akademik yang dirancang,
        sebagai akibat dari relasi antara entity siswa dengan matadiklat.

        Berikut attribut yang mungkin pada entity KHS :
         NISN
         Kode Matadiklat
         Nilai
         Status Kelulusan

             Attribut NISN dan Kode Matadiklat pada entity KHS disebut kunci tamu
        (foreign key), karena attribut tersebut merupakan kunci utama (primary key) pada
        entity siswa dan matadiklat. Berikut diagram E-R dengan menggunakan kamus
        data untuk menggambarkan secara lengkap jenis hubungan ini :

            Siswa                 KHS               Matadiklat


        Kamus data :
         Siswa      = (NISN, Nama Siswa, Tempat Lahir Siswa, Tanggal Lahir Siswa,
                       Agama, Kenis Kelamin, Alamat)
         Matadiklat = (Kode Matadiklat, Nama Matadiklat, Jenis, Bobot, semester)
         KHS        = (NISN, Kode Matadiklat, Nilai, Status Kelulusan)

          Proses menentukan hubungan antar entity sangat menentukan kualitas
          sistem database yang dirancang, karena semua informasi yang diharapkan
          dari database sangat tergantung kepada relasi yang terbentuk.


    Sampai dengan tahap ini anda telah melakukan proses relasi antar entity pada sistem
informasi akademik yang anda rancang, dan menghasilkan tiga buah entity baru yaitu :
Entity Jadwal, Entity lapPrakerin dan Entity KHS. Entity baru hasil relasi ini disebut file
transaksi, karena salah satu attribut pada entity tersebut merupakan attribut kunci pada
entity lainnya. Seperti pada entity jadwal, terdapat attribut NIP dan Kode Matadiklat,
kedua attribut tersebut merupakan attribut kunci pada entity Guru (NIP) dan entity
Matadiklat (Kode Matadiklat). Entity-Entity yang telah didapatkan yaitu :

                                                                         Halaman     | 22
1. Entity-entity Utama, disebut juga File Master
          Entity                       Attribute
                       1 NISN
                       2 Nama Siswa
                       3 Tempat Lahir Siswa
          Siswa        4 Tanggal Lahir Siswa
                       5 Agama
                       6 Jenis Kelamin
                       7 Alamat
                       1 Kode Matadiklat
                       2 Nama Matadiklat
       Matadiklat      3 Jenis
                       4 Bobot
                       5 Semester
                       1 NIP
                       2 NUPTK
                       3 Nama Guru
          Guru         4 Jurusan
                       5 Bidang Keahlian
                       6 Alamat
                       7 Pendidikan
    Keterangan : attribut yang di cetak tebal dan bergaris
    bawah merupakan kunci utama (Primery Key)

2. Entity-entity Utama, disebut juga File Master
           Entity                      Attribute
                       1 Kode Matadiklat
                       2 NIP
          Jadwal       3 Hari
                       4 Jam
                       5 Ruang
                       1 NISN
                       2 NIP
       LapPrakerin     3 Judul LapPrakerin
                       4 Tanggal Mulai
                       5 Tanggal Selesai
                       1 NISN
                       2 Kode Matadiklat
            KHS
                       3 Nilai
                       4 Status Kelulusan
    Keterangan : attribut yang di cetak tebal dan bergaris
    bawah merupakan kunci tamu (Foreign Key).

Relasi Antar Tabel dapat digambarkan sebagai berikut :




                                                             Halaman   | 23
        Keterangan:
        Yang bergambar * (asterik) berarti berfungsi sebagai Primary Key. ** adalah Foreinger Key
        yang merupakan kunci tamu (Primary Key ditabel lain).



7.2.3.3 Perancangan Database Fisik
                 Perancangan       database   secara   fisik   merupakan       tahapan     untuk
        mengimplementasikan hasil perancangan database secara logis menjadi tersimpan secara
        fisik pada media penyimpanan eksternal sesuai dengan DBMS yang digunakan. Dapat
        disimpulkan bahwa proses perancangan fisik merupakan transformasi dari perancangan
        logis terhadap jenis DBMS yang digunakan sehingga dapat disimpan secara fisik pada
        media penyimpanan.
                 Dalam perancangan database ada beberapa istilah penting yang disamakan fungsi
        tapi berbeda penggunaannya, yaitu :
        1. Entity dan Tabel
             Istilah Entity dan tabel mengandung maksud yang sama. Istilah Entity digunakan pada
             saat anda membicarakan konsep-konsep database, sedangkan istilah tabel
             merupakan implementasi dari entity ke dalam DBMS.
        2. Tupple dan Record
             Sama halnya dengan Entiy dan Tabel, istilah Tupple digunakan dalam membicarakan
             konsep database, sedangkan record digunakan dalam DBMS.
        3. Attribut dan Field
             Istilah attribut digunakan dalam membahas konsep database, sedangkan field
             merupakan istilah yang digunakan oleh dbms, untuk menyebut attribut.

               Dalam perancangan database secara logis, anda menggunakan istilah entity, tupple
        dan record, maka pada pembahasan database secara fisik, istilah-istilah tersebut
        digantikan kedudukannya oleh tabel, record dan field sesuai dengan DBMS yang
        digunakan.

        1. Tranformasi Istilah Entity Menjadi Tabel
           Pada pembahasan perancangan database secara logis, anda telah menghasilkan 6
           buah entity. Dalam DBMS entity ini disebut dengan tabel, artinya sekarang anda
           mempunyai 6 buah tabel yaitu :
            Tabel Mahasiswa
            Tabel Matakuliah
            Tabel Dosen
            Tabel Jadwal
            Tabel Skripsi
            Tabel KRS




                                                                               Halaman     | 24
   Dalam pemberian nama tabel, harus mengacu kepada aturan-aturan yang telah
   ditentukan oleh masing-masing DBMS..

2. Tranformasi Istilah Attribute Menjadi Field
   Lain halnya dengan tranformasi entity menjadi tabel, dimana anda hanya mengganti
   istilah saja, tapi dalam tranformasi attribute menjadi field, tidak saja sekedar
   mengganti penggunaan istilah, tapi anda akan melakukan tiga hal umum, yaitu :
    Menyesuaikan nama field sesuai dengan aturan pada DBMS yang digunakan
    Menentukan tipe data dari field.
    Menentukan ukuran dari field.
   Berikut pembahasannya secara lengkap.




3. Menyesuaikan nama field sesuai dengan aturan pada DBMS yang digunakan




   Dalam pemberian nama tabel maupun field, masing-masing DBMS mempunyai aturan
   tersendiri Yang harus ditaati. Usahakan nama tabel dan field sesingkat mungkin dan
   dapat dimengerti, karena nama yang panjang akan memakan space lebih besar lagi
   pada media penyimpanan.




                                                                    Halaman    | 25
4. Menentukan tipe data dari field.
   Langkah selanjutnya adalah menentukan tipe data dari setiap field. Tipe data adalah
   jenis data yang akan diinputkan dan disimpan pada sebuah field. Berikut type-type
   data yang didukung :
   a) Text, digunakan untuk menampung data berupa huruf (A – Z, a – z), karakter
       spesial (!, @. #. $, dll), serta Angka (0 – 9) yang tidak akan di proses secara
       matematika, seperti NoBP, Nomor Telp. Nomor Rumah. Bisa juga kombinasi dari
       huruf, angka dan karakter spesial, misalnya kode matakuliah. Daya tampungnya
       sampai dengan 255 karakter.
   b) Memo, sama halnya dengan teks, tapi daya tampungnya sampai dengan 65.535
       karakter.
   c) Number, digunakan untuk jenis data angka (0 – 9) saja, yang dapat digunakan
       dalam proses matematika. Berdasarkan pada daya tampungnya, tipe data ini
       dibagi lagi atas :
        Byte, mampu menampung nilai data, dalam rentang 0 – 255.
        Integer, mampu menampung data angka (bilangan bulat), dalam rentang –
           32,768 sampai dengan 32,767.
        Long Integer, mampu menampung data angka (bilangan bulat), dalam rentang
           –2,147,483,648 sampai dengan 2,147,483,647.
        Single, mampu menampung data angka, dalam rentang –3.402823E38 sampai
           dengan –1.401298E–45 untuk nilai negatif dan 1.401298E–45 sampai dengan
           3.402823E38 untuk nilai positif, baik bilangan pecahan maupun bilangan
           bulat.
        Doble, mampu menampung data angka, dalam rentang –
           1.79769313486231E308 sampai dengan –4.94065645841247E–324 untuk
           nilai     negatif     dan     1.79769313486231E308       sampai     dengan
           4.94065645841247E–324 untuk nilai positif, baik bilangan pecahan maupun
           bilangan bulat.
        Decimal, mampu menampung data angka dari -10^28 -1 sampai dengan
           10^28 –1.
                                                                     Halaman    | 26
d) Date/Time, digunakan untuk menyimpan data tanggal dan waktu, ada banyak
   jenis tampilan tipe data ini, sesuai dengan setting tanggal dan waktu pada
   komputer.
e) Currency, digunakan untuk nilai data uang dan dapat diproses secara matematika.
f) AutoNumber, digunakan untuk menyimpan data angka yang bersifat unik yang
   otomotis bertambah satu setiap ada penambahan record. Biasanya tipe data ini
   digunakan oleh field kunci. Type data ini tidak bisa diupdate.
g) Yes/No, digunakan untuk menampung data yang terdiri dari dua nilai saja, yaitu
   yes/No, ya/tidak, On/Off, True/False,. Misalnya jenis kelamin, kalau tidak Lakilaki
   pasti perempuan, maka type datanya bisa diset Yes/No.
h) OLE Object, merupakan tipe data yang mendukung kolaborasi antara MS.Access
   dengan aplikasi office lainnya, seperti MS. Word, MS. Excel, dan lainlain.
i) Hyperlink, berupa kombinasi text atau number, yang digunakan untuk
   berhubungan dengan link-link (URL) di internet.
j) Lookup Wizard, dengan tipe data ini, memungkin anda untuk menginputkan data
   yang terhubung dengan tabel lain. Biasanya menggunakan fasilitas combobox
   atau list box.

Berikut daftar tipe data dari keseluruhan tabel pada perancangan sistem informasi
akademik :




                                                                    Halaman     | 27
5. Menentukan ukuran dari field.
   Pada tahap ini anda menentukan ukuran (size) dari masing-masing field yang telah
   ditentukan type datanya. Penentuan ukuran suatu field bertujuan untuk membatasi
   jumlah karakter yang diinputkan pada field tersebut sehingga sesuai dengan
   kebutuhan saja. Misalnya Field NoBP, pada setiap perguruan tinggi jumlah karakter
   yang membentuk NOBP adalah tetap, misalnya NOBP berupa 05955001, terlihat
   bahwa nobp tersebut mempunyai panjang 8 karakter, dan tidak ada nobp yang
   melebihi dari 8 karakter. Agar tidak terjadi kesalahan dan dapat menghemat ruang
   penyimpanan, maka ukuran dari NoBP diset menjadi 8. begitu juga untuk tipe data
   yang lainnya, anda harus dapat memperkirakan berapa panjang maksimal dari semua
   field.
    Tipe data text, ukurannya ditentukan berupa angka, misalya 8, 20, 30, yang
        menyatakan panjang maksimunnya dalam karakter..
    Type data Number, ukuran datanya ditentukan oleh jenis numeriknya, apakah
        berupa byte, integer, long integer, decimal, dan lain-lain.
    Type data Date/Time, ukurannya di tentukan oleh jenis date/time, apakah berupa
        short date (23/11/05), atau long date (November 23, 2005), short time (17:34),
        long time (17:34:00), dan lain lain.

   Berikut daftar ukuran dari field yang terdapat pada sistem informasi akademik yang
   anda rancang :




                                                                     Halaman    | 28
                   Tabel diatas merupakan hasil akhir dari proses perancangan database Sistem
                   Informasi Akademik yang siap di implementasikan pada DBMS. Sebagaimana telah
                   dijelaskan di awal, bahwa dalam prakteknya anda akan menggunakan RDBMS MySQL



      7.2.3.4 Implementasi pada RDBMS Web Database MySQL

2.9 Memulai dan mengakhiri koneksi ke database server
Untuk koneksi ke database server, Anda biasanya perlu memberikan nama user MySQL
dan password nya ketika menjalankan program klien mysql. Jika server berjalan pada
komputer yang berbeda , Anda juga perlu memberikan nama komouter atau nomor IP
komputer server database tersebut. Pembahasan lebih detil tentang program klien mysql
telah dibahas dalam pembahasan sebelumnya.
Begitu Anda mengetahui parameterparameter


                                                                                    Halaman   | 29
      yang diperlukan, maka Anda dapat melakukan koneksi ke database server MySQL, seperti berikut
      ini:




Tanda prompt mysql> menjelaskan pada Anda bahwa mysql telah siap menerima perintah
(command) dari Anda. Beberapa instalasi MySQL memungkinkan Anda untuk koneksi ke
database server sebagai anonymous user (user tak bernama) pada komputer lokal
(localhost).
Untuk mengakhiri koneksi dari database server , Anda dapat mengetikkan perimtah quit,
exit , atau (\q), seperti berikut ini:

mysql> quit
atau
mysql> exit
atau
mysql> \q

Berikut ini tabel yang menampilkan kondisi setiap prompt yang akan Anda lihat, dan
kesimpulan mengenai apa yang terjadi dengan kondisi prompt seperti itu di dalam mysql:

2.10 Membuat dan menggunakan database
Sebelum Anda dapat membuat sebuah tabel Anda harus terlebih dahulu membuat
Database. Perintah SQL dapat Anda ketikkan dengan huruf besar maupun kecil. Hanya saja
di sini kita menggunakan huruf besar agar Anda lebih mudah membedakan antara
perintah SQL dengan objekobjek
lainnya. Perlu diingat, setelah selesai mengetikkan
perintah SQL pada prompt MySQL, Anda wajib mengetikkan tanda titik koma yang
menandakan akhir dari perintah SQL. Sintak penulisan perintah untuk membuat database
seperti berikut ini :

mysql> CREATE DATABASE database_name;
Hal yang harus diperhatikan dalam penamaan database adalah nama tidak boleh menggunakan
katakata
yang menjadi kosakata SQL seperti select karena hal itu akan membuat rancu. Perlu juga
diperhatikan huruf besar atau huruf kecil sebuah nama database karena pada sistem UNIX huruf
besar dan huruf kecil dibedakan. Pada contoh dibawah ini akan dibuat database dengan nama
'Perpustakaan' dan 'perpustakaan'.




                                                                                     Halaman   | 30
Sesudah Anda membuat suatu database, selanjutnya jika Anda ingin 'perpustakaan'
menjadi database yang Anda akses saat ini maka Anda dapat mengakses database tersebut
dengan perintah sebagai berikut :
mysql>USE perpustakaan;
Atau Anda dapat juga mengakses database perpustakaan melalui commandline
Sebagai berikut :




2.11 Manipulasi tabel
Tabeltabel
dapat dibuat dan dimodifikasi jika diperlukan. Jika Anda sudah memilih atau
mengakses database maka Anda dapat membuat tabel sebagai berikut.
2.11.1 Membuat tabel
Setelah Anda memilih Database barulah Anda dapat membuat sebuah tabel, Sintak
penulisan perintah membuat tabel sebagai berikut:

mysql> CREATE TABLE nama_tabel(
kolom1 tipe_data opsi_kolom,
kolom2 tipe_data opsi_kolom,
...........................,
kolomN tipe_data opsi_kolom,
PRIMARY KEY(nama_kolom),
INDEX (nama_kolom)
) type=tipe_tabel

Dalam pemakaian pernyataan create table Anda akan menemukan 2 opsi yang biasanya
menyertai deklarasi definisi kolom yaitu
  null/ not null
  default
Null/not null mengindikasikan apakah suatu kolom dapat menerima nilai null (nilai tiada).
Jika dinyatakan null berarti null dapat terjadi dikolom tersebut sebaliknya bila diberi
atribut not null maka nilai null tidak boleh pada kolom tersebut.
Default menyatakan nilai baku yang akan dipakai jika dalam suatu proses pemasukan nilai
ke kolom tersebut tidak diberi nilai.
Contoh berikut akan membuat tabel dengan nama buku:




                                                                                        Halaman   | 31
Setelah Anda membuat tabel, perintah SHOW TABLES seharusnya menampilkan output
sebagai berikut:




Untuk memeriksa tabel yang telah Anda buat sesuai dengan spesifikasi yang telah
ditetapkan, gunakanlah perintah DESCRIBE atau DESC. Sebagai contoh jika Anda lupa
nama kolom atau tipe kolom dari tabel yang telah Anda buat. Gunakanlah perintah seperti
contoh dalam gambar berikut :




2.11.2 Menghapus tabel
Untuk menghapus tabel gunakan perintah berikut ini:
mysql> DROP TABLE buku;
atau
mysql> DROP TABLE IF EXISTS buku;

2.11.3 Merubah tabel
ALTER TABLE memungkinkan Anda untuk merubah struktur tabel yang ada. Anda dapat
merubah tabel untuk keperluan:

 Menambah atau menghapus kolom
 Merubah nama atau definisi kolom
 Menambah atau menghapus index
 Menerapkan suatu susunan berbeda pada barisbaris

                                                                                     Halaman   | 32
 Merubah nama tabel

ALTER TABLE bekerja dengan cara membuat salinan tabel dari tabel yang asli yang
bersifat sementara (temporer). Proses perubahan tabel dilakukan pada tabel salinan,
kemudian tabel asli dihapus, dan yang baru dirubah namanya. Ketika perintah ALTER
TABLE sedang dieksekusi, tabel asli masih dapat dibaca oleh klienklien.
Proses
perubahan dan penulisan terhadap tabel dihentikan sampai tabel yang baru siap, dan
kemudian secara otomatis diarahkan ke tabel baru tanpa kegagalan dalam proses
perubahan.

Contoh berikut adalah perubahan tabel dengan menambah kolom.




Gunakan keyword MODIFY atau CHANGE, jika Anda akan melakukan perubahan tipe
data kolom. MODIFY dan CHANGE memiliki fungsi yang sama yaitu merubah tipe data
kolom, hanya saja dengan CHANGE memungkinkan nama kolom juga dapat dirubah.

2.11.4 Merubah nama tabel
RENAME merubah nama tabel, dan juga bekerja dalam perintah ALTER TABLE:




Merubah beberapa nama tabel sekaligus dapat dilakukan dengan satu perintah saja dimana
tabeltabel
dipisahakan dengan tanda koma, seperti berikut:




Merubah tipe dan opsi kolom tabel dapat dilakukan juga bersamaan dengan merubah
nama tabel dalam satu perintah seperti berikut ini:




2.12 Index
Ketika data dalam tabel bertambah besar jumlahnya, proses pembacaan data akan menjadi
lambat. Index memungkinkan nilainilai
kolom dapat ditemukan dengan lebih cepat,
pengambilan atau pembacaan data berdasarkan index relatif lebih cepat. Agar performa
query Anda terjaga secara, sangatlah penting mengindekskan (indexes) tabeltabel
Anda.
Index dapat melakukan pengunikkan (unique) untuk mencegah duplikasi.
MySQL mendukung empat tipe index:
  Nonunique
simple indexes
  UNIQUE index, setiap nilai adalah berbeda dari yang lainnya.

                                                                                      Halaman   | 33
  PRIMARY KEY adalah suatu UNIQUE key yang tidak membolehkan nilai NULL.
  FULLTEXT dioptimasi untuk pencarian teks.
Index dapat didefinisikan ketika tabel dibuat. Ini meliputi definisi index dalam perintah
CREATE TABLE, bersama dengan pendefinisian kolom. Suatu definisi index terdiri dari
suatu kata kunci yang menunjukkan tipe index, diikuti oleh suatu daftar namanama
kolom
yang akan dijadikan index didalam tanda kurung. Dengan mengasumsikan bahwa definisi
tabel buku tanpa index tampak seperti berikut :




2.12.1 Nonunique
index
Untuk membuat tabel dengan dengan kolomkolom
yang sama seperti tabel buku
sebelumnya, tetapi dengan suatu Nonunique
index pada kolom 'tahun' , klausa INDEX
disertakan dalam perintah CREATE TABLE berikut ini:




2.12.2 Unique index
Unique melakukan pengunikkan kolom dan mencegah duplikasi. Ini bermanfaat khususnya
ketika menetapkan nilainilai
untuk proses lookup, seperti id.




2.12.3 Primary Key index
Dalam sebuah tabel hanya ada satu buah primary key. Primary key ada;ah suatu UNIQUE
index yang tidak mengijinkan nilai NULL.


                                                                                            Halaman   | 34
Index dapat ditambahkan pada suatu tabel. Sebagai tambahan, proses penambahan index
dapat dilakukan dengan menggunakan perintah ALTER TABLE, seperti berikut:
mysql> ALTER TABLE buku ADD PRIMARY KEY (id)


2.12.4 Menghapus index
Suatu index dapat dihapus dengan dengan perintah DROP INDEX atau ALTER TABLE,
seperti berikut:
mysql> DROP INDEX tahun ON buku
mysql> ALTER TABLE buku DROP INDEX tahun
mysql> ALTER TABLE buku DROP PRIMARY KEY
Primary key index hanya dapat dihapus jika kolom yang merupakan index tersebut tidak
memiliki atribut atau opsi auto_increment.




                  Mengklasifikasikan Penggunaan Database

    7.3
2.13 MySQL query
MySQL mendukung penuh ANSI SQL92.
Referensi SQL untuk MySQL adalah referensi
SQL yang umum yang digunakan secara luas. SQL adalah bahasa query database yang
serupa dengan bahasa inggris yang terdiri dari susunan kata kerja. Setiap susunan kata
kerja ini, diawali dengan sebuah perintah SQL yang diikuti oleh keyword, literals, dan
indentifiers, atau puctuation.
Dalama bagian ini menggambarkan prinsipprinsip
dasar penulisan perintahperintah
SQL,
bekerja dengan berbagai query, dari dasar hingga yang kompleks. Query menggambarkan
beberapa hal tentang klien mysql:
  Ketika Anda menuliskan dan mengeksekusi perintah, program klien mysql
mengirimkannya ke server untuk dieksekusi dan menampilkan hasilnya, kemudian
mencetak prompt mysql> kembali untuk menunjukkan bahwa klien mysql sudah
siap menerima perintah lainnya.

                                                                                       Halaman   | 35
  Klien mysql menampilkan output dari query dalam bentuk tabular (terdiri dari baris
dan kolom). Baris pertama menunjukkan namanama
kolom tabel. Dan barisbaris
berikutnya dalah hasil query.
  Klien mysql menampilkan juga informasi mengenai berapa banyak baris yang
dikembalikan dan berapa lama query tersebut dieksekusi, yang memberikan Anda
ide pemikiran tentang performa server.


2.13.1 Perintah SELECT
Tidak ada gunanya menyimpan data kedalam database kecuali Anda bermaksud untuk
menampilkan dan melakukan sesuatu terhadap data tersebut. Inilah fungsi dari perintah
SELECT. Sintaks dasar dari perintah SELECT tampak seperti berikut ini:

SELECT daftar_pilihan_kolom FROM daftar_tabel
WHERE batasan_batasan_utama
GROUP BY grup_kolom
ORDER BY urutan_kolom
HAVING batasan_batasan_tambahan
LIMIT jumlah

  daftar_pilihan_kolom, menunjukkan kolomkolom
apa saja yang akan dipilih atau
ditampilkan
  daftar_tabel, menunjukkan dari tabel apa saja barisbaris
data diambil atau dipilih
  batasan_batasan_utama, menunjukkan apa saja kondisikondisi
baris data yang
harus terpenuhi
  grup_kolom, menunjukkan bagaimana mengelompokkan hasilhasil
query
  urutan_kolom, menunjukkan bagaimana mengurutkan hasilhasil
query
  batasan_batasan_tambahan, menunjukkan apa saja kondisikondisi
tambahan dari
baris data yang harus terpenuhi
  jumlah, menunjukkan batas dari hasil query.

2.13.1.1 Pengambilan data sederhana
Perintah SELECT sederhana untuk mengambil data dari suatu tabel dapat Anda lihat
dalam contoh berikut ini:




Untuk pengambilan data berdasarkan kolom kolom
tertentu , tampak seperti berikut:
                                                                                        Halaman   | 36
2.13.1.2 Membatasi suatu perintah SELECT dengan WHERE
Anda dapat mengambil atau memilih hanya barisbaris
data tertentu saja dari tabel Anda:




2.13.1.3 Mengurutkan pemilihan data menggunakan ORDER BY
Dalam contoh sebelumnya, hasil barisbaris
data yang ditampilkan tidak dalam urutan
tertentu. Biasanya lebh mudah untuk menguji output dari query jika barisbaris
data
diurutkan. Untuk mengurutkan baris data, gunakan klausa ORDER BY, seperti berikut ini:




Pengurutan baku adalah ascending, dengan susunan urutan dimulai dari nilainilai
yang

                                                                                         Halaman   | 37
paling kecil. Untuk mengurutkan dalam susunan yang berlawanan (descending), gunakan
kata kunci DESC pada nama kolom yang akan Anda urutkan, seperti berikut ini:




2.13.1.4 Membatasi pengambilan data menggunakan klausa LIMIT
Klausa LIMIT memungkinkan Anda untuk membatasi output dari query. Klausa LIMIT
sangat berguna, khususnya bersama dengan klausa ORDER BY. Ini berguna untuk
mengambil barisbaris
data berdasarkan posisinya dalam sekumpulan baris data hasil
pemilihan.
LIMIT mungkin diberikan dengan satu atau dua argumen, yang mana berupa bilangan
bulat:

LIMIT jumlah_baris
LIMIT jumlah_diabaikan,jumlah_baris

jumlah_baris menunjukkan berapa banyak baris yang akan ditampilkan, sedangkan
jumlah_diabaikan menunjukkan berapa banyak baris data yang pertama dari hasil
pengambilan data yang harus diabaikan untuk tidak ditampilkan. Berikut ini contoh
penggunaan klausa LIMIT untuk menampilkan dua baris data yang pertama :




Jika LIMIT diikuti oleh dua bilangan bulat, jumlah_diabaikan dan jumlah_baris, LIMIT
akan mengabaikan sejumlah baris data yang pertama yang ditetapkan oleh bilangan bulat
yang pertama ( jumlah_diabaikan), dan hanya akan menampilkan sejumlah baris data
berikutnya sebanyak yang ditetapkan oleh bilangan bulat yang kedua ( jumlah_baris).


Untuk mengabaikan dua baris data yang pertama dan menampilkan dua baris data
berikutnya dapat Anda lihat dalam contoh berikut:
2.13.1.5 Mengelompokkan pemilihan baris data menggunakan klausa GROUP BY
Klausa GROUP BY digunakan untuk memperoleh suatu rangkuman atau ringkasan yang

                                                                                      Halaman   | 38
menghasilkan nilainilai
untuk subgrup
dari sekumpulan baris data yang dipilih.
Sebagai contoh kita memiliki tiga buah tabel yang terdiri dari tabel mahasiswa, matakuliah
dan matakuliah_diikuti_mahasiswa.

Skenario nya adalah kita akan menampilkan daftar mahasiswa beserta jumlah matakuliah
yang diikutinya. Untuk itu jalankanlah query berikut ini:




Dan hasil nya sebagai berikut:




2.13.2 Perintah INSERT
Perintah INSERT digunakan untuk menambahkan data baru kedalam tabel. Perintah
INSERT memiliki dua buah format penulisan sebagai berikut:
INSERT INTO nama_tabel (daftar_kolom) VALUES (daftar_nilai);
INSERT INTO nama_tabel SET nama_kolom=nilai_kolom;
Pada format yang pertama nama_tabel menunjukkan nama tabel yang akan ditambahkan
data kedalamnya, daftar_kolom menunjukkan namanama
kolom dari tabel yang
dipisahkan menggunakan tanda koma, selanjutnya daftar_nilai adalah nilainilai
(dipisahkan dengan tanda koma) yang berhubungan dengan masingmasing
kolom yang
disebutkan dalam daftar_kolom (jumlah kolom harus sama dengan jumlah nilai).Pada
format yang kedua setelah klausa SET adalah daftar pasangan nama kolom dan nilainya
masingmasing
yang dipisahkan menggunakan tanda koma. Salah satu dari kedua format
penulisan tersebut memungkinkan untuk menambahkan beberapa data sekaligus dengan
sebuah perintah

Berikut ini contohcontoh
penulisan perintah INSERT dalam proses panambahan data
kedalam tabel mahasiswa.




                                                                                        Halaman   | 39
Format penulisan perintah INSERT dengan menggunkan klausa SET tampak sebagai
berikut:




                                                                               Halaman   | 40
Jika Anda ingin menambahkan beberapa data sekaligus kedalam tabel mahasiswa dengan
sebuah perintah saja, maka Anda dapat lakukan hal tersebut sebagaimana dalam contoh
berikut ini:

2.13.3 Perintah REPLACE
Perintah REPLACE memiliki format penulisan perintah yang sama dengan INSERT, yaitu
sebagai berikut:
REPLACE INTO nama_tabel (daftar_kolom) VALUES (daftar_nilai);
REPLACE INTO nama_tabel SET nama_kolom=nilai_kolom;
Perintah REPLACE mengembalikan sebuah informasi yang menunjukkan jumlah baris
yang dipengaruhi. Jika jumlah baris yang dipengaruhi oleh perintah REPLACE adalah
satu, maka baris data hanya di tambahkan kedalam tabel tanpa ada proses mengganti baris
data yang ada. Jika jumlah baris data yang dipengaruhi oleh perintah REPLACE adalah
dua baris, maka ada sebuah baris yang dihapus sebelum proses penambahan baris data
dilakukan, lihat contoh berikut ini:




Keuntungan dari menggunakan perintah REPLACE adalah kita dapat menjalankan

                                                                                     Halaman   | 41
perintah DELETE dan INSERT sekaligus dalam sebuah operasi tunggal. Disini tidak ada
kebutuhan untuk melakukan penguncian tabel secara eksplisit sebagaimana yang mungkin
ada ketika Anda memutuskan untuk memisahkan perintah DELETE dan INSERT.


2.13.4 Perintah UPDATE
Perintah UPDATE digunakan untuk merubah isi dari barisbaris
data yang ada. Untuk
menggunakannya, sebutkan nama tabel yang akan dirubah isi barisbaris
datanya, sertakan
klausa SET yang diikuti dengan daftar pasangan nama kolom dan nilainya , dan biasanya
perintah UPDATE diikuti dengan klausa WHERE yang menentukan barisbaris
data mana
sajakah yang akan dirubah. Berikut ini format penulisan perintah UPDATE:
UPDATE nama_tabel SET nama_kolom1=nilai1,
nama_kolom2=nilai2.........WHERE .....;
Sebagai contoh dalam tabel mahasiswa, kita akan merubah nilai kolom alamat dari sebuah
baris data yang memiliki mahasiswa_id=1016, sebagaimana yang tampak berikut ini:




2.13.5 Perintah DELETE
Untuk menghapus barisbaris
data yang ada dalam tabel, gunakanlah perintah DELETE.
Perintah DELETE memungkinkan penggunaan klausa WHERE untuk menentukan barisbaris
data mana saja yang akan dihapus. Jika Anda tidak menyertakan klausa WHERE
maka akan berakibat seluruh baris data yang ada dalam tabel akan dihapus, Untuk
menghapus seluruh baris data yang ada dalam tabel format penulisannya seperti berikut
ini:
DELETE FROM nama_tabel;
Sedangkan untuk menghapus barisbaris
data tertentu saja, format penulisannya seperti
berikut ini:
DELETE FROM nama_tabel WHERE ......;
Sebagai contoh, kita akan menghapus baris data yang ada dalam tabel mahasiswa yang
memiliki mahasiswa_id=1016, seperti berikut ini:




                                                                                    Halaman   | 42
3.4 Manajemen User Account MySQL
Bagian ini menjelaskan bagaimana cara untuk melakukan setup
account pada MySQL
server. Bagian ini juga menjelaskan bagaimana cara yang aman dalam membuat account
baru serta cara untuk menentukan hak izin tiaptiap
user.
3.4.1 Username dan Password
Account MySQL digunakan untuk mendefinisikan username, host klien atau banyak host
yang menentukan user mana saja yang bisa terhubung ke server. Account juga memiliki
password. Ada beberapa perbedaan antara mysql dan sistem operasi dalam membuat
username dan password.
  Username, oleh mysql digunakan untuk otentikasi, tidak ada hubungan antara login
name di Sistem Operasi seperti Ms.Windows atau UNIX. Pada UNIX, umumnya,
secara default, MySQL klien bisa menggunakan username UNIX sebagai username
MySQL, demi kemudahan penggunaannya. Default tersebut bisa di ubah dengan
mudah, dengan opsi –u atau user.
Artinya setiap orang bisa dengan mudah
terhubung atau menggunakan database yang ada di mysql, sehingga database
menjadi kurang aman, kecuali setiap user di mysql sudah memiliki password.
  Panjang karakter dari username mysql maximum 16 digit. Username pada sistem
operasi mungkin bisa berbeda panjangnya.

Password MySQL tidak ada hubungannya dengan password saat Anda login ke
sistem operasi.
  Enkripsi password pada MySQL menggunakan algoritmanya sendiri. Enkripsinya
berbeda dengan enkripsi di sistem UNIX. Enkripsi di MySQL menggunakan fungsi
PASSWORD() . Password pada sistem UNIX di enkripsi menggunakan fungsi
ENCRYPT(). Mulai versi 4.1, MySQL menggunakan metode yang lebih bagus
dalam metode autentikasi, dengan melakukan proteksi password selama proses
koneksi. Hal ini menjadikannya lebih aman, bahkan jika paket TCP/IP di ‘bajak’
atau database mysql di capture. Pada versi sebelumnya, password yang sudah
disimpan bahkan dalam form yang terenkripsi, pengetahuan tentang enkripsi data
tersebut dapat digunakan untuk koneksi ke MySQL server.


Ketika Anda sudah mengaktifkan mysql server dan ingin masuk ke lingkungan mysql,

                                                                                      Halaman   | 43
Anda bisa menggunakan command line untuk menentukan account :
[root@sms mysql]# mysql —u irfan –p database_saya
Enter password :
Anda diminta untuk memasukkan password, jika user tersebut belum memiliki password,
cukup dengan mengetikkan perintah :
[root@sms mysql]# mysql—u irfan database_saya
Pada perintah diatas, setelah –u adalah nama user yang terdaftar di mysql server, dan
database_saya adalah nama database yang bisa di akses oleh user tersebut.
Pada beberapa system, library nya memanggil MySQL yang secara otomatis mengeset
batas untuk pengisian password di promptnya
sebatas delapan digit. Masalah seperti itu
ada pada library system, bukan MySQL. Untuk mengatasinya, ubahlah password di
MySQL maksimal delapan digit.


3.4.2 Menambah user account baru
Untuk membuat account baru, ada dua cara :
  Menggunakan statement GRANT
  Memanipulasi langsung MySQL table Agrant
Metode yang lebih disarankan adalah dengan menggunakan statement GRANT, karena

lebih ringkas, dan kemungkinan lebih sedikit mendapatkan kesalahan. GRANT mulai
tersedia pada MySQL versi 3.22.11. Sintaksnya secara jelas digambarkan di MySQL
Language Reference yang bisa Anda lihat di http://dev.mysql.com/doc/refman.
Opsi yang lain adalah dengan menggunakan beberapa tools yang tersedia dari pihak ketiga.
Tools tersebut biasanya menyediakan kemampuan untuk administrasi MySQL. Contohnya
seperti PHPMyAdmin.
Contoh berikut ini, adalah bagaimana cara menambah user baru. Untuk melakukannya
Anda harus terhubung ke MySQL sebagai user root. Root adalah user dengan status/hak
paling tinggi dalam sistem mysql.




Jika root telah memiliki password, Anda harus menambah opsi –p. Dengan perintah tadi
kita akan masuk ke lingkungan mysql server sebagai root. Setelah terhubung, Anda bisa
menambah account baru. Statement berikut ini menggunakan GRANT untuk mensetup
nya :
Maksud dari perintahperintah
diatas yaitu :
      Dua account memiliki username sarah dan password mumtaza. Kedua user tersebut memiliki
         privilege (hak) penuh untuk melakukan apa saja seperti super user (root).Satu account
         (‘sarah’@’localhost’) hanya bisa digunakan saat Anda login di komputer local (localhost), sedang
         satu account lagi (‘sarah’@’%’) bisa dari host(komputer) mana saja. Kadang diperlukan untuk
         memiliki account yang bisa terhubung ke mysql dari mana saja. Jika user sarah tidak memiliki
         account localhost, maka ketika user tersebut login di localhost dia akan diperlakukan seperti

                                                                                         Halaman     | 44
        anonymous user, yaitu user yang secara default disediakan saat kita menjalankan
        mysql_install_db waktu menginstall mysql. Alasannya karena anonymous user lebih sesuai nilai
        kolom host nya, dan juga saat penyusunan baris di table terletak lebih awal
       Account yang berikutnya, username nya adalah admin, tanpa password. Account ini hanya bisa
        digunakan dari localhost. Dengan pemberian privileges RELOAD dan PROCESS. Privilege ini
        memberikan user admin kemampuan untuk mengeksekusi mysqladmin reload, mysqladmin
        refresh, mysqladmin flushxxx, seperti perintah yang ada pada mysqladmin processlist. User ini
        tidak diberikan hak untuk mengakses database. Anda bisa menambahkan hak tersebut dengan
        statement GRANT nantinya.
       User berikutnya adalah dummy tanpa password. User ini juga hanya bisa terkoneksi melalui
        localhost. Tidak diberikan hak apapun. Perintah USAGE berguna untuk membuat account baru
        tanpa memberi hak apapun terhadap user yang dibuat tersebut, jadi hanya membuat account
        saja. Privileges /hak global dari user ini adalah ‘N’. Anda tetap bisa merubah dan memberikan
        priveleges secara spesifik nantinya.


Alternatif dari perintah GRANT yaitu perintah INSERT, seperti perintah query biasa, yang
digunakan untuk menambah data ke tabel GRANT.




Kegunaan dari Flush Privileges yaitu untuk memberitahu server agar membaca kembali
table GRANT, jika tidak maka perubahan tidak berlaku sampai Anda merestart kembali
server. Tapi, dengan perintah GRANT, Flush Privileges tidak diperlukan.
Fungsi PASSWORD() diatas, digunakan untuk mengenkripsi password saat melakukan
proses INSERT, tapi pada perintah GRANT, fungsi PASSWORD() tidak diperlukan.
Nilai ‘Y’ yang dimasukkan saat proses INSERT tadi, untuk mengaktifkan account
privileges. Banyaknya nilai ‘Y’ yang dimasukkan bergantung pada versi database mysql

Anda. Versi sebelumnya (3.22.11) lebih sedikit kolom privileges daripada versi 4.0.x.
Pada proses INSERT untuk user dummy, hanya host,user dan password yang diberi nilai,
sedang yang lainnya tidak. Kolom yang tidak diberi nilai pada saat proses INSERT akan
diberi nilai default ‘N’. Hal ini sama dengan statement GRANT USAGE sebelumnya.


3.4.2.1 Akses ke Database
Pada contoh selanjutnya, kita akan membuat tiga account, dan memberikan izin untuk
mengakses
ke database yang spesifik.




                                                                                           Halaman   | 45
Tiga account tadi adalah user yang sama, yaitu ismail dengan password 4bd4nsy4kr.
Penjelasan dari tiga statement tadi sebagai berikut :
     User ini dapat mengakses database mahasiswa, hanya dari localhost.
     Account yang kedua, dapat mengakses database finance, tapi hanya dari host nf.com
     Account yang ketiga, dapat mengakses database pustaka tapi hanya dari host server.domain



3.4.2.2 Akses Tabel
Izin akses table digunakan untuk mengatur izin akses table yang terdapat pada database
yang ditentukan, konfigurasi akses ini terletak pada table tables_priv pada database mysql.
Table tersebut menyediakan perintah izin akses SELECT, INSERT, UPDATE, DELETE,
CREATE, DROP, GRANT, REFERENCES, INDEX dan ALTER.

Untuk melakukan izin akses table, gunakan perintah berikut :




stmik adalah nama database, dan mahasiswa adalah tablenya.
Perintah diatas, maksudnya yaitu, user irfan hanya dapat melakukan perintah SELECT
pada table mahasiswa.

3.4.2.3 Akses Kolom
Seperti namanya, izin ini hanya akan membolehkan melakukan akses ke kolom/field yang

                                                                                         Halaman   | 46
disebutkan saja. Konfigurasi akses ini terletak pada table columns_priv.
Izin akses nya antara lain SELECT,INSERT,UPDATE dan REFERENCES.
Contoh penggunaannya:




Artinya, user diatas hanya dapat melakukan perintah UPDATE saja pada field nama, di
table mahasiswa.
Anda juga dapat melakukan kombinasi antara perintah untuk mengakses table dan field,
misal Anda ingin bisa melakukan SELECT atau melihat semua field yang ada pada suatu
table, tapi hanya field tertentu saja yang bisa di UPDATE. Contoh:




3.4.3 Menampilkan Izin Akses
Untuk mengetahui izin akses pada user, ketikkan perintah berikut :




                                                                                       Halaman   | 47
Hasil yang Anda dapatkan mungkin berbeda, tergantung pada izin akses yang Anda
lakukan sebelumnya. Untuk contoh diatas, keluaran yang dihasilkan sesuai dengan
pengesetan
GRANT USAGE untuk user dummy sebelumnya.


3.4.4 Menghapus Account User
Penggunaan Revoke
REVOKE merupakan kebalikan dari GRANT, yaitu untuk menghapus izin akses pada user
tertentu yang sebelumnya sudah diberikan.
Untuk menghapus izin akses secara penuh, gunakan perintah berikut :




Perintah diatas akan mencabut lagi izin akses penuh user sarah.
Anda juga bisa menghapus user dengan menggunakan perintah DELETE :




                                                                                    Halaman   | 48
Perintah tadi akan menghapus user umam. Walaupun user tersebut sebelumnya diberi hak
untuk mengakses suatu table, tapi dengan dihapus keberadannya dari table GRANT mysql,
dia tetap tidak akan bisa masuk lagi (login) ke server.
Untuk menghapus akses ke database gunakan perintah berikut :




Perintah tersebut akan menghapus izin akses ke database mysql.
Untuk menghapus izin akses table gunakan perintah berikut :



Perintah tersebut akan menghapus izin akses user irfan pada table mahasiswa di database
stmik.
Untuk menghapus izin akses field gunakan perintah berikut :

Perintah tersebut akan menghapus izin UPDATE field nama pada table mahasiswa di
database stmik.
Selain bisa menambah, mendelete dan memberi izin akses pada useruser
di MySQL, Anda
juga bisa melakukan pantauan terhadap useruser
tersebut dengan mengetikkan perintah
berikut :

mysql> SHOW PROCESSLIST;




Pada tampilan diatas, nampak useruser
yang sedang mengakses MySQL Sever. Perintah
tersebut akan menampilkan hasil yang berbeda jika dilakukan oleh user yang tidak
memiliki akses super privileges. Dengan kata lain, user biasa hanya akan menampilkan
dirinya sendiri saat menampilkan hasil dari perintah tersebut.
Selanjutnya setelah Anda mengetahui user apa saja yang sedang aktif mengakses server,
Anda dapat melakukan pengontrolan terhadap user tersebut dengan mengetikkan perintah
KILL dilanjutkan dengan id dari user tersebut yang nampak pada table diatas.

                                                                                      Halaman   | 49
KILL digunakan untuk memutuskan hubungan sementara sampai user tersebut melakukan
koneksi lagi.
Sebagai contoh, user tamu melakukan koneksi ke database mysql yang seharusnya tidak
dilakukannya. Anda dapat memutuskan koneksi tersebut dengan mengetikkan perintah :



Begitu user tamu ingin melakukan perintah SELECT, hasilnya akan tampak seperti ini :




                  Menentukan Prosedur Recovery

    7.4
Bagian ini akan menjelaskan bagaimana membackup
database dan melakukan maintenance
terhadap table.

3.5.1 Backup
Database
  Jika suatu saat kerusakan sistem terjadi, Anda menginginkan agar bisa
mengembalikan kembali status tabletable
yang ada tersebut ke keadaan saat
sebelum rusak, dengan kemungkinan sebagian kecil data saja yang hilang.
  Pengguna, mungkin saja tanpa sengaja menghapus table atau database, dan
menginginkan agar data mereka bisa kembali.
  Seorang adiministrator mungkin mencoba untuk mengedit table melalui normal
editor, sayangnya hal itu kemungkinan bisa menyebabkan kerusakan table.
  Kerusakan HardDisk
secara tibatiba
biasa terjadi, dan memiliki satu backup
database paling terakhir membuat proses recovery menjadi lebih mudah.


3.5.2 Prinsipprinsip
Backup
  Lakukan backup
secara rutin, dengan membuat jadwal back up.
  Instruksikan server untuk mengupdate
log (catatan). Update log melakukan

penambahan pada dump. Catatan ini yang nantinya dibutuhkan untuk
mengembalikan database ke status akhirnya saat sebelum database tersebut rusak.
  Gunakan FLUSH LOGS untuk memastikan bahwa update log terbaru sesuai
dengan file backup.
  Gunakan nama file yang konsisten dan mudah dimengerti dengan menyertakan
tanggal membackup
nya. Contoh :
COBA_DB.200060606
  Simpan file backup
Anda pada file system yang berbeda.

                                                                                       Halaman   | 50
   Backup
file backup
Anda menggunakan file system backup.


3.5.3 Metode Backup
Ada tiga cara melakukan backup:
  Copy secara langsung
  mysqldump
  mysqldhotcopy


3.5.3.1 Copy secara langsung
  Mysql menyimpan informasi database di subdirectori
pada direktori data.
  Melibatkan penyalinan direktori dari server.
  Sangat cepat (seperti menyalin file)
  Harus mengunci table dari acces penulisan, atau menon aktifkan server sebelum
menyalin file
  Tidak terlalu portable (mudah dipindahpindah)

3.5.3.2 mysqlhotcopy
   mysqlhotcopy dibuat oleh Tim Bunce dalam script PERL. Tools ini menggunakan LOCK
TABLES,FLUSH TABLES dan CP atau SCP untuk membackup
file dengan cepat.
   Ini merupakan cara tercepat untuk membackup
database atau single table, tapi hanya bisa
berjalan dalam mesin yang sama dimana database direktori terletak.
   Hanya bekerja di table tipe MyISAM.

Perhatikan syntax berikut :

shell> mysqlhotcopy db_name [/path/to/new_directory]
shell> mysqlhotcopy db_name1 … db_name_n [/path/to/new_directory]

Anda juga bisa mengcopy
semua file table (filefile
*.frm,*.MYD,*.MYI) selama server
tidak mengupdate
apapun. mysqlhotcopy menggunakan metode tersebut.

Proses ini tidak dapat bekerja jika dalam database tersebut memiliki tipe table InnoDB,
dikarenakan table InnoDB tidak menyimpan datanya di direktori data .


3.5.3.3 mysqldump
  Memperoleh data dari table dan/atau skema menggunakan perintah SQL .
  Bisa dipindah antara versi MySQL yang berbeda
  Mengizinkan juga untuk dipindah ke database yang lain.
  Lebih lambat jika dibandingkan dengan mysqlhotcopy
  Hasil dari file backup
cukup besar (text SQL), tapi bisa di kompress ke bzip atau
gzip.


Syntax :
mysqldump [options] db_name [tables] > backupfilename
mysqldump [options] databases
> backupfilename
mysqldump [options] –alldatabases
                                                                                          Halaman   | 51
> backupfilename
mysqldump [options] db_name [tables] > backupfilename
Diasumsikan, data yang akan di backup adalah table buku di database pustaka, perintahnya




Catatan : user yang bisa melakukan backup dengan metode mysqldump adalah user yang
memiliki izin ke database atau table tersebut.



Opsi – opsi mysqldump
Opsi Penjelasan
mysqldump pustaka | gzip >
/tmp/backup.gz
Untuk meng kompress file output SQL


nocreatedb
Perintah ‘CREATE DATABASE /*!32312
IF NOT EXIST*/ db_name’; tidak akan
disertakan dalam output SQL, tapi tetap
akan disertakan jika opsi alldatabases
atau databases
diberikan pada perintah
mysqldump sebelumnya.
Syntax :
mysqldump nocreatedb
db_name >
backupfilename


nocreateinfo
Tidak menuliskan perintah CREATE
TABLE untuk tiaptiap
table yang di salin.
(digantikan dengan perintah ALTER)
Syntax:
mysqldump nocreateinfo
backup
>backupfilename



nodata
tidak menuliskan data apapun ke baris
pada table. Ini berguna jika Anda hanya
ingin mendapatkan struktur dari table
tanpa isi nya
Syntax :
mysqldump nodata
db_name > backupfilename


Dumping lebih dari satu database
Syntax:
mysqldump databases
db1 db2 > backupfilename

                                                                                      Halaman   | 52
Restore Database
  Buat database kosong yang baru, bisa dari commandline
atau dari prompt.



  Arahkan path ke direktori tempat Anda menyimpan file backup sebelumnya,
kemudian ketik perintah berikut :




3.6 Replikasi
Replikasi memungkinkan tersedianya database lain yang keadaannya mendekati sama
dengan database tempat pertamakali terjadinya update data. Database lain itu disebut slave
dan database tempat pertamakali terjadinya update disebut master.

3.6.1 Memanfaatkan Replikasi pada MySQL versi 5.0
Contoh berikut, kita akan menggunakan mysql versi 5.0, diharapkan pengetahuan kita
terhadap mysql menjadi makin bertambah.
Tujuan dari pembuatan replikasi yaitu :
   Melakukan recovery jika suatu saat master crash atau terjadi kesalahan eksekusi
   Mengetahui potensipotensi
dari replikasi sekaligus menghindari kondisikondisi
yang
dapat menyebabkan masalah ketika menggunakan replikasi akibat keterbatasan
keterbatasan
dalam sistem replikasi tersebut.




3.10 Penutup
Jika data anda hilang, apapun database anda, anda tidak dapat menuntut manufaktur
software database untuk mengembalikan data tersebut bahkan software komersial bernilai
ribuan dollar sekalipun. Silakan periksa di License Agreement.
Apapun database anda, pastikan tersedia prosedur backup dan recovery yang dapat
diandalkan. Replikasi adalah salah satu cara membackup data yang dapat diandalkan.
MySQL memiliki sistem replikasi yang cukup andal dan mudah digunakan, jika kita dapat
mengenali keterbatasanketerbatasannya.
Tidaklah bijaksana jika hanya mengandalkan
replikasi semata untuk menyediakan backup, kita perlu menyediakan backup sekunder
sebagai antisipasi jika data replikasi tidak dapat digunakan
pada proses pemulihan.
Sebaiknya anda tidak mempelajari replikasi hanya dari tulisan ini saja, penting sekali
mendalami dari sumber aslinya yaitu Reference Manual MySQL 5.0, bab 6, sebelum
akhirnya memutuskan untuk menggunakan replikasi di server produksi anda.




                                                                                      Halaman   | 53
Halaman   | 54
Contoh Perancangan Database

     Contoh Aplikasi yang akan kita buat adalah pengolahan data Penjualan. Aplikasi Penjualan
melibatkan entitas barang, pembeli (customer). Dalam mengolah data dalam DBMS kita akan
menggunakan perintah SQL (Structure Query Language).

Rancangan ERD (Entity Relationship Diagram)




Keterangan ERD:
Customer membeli barang, satu customer boleh membeli banyak barang dan satu barang boleh dibeli
banyak customer sehingga ada hubungan many to many.

Relasi Antar Tabel
Dari Entity Relationship Diagram dapat disusun Relasi Antar Tabel sebagai berikut.




Keterangan:
Yang bergambar * (asterik) berarti berfungsi sebagai Primary Key, yang pada aplikasi
sebenarnya datanya tidak boleh ada yang sama. ** adalah Foreinger Key yang merupakan kunci
tamu (Primary Key ditabel lain).




Gambaran data ketika masuk ke dalam database.




                                                                                     Halaman   | 55
Struktur Tabel

Desain Tabel Customer




Desain Tabel Stock




Desain Tabel Transaksi




Desain Tabel Item




Hierarki Susunan Project Aplikasi menggunakan Visual Basic




                                                             Halaman   | 56
Create table
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
 (create_definition,...)‫‏‬
 [table_option ...]
 [partition_options]
CREATE TABLE NamaTabel (
NamaField1 TipeData [Ket],
...
NamaFieldn TipeData [Ket] )‫‏‬

create table anggota (
id_anggota varchar(10) primary key not null,
id_pelanggan varchar(10) not null,
bidang varchar(25),
foreign key (id_pelanggan) references pelanggan(id_pelanggan)‫‏‬
on update cascade on delete cascade
) ENGINE = INNODB;

ALTER TABLE Nama_Tabel <ACTION>
<ACTION> dapat berupa:
 Menambah field
 Mengubah field
 Menghapus field
 Menambah Constraint
 Menghapus Constraint

Contoh:
ALTER TABLE customer ADD kota varchar(30)‫‏‬
ALTER TABLE customer MODIFY COLUMN kota char(25)‫‏‬
Alter table customer drop column kota

DROP Nama_Objek
Contoh:
DROP TABLE Barang
DROP DATABASE Penjualan
Indexing
Index adalah object database yang digunakan untuk mempercepat operasi dalam tabel terutama pada
operasi select/retrieve data yang berisi key dan address dari suatu data. Index dipakai dalam query
apabila data dalam suatu tabel mulai meningkat, misalnya sampai ribuan bahkan sampai jutaan data.

Keuntungan pemakaian index adalah meningkatkan kecepatan dalam me-retrieve data suatu tabel.
Kerugiannya adalah jika dalam suatu tabel sering terjadi proses insert dan update data, proses tersebut
akan menjadi lambat karena setiap kali proses insert dan update, sistem database akan melakukan proses
peng-indexan ulang.

                                                                                      Halaman    | 57
Data mining
• Menemukan pola-pola tersembunyi maupun hubungan dalam sebuah database yang besar dan
  menghasilkan aturan-aturan yang berguna untuk menentukan perilaku di masa mendatang
• Menggunakan berbagai teknologi seperti Statistik, neural network, fuzzy logic, genetic algorithm dan
  yang lain

Contoh Aplikasi data mining
– Pemasaran
  • Mengidentifikasi pembelian oleh konsumen
  • Menemukan hubungan antara karakteristik demografi pelanggan
  • Memperkirakan tanggapan penawaran
– Bank
  • Mendeteksi penyalahgunaan kartu kredit
  • Mengidentifikasi tingkat loyalitas pelanggan
– Asuransi
  • Analisis klaim
  • Memperkirakan pelanggan yang akan membeli produk baru



Normalisasi database
Jika Anda bekerja dengan database, maka Anda harus familiar dengan istilah "normalisasi". Mungkin
orang sering bertanya kepada Anda, "apakah databasenya sudah dinormalisasi ?" atau, "apakah
databasenya dalam BCNF ?" . Namun dengan mengetahui prinsip-prinsip dari normalisasi, dan dengan
menerapkannya pada tugas-tugas desain database Anda maka semuanya itu bukanlah hal yang sulit, dan
dapat meningkatkan performa DBMS Anda.

Normalisasi adalah suatu proses mengefisiensikan pengorganisasian data dalam suatu database. Ada dua
tujuan dari proses normalisasi:
 Untuk mengeliminasi atau menghilangkan duplikasi data (menyimpan data yang sama kedalam lebih
    dari satu tabel)
 Untuk menjamin bahwa ketergantungan data dapat dimengerti atau masuk akal (hanya menyimpan
    data yang berhubungan dalam suatu tabel)
Kedua tujuan normalisasi tersebut mengurangi jumlah konsumsi space database, dan menjamin bahwa
data secara logika disimpan.

Komunitas database telah mengembangkan petunjuk-petunjuk untuk menjamin bahwa database
dinormalisasi. Itu semua diacu sebagai bentuk-bentuk normal atau Normal Forms (NF) dan serangkain
petunjuk tersebut diberi nomor dari nomor satu (bentuk normalisasi yang paling rendah) sampai nomor
lima (bentuk normal kelima atau 5NF). Dalam aplikasi-aplikasi praktis, Anda akan sering menemukan 1NF,
2Nf, dan 3NF kadang bersama dengan 4 NF. Bentuk normal kelima sangat jarang ditemukan. Bentuk
normal kesatu (1NF) menentukan aturan-tauran yang paling dasar untuk suatu pengaturan database:
 Menghilangkan duplikasi kolom-kolom dalam tabel yang sama
 Membuat table terpisah untuk setiap grup data yang berhubungan dan mengidentifikasi setiap baris
    dengan suatu kolom yang unik atau sekumpulan kolom yang unik (primary key)




Bentuk normal kedua (2NF) selanjutnya memusatkan perhatian pada konsep menghilangkan duplikasi
data:
 Menemukan semua syarat-syarat bentuk normal kesatu
 Hilangkan sub-set data yang diterapkan pada beberapa baris dari sebuah tabel dan letakkan kedalam
    tabel terpisah
 Buatlah relasi antara tabel-tabel baru dan tabel-tabel pendahulunya melalui penggunaan Foreign Keys

Bentuk normal ketiga (3NF) melakukan satu langkah besar selanjutnya:

                                                                                     Halaman    | 58
   Menemukan semua syarat-syarat bentuk normal kedua
   Menghilangkan kolom-kolom yang tidak secara langsung tergantung pada primary key

Terakhir, bentuk normal keempat (4NF) memiliki satu syarat tambahan:
 Menemukan semua syarat-syarat bentuk normal ketiga
 Suatu relasi adalah dalam bentuk normal keempat (4NF) jika relasi itu tidak memiliki ketergantungan
    banyak nilai (value)

Ingat, petunjuk normalisasi ini adalah bersifat komulatif. Untuk suatu database menjadi bentuk normal
kedua (2NF), pertama harus terpenuhi dahulu seluruh kriteria bentuk normal kesatu (1NF).

MySQL merupakan Database Management System SQL open source yang paling populer, yang
dikembangkan, didistribusikan, dan didukung oleh MySQL AB. MySQL AB adalah sebuah perusahaan
komersial, yang didirikan oleh para pengembang MySQL. MySQL AB adalah perusahaan open source
generasi kedua yang menyatukan nilai-nilai dan metodologi open source dengan suatu model bisnis yang
sukses.




                                                                                    Halaman    | 59

				
DOCUMENT INFO
Shared By:
Tags:
Stats:
views:13
posted:1/25/2013
language:Malay
pages:59