• Tidak ada hasil yang ditemukan

PERANCANGAN BASIS DATA SLIDE

N/A
N/A
Otong Daroji

Academic year: 2023

Membagikan "PERANCANGAN BASIS DATA SLIDE"

Copied!
117
0
0

Teks penuh

(1)

PERANCANGAN BASIS DATA

Dosen :

Achmad Zakki Falani, S.Kom

Fakultas Ilmu Komputer

Universitas Narotama Surabaya

(2)

Kriteria Penilaian:

Kehadiran : 10 %

Tugas : 15 %

Keaktifan : 15 %

NIlai UTS : 30 % (Reg.)

Nilai UAS : 30 % (Reg.)

Nilai UAS : 60 % (Ins.)

NEXT BACK

(3)

Definisi Basisdata

Beberapa definisi basisdata (database) adalah sbb:

Sekumpulan data store(bisa dalam jumlah besar) yang tersimpan dalam magnetic disk, optical disk, dan media penyimpan sekunder lainnya.

Sekumpulan program-program aplikasi umum yang mengeksekusi dan memproses data secara umum (hapus,cari,update,dll)

Basisdata terdiri dari data yang di-share bagi banyak user dan memungkinkan penggunaan data yang

sama pada waktu bersamaan oleh banyak user

Koleksi terpadu dari data-data yang saling berkaitan

dari suatu enterprise.Mis. Basisdata RS akan terdiri

dari data-data seperti pasien, karyawan, dokter,

perawat, dll.

(4)

Definisi Perancangan Basisdata

Perancangan Database adalah proses untuk menentukan isi dan pengaturan data yang dibutuhkan untuk mendukung berbagai rancangan sistem.

Tujuan Perancangan Database :

• untuk memenuhi informasi yang berisikan kebutuhan-kebutuhan user secara khusus dan aplikasi-aplikasinya.

• memudahkan pengertian struktur informasi.

• mendukung kebutuhan-kebutuhan pemrosesan dan beberapa obyek penampilan (response time, processing time, dan storage space)

NEXT BACK

(5)

Proses Perancangan Database

6 Fase proses perancangan database : 1. Pengumpulan data dan analisis

2. Perancangan database secara konseptual 3. Pemilihan DBMS

4. Perancangan database secara logika (data model mapping)

5. Perancangan database secara fisik 6. Implementasi Sistem database.

6 fase di atas tidak harus diproses berurutan. Pada beberapa hal, rancangan tsb dapat dimodifikasi dari yang pertama dan

sementara itu mengerjakan fase yang terakhir (feedback loop antara fase) dan feedback loop dalam fase sering terjadi selama proses perancangan.

(6)

Fase 1 :

Pengumpulan data dan analisa

Proses identifikasi dan analisa kebutuhan-kebutuhan data disebut pengumpulan data dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem database,pertama-tama harus mengenal bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem database, termasuk para pemakai yang ada dan para pemakai yang baru serta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para

pemakai dan aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalisa.

NEXT BACK

(7)

Aktifitas-aktifitas pengumpulan data dan analisa :

1.

Menentukan kelompok pemakai dan bidang-bidang aplikasinya.

2.

Peninjauan dokumentasi yang ada.

3.

Analisa lingkungan operasi dan pemrosesan data.

4.

Daftar pertanyaan dan wawancara.

(8)

Fase 2 :

Perancangan database konseptual

Tujuan dari fase ini adalah menghasilkan conceptual schema untuk database yang tergantung pada

sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data model seperti ER/EER model selama fase ini. Dalam conceptual schema, kita

harus merinci aplikasi-aplikasi database yang

diketahui dan transaksi-transaksi yang mungkin.

NEXT BACK

(9)

Aktifitas paralel perancangan database secara konseptual :

1. Perancangan skema konseptual :

menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari fase 1, dan menghasilkan sebuah conceptual database schema pada DBMS independent model data tingkat tinggi seperti EER (enhanced entity relationship) model.

2. Perancangan transaksi :

menguji aplikasi-aplikasi database dimana

kebutuhan-kebutuhannya telah dianalisa pada

fase 1, dan menghasilkan perincian transaksi-

transaksi ini.

(10)

Fase 3 :

Pemilihan DBMS

Pemilihan database ditentukan oleh beberapa faktor, diantaranya:

1. Struktur data

Jika data yang disimpan dalam database mengikuti struktur hirarki, maka suatu jenis hirarki dari DBMS harus dipikirkan.

2. Personal yang telah terbiasa dengan suatu sistem

Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar.

3. Tersedianya layanan penjual

Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu memecahkan beberapa masalah sistem.

4. Teknik

Keberadaan DBMS dalam menjalankan tugasnya seperti jenis -jenis DBMS (relational, network, hierarchical, dll), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dll.

NEXT BACK

(11)

Fase 4 :

Perancangan database secara logika (pemetaan model data)

Fase selanjutnya dari perancangan database adalah

membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini

dilakukan oleh pemetaan skema konseptual dan skema

eksternal yang dihasilkan pada fase 2. Pada fase ini,

skema konseptual ditransformasikan dari model data

tingkat tinggi yang digunakan pada fase 2 ke dalam

model data dari DBMS yang dipilih pada fase 3.

(12)

Pemetaan diproses dalam 2 tingkat :

1. Pemetaan system-independent :

Pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data tsb.

2. Penyesuaian skema ke DBMS yang spesifik :

mengatur skema yang dihasilkan pada langkah 1

untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang dipilih.

NEXT BACK

(13)

Fase 5 :

Perancangan database fisik

Perancangan database secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file database untuk mencapai penampilan yang terbaik pada bermacam-macam aplikasi.

Selama fase ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang berhubungan dengan

struktur-struktur penyimpanan fisik, penempatan record

dan jalur akses.

