Anda di halaman 1dari 74

MODUL PRAKTIK

BASIS DATA I

PROGRAM D-3 REKAM MEDIS SEKOLAH VOKASI


UNIVERSITAS GADJAH MADA
YOGYAKARTA

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.

Yogyakarta, Februari 2016

Tim penyusun

TATA TERTIB PRAKTIK


Mahasiwa yang sedang melaksanakan praktik harus memnuhi ketentuan sebagai
berikut:
1. Mahasiswa masuk sesuai jadwal yang telah ditentukan, sesuai dengan
pembagian kelas serta mengisi daftar hadir.
2. Mahasiswa yang tidak mengikuti praktik lebih dari 25% dari total pertemuan
tanpa keterangan resmi, tidak berhak mengikuti responsi.
3. Program Studi tidak mengadakan ujian susulan responsi.
4. Mahasiswa tidak diberikan toleransi, jika nilai dari Akademik Diploma
Rekam Medis UGM tidak keluar dikarenakan kesalahan mahasiswa
sendiri (tidak mengecek kesesuaian kartu ujian dengan KRS).
5. Mahasiswa memakai pakaian rapi dan sopan:
Pria :
- Kemeja lengan panjang/pendek dan celana panjang rapi,
- Bersepatu,
- Tidak memakai T-shirt tanpa krah atau tanpa lengan.
Wanita :
- Kemeja lengan panjang/pendek (tidak ketat atau transparan),
- Rok atau celana panjang (tidak ketat atau transparan),
- Bersepatu,
- Tidak memakai T-shirt tanpa krah atau tanpa lengan.
6. Mahasiswa tidak diperbolehkan merokok, makan dan minum pada saat
praktik berlangsung.
7. Barang berharga milik peserta praktik menjadi tanggung jawab sendiri.
8. Dering HP harus dimatikan (silent) pada saat praktik.
9. Mahasiswa diwajibkan menjaga kebersihan dan ketertiban serta ketenangan
belajar.
10. Mahasiswa dilarang membuang sampah dalam bentuk apa pun di dalam
ruang praktik.
11. Instruktur/pengajar praktik berhak mencatat, memberikan sanksi atau
melakukan tindakan seperlunya terhadap mahasiswa yang melanggar tata
tertib.

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

4. Many to many : Sebuah entitas A yang berpasangan secara banyak (nol


atau lebih) dengan entitas di dalam B. Dan entitas B juga dapat
berpasangan secara banyak (nol atau lebih) dengan entitas di dalam A.
Contoh : entitas mahasiswa yang berelasi dengan entitas matakuliah
dalam hubungan KRS. Relasi tersebut adalah many to many. Karena
seorang mahasiswa dapat mengambil banyak matakuliah. Sedangkan
satu mata kuliah bisa jadi diambil oleh beberapa mahasiswa.
Primary Key
Entity adalah suatu objek yang berbeda dengan objek yang lainnya.
Maka tiap entity harus mempunyai atribut yang dapat membedakan antara
objek satu dengan yang lainnya. Misalnya entitas manusia, entitas ini tidak
mempunyai atribut yang dapat membedakan antara objek manusia1 dengan
objek manusia2. Namun apabila manusia tersebut menjadi pegawai (muncul
entitas pegawai) maka objek manusia1 dan manusia2 sebagai anggota dari
entitas pegawai akan mempunyai atribut yang membedakan, yaitu NIP. Atribut
inilah yang disebut dengan key. Manusia1 dan manusia2 tidak mungkin memiliki
NIP yang sama.
Key dapat terdiri dari beberapa atribut, yang biasa disebut dengan
candidate key. Namun dalam prakteknya key sebisa mungkin hanya terdiri dari
satu atribut. Hal ini untuk memudahkan dalam pengolahan data. Nah, untuk
mendapatkan key dari candidate key (gabungan beberapa atribut), pilih atribut
entitas yang paling unik (value dalam atribut tidak ada yang sama) dan bisa
membedakan entitas tersebut dengan entitas yang lain. Jika sudah
mendapatkannya, key itulah yang disebut sebagai primary key.
Semisal ada candidate key berupa nama, NIP, dan tanggal lahir. Maka perlu
disortir, atribut mana yang paling unik dari ketiga atribut tersebut. Atribut nama
tidak unik, karena ada kemungkinan dua entitas pekerja mempunyai nama yang
identik. Demikian pula dengan atribut tanggal lahir, sangat bisa jadi dua entitas
pekerja mempunyai tanggal lahir yang sama. Hanya atribut NIP saja yang pasti
berbeda dari tiap-tiap entitas pekerja.

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

Step 3 : Gambar ERD sementara.


Entitas digambarkan dengan kotak dan relasi digambarkan dengan garis.
Step 4 : Mengisi Kardinalitas
Dari gambaran permasalahan dapat diketahui bahwa:
Masing-masing bagian hanya punya satu pengawas
Seorang pengawas bertugas disatu bagian
Masing-masing bagian ada minimal satu pegawai
Masing-masing pegawai bekerja paling tidak disatu bagian
Masing-masing proyek dikerjakan paling tidak oleh satu
pegawai
Step 5 : Menentukan Primary Key
Karena tidak disebutkan dalam contoh kasus, maka kita anggap sebagai
berikut:

