Kusumodestoni (P. Toni) Hp. 085 640 11 58 65 [email protected] Jl. KH. Hasyim As’ari no.3 Ungaran Lahir di Purbalingga, 22 Desember 1986 SDN 2 Poka, Ambon SMPN 6, Purwokerto SMA Jurusan IPA, Ungaran S1, T. Informatika UDINUS, Semarang (2009) S2, T. Informatika UDINUS, Semarang (2012) UNISNU, Universitas Islam NU Jepara (Dosen Tetap) UDINUS, Universitas Dian Nuswantoro (Dosen Tidak Tetap) 1. Kuliah 2. Diskusi 3. Tanya Jawab 4. Praktek 5. Tugas 1. Ujian Akhir Semester (UAS) : 30% 2. Ujian Tengah Semester (UTS) : 30% 3. Tugas Mandiri 40% 4. Keaktifan Mahasiswa / Kehadiran : 1. Pakaian 2. Kehadiran 75% 3. Curang Dalam Ujian : E 4. Ijin Lewat SMS : 1x sebelum UTS & 1x stlh UTS 5. Ujian Susulan : Mempunyai kartu peserta ujian (UTS / UAS) Membawa surat keterangan tidak bisa ikut ujian Mahasiswa yang dapat mengikuti ujian susulan: Mendapatkan tugas dari fakultas Sakit dan sedang rawat inap Ada keluarga yang meninggal (surat kematian) Tidak ada alasan lain untuk bisa ikut ujian susulan Ajukan permohonan ke panitia pelaksana ujian Yang menentukan boleh dan tidaknya mengikuti ujian susulan adalah Panitia Pelaksana Ujian bukan Dosen Ujian susulan dilakukan 1 kali, maksimal 4 hari setelah ujian berakhir dan serempak untuk semua mata kuliah Bagi yang nilainya kurang memuaskan dan melakukan remidi, belum tentu nilainya akan naik/berubah Kurikulum Manajemen S-1 (Komputer) No Semester Gasal Semester Genap 1 Pengantar Teknologi Informasi P 2 1 Algoritma dan Pemrograman 1 T 3 2 2 Sistem Basis Data T 2 3 Algoritma dan Pemrograman 2 (Delphi) P 2 2 P 2 5 Pemrograman Aplikasi 1 (V.Basic) P 2 4 3 Pemrograman Aplikasi 2 (Foxpro) 4 Praktek Basis Data (Mysql) P 2 4 5 Analisa dan Perancangan Sistem T 3 6 Mata kuliah ini berisi implementasi dari materi yang telah disampaikan dalam mata kuliah Sistem Basis Data. DEFINISI BASIS DATA Basis : gudang/markas/tempat berkumpul/tempat bersarang ( Tempat Penyimpanan ) Data : representasi fakta dunia nyata yang mewakili suatu obyek (manusia, benda, kejadian, dll) yang disimpan dalam bentuk teks, angka, gambar, bunyi, simbol, atau kombinasinya Basis data : kumpulan data yang saling berhubungan yang diorganisasikan sedemikian rupa sehingga kelak dapat dimanfaatkan sedemikian rupa dan disimpan dalam media penyimpan elektronik Berbagai Definisi Basis Data Silberschatz, dkk (2002), Stephens dan Plew ;2000 -Kumpulan data berupa Informasi -Menyimpan Informasi dan data Mc Leod, dkk (2001), Ramakrishnan dan Gehrke (2003) - kumpulan seluruh sumber daya berbasis komputer Definisi Basis Data -Kumpulan data yg mendiskripsikan aktivitas Kesimpulan ? Basis data didefinisikan sebagai sekumpulan data yang saling berhubungan, disimpan dengan minimum redundansi untuk melayani banyak aplikasi secara optimal sehingga menghasilkan Informasi. Apa Itu Basis Data file1 file2 file4 file3 Input-Proses-Ouput Data Formulir Input Data Proses Informasi Contoh Informasi Tentang Penjualan mobil PT. Jaya Mobil periode 2000-2003 Data Penjualan Mobil PT. Jaya Mobil Tahun 2000-2003 1200 1000 Unit 800 Taruna 600 Kijang 400 200 0 2000 2001 2002 2003 Tahun Gambar 1.1. Grafik penjualan mobil periode 2000-20003 Gambar 1.1. Tabel Mahasiswa nim nim Nama_mhs Mahasiswa N Nama_mhs Alamat_mhs Tgl_lahir alamat_mhs Tgl_lahir Tabel Mempelajari/Tabel Nilai nim Kode_kul nim Kode_kul Indeks_nilai Tabel khusus yang mewakili himpunan relasi mempelajari Indeks_nilai N Tabel Kuliah Kode_kul Kuliah Nama_kul semester sks Kode_kul Nama_kul sks semester Entity Relationship Diagram (ERD) ERD adalah suatu diagram yang menggambarkan hubungan antar entity di dalam database. Skema tentang diagram pertama kali diresmikan oleh Charles Bachman pada tahun 1960-an, yang menggunakan kotak segi empat untuk menunjukkan tipe-tipe record dan tanda panah dari satu record ke record lain untuk menunjukkan hubungan one-tomany. ERD digunakan untuk memodelkan struktur data dan hubungan antar data. Dengan ERD kita mencoba menjawab pertanyaan seperti : data apa yang kita perlukan? Bagaimana data yang satu berhubungan dengan yang lain. Adalah objek dalam dunia nyata, berupa - Object fisik : Rumah, manusia, Kendaraan, Peralatan, dll - Object Konsep : Pekerjaan, Perusahaan, Rencana, kasus, dll Adalah suatu objek yang dapat dibedakan atau dapat diidentifikasikan secara unik dengan objek lainnya, dimana semua informasi yang berkaitan dengannya dikumpulkan. Kumpulan dari entity yang sejenis dinamakan Entity Set Berfungsi untuk mendeskripsikan karakter entity atau relationship. Misal entity pegawai memiliki atribut nik, nama, alamat, nohp,dll Menggambarkan hubungan antara satu atau lebih entity, yang digambarkan dalam bentuk diamond. Biasanya menunjukkan hubungan: one-to-one, one-to-many, dan many- to-many • Entity • Atribut *noktp nama alamat tgl_lahir jeniskelamin status nohp foto • Atribut *nomesin noplat model merk harga warna thn_pembuatan Entitas Lemah (Weak Entity) Berisi entitas yang kemunculannya tergantung pada eksistensinya dalam sebuah relasi.misal entitas Mahasiswa orang tua & hobby, pegawai tanggungan. Entitas kuat (Strong Entity) Entitas yang berdiri sendiri, keberadaannya tidak tergantung dengan entitas lain. Entitas kuat (Strong Entity) Entitas Lemah (Weak Entity) NIP nama Nama Pegawai miliki status Tanggungan Entity Atribut Multivalue Relationship Atribut Atribut Composite Weak Entity Identifying Relationship Atribut key Atribut Derivatif Atribut Key - atribut yang digunakan untuk membedakan data secara unik.misal nik, nim, no_peserta. Atribut Simple – atribut bernilai tunggal, misal nama, harga, status. Atribut Multivalue - atribut memiliki sekelompok nilai yang banyak, misal gelar, hobby. Atribut Composite – atribut yang masih dapat diuraikan lagi, misal alamat, korban, waktu. Atribut Derivatif – atribut yang dihasilkan dari turunan atribut lain, misal umur dari tanggal lahir. Atribut Key nama alamatlengkap Tgl_lhr Id_pegawai PEGAWAI idruang nohp jk Gol_drh agama foto kapasitas RUANG Namaruang lokasi Atribut Simple idbarang Nama BARANG Kualitas Harga Atribut Multivalue agama Gelar Tgl_lhr PEGAWAI Atribut Composite namatengah namadepan namabelakang nama Tgl_lhr PEGAWAI Atribut Derivatif agama umur Tgl_lhr PEGAWAI 1. Unary ( Derajat Satu ) Adalah satu buah relationship menghubungkan satu buah entity. Contoh : Manusia Menikah Keterangan : Manusia menikah dengan manusia, relationship menikah hanya menghubungkan entity manusia. 2. Binary ( Derajat Dua ) Adalah satu buah relationship yang menghubungkan dua buah entity. Contoh : Pegawai Memiliki Kendaraan Keterangan : Pegawai memiliki kendaraan, sebuah relationship memiliki mengubungkan entity Pegawai dan entity Kendaraan. 3. Ternary ( Derajat Tiga ) Adalah satu buah relationship menghubungkan tiga buah entity. Pegawai Contoh : Bekerja Proyek Kota Keterangan : Pegawai pada kota tertentu mempunyai suatu Proyek. Bekerja mengubungkan Entity Pegawai, Proyek dan Kota One to One Hubungan satu ke satu. Contoh seorang Dosen mengepalai satu jurusan. NIP Kd_mk Nama 1 Pegawai jenis 1 miliki Kendaraan Dinas One to Many Hubungan satu ke banyak. Contoh seorang Pelanggan membeli beberapa mobil. No_KP No_Mesin Nama 1 Pelanggan Merk n Membeli Mobil Many to Many Hubungan banyak ke banyak. Contoh mahasiswa mengambil matakuliah. Nim Kd_mk Nama n mahasiswa Nm_mk m ambil Matakuliah 1 Fakultas n Daftar Mahasiswa 1 n miliki ambil m n Dosen 1 ajar n Mata Kuliah Tabel Mahasiswa nim nim Nama_mhs Mahasiswa N Nama_mhs Alamat_mhs Tgl_lahir alamat_mhs Tgl_lahir Tabel Mempelajari/Tabel Nilai nim Kode_kul nim Kode_kul Indeks_nilai Tabel khusus yang mewakili himpunan relasi mempelajari Indeks_nilai N Tabel Kuliah Kode_kul Kuliah Nama_kul semester sks Kode_kul Nama_kul sks semester Mahasiswa dapat: Mengetahui, Memahami, dan Mengimplementasi teori Basis data ke dalam Mysql (Menciptakan, merubah, menghapus serta memanipulasi database dan isinya). 1. Pertemuan ke : 1 Memahami dan memiliki pengetahuan tentang Mysql. (Pengenalan Mysql, Bagaimana Menjalankan Mysql, melihat tanggal dan waktu dalam Mysql, Mysql untuk perhitungan). 2. Pertemuan ke : 2 s/d 3 Mengetahui tentang Database dalam Mysql. (Membuat database, melihat data base, menghapus database, membuat tabel dan melihat tabel). 3. Pertemuan ke : 4 s/d 5 Mengetahui secara umum bahasa dalam SQL. (DDL (Data Definition language), DML (Data Manipulation Language), DCL(Data Control Language)) 4. Pertemuan ke : 6 s/d 7 Mengetahui bagaimana mengelola tabel dalam Mysql. (Membuat tabel, mengubah struktur tabel, mengganti nama tabel, menghapus tabel, memasukkan data, membuat kunci) 5. Pertemuan ke : 8 s/d 9 Memahami bagaimana mengakses data dalam Mysql (Perintah Select, Klausal into, Klausal from, Klausal where, Group by, Having, Klausal order by, Super Aggregate). 6. Pertemuan ke : 10 - 12 Dapat memahami bagaimana menggabungkan beberapa tabel (Operator Join, Operator Relasi, Operator Between, Operator Like, Inner Join, Cross Join, Operator Union. 7. Pertemuan ke : 13 - 14 Dapat memahami bagaimana mengubah data dalam Mysql (Menambah data dengan insert, menambah data dengan select Into, mengubah data dengan Update set, klausal where untuk mengubah data, Klausal From untuk mengubah data, menghapus data dengan delete from. 1. Aripin , Modul Praktikum Basis Data, Semarang, 2003. 2. Adi Nugroho “Konsep Pengembangan Sistem Basis Data, Penerbit Informatika, Bandung. 3. Inge Martina, Ir, “Microsoft SQL Server 2000”, Penerbit PT. Elex Media Komputindo, Jakarta. 4. Arbie, “Manajemen Database dengan Mysql”, Penerbit Andi Yogyakarta, 2004. Memahami Pengetahuan tentang SQL (Stucture Query Language) Pengenalan SQL SQl singkatan dari Structured Query Language yang merupakan bahasa komputer standar ANSI (American National Standards Institute). SQL Berfungsi pemrograman sebagai basis data bahasa yang digunakan utk mengolah database. Dengan SQL kita dapat ◦ Membuat basis data dan struktur tabel ◦ Input, update, dan delete data dari tabel ◦ Membuat query sederhana dan kompleks SQL SQL tersedia dalam banyak versi Ms.Access, DB2, MS SQL server, Oracle, MySQL, Sysbase, WampServer, XampServer,dll. My SQL My SQL adalah sebuah database yang berfungsi untuk penyimpanan data dalam sebuah website. Dasar-dasar Perintah My SQL 1.Membuat Database CREATE DATABASE [nama_database] –> contoh : CREATE DATABASE db_Data_Mahasiswa; 2. Menghapus Database DROP [nama_database] –> contoh : DROP db_Data_Mahasiswa; 3. Memakai Database USE [nama_database] –> contoh : USE db_Data_Mahasiswa; 4. Membuat Tabel CREATE TABLE [nama_tabel] ( [nama_kolom] [tipe_data] [nul / not null], [nama_kolom] [tipe_data] [nul / not null], ) contoh : CREATE TABLE tbl_mahasiswa; ( nim int NOT NULL PRIMARY KEY; nama vachar(25); nilai vachar(1); kota_asal vachar(20); ) 5. Mengisi Tabel INSERT [nama_tabel] VALUES ( ['isi_kolom1' , 'isi_kolom2', dst ] ) contoh : INSERT tbl_mahasisw (nim,nama,kota_asal) VALUES ( 682003001, ‘Roy’ , ‘Jambi’ ); 6. Menampilkan Isi Tabel SELECT * FROM [nama_tabel]; contoh : SELECT * FROM tbl_mahasiswa; 7. Menghapus Tabel DELETE FROM [nama_tabel] WHERE [syarat]; contoh : DELETE FROM tbl_mahasiswa WHERE nama = ‘Roy’ ; Menghapus Seluruh Isi Tabel : DROP TABLE [ nama_tabel] –> DROP TABLE tbl_mahasiswa; 8. Memperbaharui Isi Tabel UPDATE [nama_table] SET [nama_kolom] value WHERE [syarat] ; contoh : UPDATE tbl_mahasiswa SET nilai =’A’ WHERE nim=682003001; Ada 2 (dua) jenis perintah dasar di dalam MySQL, yaitu DDL (Data Definition Language) dan DML (Data Manipulation Language) 1. DDL Adalah perintah-perintah yang biasa digunakan untuk mendefinisikan skema ke dalam DBMS, skema adalah deskripsi lengkap tentang struktur tabel, rekaman, dan hubungan data pada basis data. contoh : create… 2. DML Adalah Perintah-perintah yang digunakan untuk mengubah, memanipulasi dan mengambil data pada basis data. Tindakan meghapus (delete), mengubah (update) dan mengambil data adalah bagian dari DML. Contoh : insert, delete Ada 3 (tiga) kelompok besar tipe data yang dikenal di dalam Mysql : 1. NUMERIC Jenis data angka, di dalamnya akan diklasifikasi kembali menjadi pecahan (float, single, double) dan bilangan bulan (integer, decimal). 2. STRING Jenis data alphanumeric, bisa menampung gabungan dari angka, huruf maupun symbol yang diperbolehkan. 3. DATE Jenis data dengan aturan satuan waktu, tahun, bulan, hari, jam menit serta detik bisa disimpan menggunakan jenis data ini. Tipe Data Integer atau Int [(m)] Keterangan Signed value : -2147683648 to 2147683647 Ukuran 4 byte Unsigned value : 0 to 4294967295 Decimal atau Dec (M,D) Bilangan desimal dengan nilai tergantung besaran M dan D M byte Tinyint [(m)] 1 byte Signed value : -128 to 127 Unsigned value : 0 to 255 Smallint [(m)] Signed value : -32768 to 32767 2 byte Unsigned value : 0 to 65535 Mediumint [(m)] Signed value : -8388608 to 838860 3 byte Unsigned value : 0 to 16777215 Begint [(m)] Signed value : - 922337203685477808 to 9223372036854775807 8 byte Unsigned value : 0 to 18446744073709551615 Float (m,d) Bilangan pecahan presisi tunggal 4 byte Double [(m,d)] Bilangan pecahan presisi ganda 8 byte Tipe Data Keterangan Char atau character A Fixed-length character string : menyatakan deretan karakter (string) yang lebarnya tetap yaitu maksimum adalah 255 karakter Varchar A variable-length character string : Data string dengan lebar data yang bervariasi (M), Maksimum lebar adalah 255 karakter Tinyblob A very small BLOB (binary large object) BLOB A small BLOB Mediumblob A medium-sized BLOB Longblob A large BLOB Tipe Data Keterangan Ukuran Date Digunakan untuk tanggal dengan format "YYYY-MM-DD" Range nilai : "1000-01-01" s.d "9999-12-31" 3 byte Time Digunakan untuk waktu dengan format "hh:mm:ss" Range nilai : -838:59:59" s.d "838:59:59" 3 byte Datetime Digunakan untuk tanggal dan waktu dengan format "YYYYMM-DD hh:mm:ss" Range nilai :"1000-01-01 00:00:00" s.d "9999-12-31 23:59:59" 8 byte Time stamp Digunakan untuk penulisan tanggal dan waktu dengan format "YYYYMMDDhhmmss" 4 byte Year Digunakan untuk penulisan tahun dengan format "YYYY" Range nilai : 1901 s.d 2155 1 byte Tipe Data + * / % Keterangan Penjumlahan Pengurangan Perkalian Pembagian Mencari sisa hasil bagi Tipe Data = > < >= <= <> != Is Null In Not in Regexp Keterangan Sama dengan Lebih besar dari Lebih kecil dari Lebih besar dari atau sama dengan Lebih kecil dari sama dengan Tidak sama dengan Tidak sama dengan Apakah semua nilai adalah null Apaah semua nilai berada di dalam pilihan yang ada Apaah semua nilai tidak berada di dalam pilihan yang ada Singkatan dari Reguler Expression, Nilai menjadi benar (true) bila nilai a sama dengan nilai b START > Run… (Putty) [Enter] Host Name : 192.168.10.250 Protokol : SSH NIM Login as : b11xxyyyyy [Enter] Contoh : b110801234 [Enter] Password : a [Enter] [b1108 [email protected]~]$ mysql [Enter] Catatan : Ketikkan perintah pada console , diakhiri dengan tanda “;” (titik koma) dan eksekusi dengan menekan tombol [Enter] Perhatikan penulisan huruf kecil / besar karena akan dianggap berbeda (case sensitive) Ketik : help; atau \h atau \? Lalu [Enter] Contoh : mysql> \h [Enter] Ketik : \c Lalu [Enter] Contoh : mysql> salah perintah ……… \c [Enter] Ketik : \q atau quit atau exit Lalu [Enter] Contoh : mysql> \q [Enter] Tabel Mahasiswa nim nim Nama_mhs Mahasiswa N Nama_mhs Alamat_mhs Tgl_lahir alamat_mhs Tgl_lahir Tabel Mempelajari/Tabel Nilai nim Kode_kul nim Kode_kul Indeks_nilai Tabel khusus yang mewakili himpunan relasi mempelajari Indeks_nilai N Tabel Kuliah Kode_kul Kuliah Nama_kul semester sks Kode_kul Nama_kul sks semester Tabel MAHASISWA Nama Kolom nim nama_mhs alamat_mh tgl_lahir Tipe Data CHAR VARCHAR VARCHAR DATE Lebar 12 40 50 Null? NOT NULL Kunci Primary Key Tabel MEMPELAJARI Nama Kolom nim kode_kul indeks_nilai Tipe Data CHAR CHAR CHAR Lebar 12 5 1 Null? NOT NULL Kunci Primary Key Tabel KULIAH Nama Kolom kode_kul nama_kul sks semester Tipe Data CHAR VARCHAR VARCHAR VARCHAR Lebar 5 10 3 2 Null? NOT NULL Kunci Primary Key Rumus: CREATE DATABASE <nama database>; Lalu [Enter] Contoh : Buat database PERKULIAHAN mysql> CREATE DATABASE PERKULIAHANDB; [Enter] Rumus: SHOW DATABASES; Lalu [Enter] Rumus: USE <namadatabase>; Contoh : USE PERKULIAHANDB; Rumus: DROP DATABASE IF EXISTS <namadatabase>; Lalu [Enter] Contoh : DROP DATABASE IF EXISTS PERKULIAHANDB; [Enter] Tabel MAHASISWA Nama Kolom Tipe Data Lebar Null? Kunci CHAR 12 NOT NULL Primary Key nama_mhs VARCHAR 40 alamat_mh VARCHAR 50 nim tgl_lahir DATE Rumus: CREATE DATABASE <nama database>; Lalu [Enter] Contoh : Buat database B110801234 mysql> CREATE DATABASE B110801234DB; [Enter] Rumus: SHOW DATABASES; Lalu [Enter] Rumus: USE <namadatabase>; Lalu [Enter] Contoh : USE B110801234DB; [Enter] Rumus: DROP DATABASE IF EXISTS <namadatabase>; Lalu [Enter] Contoh : DROP DATABASE IF EXISTS B110801234DB; [Enter] 1. Buatlah database dengan nama berikut ini : a. latihan1db b. latihan2db c. latihan3db 2. Kemudian hapus database latihan3db dan latihan1db 3. Pastikan database latihan1db tidak terhapus dengan melihat tampilan dalam daftar nama database menggunakan perintah SHOW DATABASES; Rumus: CREATE TABLE <nama tabel> ( <field> <tipe data>, <field> <tipe data>, … ) [TYPE = <tipe tabel>]; Contoh : CREATE TABLE MAHASISWA ( nim INT NOT NULL AUTO_INCREMENT, nama_mhs VARCHAR (30), alamat_mhs VARCHAR (40), PRIMARY KEY (nim) ) TYPE = innodb; TYPE=InnoDB merupakan perintah agar tabel yang dibuat memiliki mesin penyimpanan InnoDB. Jika anda tidak menyertakan perintah tersebut, maka tabel akan disimpan dalam mesin penyimpanan MyISAM Rumus: DROP TABLE IF EXISTS <nama tabel>; CONTOH DROP TABLE IF EXISTS MAHASISWA;