(14)

Petunjuk pemilihan perancangan database secara fisik :

1. Response time

Waktu yang telah berlalu dari suatu transaksi database yang diajukan Untuk menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang ditunjuk oleh suatu transaksi.

Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi.

2. Space Utility

Jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur-Struktur jalur akses.

3. Transaction throughput :

Rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem database, dan merupakan parameter kritis dari sistem transaksi (misal, digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentual awal dari struktur penyimpanan dan jalur akses untuk file-file database.

NEXT BACK

(15)

Fase 6 :

Implementasi sistem database

Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan sistem database. Perintah-perintah dalam DDL dan SDL(storage definition language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema database dan file-file database (yang kosong) kemudian

database tsb dimuat (disatukan) dengan datanya.

Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke

database yang baru. Transaksi-transaksi database sekarang harus dilaksanakan oleh para programmmer aplikasi.

(16)

ALASAN PERANCANGAN BASIS DATA

Sistem basis data telah menjadi bagian dalam sistem informasi suatu organisasi

Kebutuhan menyimpan data dl jumlah besar semakin mendesak

Fungsi-fungsi dalam organisasi semakin dikomputerisasikan

Semakin kompleks data & aplikasi yg digunakan, maka relationship antar data harus dimodelisasikan

Dibutuhkannya kemandirian data

(17)

KONVERSI & LOADING DATA

Tahap ini dilakukan apabila sistem basis data yg ada digantikan sistem basis data baru

Semua data yg ada ditransfer ke basis data

baru & konversi aplikasi yg ada utk basis data

baru

(18)

PENGOPERASIAN & PERAWATAN

Pengoperasian basis data setelah divalidasi

Memonitor kinerja sistem, jika tidak sesuai perlu reorganisasi basis data

Perawatan & upgrade sistem aplikasi basis

data jika diperlukan.

(19)

Model Konseptual Basis Data

Model konseptual merupakan kombinasi beberapa cara untuk

memproses data untuk beberapa aplikasi. Pada perancangan model konseptual basis data ini penekanan dilakukan pada struktur data dan relasi antara field.

Pada perancangan model konseptual ini dapat dilakukan dengan menggunakan model data relasional.

(20)

Teknik Normalisasi

Proses normalisasi adalah proses pengelompokan data elemen menjadi

tabel-tabel yang menunjukkan entity dan relasinya. Pada proses normalisasi dilakukan pengujian pada beberapa kondisi apakah ada kesulitan pada saat menambah/menyisipkan, menghapus, mengubah dan mengakses pada suatu Basis data.

Bila terdapat kesulitan pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel lagi atau dengan kata lain perancangan basis data belum optimal.

Contoh:

- Tabel usermanager yang dapat dinormalisasi ke beberapa aplikasi.

NEXT BACK

(21)

Entity

Entity atau entitas, dalam basis data entity

sama halnya dengan sebuah tabel.

(22)

Atribut

Atribut, dalam basis data sama halnya dengan field.

NEXT BACK

(23)

Jenis Atribut

Atribut Sederhana

Atribut Komposit

Atribut Bernilai Tunggal

Atribut Bernilai Jamak

Atribut Harus Bernilai

Atribut Bernilai Null

Atribut Turunan

(24)

Atribut Sederhana

Atribut Sederhana : atribut sederhana merupakan atribut atomik yang tidak dapat lagi dipecah menjadi atribut lain.

Contoh:

Entitas mahasiswa mempunyai atribut sederhana berupa NIM, Nama Mahasiswa .

NEXT BACK

(25)

Atribut Komposit

Atribut Komposit : atribut komposit merupakan atribut yang masih

dapat dipecah menjadi sub-sub atribut yang masing-masing memiliki arti tesendiri.

Contoh:

Entitas mahasiswa mempunyai atribut alamat. Maka alamat disini dapat dipecah menjadi sub atribut seperti kota, kab, kode_pos.

Entitas dosen mempunyai atribut nama_dosen. Maka nama disini dapat dipecah menjadi sub atribut lain seperti glr_dpn, nama, glr_blk.

(26)

Atribut Bernilai Tunggal

Atribut Bernilai Tunggal : atribut yang hanya memiliki satu nilai untuk setiap barisnya.

Contoh:

entitas mahasiswa mempunyai atribut NIM, nama, alamat isi data dari atribut ini hanya boleh diisi dengan 1 data.

Setiap mahasiswa hanya memiliki 1 NIM, 1 Nama, 1 Alamat.

NEXT BACK

(27)

Atribut Bernilai Jamak

Atribut Bernilai Jamak : yaitu atribut yang boleh memiliki lebih dari satu nilai untuk setiap barisnya.

Contoh:

entitas mahasiswa mempunyai atribut Hobby isi data dari atribut ini boleh lebih dari 1 data. Mahasiswa Roshita memiliki NIM 04102002 beralamat di Jalan Garuda 32 Yogyakarta memiliki Hobby (Olah Raga, Nyanyi, Masak dan Nonton TV)

(28)

Atribut Harus Bernilai (not null)

Atribut Harus Bernilai : yaitu atribut yang harus memiliki nilai data untuk setiap barisnya. Biasanya atribut seperti ini sudah ditetapkan dalam perancangan tabelnya sehingga jika dalam pengisian di kosongi akan terjadi kesalahan.

Contoh:

entitas mahasiswa mempunyai atribut NIM dan nama_mahasiswa yang harus diisi datanya, sebab jika tidak diisi akan terjadi kesalahan (error) dalam basis data

NEXT BACK

(29)

Atribut Bernilai Null (is null)

Atribut Bernilai Null : yaitu atribut yang boleh tidak memiliki nilai data untuk setiap barisnya.

Contoh:

entitas mahasiswa mempunyai atribut hobby, nama_pacar yang boleh tidak terisi.

(30)

Atribut Turunan

Atribut Turunan : yaitu atribut yang nilai-nilainya diperoleh dari pengolahan atau dapat diturunkan dari atribut lain yang berkaitan.

Contoh:

entitas mahasiswa mempunyai atribut IPK yang diperoleh dari

pengolahan atribut Nilai pada tabel (entitas Nilai) dengan kode NIM mahasiswa yang sama dan diproses sehingga menghasilkan IPK untuk mahasiswa yang bersangkutan.

NEXT BACK

(31)

QUIZ I:

“Kerjakan Sesuai dengan Analisis Anda Masing-masing”

1. Jelaskan dengan bahasa Anda sendiri, tentang Fase Proses Perancangan Database!

2. Menurut Pendapat Anda, apakah penggunaan perancangan database mutlak digunakan dalam proses pembuatan

sistem informasi? Jelaskan Alasannya?

3. Buatlah 5 contoh yang lain tentang:

atribut sederhana

atribut komposit

atribut bernilai tunggal

atribut bernilai jamak

atribut harus bernilai (not null)

atribut bernilai null (is null)

atribut turunan

(32)

Soal

Buatlah contoh yang lain tentang:

atribut sederhana

atribut komposit

atribut bernilai tunggal

atribut bernilai jamak

atribut harus bernilai (not null)

atribut bernilai null (is null)

atribut turunan

NEXT BACK

(33)

Field (Atribut) Kunci

setiap field selalu terdapat kunci berupa field atau satu set field yang dapat mewakili record.

Misalnya Nomor Induk Mahasiswa (NIM) merupakan

kunci dari tabel mahasiswa suatu Perguruan Tinggi, setiap pencarian cukup dengan menyebut NIM mahasiswa tersebut maka dapat diketahui identitas mahasiswa lainnya seperti nama, alamat dan atribut lainnya.

Contoh lain:

Nomor Pegawai (NIDN) bagi data dosen, NIK untuk data karyawan, Kode_Kuliah untuk data Mata kuliah, dan lain sebagainya.

(34)

Kunci Kandidat (Candidate Key)

Kunci kandidat adalah satu atribut atau satu set atribut yang

mengidentifikasikan secara unik suatu kejadian spesifik dari entity.

Satu set atribut menyatakan secara tidak langsung dimana anda tidak dapat membuang beberapa atribut dalam set tanpa merusak

kepemilikan yang unik.

NEXT BACK

(35)

Kunci Kandidat (Candidate Key)

Contoh:

Tabel pegawai berisi field:

nik

no_ktp

nama_pegawai

tmp_lahir

tgl_lahir

alamat

kota

Kunci kandidat dalam tabel pegawai di disamping dapat dipilih sbb :

nik

no_ktp

nama_pegawai (tidak dapat dipakai karena sering seseorang punya nama yang

sama dengan orang lain)

tmp + tgl Lahir (mungkin bisa dipakai sebagai kunci karena kemungkinan orang dengan nama yang sama dan tanggal lahir yang

sama cukup kecil)

nama + tmp + tgl_lahir (dapat dipakai sebagai kunci)

alamat dan kota (bukan kunci)

(36)

Kunci Kandidat (Candidate Key)

Contoh Kasus:

Tentukan Kunci Kandidat dari tabel tersebut Tabel mt_kuliah berisi field:

id_matkul

kode_matkul

nama_matkul

kurikulum

semester

sks

nilai_minimum

NEXT BACK

Kunci kandidat dalam tabel mt_kuliah di disamping dapat dipilih sbb :

id_matkul

kode_matkul

nama_matkul (mungkin bisa dipakai sebagai kunci karena kemungkinan nama matkul dengan yang lain ada perbedaan)

kurikulum + semester + sks +

nilai_minimum (tidak dapat dipakai karena sering matkul punya data yang

sama dengan matkul lain)

(37)

Kunci Primer (Primary Key)

Primary key adalah satu atribut atau satu set minimal atribut yang tidak

hanya mengidentifikasi secara unik suatu kejadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity.

Catatan:

Setiap kunci kandidat dapat menjadi kunci primer tetapi sebaliknya sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang ada.

(38)

Kunci Primer (Primary Key)

Contoh :

nik (karena sifatnya yang unik maka tidak mungkin pegawai mempunyai Nomor Induk Karyawan yang sama).

no_ktp (bisa dipakai misalnya untuk pegawai yang baru belum mendapatkan nomor pegawai maka bisa digunakan nomor KTP untuk sementara sebagai kunci primer.

kode_mtkuliah (bisa dipakai untuk data mata kuliah karena kode mata kuliah bersifat unik untuk tiap mata kuliah)

NEXT BACK

(39)

Kunci Primer (Primary Key)

Contoh Kasus:

Tentukan Kunci Primer dari tabel tersebut Tabel mt_kuliah berisi field:

id_matkul

kode_matkul

nama_matkul

kurikulum

semester

sks

nilai_minimum

(40)

Kunci Alternatif (Alternate Key)

Kunci alternatif adalah kunci kandidat yang tidak dipakai sebagai kunci primer.

Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam membuat laporan.

NEXT BACK

(41)

Kunci Alternatif (Alternate Key)

Contoh Kasus:

Tentukan Kunci Alternatif dari tabel tersebut Tabel krs berisi field:

no_krs

id_matkul

nim

nilai_angka

nilai_huruf

lulus

(42)

Kunci Tamu (Foreign Key)

Kunci tamu adalah satu atribut atau satu set minimal atribut yang melengkapi satu hubungan yang menunjukkan ke induknya.

kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk yang direlasikan.

Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship)

NEXT BACK

(43)

Kunci Tamu (Foreign Key)

Contoh Kasus:

Tentukan Kunci Tamu dari tabel tersebut

(44)

Kamus Data

Contoh Kamus Data :

Nama Database : akademik Nama Tabel : mahasiswa

Fungsi : menyimpan data mahasiswa

NEXT BACK

(45)

Soal

Buatlah contoh kamus data yang lain, yang bertemakan akademik?...

Syarat: minim 3 table & 5 field

(46)

Bahasa Basisdata

Contoh Kamus Data :

Nama Database : akademik Nama Tabel : dosen

Fungsi : menyimpan data profil dosen Nama Field Tipe Panjang

Karakter Keterangan

id Integer 3 Primary Key

nidn Varchar 15 Unique

glr_dpn Varchar 15

nama Varchar 20

glr_blk Varchar 15

jab_akademik Varchar 50

telp Varchar 30

email Varchar 30

NEXT BACK

(47)

Bahasa Basisdata

Contoh Kamus Data :

Nama Database : akademik Nama Tabel : mt_kuliah

Fungsi : menyimpan data mata kuliah

Nama Field Tipe Panjang

Karakter Keterangan

id Integer 3 Primary Key

mtk_kode Varchar 10

mtk_nama Varchar 30

sks Char 1

semester Char 1

kurikulum Char 9

(48)

Bahasa Basisdata

Contoh Kamus Data :

Nama Database : akademik Nama Tabel : mtk_open

Fungsi : menyimpan data mata kuliah yang dibuka

Nama Field Tipe Panjang

Karakter Keterangan

id Integer 10 Primary Key

mtk_id Integer 3

dosen_id Integer 3

thn_ajaran Char 9

aktif Char 1

NEXT BACK

(49)

ERD (Entity Relationship Diagram)

ERD merupakan suatu model untuk menjelaskan hubungan antar data

dalam basis data berdasarkan objek- objek dasar data yang mempunyai

hubungan antar relasi.

(50)

ERD (Entity Relationship Diagram) Symbol

NEXT BACK

ERD untuk memodelkan struktur data dan hubungan antar data, untuk

menggambarkannya digunakan beberapa notasi dan simbol. Pada dasarnya ada tiga simbol yang digunakan, yaitu :

a. Entiti merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. Simbol dari entiti ini biasanya

digambarkan dengan persegi panjang.

b. Atribut Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips.

c. Hubungan / Relasi Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.

(51)

ERD (Entity Relationship Diagram) Relasi

Satu ke satu (One to one)

Hubungan relasi satu ke satu yaitu setiap entitas pada

himpunan entitas A berhubungan paling banyak dengan satu entitas pada himpunan entitas B

entitas 1 entitas 2 entitas 3 entitas 4

A

entitas 1 entitas 2 entitas 3 entitas 4

B

(52)

ERD (Entity Relationship Diagram) Relasi

NEXT BACK

Satu ke banyak (One to many)

Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A.

entitas 1 entitas 2 entitas 3

entitas 5

A

entitas 1 entitas 2 entitas 3 entitas 4

B

(53)

ERD (Entity Relationship Diagram) Relasi

Banyak ke banyak (Many to many)

Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B.

entitas 1 entitas 2 entitas 3 entitas 4

A

entitas 1 entitas 2 entitas 3 entitas 4

B

(54)

ERD (Entity Relationship Diagram) Symbol

NEXT BACK

Symbol Arti

Persegi panjang, menyatakan himpunan Entitas E.

Lingkaran/Elips, menyatakan Atribut (atribut yang berfungsi sebagai key digarisbawahi), atribut a sebagai key.

Belah ketupat, menyatakan himpunan Relasi

Garis, sebagai penghubung antara Himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atributnya.

E

a

R

(55)

ERD (Entity Relationship Diagram)

Keterangan :

Banyak pegawai bekerja pada satu

departemen.

(56)

ERD (Entity Relationship Diagram)

Contoh Kasus :

1.

Sebuah perusahaan retail memiliki banyak pelanggan yang telah memesan sejumlah barang produksi.

Gambarkan diagram ER dari proses transaksi pembelian tersebut dan buatkan tabel-

tabelnya!

(57)

SOLUSI

ER Diagram :

Keterangan:

Satu pelanggan dapat memesan banyak barang.

Banyak barang dapat diproses pada satu kali penjualan.

PELANGGAN Order

PENJUALAN BARANG

Proses 1

1 N

N

(58)

SOLUSI

Tabel :

(59)

Operasi Dasar Basis Data

1. Pembuatan basis data baru (create new database), yang identik dengan pembuatan lemari arsip yang baru.

2. Penghapusan basis data (drop database), identik dengan perusakan nilai arsip sekaligus dengan isinya.

3. Pembuatan file/tabel baru ke suatu basis data (create table), identik dengan penambahan map arsip baru ke dalam lemari arsip yang telah ada.

4. Penghapusan file/tabel dari suatu basis data (drop table), yang identik dengan perusakan map arsip lama yang ada di dalam lemari arsip.

5. Penambahan atau pengisian data baru ke dalam field/tabel di sebuah basis data (insert), identik dengan penambahan lembaran arsip ke sebuah map arsip.

6. Pengambilan data dari field/tabel (retrieve/search), yang identik dengan pencarian lembaran arsip dari sebuah map arsip.

7. Pengubahan data dari sebuah field/tabel (update), identik dengan perbaikan isi lembaran arsip yang ada di sebuah map arsip.

8. Penghapusan data dari sebuah field/tabel (delete), identik dengan penghapusan sebuah lembaran arsip yang ada di sebuah map arsip.

(60)

SQL

Menggunakan Structures Query Language (SQL)

SQL adalah bahasa standar database yang digunakan untuk query, manipulasi dan memperbarui RDBMS. Karena semakin banyak organisasi yang memutuskan untuk mengkonsolidasikan database mereka ke dalam sistem seluas usaha, pengetahuan mengenai SQL akan menjadi kebutuhan untuk para

perancang database.

NEXT BACK

(61)

Bahasa Basisdata

Sebuah bahasa basisdata (database languange) dapat dipilah ke dalam 2 bentuk, yaitu :

1. Data Definition Language (DDL)

Dengan bahasa inilah kita dapat membuat tabel baru,membuat indexs, mengubah tabel, menentukan struktur penyimpanan tabel, dll. Hasil kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut Kamus Data (Data Dictionary). Kamus Data merupakan suatu metadata yaitu data yang mendeskripsikan data sesungguhnya. Kamus Data ini selalu diakses ke suatu operasi basis data sebelum file data yang sesungguhnya diakses.

(62)

SQL

NEXT BACK

DDL (Data Definition Language):

CREATE DATABASE data;

CREATE TABLE nama_tabel;

SHOW TABLES;

ALTER TABLE nama_tabel_lama RENAME nama_tabel_baru;

ALTER TABLE nama_tabel CHANGE

field_lama field_baru type_data (panjang)

(63)

Bahasa Basisdata

2. Data Manipulation Language (DML)

Berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data dapat berupa :

>> Penyisipan/penambahan data baru, penghapusan data dan pengubahan data.

Ada 2 Jenis DML, yaitu :

Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yang diinginkan serta bagaimana cara

mendapatkannya.

Contoh: dBaseIII, FoxBase

Non-Prosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

Contoh : SQL

(64)

SQL

NEXT BACK

DML (Data Manipulation Language):

SELECT nama_field FROM nama_tabel

INSERT INTO nama_tabel (field1,field2,…) VALUES

(nilai1,nilai2,…)

UPDATE nama_tabel SET field1=nilai1,….

DELETE FROM nama_tabel WHERE

field1=nilai1

(65)

SQL

Aturan Penulisan SQL:

Semua Keywords dari statement SQL diketik dengan menggunakan huruf besar.

Informasi bertipe string yang terletak di antara pernyataan SQL dapat diapit dengan kutip ganda (“) atau kutip tunggal (‘).

Pada waktu menampilkan data (recordset), SQL mendukung penggunaan wildcards dengan lambang asterisk (*).

Jika nama field atau tabel memiliki spasi di tengahnya, maka nama tersebut harus diapit dengan lambang ([]).

contoh: [nama pegawai]

Untuk menunjuk field khusus pada tabel khusus dalam pernyataan SQL digunakan notasi dot (.)

-> namatabel.namafield

(66)

SQL

Command SQL:

NEXT BACK

Perintah Keterangan

CREATE Membuat tabel atau field

ALTER Mengubah tabel dengan menambah field atau mengubah definisi field

DROP Men-DROP tabel

SELECT Mendefinisikan recordset, data apa yang akan ditampilkan dari database

INSERT Menyisipkan recordset UPDATE Mengubah recordset DELETE Menghapus recordset

(67)

SQL

Ketika menggunakan query, Anda dapat menggunakan klausa berikut untuk diimplementasikan dalam statement SQL.

Klausa SQL:

Klausa Keterangan

FROM Menentukan tabel mana yang datanya akan ditampilkan WHERE Menentukan kondisi query

GROUP BY Menentukan grup / kelompok dari informasi yang dipilih HAVING Digunakan bersama GROUP BY untuk menentukan

kondisi untuk tiap grup dalam query

ORDER BY Menentukan urutan (sort) data dari query

(68)

Loop

Entity = Tabel

Atribut = Field

Recordset = Record = Data = Baris data

NEXT BACK

(69)

Resep SQL di MySQL (DDL)

Membuat Database Sintaks:

CREATE DATABASE ‘nama_database’;

--resep_01

CREATE DATABASE ‘db_akademik’;

Catatan:

Dalam membuat database usahakan jangan gunakan spasi

Gunakan huruf kecil semua, untuk memudahkan mengingat string database kita dalam berprogramming

(70)

Resep SQL di MySQL (DDL)

NEXT BACK

Membuat Table Sintaks:

CREATE TABLE nama_table (

nama_kolom1 tipe_data [nilai_default] [constraint kolom]

……….. ……… .………. ………..

);

--resep_02

CREATE TABLE buku (

isbn char(10) PRIMARY KEY, judul varchar(50) NOT NULL, penerbit varchar(50) NOT NULL );

(71)

Resep SQL di MySQL (DDL)

Mengetahui Struktur Tabel:

Untuk menampilkan struktur tabel dalam bentuk tabular, gunakan:

DESCRIBE nama_table;

Untuk menampilkan perintah struktur tabel dalam bentuk perintah, gunakan:

SHOW CREATE TABLE nama_table;

(72)

Resep SQL di MySQL (DDL)

NEXT BACK

Contoh latihan CREATE TABLE:

-- contoh_03

-- NOTE: klausa check hny dikenal di MySQL 4.0 ke atas CREATE TABLE siswa (

id INT PRIMARY KEY AUTO_INCREMENT, nama VARCHAR(128) NOT NULL,

jenis_kel CHAR(1) NOT NULL CHECK (jenis_kel=‘L’ OR jenis_kel=‘P’), tmplahir VARCHAR(50) NOT NULL,

tgllahir DATE NOT NULL

) ENGINE=InnoDB;

(73)

Resep SQL di MySQL (DDL)

Soal: (Tuliskan dengan SQL)

Buatlah database dengan nama ->

db_kemahasiswaan

Buatlah tabel mahasiswa dengan struktur sebagai berikut:

Nama Field Tipe Data Keterangan nim Varchar(8) Primary Key nama Varchar(20) Not Null

jenis_kelamin Char(1) Not Null, L / P

aktif Char(1) Not Null, 1 / 0, Default 1

(74)

Resep SQL di MySQL (DDL)

Manajemen Table

Merubah Field

Sintaks:

ALTER TABLE nama_table CHANGE COLUMN field_lama field_baru tipe_data kriteria;

NEXT BACK

(75)

Resep SQL di MySQL (DDL)

Manajemen Table

Nama Tabel: mahasiswa

Merubah Field, nim -> id_siswa

Sintaks:

ALTER TABLE mahasiswa CHANGE COLUMN nim

id_siswa VARCHAR(8) NOT NULL;

(76)

Resep SQL di MySQL (DDL)

Soal: (Tuliskan dengan SQL)

Nama Tabel: tbl_pegawai

Merubah Field, nip -> id_pegawai

NEXT BACK

(77)

Resep SQL di MySQL (DDL)

Menghapus Data dari Tabel TRUNCATE nama_tabel;

Perintah tersebut guna menghapus baris pada tabel,

alias mengosongkan tabel.

(78)

Resep SQL di MySQL (DDL)

NEXT BACK

Menghapus Tabel

DROP TABLE nama_table;

(79)

DML (Data Manipulation Language)

SELECT nama_field FROM nama_tabel

INSERT INTO nama_tabel (field1,field2,…) VALUES

(nilai1,nilai2,…)

UPDATE nama_tabel SET field1=nilai1,….

DELETE FROM nama_tabel WHERE

field1=nilai1

(80)

SQL SELECT / FROM (DML)

State. SELECT / FROM, untuk menampilkan data dari suatu field, dapat digunakan satu atau lebih tabel.

Sintaks:

SELECT nama_field FROM nama_tabel

NEXT BACK

(81)

SQL SELECT / FROM

SELECT nama_field FROM nama_tabel

Nama Tabel: mhs

(82)

SQL SELECT / FROM

SELECT nama_field FROM nama_tabel

Nama Tabel: mhs

NEXT BACK

*) Tampilkan semua data dari field nim dan nama dari tabel mhs?...

(83)

SQL SELECT / FROM / ORDER

Klausa ORDER, terdiri dari:

ASC -> mengurutkan dari nilai kecil ke besar

DESC -> mengurutkan dari nilai besar ke kecil

Sintaks:

SELECT nama_field FROM nama_tabel ORDER BY

nama_field ASC / DESC

(84)

SQL SELECT / FROM / ORDER

SELECT nama_field FROM nama_tabel ORDER BY nama_field ASC / DESC

Nama Tabel: mhs

*) Tampilkan data dari field nim dan nama dari tabel mhs dari nim terbesar ke terkecil?...