16

Entitas Pengawas mempunyai attribut IDPengawas, nama, alamat.


Maka primary key-nya IDPengawas.
Entitas bagian mempunyai attribut namaBagian. Maka primary keynya namaBagian.
Entitas Pegawai mempunyai attribut IDPegawai, nama, alamat.
Maka primary key-nya IDPegawai.
Entitas Proyek mempunyai attribut NoProyek, Nama, waktu. Maka
primary key-nya NoProyek.

Step 6 : Menggambar ERD Berdasarkan Kunci dan Kardinalitas


Step 7 : Menggambar ERD Berdasarkan Relasi, Kunci dan kardinalitas..
Ada dua relasi many to many pada ERD sementara, yaitu antara bagian
dengan pegawai, pegawai dengan proyek, oleh sebab itu kita perlu
memperhatikan kemungkinan attribute yang muncul dari relasi ini. Misal
dari relasi antara pegawai dan proyek, mungkin saja terdapat relasi
jabatan (Dalam suatu proyek, seorang pegawai akan memiliki jabatan
tertentu, seperti coordinator, anggota ataupun yang lain).
Penilaian:
Penilaian didasarkan hasil analisis dan ERD yang dibuat.
Kasus:
Buatlah sebuah model database untuk sistem informasi puskesmas atau klinik.
Tentukan entitas-entitas apa saja yang ada di dalamnya. Atribut-atribut penyusun
entitas juga dideskripsikan. Tentukan primary key entitas yang kuat. Serta relasi
antar entitas. Setelah itu coba gambarkan model tersebut dengan ERD!

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.

Nama sebuah database tidak boleh diawali dengan angka


1. Melihat database
Untuk melihat database yang baru saja dibuat atau database lain yang
ada dalam server, dapat menggunakan perintah SHOW. Bentuk
penulisan untuk melihat database yang ada di server adalah sebagai
berikut :

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

Perlu diperhatikan dalam pembuatan tabel, apakah database sudah


diaktifkan sebelumnya. Jika belum, aktifkan database tersebut atau buat
database baru jika belum tersedia. Hal ini dilakukan agar tabel yang
akan dibuat mempunyai tempat dalam database. Tabel sebagai
tempat penampungan data mempunyai dua bagian utama yaitu nama
dan tipe data. Tipe data yang bisa digunakan dalam MySQL dapat
dilihat dibawah ini.
Tipe data untuk bilangan
Tipe Data

Keterangan

TINYINT

Ukuran 1 byte. Bilangan bulat terkecil, dengan jangkauan


untuk bilangan bertanda: -128 sampai dengan 127 dan
untuk yang tidak bertanda : 0 sampai dengan 255. Bilangan
tak bertanda ditandai dengan tanda UNSIGNED

SMALLINT

Ukuran 2 byte. Bilangan bulat dengan jangkauan


untuk bilangan bertanda : -32768 sampai dengan 32767
dan yang tidak bertanda : 0 sampai dengan 65535.

MEDIUMINT

Ukuran 3 byte. Bilangan bulat dengan jangkauan untuk


bilangan bertanda : -8388608 sampai dengan 8388607
dan untuk bertanda : 0 sampai dengan 16777215

INT

Ukuran 4 byte. Bilangan bulat dengan jangkauan untuk


bilangan bertanda : -2147483648 sampai dengan
2147483647 dan untuk yang tidak bertanda : 0 sampai
dengan 4294967295

INTEGER

Ukuran 4 byte. Sinonim dari INT

20

BIGINT

Ukuran 8 byte. Bilangan bulat terbsar dengan jangkauan


untuk bilangan bertanda : -9223372036854775808 sampai
dengan 9223372036854775807 dan untuk yang tidak
bertanda
: 0 sampai dengan 18446744073709551615

FLOAT

Ukuran 4 byte. Bilangan pecahan

DOUBLE

Ukuran 8 byte. Bilangan pecahan

DOUBLE
PRECISION

Ukuran 8 byte. Bilangan pecahan berpresisi ganda

REAL

Ukuran 8 byte. Sinonim dari DOUBLE

DECIMAL(M,D)

Ukuran M byte. Bilangan pecahan. Misalnya DECIMAL(5,2)


dapat digunakan untuk menyimpan bilangan -99,99
sampai dengan 99,99

NUMERICAL(M,D)

Ukuran M byte. Sinonim dari DECIMAL. Misalnya


NUMERICAL(5,2) dapat digunakan untuk menyimpan
bilangan -99,99 sampai dengan 99,99

Tipe Data

Tipe data untuk tanggal dan jam


Keterangan

DATETIME

Ukuran 8 byte. Kombinasi tanggal dan jam, dengan


jangkauan dari 100-01-01 00:00:00 sampai
dengan
9999-12-31 23:59:59

DATE

Ukuran 3 byte. Tanggal dengan jangkauan dari 100-0101 sampai dengan 9999-12-31

TIMESTAMP

Ukuran 4 byte. Kombinasi tanggal dan jam dengan


jangkauan 1970-01-01 00:00:00 sampai dengan tahun 2037

TIME

Ukuran 3 byte. Waktu dengan jangkauan dari -838:59:59


