Modul Basis Data PDF
Modul Basis Data PDF
BASIS DATA I
IDENTITAS MAHASISWA
Nama
: ..................................................................Laki-laki/Perempuan*)
NIM
: .........................................................................
Tempat/
Tgl. Lahir
: .........................................................................
A lamat
: ........................................................................................................
..............................................................Telpon..............................
Semester/TA : .........................................................................
Kelas
: .
Tanda Tangan
Pasfoto
......................................
*) coret yang tidak perlu
PRAKATA
Dengan mengucapkan puji syukur ke hadirat Tuhan Yang Maha Esa, dan
oleh karena bimbingan dan penyertaan-Nya maka kami dapat menyelesaikan
penyusunan Modul Praktek Basis Data I. Dengan terselesainya penyusunan
Modul Praktek Basis Data I ini maka kami berharap kegiatan praktek yang
merupakan pelaksanaan dari teori yang sudah di dapat di bangku kuliah dapat
melengkapi ketrampilan mahasiswa dalam pelaksanaan tugas ketika bekerja di
unit rekam medis.
Tidak lupa pada kesempatan ini, kami juga mengucapkan banyak terima
kasih kepada semua pihak yang telah mendorong/menyemangati untuk segera
terselesainya modul ini. Tentu kami juga mengucapkan terima kasih Ketua
Program Studi Rekam Medis Sekolah Vokasi UGM yang sudah memberi
kesempatan kepada kami untuk menyusun Modul Praktek Basis Data I.
Akhir kata, tentunya kami menyadari masih ada kekurangan dalam penyusunan
Modul Praktek Basis Data I ini, untuk itu saran dan masukan yang sifatnya
membangun untuk lebih baiknya Modul ini sangat kami harapkan.
Tim penyusun
PERENCANAAN PEMBELAJARAN
1.
2.
3.
4.
Nama matakuliah
: Praktek Basis Data 1
Kode/SKS
: VMU1253/ 1 SKS
Semester
: Genap
Deskripsi Mata Ajaran
:
Mata kuliah ini untuk memberikan bekal pemahaman ketrampilan dalam
kegiatan tentang perancangan Basis Data yang efektif dan efisien serta
implementasinya dalam Aplikasi Database Manajemen Sistem (DBMS).
Perangkat yang dapat digunakan misalnya MySQL, Ms.Access, Dbase, Fox
Pro, SQL Server, PostgreSQL atau sejenisnya.
5. Tujuan Pengajaran
Setelah mengikuti mata ajaran ini, mahasiswa diharapkan dapat:
a. Menjelaskan model-model basis data
b. Merancang basis data yang efektif dan efisien
c. Implementasi basis data dengan perangkat lunak DBMS
d. Memahami perkembangan basis data konvensial ke modern
6. Garis Besar Mata Ajaran
a. Pengenalan Basis Data
b. Perancangan Basis Data Menggunakan Entity Relationship Diagram
(ERD)
c. Pengenalan MySQL
d. Data Definition Language (DDL)
e. Data Manipulation Language (DML)
f. Penggunaan JOIN dalam query database
g. Penggunaan FUNCTION dalam Dasis Data
h. Penggunaan Nested Query
i. Pembuatan VIEW dalam basis data
MATERI 1
PENGENALAN BASISDATA
Kompetensi:
Mahasiswa mampu membuat konsep basis data dan kapan memanfaatkan
basisdata serta mampu merancang basis data yang baik.
Maksud dan tujuan:
a. Mahasiswa mengerti dan memahami kapan memanfaatkan basis data
b. Mahasiswa mengerti dan memahami bagaimana merancang basisdata yang
baik.
Landasan teori:
Pengertian Basis Data
Basis data terdiri dari dua kata, yaitu basis dan data. Basis dapat
diartikan sebagai markas / gudang, tempat berkumpul. Sedangkan data adalah
sekumpulan fakta yang tidak dapat digunakan karena belum diolah yang terdapat
pada media penyimpanan dan diproses menjadi informasi yang dapat dimengerti
oleh manusia.
secara konsep, database atau basis data adalah kumpulan dari data-data
yang membentuk suatu berkas (file) yang saling berhubungan (relation) dengan
tatacara yang tertentu untuk membentuk data baru atau infromasi. Basis data
(database) juga dapat diartikan kumpulandari data yang saling berhubungan
(relation) antara satu dengan yang lainnya yang diorganisasikan berdasarkan
skema atau struktur tertentu.
Pada komputer, basis data disimpan dalam perangkat hardware penyimpanan,
dan dengan software tertentu dimanipulasi untuk kepentingan atau kegunaan
tertentu. Hubungan atau relasi data biasanya ditunjukkan dengan kunci (key) dari
tiap file yang ada.
Tujuan penggunaan basis data
1. Kecepatan dan Kemudahan (Speed)
Dengan basis data pengguna dapat menyimpan data, melakukan
perubahan/manipulasi terhadap data, menampilkan kembali data dengan
lebih cepat dan mudah dibandingkan dengan cara biasa (baik manual
ataupun elektronis).
2 Efisiensi Ruang Penyimpanan (Space)
Dengan basis data kita mampu melakukan penekanan jumlah redundansi
(pengulangan) data, baik dengan menerapkan sejumlah pengkodean atau
dengan membuat relasi-relasi (dalam bentuk file) antara kelompok data yang
saling berhubungan.
3 Keakuratan (Accuracy)
Agar data sesuai dengan aturan dan batasan tertentu dengan cara
memanfaatkan pengkodean atau pembentukan relasi antar data bersama
dengan penerapan aturan/batasan (constraint) tipe data, domain data,
keunikan data dsb.
4 Ketersediaan (Availability)
Data yang sudah tidak dipakai/kadaluwarsa dipisahkan dari sistem database
yang sedang aktif baik dengan cara penghapusan atau memindahkannya ke
media backup untuk menghemat ruang penyimpanan. Di sisi lain, juga
dilakukan pemanfaatan teknologi jaringan komputer agar data yang berada
di suatu lokasi/cabang daat juga diakses oleh lokasi/cabang lainnya.
5 Kelengkapan (Completeness)
Agar data yang dikelola senantiasa lengkap baik relatif terhadap kebutuhan
pemakai maupun terhadap waktu. Untuk itu tidak hanya dengan melakukan
penambahan record-record data, tapi juga melakukan perubahan struktur
pada basis data (jika perlu) baik menambah field pada tabel ataupun bahkan
menambah tabel baru.
6 Keamanan (Security)
Walaupun tidak semua sistem basis data menerapkannya, keamanan dalam
penggunaan basis data diperlakukan pada sistem yang besar dan serius.
Dengan penerapan ini, setiap pengguna dibedakan hak aksesnya; yakni
ditentukan obyek-obyek mana saja yang bisa diakses dan proses apa saja
yang bisa dia dilakukan.
7 Kebersamaan (Sharability)
Agar data yang dikelola oleh sistem mendukung lingkungan multiuser
(banyak pemakai) dengan menjaga / menghindari munculnya problem baru
seperti inkonsistensi data(karena terjadi perubahan data yang dilakukan oleh
beberapa user dalam waktu yang bersamaan) atau kondisi deadlock (karena
ada banyak pemakai yang saling menunggu untuk menggunakan data).
Operasi dasar pembuatan Basis data :
1) Pembuatan Basis Data (Create Database)
Identik dengan pembuatan lemari arsip yang baru.
2) Penghapusan Basis Data (Drop Database)
Identik dengan perusakan lemari arsip (sekaligus beserta isinya, jika ada)
3) Pembuatan File/Table baru ke suatu basis data (Create Table)
Identik dengan penambahan map arsip baru ke sebuah lemari arsip yang
telah ada.
4) Penghapusan File/Table dari suatu basis data (Drop Table)
Identik dengan perusakan map arsip lama yang ada di sebuah lemari arsip.
5) Penambahan data baru ke suatu file/table di sebuah basis data (insert)
Identik dengan penambahan lembaran arsip baru kesebuah map arsip.
6) Pengambilan data dari sebuah file/table (Retrieve/Search)
Identik dengan pencarian lembaran arsip dari sebuah map arsip.
7) Pengubahan data dari sebuah file/table (Update)
Identik dengan perbaikan isi lembaran arsip yang ada di sebuah map arsip.
8) Penghapusan data dari sebuah file/table (Delete)
Identik dengan penghapusan sebuah lembaran arsip yang ada di sebuah
map arsip.
Hirarki Data
Berdasarkan tingkat kompleksitas nilai data, tingkatan data dapat disusun
kedalam sebuah hirarki, mulai dari yang paling sederhana hingga yang paling
komplek.
a) basis data, merupakan sekumpulan dari bermacam-macam tipe record
yang memiliki hubungan antar record.
b) berkas/file, merupakan sekumpulan rekaman data yang berkaitan
denngan suatu objek.
c) record , merupakan sekumpulan field/atribut/data item yang saling
berhubungan terhadap obyek tertentu
fixed length record, semua field dalam record memiliki ukuran yang
tetap.
Variabel length record, field-field dalam record dapat memiliki ukuran
berbeda (metode penandaan yang digunakan adalah : end of record
marker, indikator panjang, dan tabel posisi record)
d) field/atribut/data item, merupakan unit terkecil yang disebut data yang
tidak dapat dipecah lagi menjadi unit lain yang bermakna.
fixed length field, memiliki ukuran yang tetap.
variabel length field, field-field dalam record dapat memiliki ukuran
berbeda.
e) byte, adalah bagian terkecil yang dialamatkan dalam memori. byte
mrupakan sekumpulan bit yang secara konvensional terdiri atas kombinasi
delapan bit yang menyatakan sebuah karakter dalam memori (I byte= I
karakter)
f) bit, adalah sistem binner yang terdiri atas dua macam nilai, yaitu 0 dan 1.
sistem binner merupakan dasar yang dapat digunakan untuk komunikasi
antara manusia dan mesin, yang merupakan serangkaian komponen
elektronik dan hanya dapat membedakan 2 macam keadaan, yaitu ada
tegangan dan tidak ada tegangan yang masuk ke rangkaian tersebut.
Pemanfaaatan Ilmu Basis Data
Bidang Fungsional :
Kepegawaian
Pergudangan
Akuntansi
Reservasi
Layanan pelanggan
Bentuk Perusahan :
Perbankan
Rumah sakit
Produsen barang
Sekolah
Telekomunikasi
Perancangan Basis Data
Untuk merancang basis data kita perlu mengetahui terlebih dahulu komponenkomponen basis data tersebut. Komponen yang paling penting adalah entitas
dan atribut.
1. Entitas
Entitas digunakan untuk menerapkan integritas pada tingakt entity (tabel),
agar setiap instance (record/baris) pada sustu entity bersifat unique yang
disebut sebagai primary key sehingga dapat dibedakan antara yang satu
dengan yang lainnya.
Contohnya :
a. Semua pelanggan atau pelanggan saja dengan entitas Ani, Budi,
Amin dan seterusnya
b. Semua mobil atau mobil apa saja dengan entitas mobil kijang, starlet dan
lain-lain
c. Semua mahasiswa atau mahasiswa saja dengan entitas Eti, Ahmad dll
2. Atribut
Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik
dari entitas tersebut. Penentuan/pemilihan atribut-atribut yang relevan
bagi sebuah entitas
merupakan hal penting lainnya dalam
pembentukan model data. Penetapan atribut bagi sebuah entitas
umumnya memang didasarkan pada fakta yang ada. Tetapi tidak selalu
sepeti itu. Istilah atribut sebenarnya identik dengan pemakaian kolom data.
Macam-macam atribut :
a. Atribut deskriptif
Adalah atribut-atribut yang tidak menjadi atau merupakan anggota
dari primary key. Contoh : atribut-atribut nama_mhs, alamat_mhs dan
tanggal_lahir
b. Atribut sederhana dan atribut komposit
Atribut sederhana adalah atribut atomic yang tidak dapat diuraikan
lagi. Sedangkan atribut komposit adalah atribut yang masih dapat
diuraikan lagi menjadi sub-sub atribut yang masing-masing memiliki
makna.Contoh atribut sederhana: atribut nama_mhs
Contoh atribut komposit: atribut alamat_mhs dimana alamat masih
dapat diuraikan lagi menjadi alamat, nama kota, kode pos yang
masing-masing memiliki makna
c. Atribut bernilai tunggal dan atribut bernilai banyak
Atribut yang bernilai tunggal ditujukan pada atribut-atribut yang
memiliki paling banyak satu nilai untuk setiap basis data.
Contoh atribut bernilai tunggal : nim, nama_mhs, alamat_mhs dan
tgl_lahir karena atribut-atribut tersebut hanya dapat bernilai satu nilai.
Contoh atribut bernilai banyak : atribut hobi karena bisa diisi dengan
banyak nilai. Seseorang bisa memiliki hobi lebih dari satu.
d. Atribut harus bernilai
Ada sejumlah atribut pada sebuah tabel yang kita tetapkan harus
berisi data. Jadi nilainya tidak boleh kosong (mandatory atribut).
Contoh : nim, nama_mhs karena setiap mahasiswa yang ingin
datanya disimpan di tabel tersebut paling tidak harus diketahui nama
dan nimnya.
e. Atribut turunan
Atribut turunan adalah atribut yang nilai-nilainya diperoleh dari
pengolahan atau dapat diturunkan dari atribut atau tabel lain yang
berhubungan. Contoh penambahan atribut angkatan dan ip.
f.
Normalisasi
Dalam perancangan basis data perlu dilakukan secara cermat agar
dihasilkan basis data yang kompak dan efisien dalam penggunaan
ruang penyimpanan, cepat dalam pengaksesan dan mudah dalam
manipulasi data. Salah satu cara yang dapat dilakukan dalam
merancang basis data adalah dengan melakukan normalisasi.
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi
10
LATIHAN/KASUS
MEMAHAMI BASIS DATA
Alat dan bahan praktikum:
a. Modul praktikum
b. Kertas HVS
c. ATK
d. Internet
Kegiatan praktikum:
a. Masing-masing mahasiwa membentuk kelompok paling banyak 4 orang per
kelompok dan menunjuk salah satunya sebagai ketua kelompok.
b. Setiap kelompok membuat pembahasan dan mencari contoh-contoh
penggunaan database di lingkungan rekam medis.
c. Setiap kelompok membuat pembahasan tentang pentingnya database dalam
pengelolaan berkas.
d. Masing-masing kelompok memaparkan hasil diskusi yang telah dilakukan
kepada kelompok lain dan saling memberikan penjelasan, argumentasi, kritik,
dan saran.
Penilaian:
a. Penilaian didasarkan pada proses diskusi, cara pengambilan keputusan, dan
detail sebuah perencanaan.
b. Nilai kelompok menjadi nilai individu.
Kasus:
Jelaskan pengertian, tujuan penggunaan, serta operasi dasar pembuatan basis
data!
11
MATERI 2
ERD
Kompetensi:
Mahasiswa mampu merancang suatu basis data yang baik.
Maksud dan tujuan:
a. Mahasiswa mengerti dan memahami simbol-simbol dalam perancangan
basis data
b. Mahasiswa mengerti dan memahami bagaimana merancang basisdata yang
baik.
Landasan teori:
Entity Relationship Diagram (ERD) merupakan salah satu bentuk pemodelan
basis data yang sering digunakan dalam pengembangan sistem informasi. Dalam
rekayasa perangkat lunak, sebuah Entity Relationsip Model (ERM) merupakan
abstrak dan konseptual representasi data. Entity Relationship adalah salah satu
metode pemodelan basis data yang digunakan untuk menghasilkan skema
konseptual untuk jenis/model data semantic system. Dimana system seringkali
memiliki basis data relasional, dan ketentuannya bersifat top-down. Diagram
untuk menggambarkan model Entity Relationship ini disebut Entity Relationship
Diagram , ER diagram, atau ERD.
ERD menyediakan notasi-notasi grafis untuk merepresentasikan model-model
data dalam bentuk Entity Relationship Diagram. Model-model data tersebut biasa
digunakan pada desain sistem informasi tingkat pertama, contohnya untuk
mendeskripsikan kebutuhan informasi dan tipe informasi yang ingin disimpan
pada basis data selama analisa.
Dalam pembentukan ERD terdapat 3 komponen yang akan dibentuk yaitu :
a. Entitas
Pengertian entity (entitas) yaitu suatu obyek yang dapat dibedakan dari
lainnya yang dapat diwujudkan dalam basis data. Pengertian lainnya
menurut Brady dan Loonam (2010), entitas adalah objek yang menarik di
bidang organisasi yang dimodelkan. Sekelompok entitas yang sejenis dan
berada dalam lingkup yang sama akan membetuk sebuah Himpunan
Entitas. Tetapi dalam penyebutannya, himpunan entitas ini tidak praktis
sehingga sering disebut entitas saja. Contoh : Mahasiswa, Kartu Anggota
Perpustakaan (KAP), dan Buku.
Varian Entitas:
1. Himpunan Entits Kuat (Strong Entity Sets)
Himpunan entitas ini tidak memiliki ketergantungan dengan enntitas
lainnya. Himpunan entitas inilah yang biasanya dipakai dalam ERD.
2. Himpunan Entitas Lemah (Weak Entity Sets)
Himpunan entitas ini berisi entitas-entitas yang kemunculannya
tergantung pada eksistensinya dalam sebuah relasi terhadap entitas
lain. Biasanya entitas ini tidak memiliki atribut key.
3. Sub-Entitas (Subtype Entity)
Himpunan entitas ini beranggotakan entitas-enttas yang merupakan
bagian dari himpunan entitas yang lebih superior/utama. Entitas ini
merupakan
hasil dekomposisi (spesialisasi) himpunan entitas
berdasarkan pengelompokkan tertentu.
12
b. Hubungan (relasi/relationship)
Suatu hubungan (relasi) adalah hubungan antara dua jenis entitas dan
direpresentasikan sebagai garis lurus yang menghubungkan dua entitas.
Sekelompok relasi yang sejenis dan berada dalam lingkup yang sama
akan membetuk sebuah Himpunan Relasi. Tetapi dalam penyebutannya,
himpunan entitas ini tidak praktis sehingga sering disebut relasi saja.
Contoh : Mahasiswa mendaftar sebagai anggota perpustakaan (KAP),
relasinya adalah mendaftar.
c. Atribut
Atribut memberikan informasi lebih rinci (karakteristik) tentang jenis
entitas. Penentuan atribut-atribut yang relevan bagi sebuah entitas
merupakan hal yang penting dalam pembentukan model data. Penetapan
ini biasanya memang didasarkan pada fakta yang ada. Tetapi karena
proses normalisasi atau pertimbangan-pertimbangan tertentu, ada
sejumlah atribut yang tidak berdasar fakta tetapi perlu ditambahkan.
Atribut memiliki struktur internal berupa tipe data. Jenis-jenis atribut :
a. Atribut Key
Atribut Key adalah satu atau gabungan dari beberapa atribut yang
dapat membedakan semua baris data ( Row/Record ) dalam tabel
secara unik. Dikatakan unik jika pada atribut yang dijadikan key
tidak boleh ada baris data dengan nilai yang sama Contoh : Nomor
pokok mahasiswa (NPM), NIM dan nomor pokok lainnya
b. Atribut simple
Atribut yang bernilai atomic, tidak dapat dipecah/ dipilah lagi.
Contoh : Alamat, penerbit, tahun terbit, judul buku.
c. Atribut Multivalue
Nilai dari suatu atribut yang mempunyai lebih dari satu (multivalue)
nilai dari atribut yang bersangkutan Contoh : dari sebuah buku,
yaitu terdapat beberapa pengarang.
d. Atribut Composite
Atribut composite adalah suatu atribut yang terdiri dari beberapa
atribut yang lebih kecil yang mempunyai arti tertentu yang masih
bisah dipecah lagi atau mempunyai sub attribute. Contoh : dari
entitas nama yaitu nama depan, nama tengah, dan nama belakang
e. Atribut Derivatif
Atribut yang tidak harus disimpan dalam database Ex. Total. atau
atribut yang dihasilkan dari atribut lain atau dari suatu relationship.
Atribut ini dilambangkan dengan bentuk oval yang bergaris putusputus
Notasi-notasi dasar pada Entity Relationship Diagram (ERD) :
13
Relational
Relational adalah hubungan antara entity. Semisal pada contoh di atas entity
manusia mempunyai hubungan dengan entity alamat yaitu tinggal di. Di dalam
merancang database hendaknya seluruh entity yang ada mempunyai hubungan
dengan entity yang lain, minimal satu. Jika ada entity dalam database yang
tidak mempunyai hubungan dengan satupun entity yang lain, maka akan timbul
kesalahan dalam desain. Biasanya entity yang tidak berhubungan akan
dihilangkan.
Macam relasi ada 4, antara lain :
1. One to one : Sebuah entitas A yang berpasangan dengan tepat satu
entitas B. Demikian pula entitas B juga berpasangan tepat satu dengan
entitas A. Contoh entitas mahasiswa yang berelasi dengan entitas skripsi
secara one to one.
2. One to many : Sebuah entitas A yang berpasangan secara banyak (nol
atau lebih) dengan entitas di dalam B. Sedangkan entitas B hanya
berpasangan dengan tepat satu entitas di dalam A. Contoh : entitas
mahasiswa yang berelasi dengan entitas dosen dalam hubungan dosen
pembimbing. Relasi yang terjadi secara one to many. Karena seorang
mahasiswa hanya memiliki 1 dosen pembimbing. Sedangkan seorang
dosen bisa jadi memiliki mahasiswa bimbingan lebih dari satu.
3. Many to one : Sebuah entitas A yang berpasangan dengan tepat satu
entitas di dalam B. Sedangkan entitas B dapat berpasangan secara
banyak (nol atau lebih) dengan entitas di dalam A. (sama seperti one to
many hanya dibalik pengertiannya)
14
15
LATIHAN/KASUS
ERD
Alat dan bahan praktikum:
a. Modul praktikum
b. Kertas HVS
c. ATK
d. Komputer yang sudah terinstal software visio
Kegiatan praktikum:
Kegiatan 1: Membuat ERD
Pada kegiatan ini, digunakan contoh kasus sebagai berikut:
Sebuah perusahaan mempunyai beberapa bagian. Masing-masing bagian
mempunyai pengawas dan setidaknya satu pegawai. Pegawai ditugaskan
disatu bagian (dapat pula dibeberapa bagian). Satu pegawai mendapat
tugas disuatu proyek. Tetapi seorang pegawai dapat libur dan tidak dapat
tugas diproyek.
Step 1 : Menentukan entitas.
Menentukan peran, kejadan lokasi, hal nyata dan konsep dimana
penggunaan untuk menyimpan data. Dalam kasus ini maka entitasnya:
pengawas, bagian, pegawai, proyek.
Step 2 : Menentukan relasi.
Menentukan hubungan antar pasangan entitas
relasi.
Bagian
Pegawai
Bagian
Ditugaskan
ke
Pegawai
milik
Pengawas
Proyek
menggunakan matriks
Pengawas
Dijalankan
oleh
Proyek
Bekerja
pada
menjalankan
Melibatkan
16
17
18
MATERI 3
MySQL
Kompetensi:
Mahasiswa mampu merancang suatu basis data yang baik.
Maksud dan tujuan:
a. Mahasiswa mengerti dan memahami simbol-simbol dalam perancangan basis
data
b. Mahasiswa mengerti dan memahami bagaimana merancang basisdata yang
baik.
Landasan teori:
MySQL merupakan software sistem manajemen database (Database
Management System, DBMS) yang sangat popular. MySQL bersifat open
source. Website MySQL www.mysql.com menyediakan informasi terkini
tentang MySQL.
Pengelolaan database dapat dilakukan dengan menggunakan perintahperintah SQL (Structure Query Language), bahasa yang khusus digunakan
untuk melakukan akses database relasional.
Perintah SQL dikelompokkan menjadi :
1. DDL (Data Definition Language)
DDL merupakan perintah yang digunakan untuk membuat dan
mendefinisikan database dan struktur datanya.
2. DML (Data Manipulation Language)
DML adalah perintah yang digunakan untuk melakukan manipulasi atau
pengelolaan data yang ada dalam database.
3. DCL (Data Control Language)
Membuat Database
Dalam membuat database, yang sangat penting untuk diperhatikan adalah
penulisan nama database tidak boleh menggunakan spasi dan karakter
non standar. Bentuk penulisan untuk membuat database adalah :
CREATE DATABASE nama_database;
Catatan :
Dalam
penulisan
nama
database
tidak
diperbolehkan
menggunakan spasi atau karakter khusus lainnya.
SHOW DATABASES;
19
2. Mengaktifkan database
Setelah database dibuat, untuk dapat menggunakannya diperlukan
perintah USE. Perintah ini selalu digunakan setiap user/pengguna akan
mengakses table-table yang ada di dalamnya. Struktur penulisannya
adalah sebagai berikut:
USE nama_database;
3. Menghapus database
Untuk menghapus database yang tidak dipakai atau database yang
rusak, pengguna dapat mengunakan perintah DROP. Struktur penulisan
untuk menghapus database adalah sebagai berikut :
DROP DATABASE nama_database;
Tabel
Membuat tabel
Struktur penulisan untuk menghapus database adalah sebagai berikut :
CREATE TABLE
Keterangan
TINYINT
SMALLINT
MEDIUMINT
INT
INTEGER
20
BIGINT
FLOAT
DOUBLE
DOUBLE
PRECISION
REAL
DECIMAL(M,D)
NUMERICAL(M,D)
Tipe Data
DATETIME
DATE
Ukuran 3 byte. Tanggal dengan jangkauan dari 100-0101 sampai dengan 9999-12-31
TIMESTAMP
TIME
YEAR
21
Tipe Data
CHAR(M)
VARCHAR(M)
TINYBLOB,
TINYTEXT
BLOB,TEXT
LONGBLOB,
LONGTEXT
24
L+3 byte, dengan L 2
. Tipe TEXT atau BLOB
dengan panjang maksimum 16777215 karakter
L+4 byte, dengan L 232 . Tipe TEXT atau BLOB
dengan panjang maksimum 4294967295 karakter
ENUM(nilai1,
nilai2,)
Ukuran
1
atau
2
byte
tergantung
enumerasinya (maksimum 65535 nilai)
SET(nilai1,
nilai2, )
MEDIUMBLOB,
MEDIUMTEXT
jumlah
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi
22
LATIHAN/KASUS
MySQL
Alat dan bahan praktikum:
a. Modul praktikum
b. Alat Tulis
c. Komputer yang sudah terinstal MySql
Kegiatan praktikum:
1. mengarahkan alamat directory Windows Command Processor pada folder bin
yang ada di dalam folder utama MySQL Server. Apabila instalasi dilakukan
dengan benar, perintah untuk server MySQL seperti mysql, mysqld,
mysqladmin, dan sejenisnya dapat dijalankan ketika alamat Command
Processor berada pada directory bin tersebut. Contoh alamat bin pada
MySQL:
C:\Program Files\MySQL\MySQL Server 5.6\bin>
2. masuk sebagai sebagai user MySQL
mysql u root
3. Buat Database Puskesmas
4. Buat Tabel Pasien (noRM, nama, alamat, tanggalLahir), Dokter(noDokter,
nama, spesialisasi)
Penilaian:
a. Keaktifan mahasiswa dalam praktikum
b. Kemampuan dalam menangkap dan menjalankan perintah Instruktur
Kasus:
Buatlah tabel salary dengan deskripsi tabel sebagai berikut:
Atribut
Tipe
NULL
emp_no
int(11)
No
salary
int(11)
No
from_date
date
No
to_date
date
No
23
LEMBAR KERJA
24
MATERI 4
DDL
Kompetensi:
Mahasiswa mampu merancang suatu basis data yang baik.
Maksud dan tujuan:
a. Mahasiswa mengerti dan memahami simbol-simbol dalam perancangan
basis data
b. Mahasiswa mengerti dan memahami bagaimana merancang basisdata yang
baik.
Landasan teori:
1. Membuat tabel
Struktur penulisan untuk menghapus database adalah sebagai berikut :
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(create_definition,...)
[table_option ...]
[partition options]
TABLE
nama_tabel
CHANGE
nama_field_lama
nama_filed_baru tipe_data;
4.
25
5.
Penambahan field
Struktur tabel akan tambah dengan bertambahnya field/kolom baru
didalamnya. Struktur penulisan :
ALTER TABLE nama_tabel ADD nama_field tipe_data_baru;
6.
Penghapusan field
Struktur tabel mengalamai perubahan akibat berkurangnya field/kolom
tertentu. Struktur penulisan :
ALTER TABLE nama_tabel DROP COLUMN namafield;
8. Menghapus tabel
Tabel dapat saja dihapus karena sudah tidak dibutuhkan lagi atau terjadi
kesalahan. Perintah untuk menghapus tabel adalah drop table. Struktur
penulisan :
DROP TABLE nama_tabel;
PRIMARY KEY
Dari contoh pembuatan tabel dept_emp terdapat pendefinisian key berupa
PRIMARY KEY, KEY, dan FOREIGN KEY. Untuk mendefinisikan PRIMARY KEY
pada CREATE TABLE perintah umumnya adalah sebagai berikut:
PRIMARY KEY (nama_kolom);
Apabila yang akan menjadi PRIMARY KEY lebih dari satu kolom maka kolomkolom yang disebutkan didalam tanda kurung dipisahkan dengan tanda koma (,).
Walaupun dimungkinkan untuk menggunakan lebih dari satu kolom sebagai
PRIMARY KEY, sebisa mungkin gunakan satu kolom saja yang bersifat unik.
Kalau tidak ada satu kolom unik yang dapat menjadi PRIMARY KEY, pilihan lain
selain menggunakan lebih dari satu kolom adalam menambahkan attribut/kolom
pembantu (ID) sebagai PRIMARY KEY.
FOREIGN KEY
Pendefinisian FOREIGN KEY agak lebih rumit dari PRIMARY KEY. Karena
dalam satu tabel dimungkinkan terdapat lebih dari satu FOREIGN KEY, maka
FOREIGN KEY harus ada namanya. Hal ini untuk mempermudah identifikasi
FOREIGN KEY terutama apabila akan ada penghapusan FOREIGN KEY.
Perintah umum pendefinisian FOREIGN KEY pada CREATE TABLE adalah:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
Pilihan untuk reference_option adalah:
RESTRICT | CASCADE | SET NULL | NO ACTION
Keterangan:
CASCADE: apabila dilakukan DELETE atau UPDATE pada tabel induk,
maka kolom pada tabel yang mengacunya juga akan dikenakan operasi
yang sama.
26
SET NULL: apabila dilakukan DELETE atau UPDATE pada tabel induk,
maka kolom pada tabel anak (tabel yang mengacunya akan) diset
nilainya menjadi NULL.
RESTRICT: operasi DELETE dan UPDATE tidak boleh dilakukan pada
tabel induk apabila nilai kolom tabel induk masih diacu oleh kolom tabel
anak yang mengacunya.
No ACTION: sama dengan RESTRICT.
Perlu diperhatikan:
- Fitur FOREIGN KEY hanya dapat diterapkan apabila tabel induk dan
tabel anak menggunakan storage engine yang sama (contoh: InnoDB).
- Kolom yang dapat diacu sebagai FOREIGN KEY (kolom pada tabel
induk) harus terdapat dalam sebuah index.
- FOREIGN KEY tidak dapat diterapkan pada tabel sementara (temporary
table).
- Tipe data kolom tabel induk yang diacu dan tipe data kolom tabel anak
yang mengacu harus mirip (atau sama) dan sesuai; dapat menampung
semua kemungkinan nilai data.
Keterangan lebih lanjut tentang FOREIGN KEY dapat dilihat pada MySQL
Reference Manual pada bagian Using FOREIGN KEY Constraints.
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi
27
LATIHAN/KASUS
MySQL
28
c. Perintah SQL untuk menghapus primary key pada tabel pasien yaitu :
Alter table pasien drop constraint pk_kodpsn
Kegiatan 2
1. Buatlah tabel pasien dengan kolom berupa nama pasien, nomor rekam
medis, alamat dan jenis kelamin !
2. Mengubah field id_periksa menjadi id_berobat !
3. Menambahkan kolom biaya pada tabel periksa !
4. Menghapus kolom biaya dari tabel periksa !
5. Merelasikan field no_rm pada tabel periksa dengan field no_rm pada tabel
pasien!
6. Mengubah nama tabel pasien menjadi tabel pengunjung !
Penilaian:
a. Keaktifan mahasiswa dalam praktikum
b. Kemampuan dalam menangkap dan menjalankan perintah Instruktur
Kasus:
1. Buatlah tabel salary dengan deskripsi tabel sebagai berikut:
Atribut
Tipe
NULL
emp_no
int(11)
No
salary
int(11)
No
from_date
date
No
to_date
date
No
2. Set emp_no dan from_date sebagai PRIMARY KEY!
3. Set emp_no sebagai FOREIGN KEY yang mengacu pada kolom emp_no
di tabel employees dengan aksi ON DELETE CASCADE!
4. Lihat deskripsi tabel salary dan lihat perintah pembuatan tabel (CREATE
TABLE) salary yang telah dibuat!
29
LEMBAR KERJA
30
MATERI 5
DML
Kompetensi:
Mahasiswa mampu
memanipulasi data.
menggunakan
sintak-sintak
di
MySql
untuk
Nama_tabel adalah tabel yang akan diisi data. Field1, field2, field3,
adalah field-field (kolom) dari tabel yang akan diisi. Nilai1, nilai2, nilai3,
adalah data yang akan dimasukkan ke dalam tiap kolom yang disebutkan
pada bagian field.
Penulisan nilai1, nilai2, nilai3 disesuaikan dengan tipe datanya jika
tipe data merupakan kelompok tipe data karakter maka data harus diapit
dengan menggunakan tanda petik (apostrophe).
Perintah insert dapat juga dituliskan langsung sebagai berikut :
INSERT INTO nama_tabel VALUES(nilai1 [,nilai2 [,..]]);
31
2.
UPDATE
Perintah :
UPDATE
nama_tabel
SET
[WHERE kondisi];
3.
DELETE
Perintah:
DELETE FROM nama_tabel [WHERE kondisi];
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi
Sekolah Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL.
Yogyakarta. Andi
32
LATIHAN/KASUS
MySQL
Kegiatan praktikum:
Kegiatan 1
1. Berikut ini merupakan pembuatan database terlebih dahulu.
Create database nama_basis_data;
Contoh :
Create database swalayan;
33
Kegiatan 2
1. Buatlah tabel pembeli dengan kolom berupa nid, nama_pembeli dan alamat!
2. Buatlah tabel transaksi dengan kolom no_transaksi, tgl_transaksi,
nama_barang, dan harga!
3. Gantilah alamat Agus menjadi bali !
4. Hapus data ani!
Penilaian:
a. Keaktifan mahasiswa dalam praktikum
b. Kemampuan dalam menangkap dan menjalankan perintah Instruktur
34
Kasus:
1. Buatlah tabel PEMBELI DAN TRANSAKSI dengan deskripsi tabel
sebagai berikut:
Tabel pembeli
+------+--------------+---------+
| nid | nama_pembeli | alamat |
+------+--------------+---------+
| 123 | ani
| jogja |
| 345 | budi
| jakarta |
| 234 | agus
| bandung |
+------+--------------+---------+
Tabel transaksi
+------+--------------+---------------+-------------+--------+
| nid | no_transaksi | tgl_transaksi | nama_barang | harga |
+------+--------------+---------------+-------------+--------+
| 123 | D002
| 2014-05-12 | tas
| 100000 |
| 234 | D000
| 2014-05-27 | sepatu
| 126000 |
| 123 | D010
| 2014-06-06 | buku
| 50000 |
| 345 | D015
| 2014-06-09 | baju
| 90000 |
+------+--------------+---------------+-------------+--------+
35
MATERI 6
DML (2)
Kompetensi:
Mahasiswa mampu menggunakan sintak-sintak di MySql untuk memanfaatkan
dan memanipulasi data..
Maksud dan tujuan:
a.
b.
Landasan teori:
Perintah yang digunakan untuk menampilkan data adalah SELECT. Perintah ini
akan menampilkan baris data yang ada pada basis data dalam bentuk tabel.
Perintah SELECT tidak akan merubah data maupun struktur tabel yang
disimpan. Untuk menampilkan data secara lengkap dari sebuah tabel digunakan
perintah:
37
Kata kunci IN dapat digunakan apabila persyaratan nilai kolom yang diinginkan
lebih dari satu. Kata kunci IN juga dapat digunakan untuk membuat subquery
yang akan dibahas pada sub-bab nested query. Berikut adalah contoh
penggunaan kata kunci IN untuk menampilkan data pegawai yang mempunyai
merupakan
mendefinisikan
kata
suatu
kunci
dalam
criteria yang
SQL
yang
digunakan
untuk
dinyatakan dengan menggunakan LIKE dapat memfilter data sehingga kita dapat
menampilkan suatu kriteria seolah dengan menggunakan bahasa inggris.
Kriteria yang dibentuk juga dapat digunakan untuk melakukan pemfilteran
data secara mudah dengan menggunakan tanda %, yang memerintahkan agar
database mencari semua data yang memiliki karakter apa saja, karena %
mewakili karakater apa saja.
Perintah ini akan menampilkan seluruh record dalam tabel yang memiliki
data dalam nama field yang disebutkan sama dengan data_yang_dicari.
Perintah ini sama seperti menggunakan perintah select yang menggunakan
tanda sama dengan pada bagian kondisi.
SELECT * FROM nama_tabel WHERE nama_field LIKE data_yang_dicari%;
Perintah ini akan menampilkan seluruh record dalam tabel yang memiliki
data dalam nama_field yang disebutkan diawali dengan data_yang_dicari.
SELECT * FROM nama_tabel WHERE nama_field LIKE %data_yang_dicari;
Perintah ini akan menampilkan seluruh record dalam tabel yang memiliki
data
dalam
nama_field
yang
disebutkan
pada
bagian
akhirnya
ada
data_yang_dicari.
38
Perintah ini akan menampilkan seluruh record dalam tabel yang data
dalam nama_field yang disebutkan mengandung data_yang_dicari. %
di awal dan % di akhir menunjukkan agar database mencarikan semua
record yang di awal atau di akhir data pada nama field yang
disebutkan terdiri atas karakter apa saja asalkan ada data_yang_dicari
dalam field tersebut.
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi
39
LATIHAN/KASUS
MySQL
Alat dan bahan praktikum:
a. Modul praktikum
b. Alat Tulis
c. Komputer yang sudah terinstal MySql
Kegiatan praktikum:
Kegiatan 1
2.
dalam
nama_field
yang
disebutkan
diawali
dengan
data_yang_dicari
SELECT * FROM nama_tabel WHERE nama_field LIKE
data_yang_dicari%;
4. Selanjutnya menampilkan seluruh record dalam tabel yang memiliki
40
disebutkan
terdiri
atas
karakter
apa
saja
asalkan
ada
Penilaian:
a. Keaktifan mahasiswa dalam praktikum
Tabel Mahasiswa
NIU
Nama
00114 Alfi
01052 Wahyu
01104 Syifa
00888 Anik
00993 Agnes
00066 Derti
00287 Syifa
01040 Dahlia
Prodi
Rekmed
Rekmed
Pend. Dokter
Gizi
Ilkom
Kimia
Matematika
Statistika
Tabel Kelas MK
Kode Nama
A
Agama
B
Basdat
C
KKPMT
Tabel KRS
NIU
00114
01052
01104
01052
01104
00993
00066
00287
01040
Kode
A
A
A
B
B
B
C
C
C
Nilai
A
B
A
B
A
B
A
C
A
41
42
MATERI 7
JOIN
Kompetensi:
Mahasiswa mampu menampilkan data dari 2 atau lebih tabel.
Maksud dan tujuan:
c. Mahasiswa mengerti dan memahami join basis data
d. Mahasiswa mengerti dan memahami bagaimana menampilkan data dari 2
atau lebih tabel..
Landasan teori:
JOIN
Table references atau disebut juga JOIN pada MySQL adalah sebuah cara untuk
menggabungkan dua buah tabel atau lebih dengan persyaratan tertentu yang
telah definisikan pada perintah SQL.
INNER JOIN
INNER JOIN, CROSS JOIN, dan JOIN pada MySQL mempunyai peranan yang
sama dan dapat menggantikan satu sama lain. Tipe JOIN ini adalah yang paling
sederhana dan relatif paling mudah dipahami. INNER JOIN menampilkan seluruh
data pada tabel pertama (tabel kiri) yang mempunyai kecocokan dengan tabel
kedua (tabel kanan). Representasi visual dari tipe JOIN ini adalah sebagai
berikut:
INNER JOIN
Secara umum perintah INNER JOIN adalah sebagai berikut:
SELECT <select_list>
FROM Table_A as A
INNER JOIN Table_B as B
ON A.Key = B.Key;
43
Sebagai contoh perintah INNER JOIN untuk tabel A dan B dengan perintah:
SELECT *
FROM A INNER JOIN B
ON A.Nomer = B.Nomer;
Left JOIN
Left JOIN akan menampilkan seluruh data pada tabel pertama (tabel kiri) baik
data yang mempunyai pasangan dengan data di tabel kedua (tabel kanan)
maupun tidak, dan juga menampilkan data pada tabel kanan yang mempunyai
pasangan dengan data di tabel kiri. Representasi visual dari tipe JOIN ini adalah
sebagai berikut:
SELECT <select_list>
FROM Table_A as A
LEFT JOIN Table_B as B
ON A.Key = B.Key;
Sebagai contoh perintah Left JOIN untuk tabel A dan B dengan perintah:
SELECT *
FROM A LEFT JOIN B
ON A.Nomer = B.Nomer;
44
Right JOIN
Right JOIN adalah kebalikan dari Left JOIN. Right JOIN akan menampilkan
seluruh data pada tabel kedua (tabel kanan) baik data yang mempunyai
pasangan dengan data di tabel kedua (tabel kanan) maupun tidak, dan juga
menampilkan data pada tabel kiri yang mempunyai pasangan dengan data di
tabel kanan. Representasi visual dari tipe JOIN ini adalah sebagai berikut:
45
46
Sebagai contoh perintah Right Excluding JOIN untuk tabel A dan B dengan
perintah:
SELECT *
FROM A RIGHT JOIN B
ON A.Nomer = B.Nomer
WHERE A.Nomer IS NULL;
SELECT <select_list>
FROM Table_A as A
LEFT JOIN Table_B as B
ON A.Key = B.Key
UNION
SELECT <select_list>
FROM Table_A as A
RIGHT JOIN Table_B as B
ON A.Key = B.Key;
47
Sebagai contoh untuk mendapatkan Full Outer JOIN dari tabel contoh A dan B
digunakan perintah sebagai berikut:
SELECT *
FROM A LEFT JOIN B
ON A.Nomer = B.Nomer
UNION
SELECT *
FROM A RIGHT JOIN B
ON A.Nomer = B.Nomer;
48
FROM Table_A as A
RIGHT JOIN Table_B as B
ON A.Key = B.Key
WHERE A.Key IS NULL;
Sebagai contoh untuk mendapatkan Full Outer Excluding JOIN dari tabel contoh
A dan B digunakan perintah sebagai berikut:
SELECT *
FROM A LEFT JOIN B
ON A.Nomer = B.Nomer
WHERE B.Nomer IS NULL
UNION
SELECT *
FROM A RIGHT JOIN B
ON A.Nomer = B.Nomer
WHERE A.Nomer IS NULL;
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi
49
LATIHAN/KASUS
MySQL
50
Kasus:
Buatlah database rental dengan tabel-tabel sebagai berikut:
Pemilik
noKTPMilik
Nama
Alamat
noTelp
112 adi
jogja
123
113 agung
114 budi
116 lusi
jogja
jogja
jogja
123
123
123
penyewa
noKTPSewa Nama
Alamat
noTelp
232 badu
bantul
123
234 bidu
bantul
123
235 bude
265 oma
sleman
jogja
123
123
Mobil
noPlat
AD 3456
BB
AB 1719
QE
AB 1234 FC
B 6756 TOP
Merk
HargaSewa
noKTPMilik
warna
CRZ
500000
112 merah
Xenia
Inova
Inova
250000
300000
300000
114 silver
113 hitam
114 hitam
sewa
noKTPSewa noPlat
AD 3456
234 BB
AB 1719
234 QE
B 6756
235 TOP
tglSewa
1 Maret
2014
2 Maret
2014
4 Maret
2014
tglKembali
2 Maret
2014
3 Maret
2014
5 Maret
2014
51
52
MATERI 8
FUNGSI
Kompetensi:
Mahasiswa mampu memahami dan membuat fungsi di MySQL.
Maksud dan tujuan:
Mahasiswa mengerti dan memahami serta dapat menggunakan fungsi yang
sudah disediakan MySQL
Landasan teori:
Fungsi (function) merupakan fasilitas yang disediakan oleh database
secara umum untuk memanipulasi data yang kompleks, seperti mencari
jumlah data, mencari rata-rata nilai yang ada dalam suatu tabel dan lainlain, bukan hanya sekedar membaca data dari tabel saja. Fungsi adalah
suatau rutin khusus yang disediakan oleh MySQL untuk melakukan
manipulasi suatu data.
Fungsi digunakan (disertakan) sebagai bagian dari suatu perintah
query SQL (select). Secara umum fungsi dinyatakan dalam SQL select
adalah sebagai berikut :
SELECT fungsi (ekspresi) [FROM namatabel];
FROM namatabel tidak harus diberikan dalam MySQL. Fungsi dalam MySQL
seperti halnya perintah SQL dapat dituliskan dalam huruf besar ataupun
huruf kecil.
Fungsi dalam MySQL dibedakan menjadi :
1. Fungsi sistem
2. Fungsi agregat
3. Fungsi aritmatika
4. Fungsi string
5. Fungsi tanggal
6. Fungsi logika
1. Fungsi Sistem
Kelompok fungsi sistem adalah kelompok yang memberikan
informasi tentang pemakaian server database oleh pemakai. Kelompok ini
terdiri atas :
a. DATABASE()
Fungsi ini digunakan untuk memberikan informasi database apa yang
sedang digunakan oleh pemakai.
b. LAST_INSSERT_ID()
Digunakan untuk menampilkan informasi data yang telah dihasilkan
(digenerate) oleh MySQL pada kolom yang menggunakan tipe data
AUTOINCREMENT.
c. SESSION_USER()
Fungsi yang digunakan untuk menampilkan informasi pemakai yang
sedang melakukan akses ke dalam server MySQL saat ini.
d. SYSTEM_USER()
Fungsi ini sama dengan fungsi SESSION_USER()
53
e. USER()
Fungsi
ini
sama
dengan
fungsi
SESSION_USER()
dan
SYSTEM_SESSION().
f. VERSION()
Fungsi ini digunakan untuk mengetahui versi server MySQL yang sedang
digunakan saat ini.
g. BENCHMARK(x,ekspresi)
Mengerjakan perintah pada ekspresi sejumlah count kali. Nilai yang
dihasilkan selalu 0. Hal penting dari fungsi ini adalah nilai waktu yang
digunakan (elapsed time) yang diberikan pada bagian akhir,
memungkinkan kita menilai berapa cepat server mengevaluasi query.
h. LOAD_FILE(nama_file)
Digunakan untuk membuka file dan memberikan isinya sebagai string.
File harus ada dalam server dan pemakai untuk menggunakan fungsi ini
memiliki privelege File.
2. Fungsi Agregat
Fungsi agregat adalah fungsi standar di dalam SQL, suatu fungsi yang
digunakan untuk melakukan summary, merupakan fungsi stastistik standar
yang dikenakan pada suatu tabel atau query.
1. AVG(ekspresi)
Fungsi ini digunakan untuk mencari rata-rata nilai dalam suatu kolom dari
satu tabel atau ekspresi. Ekspresi dalam fungsi AVG umumnya adalah
nama kolom. Kolom yang dicari nilai rata-ratanya adalah kolom dengan
tipe data numerik.
Nilai rata-rata yang dihasilkan oleh fungsi ini tidak melibatkan dalam
perhitungannya baris yang memiliki nilai pada kolom yang dicari rataratanya bernilai NULL.
2. COUNT(x)
Fungsi ini digunakan untuk menghitung jumlah record (baris) dari suatu
kolom atau suatu tabel. X adalah nama kolom dari tabel yang diinginkan
dicari jumlah record (baris)nya.
3. MAX(ekspresi)
Fungsi ini digunakan untuk mencari nilai terbesar dari suatu kolom dari
suatu tabel atau ekspresi. Kolom yang dicari nilai terbesarnya memiliki tipe
data numerik.
Fungsi MAX() tidak melibatkan dalam perhitungannya, data yang bernilai
NULL dari suatu baris yang kolomnya memiliki nilai NULL.
4. MIN(ekspresi)
Fungsi MIN() merupakan lawan dari fungsi MAX(). Fungsi ini mencari nilai
terkecil dari suatu kolom dalam suatu tabel atau ekspresi.
5. STD(ekspresi) dan STDDEV(ekspresi)
Fungsi ini digunakan untuk mendapatkan standar deviasi dari data
suatu kolom dalam tabel. Ekspresi umumnya menyatakan kolom suatu
tabel dengan tipe datanya numerik.
6. SUM(ekspresi)
Fungsi ini digunakan untuk mendapatkan nilai total dari suatu kolom
suatu tabel atau ekspresi.
54
3. Fungsi Aritmetika
MySQL memiliki fasilitas dasar untuk melakukan manipulasi data numerik,
seperti penjumlahan, pengurangan, perkalian dan pembagian yang
disertakan dalam suatu perintah select. Fasilitas tersebut dikenal dengan
operator aritmatika.
1. Penjumlahan(+)
Digunakan untuk menjumlahkan dua buah data numerik, hasil dari operasi
ini adalah data numerik juga.
2. Pengurangan(-)
Digunakan untuk melakukan operasi pengurangan dua buah data
numerik, bilangan yang disebelah kiri dikurangi dengan bilangan yang
disebelah kanan. Hasil dari operasi ini adalah data numerik.
3. Perkalian(*)
Digunakan untuk melakukan operasi perkalian dua data numerik. Hasil
dari operasi ini adalah data numerik juga.
4. Pembagian(/)
Digunakan untuk melakukan operasi pembagian dua data numerik.
Bilangan di sebelah kiri dibagi dengan bilangan yang ada disebelah
kanan operator, hasil dari operasi ini adalah data numerik.
5. Pembagian sisa(%)
Digunakan untuk mendapatkan sisa pembagian dari suatu operasi
pembagian, bilangan di sebelah kiri dibagi dengan bilangan disebelah
kanan, sisa dari hasil pembagian ini yang menjadi hasil dari operasi ini.
Operasi pembagian sisa biasa disebut modulus.
4. Fungsi Tanggal
Tanggal dalam MySQL menggunakan tanggal dari sistem Unix, tidak ada
masalah sampai dengan 2069. Semua tahun yang dinyatakan dengan dua
digit diasumsikan tahun tersebut pada range tanggal antara tahun 1970
sampai dengan 2069. Jika dimasukkan tahun 01 maka akan dianggap tahun
2001.
Format tanggal dan jam dalam MySQL adalah dengan menggunakan format
tahun, bulan, tangal, jam, menit dan detik
yyyy-mm-dd HH:ii:ss
55
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
DAYOFMONTH(date)
DAYOFWEEK(date)
DAYOFYEAR(date)
EXTRACT(value FROM date)
FROM_DAYS(days)
FROM_UNIXTIME(unixtime[,simbolformat])
HOUR(time)
MINUTE(time)
MONTH(date)
MONTHNAME(date)
NOW()
PERIOD_ADD(x,y)
PERIOD_DIFF(x,y)
QUARTER(date)
SECOND(time)
SEC_TO_TIME(second)
SUBDATE()
SYSDATE()
TIME_FORMAT(time,simbolformat)
TIME_TO_SEC(time)
TO_DAYS(date)
UNIX_TIMESTAMP([date])
WEEK(date[,start])
WEEKDAY(date)
YEAR(date)
5. Fungsi String
Fungsi string digunakan untuk manipulasi teks (string). MySQL
menyediakan banyak fungsi built-in untuk melakukan manipulasi teks ini.
Berikut ini adalah daftar fungsi string yang telah disediakan :
1. ASCII(x)
2. CHAR(x,y,z,)
3. CHARACTER_LENGTH, CHAR_LENGTH
4. COALES(ekspresi1, ekspresi2, )
5. CONCAT(x,y,z,)
6. DECODE(string_biner,string_enkripsi)
7. ELT(x,a,b,c,)
8. ENCODE(owrd,string_enkripsi)
9. ENCRYPT(word[,seed])
10.FIELD(x,y,z,)
11.FIND_IN_SET(x,stringlist)
12.INSERT(x,y,z,j)
13.INSTR(x,y)
14.LCASE(x)
15.LEFT(x,y)
16. LENGTH(x)
17. LOAD_FILE(namafile)
18. LOCATE(x,y,z)
19. LOWER(x)
20. LPAD(x,y,z)
56
21. LTRIM(x)
22. MID(x,y,z)
23. OCTET_LENGTH()
24. PASSWORD(password)
25. POSITION(x,y)
26. REPEAT(x,y)
27. REPLACE(x,y)
28. REVERSE(x)
29. RIGHT(string,length)
30. RPAD(x,y,z)
31. RTRIM(x)
32. SOUNDEX(x)
33. SPACE(x)
34. STRCMP(string1,string2)
35. SUBSTRING_INDEX(x,y,z)
36. TRIM([[BOTH OR LEADING or TRAILING][x] FROM] y)
37. UCASE(x)
38. UPPER(x)
6. Fungsi Logika
Fungsi logika merupakan fungsi yang disediakan oleh MySQL untuk
melakukan evaluasi suatu ekspresi. Berdasarkan nilai ekspresi ini akan
dihasilkan suatu nilai yang akan ditampilkan pada hasil query.
Berikut adalah fungsi built-in yang disediakan untuk melakukan evaluasi
ekspresi :
1. IF(ekspresi1, ekspresi2, ekspresi3)
Fungsi if() mengevaluasi ekspresi1, jika ekspresi1 bernilai benar(true)
maka ekspresi2 akana menjadi hasil, jika ekspresi1 bernilai salah (false)
maka ekspresi3 akan menjadi hasilnya.
2. IFNULL(ekspresi1, ekspresi2)
Fungsi ini akan mengevaluasi ekspresi1, jika ekspresi1 berisi NULL,
maka ekspresi2 menjadi hasilnya, sedangkan jika ekspresi1 bukan NULL
maka ekspresi1 itu sendiri yang menjadi hasilnya
3. ISNULL(ekspresi)
Menghasilkan nilai 1 jika ekspresi bernilai NULL.
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM.
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi
57
LATIHAN/KASUS
MySQL
Buatlah tabel Mahasiswa, MataKuliah dan KRS dengan deskripsi tabel sebagai
berikut:
Tabel Mahasiswa
NIU
Nama
Prodi
00114
Alfi
Rekmed
01052
Wahyu
Rekmed
01104
Syifa
Pend. Dokter
00888
Anik
Gizi
00993
Agnes
Ilkom
00066
Derti
Kimia
00287
Syifa
Matematika
01040
Dahlia
Statistika
Tabel Kelas MK
Kode
Nama
Agama
Basdat
KKPMT
58
Tabel KRS
NIU
Kode
Nilai
00114
90
01052
70
01104
67
01052
88
01104
99
00993
87
00066
67
00287
78
01040
89
Penilaian:
a. Keaktifan mahasiswa dalam praktikum
b. Kemampuan dalam menangkap dan menjalankan perintah Instruktur
59
Kasus:
Buatlah Database rental dengan tabel-tabel berikut:
Pemilik
noKTPMilik
112
113
114
116
Nama
adi
agung
budi
lusi
Alamat
jogja
jogja
jogja
jogja
noTelp
123
123
123
123
Mobil
noPlat
AD 3456 BB
AB 1719 QE
AB 1234 FC
B 6756 TOP
penyewa
noKTPSewa
Nama
Alamat
noTelp
sewa
noKTPSewa
232
badu
bantul
123
234
234
bidu
bantul
123
234
235
265
1.
2.
bude
oma
sleman
jogja
123
123
235
Merk
CRZ
Xenia
Inova
Inova
HargaSewa
500000
250000
300000
300000
noKTPMilik
112
114
113
114
noPlat
AD
3456
BB
AB
1719
QE
B
6756
TOP
tglSewa
tglKembali
1 Maret
2014
2 Maret
2014
2 Maret
2014
3 Maret
2014
4 Maret
2014
5 Maret
2014
warna
merah
silver
hitam
hitam
60
MATERI 9
NESTED QUERY
Kompetensi:
Mahasiswa mampu.
Maksud dan tujuan:
a. Mahasiswa mengerti dan memahami serta memanfaatkan select untuk
menampilkan data pada database MySql
b. Mahasiswa mengerti dan memahami bagaimana logika menampilkan data
Landasan teori:
Nested query disebut juga dengan query bersarang. Seperti namanya, nested
query adalah perintah SQL berupa gabungan dua atau lebih
query/statement/perintah SQL yang bertingkat. Query yang terluar disebut
dengan outer query sedangkan perintah di dalamnya disebut subquery.
Keuntungan dengan diterapkannya subquery diantaranya:
Sebagai alternatif cara untuk melakukan operasi tanpa JOIN dan UNION,
dalam beberapa kasus dapat dimanfaatkan untuk membuat perintah SQL
yang lebih optimal.
61
62
63
LATIHAN/KASUS
MySQL
Alat dan bahan praktikum:
a. Modul praktikum
b. Alat Tulis
c. Komputer yang sudah terinstal MySql
Kegiatan praktikum:
Kegiatan 1
Buatlah tabel Mahasiswa, MataKuliah dan KRS dengan deskripsi tabel sebagai
berikut:
Tabel
Mahasiswa
NIU
Nama
Prodi
00114 Alfi
Rekmed
01052 Wahyu
Rekmed
01104 Syifa
Pend. Dokter
00888 Anik
Gizi
00993 Agnes
Ilkom
00066 Derti
Kimia
00287 Syifa
Matematika
01040 Dahlia
Statistika
Tabel Kelas MK
Kode
Nama
Agama
Basdat
KKPMT
64
Tabel KRS
NIU
Kode
Nilai
00114
90
01052
70
01104
67
01052
88
01104
99
00993
87
00066
67
00287
78
01040
89
Penilaian:
a. Keaktifan mahasiswa dalam praktikum
65
Kasus:
1. Masukkan data berikut ke dalam tabel salaries!
emp_no
Salary
from_date
to_date
10001
8005000
2011-01-01
2016-01-01
10002
3505000
2013-05-01
2018-05-01
10003
3905000
2012-05-06
2017-05-06
10004
4005000
2012-05-06
2017-05-06
10005
13505000
2010-05-06
2015-05-06
10006
2505000
2011-11-11
2016-11-11
10007
8505000
2011-10-12
2016-10-12
10008
8005000
2005-01-12
2010-01-11
10008
5005000
2010-01-12
2015-01-12
10009
8005000
2008-10-10
2013-10-09
10009
9005000
2013-10-10
2018-10-10
10010
10005000
2012-01-01
2017-01-01
10011
3005000
2011-01-11
2016-01-11
66
LEMBAR KERJA
67
68
MATERI 10
VIEW
Kompetensi:
Mahasiswa mampu membuat dan memanfaatkan view
Maksud dan tujuan:
a. Mahasiswa mengerti dan memahami view
b. Mahasiswa mengerti dan memahami kapan dan bagaimana view digunakan.
Landasan teori:
Perintah VIEW adalah perintah dalam MySQL untuk membuat sebuah tabel
virtual dengan cara menyimpan query SELECT di sebuah basis data. VIEW
dapat diterapkan pada MySQL mulai dari MySQL versi 5.0.2. Perintah ini dapat
dimanfaatkan untuk menunjang keamanan data, mengatur akses ke data, dan
juga meningkatkan efisiensi basis data.
Bentuk umum perintah untuk membuat VIEW yang paling sederhana adalah
sebagai berikut:
CREATE [OR REPLACE]
VIEW nama_view [(list_kolom)]
AS query_select
Karena VIEW adalah bagian dari sebuah basis data, maka nama_view pada
perintah diatas disebutkan dengan [database_name].[view_name] jika ingin
membuat VIEW untuk basis data tertentu atau bisa juga langsung nama VIEW
apabila perintah pembuatan VIEW dituliskan ketika sebuah basis data tertentu
yang akan diberi VIEW tersebut sedang digunakan. Perhatikan contoh VIEW
berikut:
CREATE
VIEW jml_pegawai(jumlah_pegawai)
AS SELECT COUNT(*) FROM employees;
Perintah di atas akan membuat VIEW yang mempunyai satu buah kolom
bernama jumlah_pegawai berisi data jumlah pegawai. Untuk berinteraksi dengan
VIEW yang telah dibuat, dapat digunakan perintah SELECT seperti pada tabel
biasa. Contoh:
SELECT * FROM jml_pegawai;
Perintah SELECT yang digunakan VIEW
Mengubah sebuah VIEW dapat menggunakan perintah ALTER VIEW.
Penggunaan perintah ALTER VIEW sangat mirip dengan CREATE VIEW, yaitu
hanya dengan mengganti kata kunci CREATE dengan ALTER.
ALTER
VIEW nama_view [(list_kolom)]
AS query_select
69
70
LATIHAN/KASUS
MySQL
Alat dan bahan praktikum:
a. Modul praktikum
b. Alat Tulis
c. Komputer yang sudah terinstal MySql
Kegiatan praktikum:
Kegiatan 1
Buatlah Database rental dengan tabel-tabel berikut:
Pemilik
noKTPMilik
Nama
Alamat noTelp
112 adi
jogja
123
113 agung
jogja
123
114 budi
jogja
123
116 lusi
jogja
123
penyewa
noKTPSewa
232
234
235
265
Mobil
noPlat
AD 3456 BB
AB 1719 QE
AB 1234 FC
B 6756 TOP
Sewa
noKTPSewa
Nama
badu
bidu
bude
oma
Alamat
bantul
bantul
sleman
jogja
Merk
CRZ
Xenia
Inova
Inova
noPlat
234 AD 3456 BB
234 AB 1719 QE
235 B 6756 TOP
noTelp
123
123
123
123
HargaSewa
noKTPMilik
warna
500000
112 merah
250000
114 silver
300000
113 hitam
300000
114 hitam
tglSewa
1 Maret 2014
2 Maret 2014
4 Maret 2014
tglKembali
2 Maret 2014
3 Maret 2014
5 Maret 2014
71
Penilaian:
a. Keaktifan mahasiswa dalam praktikum
b. Kemampuan dalam menangkap dan menjalankan perintah Instruktur
Kasus:
Buatlah tabel Mahasiswa, MataKuliah dan KRS dengan deskripsi tabel sebagai
berikut:
Tabel
Mahasiswa
NIU
Nama
00114 Alfi
01052 Wahyu
01104 Syifa
00888 Anik
00993 Agnes
00066 Derti
00287 Syifa
01040 Dahlia
Prodi
Rekmed
Rekmed
Pend. Dokter
Gizi
Ilkom
Kimia
Matematika
Statistika
Tabel Kelas MK
Kode Nama
A
Agama
B
Basdat
C
KKPMT
Tabel KRS
NIU
00114
01052
01104
01052
01104
00993
00066
00287
01040
Kode
A
A
A
B
B
B
C
C
C
Nilai
A
B
A
B
A
B
A
C
A
72
73
LEMBAR KERJA
74