NEXT BACK

(85)

SQL SELECT / FROM / WHERE

Klausa WHERE digunakan untuk menampilkan record yang memenuhi kondisi tertentu.

Sintaks:

SELECT nama_field FROM nama_tabel WHERE

kondisi

(86)

SQL SELECT / FROM / WHERE

Klausa Where menggunakan operator sbb:

OPERATOR PENJELASAN

< Isi field lebih kecil dari suatu nilai

<= Isi field lebih kecil atau sama dengan dari suatu nilai

> Isi field lebih besar dari suatu nilai

>= Isi field lebih besar atau sama dengan dari suatu nilai

= Isi field sama dengan dari suatu nilai

<> Isi field tidak sama dengan dari suatu nilai BETWEEN Isi field di antara suatu range

LIKE Isi field sesuai dengan pola tertentu

IN Isi field sesuai dengan satu atau dari beberapa kriteria

NEXT BACK

(87)

SQL SELECT / FROM / WHERE

SELECT nama_field FROM nama_tabel WHERE kondisi

Nama Tabel: mhs

(88)

Studi Kasus (SELECT)

Tampilan Data yang Mempunyai NIM=“04”

Tampilkan Data Mahasiswa yang Mempunyai nama “ARI”

Tampilkan Data Mahasiswa yang Mempunyai alamat “SURABAYA”