sampai dengan 838:59:59

YEAR

Ukuran 1 byte. Data tahun antara 1901 sampai dengan 2155

21

Tipe Data

Tipe data untuk karakter dan lain-lain


Keterangan

CHAR(M)

Ukuran M byte,1 M 255 . Data string dengan


panjang yang tetap. CHAR(1) cukup ditulis dengan CHAR.

VARCHAR(M)

Ukuran L=1 byte dengan L M dan 1 M 255 .


Data string dengan panjang bervariasi, tergantung datanya

TINYBLOB,
TINYTEXT

L+1 byte, dengan L 28 . Tipe TEXT atau BLOB


dengan panjang maksimum 255 karakter

BLOB,TEXT

L+2 byte, dengan L 216 . Tipe TEXT atau BLOB


dengan panjang maksimum 65535 karakter

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, )

1, 2, 3, 4 atau 8 byte, tergantung jumlah anggota himpunan


(maksimum 64 anggota)

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]

2. Melihat struktur tabel


Perintah
DESCRIBE nama_tabel;

digunakan untuk melihat struktur tabel yang telah dibuat. Namun


sebelumnya pastikan sudah berada pada database yang mempunyai tabel
tersebut.
3. Mengubah struktur tabel
Jika struktur tabel yang telah dibuat terdapat kesalahan atau
menginginkan penggantian, dapat menggunakan perintah alter untuk
mengubahnya. Ada empat macam perubahan dalam struktur tabel, yaitu :
D perubahan nama field/kolom perubahan yang terjadi hanya sebatas
pada nama field/kolom saja. Nama field/kolom yang lama diganti dengan
nama filed/kolom yang baru
Struktur penulisan:
ALTER

TABLE

nama_tabel

CHANGE

nama_field_lama

nama_filed_baru tipe_data;

4.

Perubahan tipe data


Perubahan yang terjadi hanya terbatas pada tipe data yang digunakan oleh
field/kolom tertentu. Tipe data yang baru langsung disebutkan dibelakang
nama field/kolom, tanpa harus menyebutkan tipe data yang lama.
Struktur penulisan:
ALTER TABLE namatabel MODIFY nama_field tipe_data_baru;

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;

7. Mengganti nama tabel


Seringkali, penggantian tabel juga meliputi nama tabel itu sendiri. Struktur
penulisan:
ALTER TABLE nama_tabel_lama RENAME nama_tabel_baru;

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

Alat dan bahan praktikum:


a. Modul praktikum
b. Alat Tulis
c. Komputer yang sudah terinstal MySql
Kegiatan praktikum:
Kegiatan 1
1. Berikut ini merupakan aturan umum penulisan yang digunakan pada
create database.
Create database nama_basis_data;
Contoh penerapan :
Create database rumah_sakit;

2. Lalu kita buat contoh tabel pasien :


Create table pasien
(
Kode_psn char(5) primary key,
Nm_psn varchar(30) not null,
Almt_psn varchar(50) null,
Umur integer null
)

3. Setelah membuat tabel selanjutnya membuat contoh alter tabel


Contoh penerapan dan penjelasan
a. Perintah SQL untuk menambahkan field status dan field pekerjaan
pada tabel pasien yaitu :
Alter table pasien add status char(7), pekerjaan char(15)
b. Perintah SQL untuk menghapus field pekerjaan pada tabel pasien yaitu
Alter table pasien drop pekerjaan

28

c. Perintah SQL untuk menghapus primary key pada tabel pasien yaitu :
Alter table pasien drop constraint pk_kodpsn

4. Terakhir ketika akan menghapus tabel yaitu dengan cara drop


contohnya hapus tabel pasien :
Drop table pasien;

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

Maksud dan tujuan:


a. Mahasiswa mengerti dan memahami sintak-sintak dalam basis data
b. Mahasiswa mengerti dan memahami bagaimana melakukan
pengisian, perbaikan, penghapusan, pengambilan dan pencarian
kembali data
Landasan teori:
1.
INSERT
Perintah :
INSRT INTO nama_tabel (field1 [,field2 [field3 [,]]])
VALUES (nilai1 [,nilai2 [,nilai3 [,..]]]);

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 [,..]]);

Penulisan tanpa menyebutkan nama field dapat diberikan apabila akan


mengisi ke seluruh field yang ada dalam tabel, urutan data dalam bagian
values menunjukkan urutan field yang akan diisi. Jadi harus hati-hati
menggunakan perintah insert apabila tidak menyatakan nama field karena
bisa tertukar.
Contoh :

mysql> INSERT INTO pribadi


-> VALUES (12341, 'Hamdan Arif', 'Jl. Krapyak 2', 'Bantul', 'P',
-> '1964/05/12');
Query OK, 1 row affected (0.06 sec)
Kelebihan dengan menyebutkan nama field adalah kita tidak harus
berurutan menyebutkan nama field dan datanya pada saat mengisikan,
yang penting adalah urutan pasangan yang benar agar tidak tertukar.

31

2.

UPDATE
Perintah :
UPDATE

nama_tabel

SET

field1=nilai1 [,field2=nilai2 [,]]

[WHERE kondisi];