Tampilkan Data Mahasiswa yang Mempunyai NIM “02” – “04”

Tampilkan Data Mahasiswa yang Selain NIM “01”

Berapa Jumlah Data Mahasiswa yang prodi: “SISTEM INFORMASI”

Berapa Jumlah Data Mahasiswa yang alamat: “SURABAYA”

NEXT BACK

nim nama alamat prodi

01 ARI. W SURABAYA SISTEM INFORMASI

02 DEDI .K SIDOARJO SISTEM KOMPUTER

03 ARI. P SURABAYA SISTEM INFORMASI

04 AMINUDIN SURABAYA SISTEM INFORMASI

05 RIZA .F LAMONGAN SISTEM KOMPUTER

Nama Tabel: mhs

(89)

Resep SQL di MySQL

Mengambil Substring

LEFT(str,jml_str)

MID(str,awal_posisi,akhir_posisi)

RIGHT(str,jml_str)

SELECT * FROM nama_tabel

WHERE LEFT/RIGHT(nama_field,jml_str)=‘’

SELECT MID(nama_field,awal_posisi,akhir_posisi)

as variabel FROM nama_tabel

(90)

Resep SQL di MySQL

NEXT BACK

Menggabungkan String

Untuk menggabungkan string digunakan operator || atau or. Sebagai gantinya gunakan fungsi CONCAT(str1,str2,…) mysql> SELECT CONCAT(‘a’,’b’,’c’);

-> abc

(91)

Resep SQL di MySQL

Select (UCase & LCase)

UCase -> Mengubah semua teks menjadi huruf besar

LCase -> Mengubah semua teks menjadi huruf kecil

SELECT UCase(nama_field) as alias,

LCase(nama_field) as alias from NAMA_TABLE

(92)

Resep SQL di MySQL

NEXT BACK

Pembulatan:

FLOOR(bil) -> pembulatan ke bawah

CEIL(bil) -> pembulatan ke atas

ROUND(bil) -> pembulatan normal

(93)

Resep SQL di MySQL

x 1.49 1.5 1.7 2.5 -2.5

-203.4777 153.6565

Nama Table: angka

(94)

Resep SQL di MySQL

NEXT BACK

mysql> SELECT x, FLOOR(x) as f, CELL(x) as c, ROUND(x) as r FROM angka;

x f c r

1.49 1 2 1

1.5 1 2 2

1.7 1 2 2

2.5 2 3 3

-2.5 -3 -2 -2

-203.4777 -204 -203 -203

153.6565 153 154 154

(95)

Resep SQL di MySQL

Menggunakan SELECT sebagai CALCULATOR mysql> SELECT 1+1;

mysql> SELECT SIN(RADIANS(30));

(96)

Resep SQL di MySQL