Nama_tabel adalah nama dari tabel yang akan diperbaiki datanya.


Field1 adalah nama field dalam tabel yang akan diubah. Nilai1 adalah data
yang akan dimasukkan ke dalam field1. field2 dan nilai2 adalah nama field
dan datanya, dan seterusnya. Kondisi adalah criteria data dalam tabel yang
akan diperbaiki.
Contoh :

mysql> UPDATE pribadi SET kota='Yogyakarta' WHERE kota='Yogya';


Query OK, 1 row affected (0.15 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Perintah update digunakan untuk memperbaiki data dalam satu record
(baris) dalam satu tabel. Perbaikan dapat dilakukan untuk satu record,
beberapa atau seluruh record.
Hati-hati saat memberikan perintah update ini, jangan sampai lupa
menuliskan kondisi data dalam tabel yang akan diperbaiki datanya. Jika
kondisi tidak dituliskan maka bisa menyebabkan seluruh record dalam
tabel akan diubah sesuai dengan field yang akan diperbaiki datanya.

3.

DELETE

Perintah:
DELETE FROM nama_tabel [WHERE kondisi];

Nama_tabel adalah nama tabel yang akan dihapus datanya.


Kondisi adalah criteria data dalam tabel yang akan dihapus.
Perintah delete digunakan untuk melakukan penghapusan record dari suatu
table yang memilik kondisi yang dinyatakan dalam pernyataan kondisi.
Hati-hati dalam memberikan perintah delete ini karena jika terlupa
memberikan
pernyataan kondisi, perintah ini akan menyebabklan
terhapusnya seluruh isi tabel.

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

Alat dan bahan praktikum:


a. Modul praktikum
b. Alat Tulis
c. Komputer yang sudah terinstal MySql

Kegiatan praktikum:
Kegiatan 1
1. Berikut ini merupakan pembuatan database terlebih dahulu.
Create database nama_basis_data;
Contoh :
Create database swalayan;

Lalu kita buat contoh tabel pribadi :


Create table pribadi
(
nip char(10) primary key,
nama varchar(30) not null,
alamat varchar(50) null,
kota varchar(20) not null,
kelamin varchar(10) not null,
tgl_lahir date not null,
)

33

2. Setelah membuat tabel maka memasukan data ke dalam tabel pribadi,


berikut merupakan aturan umum penulisan yang digunakan pada
INSERT database.
INSERT INTO nama_tabel;
Contoh penerapan :
INSERT INTO pribadi(nip,nama,alamat,kota,kelamin,tgl_lahir);
3. Setelah mengisi data dalam tabel selanjutnya membuat contoh update
update nama_tabel set field1=nilai1 where[kondisi];
Contoh penerapan dan penjelasan
UPDATE pribadi set nip= 127 where no=1;
4. Selanjutnya akan menghapus data dalam tabel yaitu dengan cara
delete contohnya hapus tabel pasien :
Delete from nama_tabel [where kondisi];;

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.

Mahasiswa mengerti dan memahami menggunakan sintak-sintak di MySql


untuk memanipulasi data.

b.

Mahasiswa mengerti dan memahami bagaimana melakukan pengisian,


perbaikan, penghapusan, pengambilan dan pencarian kembali data

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:

SELECT * FROM nama_tabel;


Tanda * mengisyaratkan bahwa semua kolom akan ditampilkan tanpa terkecuali,
sedangkan nama_tabel diganti dengan nama tabel yang datanya ingin
ditampilkan. Berikut adalah contoh untuk menampilkan semua data pada tabel
employees:

SELECT * FROM employees;


Apa bila ingin menampilkan kolom-kolom tertentu saja, maka simbol * dapat
diganti dengan nama kolom yang ingin ditampilkan. Berikut adalah contoh
perintah untuk menampilkan data yang ada pada kolom first_name dan
last_name pada tabel employees:

SELECT first_name, last_name FROM employees;


Penggunaan perintah SELECT dapat dilengkapi dengan klausa WHERE sebagai
syarat spesifikasi data yang ingin ditampilkan. Contohnya adalah ketika ingin
36

ditampilkan data nama pegawai yang nama belakangnya Maximoff, maka


perintahnya:

SELECT first_name, last_name FROM employees


WHERE last_name=Maximoff;
Klausa WHERE dapat berisi lebih dari satu persyaratan. Persyaratan satu
dengan lainnya dapat disambung dengan menggunakan AND atau OR sesuai
dengan kebutuhan. Persyaratan data yang digunakan dapat berupa sepesifikasi
nilai kolom, jangkauan nilai kolom (untuk data numerik), kemiripan nilai kolom,
dan lain sebagainya sesuai kebutuhan.
Berikut adalah contoh perintah untuk menampilkan data dari dua kolom dengan
dua syarat, yaitu data yang ditampilkan harus mempunyai nomer pegawai
(emp_no) 10005 atau setelahnya dan mempunyai nama belakang Wayne:

SELECT first_name, last_name FROM employees


WHERE emp_no>=10005 AND last_name='Wayne';
Perintah SQL yang berikutnya akan menampilkan nama depan dan nama
belakang pegawai yang nomer pegawainya diantara 10005 dan 10010:

SELECT first_name, last_name FROM employees


WHERE emp_no BETWEEN 10005 and 10010;
Between dapat juga digunakan untuk tipe data yang berkaitan dengan tanggal
dan waktu. Contoh perintah berikut ini menggunakan variabel tahun sebagai
parameter persyaratan BETWEEN untuk menampilkan data pegawai yang lahir
tahun 1990 hingga 2000:

SELECT emp_no,first_name,last_name FROM employees


WHERE YEAR(birth_date) BETWEEN '1990'AND'2000';
Keterangan nilai NULL dan NOT NULL juga dapat digunakan untuk memilih data
melalui klausa WHERE. Penggunaannya tidak dengan tanda sama dengan (=)

namun dengan IS:


SELECT * FROM employees
WHERE first_name IS NULL;

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

nomer pegawai 10001, 10005, atau 10010:


SELECT * FROM employees
WHERE emp_no IN (10001,10005,10010);
LIKE

merupakan

mendefinisikan

kata

suatu

kunci

dalam

criteria yang

SQL

yang

digunakan

untuk

lebih luwes (fleksibel). Kondisi yang

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 dengan kondisi LIKE


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 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

SELECT * FROM nama_tabel WHERE nama_field LIKE %data_yang_dicari%;

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

1. Menggunakan database swalayan yang sudah pernah dibuat.


Selanjutnya menyeleksi atau melihat data yang ada di dalam tabel,
berikut merupakan aturan umum penulisan yang digunakan pada
select nama_field from nama_tabel;

2.

Menampilkan seluruh record dalam tabel yang memiliki data dalam


nama field yang disebutkan sama dengan data_yang_dicari
SELECT * FROM nama_tabel WHERE nama_field LIKE
data_yang_dicari;

3. Menampilkan data dengan 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%;
4. Selanjutnya menampilkan seluruh record dalam tabel yang memiliki

data dalam nama_field yang disebutkan pada bagian akhirnya ada


data_yang_dicari. :
SELECT * FROM nama_tabel WHERE nama_field LIKE
%data_yang_dicari;

5. Terakhir 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

40

disebutkan

terdiri

atas

karakter

apa

saja

asalkan

ada

data_yang_dicari dalam field tersebut.


SELECT * FROM nama_tabel WHERE nama_field LIKE
%data_yang_dicari%;

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

41

1 Tampilkan semua data di KRS


Tampilkan semua data di mahasiswa
Ubah NIM mahasiswa dengan nim '01104'
menjadi '01105'.
Tampilkan semua data di KRS
Tampilkan semua data di mahasiswa

2. Tampilkan semua data di KRS


Tampilkan semua data di matkul
Ubah kode matkul dengan kode 'B' menjadi 'M'.
Tampilkan semua data di KRS
Tampilkan semua data di Matkul
Ubah kode matkul dengan kode 'M' menjadi
'B'.
3. Tampilkan nim mahasiswa yang mendapat nilai A untuk Matakuliah dengan
kode B

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:

Secara umum perintah Left JOIN adalah:

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:

Secara umum perintah Right JOIN adalah:


SELECT <select_list>
FROM Table_A as A
RIGHT JOIN Table_B as B
ON A.Key = B.Key;
Sebagai contoh perintah Right JOIN untuk tabel A dan B dengan perintah:
SELECT *
FROM A RIGHT JOIN B
ON A.Nomer = B.Nomer;

Left Excluding JOIN


Left Excluding JOIN akan menampilkan data pada tabel pertama (tabel kiri) yang
tidak mempunyai pasangan yang cocok dengan tabel kedua (tabel kanan).
Bentuk JOIN ini mirip dengan Left JOIN namun tidak mengikut sertakan data
pada tabel kiri yang mempunyai pasangan dengan data tabel kanan.
Representasi visual dari tipe JOIN ini adalah sebagai berikut:

Left Excluding JOIN

45

Secara umum perintah untuk menghasilkan Left Excluding JOIN adalah:


SELECT <select_list>
FROM Table_A as A
LEFT JOIN Table_B as B
ON A.Key = B.Key
WHERE B.Key IS NULL;
Sebagai contoh perintah Left Excluding JOIN untuk tabel A dan B dengan
perintah:
SELECT *
FROM A LEFT JOIN B
ON A.Nomer = B.Nomer
WHERE B.Nomer IS NULL;

Right Excluding JOIN


Right Excluding JOIN akan menampilkan data pada tabel kedua (tabel kanan)
yang tidak mempunyai pasangan yang cocok dengan tabel pertama (tabel kiri).
Bentuk JOIN ini mirip dengan Right JOIN namun tidak mengikutsertakan data
pada tabel kanan yang mempunyai pasangan dengan data tabel kiri. Pada
dasarnya Right Excluding JOIN adalah kebalikan dari Left Excluding JOIN.
Representasi visual dari tipe JOIN ini adalah sebagai berikut:

Right Excluding JOIN


Secara umum perintah untuk menghasilkan Right Excluding JOIN adalah:
SELECT <select_list>
FROM Table_A as A
RIGHT JOIN Table_B as B
ON A.Key = B.Key
WHERE A.Key IS NULL;

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;

Full Outer JOIN


Full Outer JOIN atau disebut juga Outer JOIN/Full JOIN adalah tipe JOIN yang
akan menampilkan seluruh data dari tabel pertama (tabel kiri) dan tabel kedua
(tabel kanan) dengan mencocokkan elemen kolom yang sesuai dan
mengosongkan dengan memberikan nilai NULL jika tidak mempunyai data
pasangan di tabel lainnya. Representasi visual dari tipe JOIN ini adalah sebagai
berikut:

Full Outer JOIN


Pada MySQL tidak didukung kata kunci yang langsung dapat digunakan untuk
melakukan Full Outer JOIN. Untuk mendapatkan data seperti pada Outer JOIN
digunakan UNION dengan perintah sebagai berikut:

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;

Outer Excluding JOIN


Full Outer Excluding JOIN atau disebut juga Outer Excluding JOIN/Full Excluding
JOIN adalah tipe JOIN yang akan menampilkan seluruh data dari tabel pertama
(tabel kiri) yang tidak mempunyai kecocokan/pasangan dengan tabel kedua
(tabel kanan) dan seluruh data pada tabel kedua (tabel kanan) yang tidak
mempunyai kecocokan dengan tabel pertama (tabel kiri). Representasi visual
dari tipe JOIN ini adalah sebagai berikut:

Full Outer Excluding JOIN


Pada MySQL juga tidak didukung kata kunci yang langsung dapat digunakan
untuk melakukan Full Outer Excluding JOIN. Untuk mendapatkan data seperti
pada Full Outer Excluding JOIN digunakan UNION dengan perintah sebagai
berikut:
SELECT <select_list>
FROM Table_A as A
LEFT JOIN Table_B as B
ON A.Key = B.Key
WHERE B.Key IS NULL
UNION
SELECT <select_list>

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

Alat dan bahan praktikum:


a. Modul praktikum
b. Alat Tulis
c. Komputer yang sudah terinstal MySql
Kegiatan praktikum:
Kegiatan 1

1. Buatlah tabel employees dengan attribut emp_no, name


2. Buatlah tabel salary dengan deskripsi tabel sebagai berikut:
NULL
Atribut
Tipe
emp_no
int(11)
No
salary
int(11)
No
from_date date
No
to_date
date
No
3. Set emp_no dan from_date sebagai PRIMARY KEY!
4. Set emp_no sebagai FOREIGN KEY yang mengacu pada kolom emp_no
di tabel employees dengan aksi ON DELETE CASCADE!
5. Lihat deskripsi tabel salary dan lihat perintah pembuatan tabel (CREATE
TABLE) salary yang telah dibuat!
Penilaian:
a.

Keaktifan mahasiswa dalam praktikum

b. Kemampuan dalam menangkap dan menjalankan perintah Instruktur

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

Tampilkan daftar noPlat mobil yang pernah disewa oleh bidu


select sewa.noPlat from sewa, penyewa where sewa.noKtp = penyewa.noKTP and penyewa.nama='bidu';
Kapan saja bidu menyewa mobil
select tglSewa from penyewa, sewa where penyewa.noKTP=sewa.noKTP and penyewa.nama='bidu';
Tampilkan noKTP dan nama peminjam/penyewa yang pernah meminjam mobil dengan nomor plat B 6756 TOP
select penyewa.noKTP, penyewa.nama from penyewa, sewa where penyewa.noKTP=sewa.noKTP and sewa.noPlat='B 6756 TOP';
Tampilkan noKTP,nama pemilik dan merk mobilnya
select pemilik.noKtp, pemilik.nama, mobil.merk from mobil, pemilik where pemilik.noKtp = mobil.noKtpmilik;
Tampilkan noKTP, nama dan alamat peminjam/penyewa yang meminjam mobil setelah tanggal 2 Maret 2014

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

yyyy adalah tahun dalam format angka

mm adalah nomor bulan dalam format 2 angka

dd adalah tanggal dalam bulan dengan format 2 angka

HH adalah jam dalam format jam 00-23

ii adalah menit dalam format 00-59

ss adalah detik dalam format 00-59


Berikut ini fungsi built-in untuk data tanggal dalam MySQL :
1. ADDDATE(date, INTERVAL ekspresi_interval)
2. CURDATE() dan CURRENT_DATE()
3. CURTIME() dan CURRENT_TIME()
4. CURRENT_TIMESTAMP()
5. DATE_ADD(date, INTERVAL ekspresi_interval)
6. DATE_FORMAT(date, simbolformat)
7. DATE_SUB(date, INTERVAL ekspresi_interval)
8. DAYNAME(date)

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

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

58

Tabel KRS
NIU

Kode

Nilai

00114

90

01052

70

01104

67

01052

88

01104

99

00993

87

00066

67

00287

78

01040

89

1. Tampilkan Nilai tertinggi


2. Tampilkan Daftar NIM dan Nilai tertinggi yang didapat setiap Mhs
3. Tampilkan rata-rata nilai
4. Tampilkan rata-rata nilai matakuliah 'B'
5. Tampilkan Daftar NIM dan Rata-rata yang didapat setiap Mhs
6. Tampilkan Nilai terendah
7. Tampilkan selisih nilai tertinggi dengan nilai terendah

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

Berapa banyak mobil yang dipinjam pada tanggal 1 Maret 2014;


Berapa kali mobilnya LUSI dipinjam;

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:

Perintah SQL menjadi lebih terstruktur, dimungkinkan untuk memisahkan


tiap-tiap bagian statement-nya.

Sebagai alternatif cara untuk melakukan operasi tanpa JOIN dan UNION,
dalam beberapa kasus dapat dimanfaatkan untuk membuat perintah SQL
yang lebih optimal.

Subquery dipandang lebih sederhana dan lebih mudah dibaca jika


dibandingkan JOIN atau UNION.

Contoh nested query sederhana:


SELECT * FROM employees WHERE emp_no IN
(SELECT emp_no FROM dept_emp);
Sebuah subquery dapat memberikan nilai hasil berupa nilai tunggal, satu
baris data, satu kolom data, atau satu tabel (satu atau lebih baris dari satu atau
lebih kolom data). Query yang menggunakan nilai yang dihasilkan oleh subquery
harus menangkap nilai tersebut dengan benar, sebagai contohnya adalah untuk
nilai tunggal dapat digunakan sama dengan (=) sedangkan untuk data lebih dari
satu digunakan IN, NOT IN, atau sejenisnya.
Sebuah subquery dapat mengandung kata kunci atau klausa layaknya perintah
SELECT biasa, yaitu diantaranya: DISTINCT, GROUP BY, ORDER BY, LIMIT,
JOIN, UNION, dan lain sebagainya. Sedangkan yang dapat menjadi outer
statement adalah perintah SELECT, INSERT, UPDATE, DELETE, SET, atau DO.
Perbandingan Dengan Subquery
Perbandingan berparameterkan hasil dari subquery menggunakan operator = > <
>= <= <> != <=> dapat dilakukan pada umumnya dengan bentuk perintah:
perintahSQL_non_subquery operator_perbandingan (subquery);

61

Operator perbandingan digunakan untuk menyaring data berdasarkan suatu nilai


tunggal agar data yang dipilih sesuai dengan yang dikehendaki. Penggunaanya
memang mirip dengan penggunaan pada klausa WHERE perintah SQL
sederhana, hanya saja nilai skalar sebagai parameter didapatkan dari subquery.
Contoh perintahnya:
SELECT * FROM employees WHERE
emp_no = (SELECT emp_no FROM dept_emp WHERE
dept_no = (SELECT dept_no FROM departments WHERE
dept_name = "Internal Affairs"));
Pastikan bahwa subquery memberikan hasil satu baris sebagai parameter
perbandingan, karena apabila hasil subquery lebih dari satu baris data maka
akan terjadi error.
Subquery Dengan IN, ANY, SOME
Kata kunci IN, ANY, dan SOME dapat digunakan untuk penyaringan data dengan
persyaratan nilai jamak hasil dari subquery. Jika perintah SQL yang bukan
subquery memberikan sebuah variabel/field yang berkedudukan sebagai
operand (objek yang akan dikenakan operasi) dan operasi = > < >= <= <> != <=>
adalah operator perbandingannya, maka secara umum penggunaan kata kunci
IN, ANY, dan SOME adalah sebagai berikut:
operand operator_perbandingan ANY (subquery)
operand IN (subquery)
operand operator_perbandingan SOME (subquery)
Perhatikan contoh berikut:
SELECT * FROM employees
WHERE emp_no IN
(SELECT emp_no FROM salaries
WHERE salary>8000000);
Perintah di atas akan menampilkan data pegawai dengan gaji lebih dari delapan
juta. Subquery akan memberikan nomer pegawai yang memiliki gaji lebih dari
delapan juta, sedangkan query induk akan memilih data dari tabel employees
yang nomer pegawainya ada pada hasil yang diberikan oleh subquery.
Ketika digunakan pada nested query (perintah SQL dengan subquery) maka kata
kunci IN dapat digantikan dengan = ANY. Dengan demikian perintah SQL berikut
memberikan hasil yang sama dengan contoh perintah SQL dengan kata kunci IN:
SELECT * FROM employees
WHERE emp_no = ANY
(SELECT emp_no FROM salaries
WHERE salary>8000000);
Kata kunci ANY (digunakan setelah operator perbandingan) akan menampilkan
hasil data apabila ada paling tidak satu data pada subquery yang bernilai benar
(TRUE) apabila dioperasikan dengan operator perbandingan dengan data pada
outer query-nya. Contoh:

62

SELECT a FROM b WHERE a < ANY (SELECT a FROM c);


Perintah di atas akan menampilkan data kolom a dari tabel b yang memenuhi
persyaratan perbandingan, yaitu apabila ada satu saja data pada kolom a tabel c
yang lebih besar dari data kolom a tabel b tersebut. Perbandingan dilakukan
untuk setiap data pada tabel b dengan setiap data pada tabel c.
Kata kunci SOME adalah alias dari ANY namun relatif lebih jarang digunakan.
Dengan demikian untuk semua perintah SQL dengan kata kunci ANY akan tetap
memberikan hasil yang sama ketika kata kunci ANY diganti dengan SOME.
Subquery Dengan ALL
Operand operator_perbandingan ALL (subquery)
Kata kunci ALL setelah operator perbandingan = > < >= <= <> != <=> digunakan
untuk penyaringan data dengan persyaratan perbandingan harus bernilai benar
(TRUE) untuk semua nilai yang dihasilkan oleh subquery. Perhatikan contoh
berikut:
select * from salaries where salary > ALL
(select salary from salaries where emp_no=10009);
Perintah di atas adalah untuk menampilkan data gaji pegawai yang lebih besar
dari gaji yang pernah diterima pegawai dengan nomor pegawai 10009, baik gaji
saat ini maupun gaji yang dulu.
NOT IN dapat digunakan sebagai alternatif lain kata kunci < > ALL,dengan
demikian dua statement SQL di bawah ini bernilai sama:
SELECT s1 FROM t1 WHERE s1 <> ALL (SELECT s1 FROM t2);
SELECT s1 FROM t1 WHERE s1 NOT IN (SELECT s1 FROM t2);
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi

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

1. Tampilkan Nilai tertinggi


2. Tampilkan Daftar NIM dan Rata-rata yang didapat setiap Mhs
3. Tampilkan NIM dan Nilai mahasiswa yang mendapat nilai tertinggi
4. Tampilkan NIM dan Nilai mahasiswa yang mendapat nilai 'A' tertinggi
5. Tampilkan NIM dan Nilai mahasiswa yang mendapat nilai 'Basdat' tertinggi
6. Tampilkan kode Matkul dimana 'Anik' mendapat nilai tertinggi.
7. Tampilkan NIM dan nilai rata-rata untuk mahasiswa yang nilai rata-ratanya
tertinggi

Penilaian:
a. Keaktifan mahasiswa dalam praktikum

b. Kemampuan dalam menangkap dan menjalankan perintah Instruktur

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

2. Tambahkan 100000 pada data gaji pegawai dengan nomor pegawai


(emp_no) 10003!
3. Buatlah tiga buah contoh perintah SQL yang terdapat kata kunci IN, ANY,
dan SOME di dalamnya!
4. Dapatkah melakukan penghapusan data pada lebih dari satu tabel
dengan hanya menggunakan satu perintah SQL?

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

Untuk menghapus VIEW digunakan perintah:


DROP VIEW [IF EXISTS] [database_name].[view_name]
Sebagai contoh untuk menghapus VIEW jumlah_pegawai digunakan perintah
berikut:
DROP VIEW jml_pegawai;
Contoh :
mysql> CREATE VIEW karyawan_bantul(nip,nama) AS SELECT nip,nama
FROM pribadi
-> WHERE
kota='Bantul';
Query OK, 0 rows affected (0.08 sec)
Untuk menampilkan view :
mysql> SELECT * FROM karyawan_bantul;
+-----------+-----------------------------+
| nip
| nama
|
+----------+------------------------------+
| 12341 | Hamdan Arif
|
+----------+------------------------------+
1 row in set (0.00 sec)
View mempermudah proses select, jika ada perintah join maka perintah
tersebut sudah disimpan dalam definisi view. Adanya view memungkinkan
kita untuk melakukan proses pemfilteran lebih rinci, karena hasil dari suatu
view dapat dianggap sebagai tabel virtual. Sebagai suatu tabel virtual, view
akan memiliki kolom-kolom yang sesuai dengan nama- nama kolom yang
ada pada ekspresi query.
View merupakan alias yang berupa isi sebagian suatu tabel atau gabungan
beberapa tabel yang disederhanakan proses pembacaannya.
Pembuatan view seringkali berhubungan dengan masalah keamanan agar
pengakses data tidak perlu mengetahui secara fisik ada di mana data
tersebut berada dan apa criteria yang digunakan untuk membuat view
tersebut, sehingga sebagian pemakai hanya diberikan akses hanya
kepada view.
Daftar pustaka:
Buku Modul Praktikum Basis Data Komputer dan Sistem Informasi Sekolah
Vokasi UGM
Nugroho, Bunafit. 2005. Database Relasional dengan MySQL. Yogyakarta. Andi

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

1. Buat View yang mungkin.


2. Gunakan View yang telah dibuat
3. Hapus View yang telah dibuat

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

1. Buatlah sebuah View bernama rekapMatkul untuk menampilkan kode,


nilai rata-rata, nilaitertinggi, nilaiterendah, dan jumlah mahasiswa (jumlah
mahasiswa yang sudah mengambil) untuk setiap kode matkul;

72

2. Buatlah sebuah View bernama RekapPerMahasiswa untuk


menampilkan nilai rata-rata, nilai tertinggi, nilai terendah, dan jumlahtotal
(jumlah matkul yang sudah diambil) oleh mahasiswa dengan nim 01040
3. Buatlah View yang menampilkan:
1. Tampilkan Nilai tertinggi
2. Tampilkan Daftar NIM dan Nilai tertinggi yang didapat setiap Mhs
3. Tampilkan rata-rata nilai
4. Tampilkan rata-rata nilai matakuliah 'B'
5. Tampilkan Daftar NIM dan Rata-rata yang didapat setiap Mhs
6. Tampilkan Nilai terendah
7. Tampilkan selisih nilai tertinggi dengan nilai terendah

73

LEMBAR KERJA

74

Anda mungkin juga menyukai