Fungsi Agregat:

SUM() -> Jumlah

AVG() -> Rata - rata

MAX() -> Nilai Terbesar

MIN() -> Nilai Terkecil

NEXT BACK

i 1 2 1 3 3

(97)

Resep SQL di MySQL

MAX(), MIN(), COUNT(), SUM(), AVG() CREATE TABLE angka (i int);

INSERT INTO angka VALUES (1);

INSERT INTO angka VALUES (2);

INSERT INTO angka VALUES (3);

INSERT INTO angka VALUES (4);

INSERT INTO angka VALUES (5);

INSERT INTO angka VALUES (6);

INSERT INTO angka VALUES (7);

(98)

Resep SQL di MySQL

NEXT BACK

MAX(), MIN(), COUNT(), SUM(), AVG(),

SOAL?....

menghitung jumlah baris di tabel angka

menghitung jumlah angka yang genap

menghitung total jumlah semua angka

menghitung total jumlah angka yang ganjil

angka terkecil dan terbesar

rata-rata angka

rata-ratakan angka, tetapi jangan masukkan dalam perhitungan jika angka <> 4

(99)

Resep SQL di MySQL

MAX(), MIN(), COUNT(), SUM(), AVG() --menghitung jumlah baris di tabel angka mysql> SELECT COUNT(i) FROM angka;

--menghitung jumlah angka yang genap

mysql> SELECT COUNT(i) FROM angka WHERE i % 2 = 0;

--menghitung total jumlah semua angka mysql> SELECT SUM(i) FROM angka;

--menghitung total jumlah angka yang ganjil

mysql> SELECT SUM(i) FROM angka WHERE i % 2 = 1;

--angka terkecil dan terbesar

mysql> SELECT MIN(i), MAX(i) FROM angka;

--rata-rata angka

mysql> SELECT AVG(i) FROM angka;

--rata-ratakan angka, tetapi jangan masukkan dalam perhitungan jika angka <> 4 mysql> SELECT AVG(i) FROM angka WHERE i <> 4;

(100)

Resep SQL di MySQL

NEXT BACK

WITH ROLLUP

GROUP By di MySQL dan beberapa database lain memberi opsi WITH ROLLUP. Dengan Opsi ini, database akan menambahkan satu baris berisi total, Contoh:

mysql> SELECT field1, COUNT(field1) FROM nama_table GROUP BY field1 WITH ROLLUP;

(101)

Resep SQL di MySQL

Soal:

Mencari Nilai Kuadrat dari masing-masing id?...

id 1 2 3 4 5 6

(102)

Resep SQL di MySQL

Soal:

Mencari Nilai Kuadrat dari masing-masing id yang bernilai ganjil?...

NEXT BACK

id 1 2 3 4 5 6

(103)

Resep SQL di MySQL

Soal:

Mencari Nilai Kuadrat dari masing-masing id yang bernilai genap?...

id 1 2 3 4 5 6

(104)

Resep SQL di MySQL

Soal:

Kelompokkan Data Karyawan berdasarkan jumlah karyawan yang mendapatkan nilai gaji yang sama.

NEXT BACK

NIK NAMA_KAR NILAI_GAJI

01 ABC 700000

02 DEF 800000

03 GHI 700000

04 JKL 800000

05 MNO 700000

06 PQR 850000

(105)

Resep SQL di MySQL

Menggabungkan 2 Tabel

SELECT nama_tabel1.nama_field,nama_tabel2.nama_field FROM nama_table

WHERE kondisi relasi tabel1 dengan tabel2

(106)

Resep SQL di MySQL

NEXT BACK

Menggabungkan 2 Tabel

INNER JOIN: akan memanggil record yang matching /cocok dari kedua sisi JOIN.

RIGHT JOIN: jika ingin menampilkan semua record dari field tabel kedua (kanan) meskipun tidak cocok

dengan nilai pada field tabel pertama (kiri).

LEFT JOIN: kebalikan dari RIGHT JOIN

(107)

Resep SQL di MySQL

Menggabungkan 2 Tabel

STUDI KASUS

SINKRONISAI ACCESS 2 MySQL

(108)

Resep SQL di MySQL

NEXT BACK

INSERT INTO

Perintah SQL INSERT adalah cara utama diSQL untuk menambahkan baris baru kedalam tabel.

perintah:

INSERT INTO nama_tabel VALUES (‘nilai1’,’nilai2’,….) INSERT INTO nama_tabel (field1,field2,…) VALUES (‘nilai1’,’nilai2’,….)

(109)

Resep SQL di MySQL

INSERT IGNORE INTO

Opsi IGNORE untuk INSERT diperkenalkan oleh MySQL dan tidak dikenal pada standar SQL. Opsi IGNORE akan membatalkan

perintah INSERT yang bersangkutan jika

ternyata penambahan baris melanggar

unique atau Primary Key.

(110)

Resep SQL di MySQL

NEXT BACK

INSERT IGNORE INTO misal:

INSERT INTO t1 (1,’satu’);

akan menghasilkan pesan kesalahan karena melanggar unique, dikarenakan sudah ada baris yg nilainya 1. Maka gunakan:

INSERT IGNORE INTO t1 (1,’satu’);

jika sebuah tabel tidak mengandung unique atau PK, maka INSERT IGNORE menjadi

ekivalen dengan INSERT biasa.

(111)

Resep SQL di MySQL

REPLACE INTO

REPLACE INTO nama_tabel (field1,field2,….) VALUES (‘nilai1’,’nilai2’,….)

REPLACE INTO pada dasarnya sama dengan INSERT,

namun memiliki kelakuan jika penambahan baris baru

melanggar unique atau PK, maka baris sebelumnya

akan diganti dengan baris baru.

(112)

Resep SQL di MySQL

NEXT BACK

Kesimpulan:

REPLACE INTO sifatnya berlawanan dengan INSERT IGNORE INTO.

INSERT IGNORE INTO akan membiarkan baris lama

yang sudah ada, REPLACE INTO akan mengganti

dengan baris baru.

(113)

Resep SQL di MySQL

Contoh latihan:

CREATE TABLE t2 (i INT PRIMARY KEY, s VARCHAR(32) NOT NULL);

INSERT INTO t2 VALUES (1,’Bandung’);

-- gagal melanggar PK

INSERT INTO t2 VALUES (1,’Jakarta’);

-- tidak akan melakukan apa-apa, -- tabel tetap terisi (1,’Bandung’)

INSERT IGNORE INTO t2 VALUES (1,’Jakarta’);

-- tabel kini akan berisi (1,’Jakarta’) REPLACE INTO t2 VALUES (1,’Jakarta’);

(114)

Resep SQL di MySQL

NEXT BACK

INSERT dengan MULTIPLE RECORD INSERT INTO (field1,field2,field3)

SELECT field1,field2,field3 from NAMA_TABLE

Catatan:

Jumlah field Table Source dan Destination harus sama

(115)

Resep SQL di MySQL

Menghapus Data dari Tabel

DELETE FROM nama_table WHERE kondisi;

(116)

QUIZ II

NEXT BACK

Kerjakan sesuai dengan analisis & kemampuan Anda masing-masing:

A. Buatlah Database, dengan perintah SQL (20)

B. Buatlah Table (beserta atribut key, minim. 3 tabel) yang berelasi, dengan perintah SQL (20)

C. Dari Table tersebut isikan data minim. 10 record / baris data (10) D. Kerjakan dengan perintah SQL dari statement berikut:

1. Tampilkan semua data dari tabel master (5)

2. Tampilkan data pada tabel master dengan menggunakan klausa WHERE (5) 3. Tampilkan data pada tabel master dengan menggunakan klausa ORDER BY (5) 4. Tampilkan data pada tabel transaksi dengan menggunakan klausa GROUP BY (5) 5. Tampilkan data pada tabel master dengan menggunakan klausa WHERE & LIKE (5) 6. Tampilkan jumlah baris data pada masing – masing tabel (5)

7. Tampilkan data dari tabel yang berelasi (5)

8. Tambahkan satu record / baris data pada tabel master Anda (5) 9. Ubah data tersebut (5)

10. Hapus data tersebut (5)

(117)

1. Connoly, Thomas; Begg, Carolyn; Strachan, Anne; Database Systems : A Practical Approach to Design,

Implementation and Management, Addison Wesley, 1996.

2. Date, C.J.; An Introduction to Database System, Addison Wesley Publishing Company, Vol. 1 & Vol. 2, New York, 1990.

3. Elmasri, Ramez; Navathe, Shamkant B.; Fundamentals of Database Systems, The Benjamin/Cummings Publishing

Company, Inc., California, 1989.

4. Mc Fadden, F.; Hoffer, Jeffrey A; Database Management, Benjamin/Publishing Company Inc., Third Edition, California, 1991.

5. Martin, James; Principles of Database Management, Prentice Hall of India Private Limited, New Delhi, 1992.

6. Fathansyah, Ir., Basis Data, Informatika, Bandung, 1999.

7. Steven Hariyanto, Resep Query, Dian Rakyat, Jakarta, 2005.

DAFTAR PUSTAKA

Referensi

Dokumen terkait

Atribut : Nomor Jual Tanggal Transaksi Kode Konsumen Nama Konsumen Alamat Konsumen Kode Barang Nama Barang Jumlah Satuan Harga2. Buatlah tabel tersebut

• Membuat sebuah tabel yang menyimpan informasi tentang pegawai anda -seperti nama, tanggal gajian, Nomor ID, bahkan Foto. • Membuat sebuah tabel untuk menyimpan

Buatlah perintah untuk menghapus data dari tabel Guru yang memiliki alamat Pangkalpinang. Buatlah perintah untuk menghapus tabel

Dalam pengujian basis data ini dilakukan untuk mengetes tabel-tabel yang sudah kita normalisasi apakah sudah normal atau belum. Untuk itu kita mesti mengonsep dulu

Sebelum kita membuat suatu tabel yang digunakan untuk menyimpan data, maka harus terlebih dahulu dibuat database yang merupakan kumpulan atau berisi tabel-tabel yang saling

Candidate-Key merupakan kumpulan atribut minimal yang dapat membedakan tiap baris data (row) dalam sebuah tabel secara unik.. Primary Key merupakan suatu atribut yang

Tabel Mengerjakan, tabel ini merupakan relasi yang dijadikan entitas, tabel ini menghubungkan antara tabel mahasiswa dan tabel ujian dengan atribut nim tipe

– Kolom pada tabel merupakan representasi dari atribut yang bukan multivalue, atribut subset dari atribut komposit (catatan: atribut.. komposit‐nya sendiri tidak