Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Web Teknologi I (MKB511C) MINGGU 3 Web Teknologi I (MKB511C) Minggu 3 Page 1 Pokok Bahasan: MySQL Tujuan Instruksional Khusus: Agar mahasiswa dapat mengetahui.

Presentasi serupa


Presentasi berjudul: "Web Teknologi I (MKB511C) MINGGU 3 Web Teknologi I (MKB511C) Minggu 3 Page 1 Pokok Bahasan: MySQL Tujuan Instruksional Khusus: Agar mahasiswa dapat mengetahui."— Transcript presentasi:

1

2 Web Teknologi I (MKB511C) MINGGU 3 Web Teknologi I (MKB511C) Minggu 3 Page 1 Pokok Bahasan: MySQL Tujuan Instruksional Khusus: Agar mahasiswa dapat mengetahui bagaimana cara pembuatan dan penggunaan database MySQL dalam mengelola data untuk aplikasi web.

3 Agenda Desain dan membuat database Bekerja dengan database Web Teknologi I (MKB511C) Minggu 3 Page 2

4 Proses mendesain database & aplikasi Tujuan aplikasi Desain konseptual database Desain fisikal database Definisi aturan-aturan pengaksesan Pembuatan aplikasi Web Teknologi I (MKB511C) Minggu 3 Page 3

5 Relationship & Mandatory Relatiohship: –One-to-one: setiap anggota entitas satu harus memiliki hubungan dengan satu dari anggota entitas lain. –One-to-many relationships: setiap anggota entitas satu harus memiliki hubungan dengan minimal satu dari anggota entitas lain. –Many-to-many relationships: setiap anggota entitas satu harus memiliki hubungan dengan minimal satu dari anggota entitas lain, dan juga sebaliknya. Mandatory: wajib/harus “must” Web Teknologi I (MKB511C) Minggu 3 Page 4

6 Simbol relationship Sumber: www.smartdraw.com

7 Komponen MySql Server: MySql Server port 3306 Client: MySql Client, MySQL Workbench Web Teknologi I (MKB511C) Minggu 3 Page 6

8 SQL secara umum 1.Data Definition Language (DDL): pembuatan, konfigurasi, menghapus dan merubah database/schema dan tabel (sql ch 5). 2.Data Manipulation Language (DML): penambahan, pengubahan dan penghapusan data (sql ch 6).

9 DDL: skema database (sql ch 5) Membuat database CREATE DATABASE sales_prospects CHARACTER SET latin1 COLLATE latin1_bin; Merubah konfigurasi database ALTER DATABASE human_resources CHARACTER SET latin2_bin COLLATE latin2_bin; Merubah nama database RENAME DATABASE personnel TO human_resources, applicants TO human_resources_applicants; Menghapus database DROP DATABASE IF EXISTS test; Menampilkan database SHOW DATABASES LIKE 'cust%' LIMIT 1;

10 DDL: membuat & menghapus tabel Membuat tabel dengan key CREATE TABLE clients (client_id INT AUTO_INCREMENT KEY, name_last VARCHAR(50), name_first VARCHAR(50), telephone CHAR(15), INDEX names USING BTREE (name_last(5), name_first(5) DESC)); Membuat tabel dengan foreign key CREATE TABLE programmers (prog_id INT, emp_id INT, INDEX (emp_id), FOREIGN KEY (emp_id) REFERENCES employees(emp_id) ON DELETE CASCADE) TYPE=INNODB; Membuat tabel dengan memilih kolom dari tabel lain CREATE TABLE part_time_employees SELECT * FROM employees WHERE part_time = 'Y'; Menghapus tabel DROP TABLE IF EXISTS repairs, clientss_old;

11 DDL: Merubah tabel Menambah kolom. ALTER TABLE workreq ADD COLUMN req_type CHAR(4) AFTER req_date; Menambah indeks. ALTER TABLE clients ADD INDEX client_index; Merubah foreign key. ALTER TABLE employees_telephone ADD FOREIGN KEY emp_tel (emp_id) REFERENCES employees (emp_id) ON DELETE RESTRICT; Merubah nilai default kolom. ALTER TABLE clients ALTER COLUMN city SET DEFAULT 'New Orleans'; Merubah ukuran kolom & urutan kolom. ALTER TABLE clients MODIFY COLUMN client_state CHAR(4) AFTER client_city; Menghapus kolom ALTER TABLE clients DROP COLUMN miscellaneous; Mengganti nama kolom ALTER TABLE client RENAME TO clients;

12 DDL: show tables, show columns & show databasess Menampilkan nama tabel berdasarkan kriteria SHOW TABLES FROM workrequests LIKE 'work%'; Menampilkan daftar kolom SHOW COLUMNS FROM clients FROM workrequests LIKE 'client%'; Menampilkan database/schema SHOW DATABASES LIKE 'cust%' LIMIT 1;

13 DML: penggunaan INSERT dengan set 1.Contoh 1: INSERT INTO clients SET client_name = 'Geoffrey & Company', city = 'Boston', state = 'MA'; 2.Contoh 2: CREATE UNIQUE INDEX client_phone ON clients(client_name,telephone); ALTER TABLE clients ADD COLUMN new_telephone TINYINT(1) AFTER telephone; INSERT INTO clients SET client_name = 'Marie & Associates', new_telephone = 0 telephone = '504-486-1234' ON DUPLICATE KEY UPDATE new_client = 1; Web Teknologi I (MKB511C) Minggu 3 Page 12

14 DML: penggunaan INSERT dengan values INSERT INTO clients (client_name, telephone) VALUES('Marie & Associates', '504-486-1234'), ('Geoffrey & Company', '617-522-1234'), ('Kenneth & Partners', '617-523-1234');

15 DML: penggunaan INSERT dari tabel lain CREATE TABLE softball_team (player_id INT KEY, player_name VARCHAR(50), position VARCHAR(20), telephone CHAR(8)); INSERT INTO softball_team (player_id, player_name, telephone) SELECT emp_id, CONCAT(name_first, ' ', name_last), RIGHT(telephone_home, 8) FROM employees WHERE softball = 'Y';

16 DML: penggunaan SELECT Format umum: SELECT [ALL|DISTINCT|DISTINCTROW] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT][SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE|SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] {*|column|expression}[,...] FROM table[,...] [WHERE condition] [other clauses] [options] Contoh: SELECT SQL_CALC_FOUND_ROWS name_first, name_last, telephone_home, DATEDIFF(now( ), last_review) AS 'Days Since Last Review' FROM employees WHERE dept = 'sales' ORDER BY last_review DESC LIMIT 10; SELECT FOUND_ROWS();

17 DML: mengekspor hasil SELECT SELECT * FROM employees INTO OUTFILE '/tmp/employees.txt' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' ESCAPED BY '\\';

18 DML: menggunakan group di SELECT Select dengan grouping SELECT CONCAT(name_first, ' ', name_last) AS 'Sales Rep.', SUM(total_order) AS 'Sales for Month' FROM orders, employees WHERE employees.emp_id = sales_rep AND MONTH(order_date) = MONTH(CURDATE( )) GROUP BY sales_rep; Select dengan grouping & rollup FROM orders, employees, branches WHERE sales_rep = employees.emp_id AND MONTH(order_date) = MONTH(CURDATE( )) AND employees.branch_id = branches.branch_id GROUP BY Branch, sales_rep WITH ROLLUP;

19 DML: menggunakan having, order & limit di SELECT Having SELECT CONCAT(name_first, ' ', name_last) AS 'Name', total_order FROM orders JOIN employees ON sales_rep = emp_id JOIN branches USING (branch_id) WHERE location = 'New Orleans' GROUP BY sales_rep HAVING MAX(total_order); Order SELECT CONCAT(name_first, ' ', name_last) AS Name, MONTH(birth_date) AS 'Birth Month', email_address FROM employees ORDER BY 'Birth Month' ASC, Name ASC; Limit –Hanya 5 row pertama SELECT * FROM employees LIMIT 5; –Hanya 5 row setelah row 10 SELECT * FROM employees LIMIT 10, 5;

20 Kondisi pada operator where && <> ! OR NameDescription AND, &&Logical AND BETWEEN... AND...Check whether a value is within a range of values =Equal operator >=Greater than or equal operator >Greater than operator IS NOT NULLNOT NULL value test IS NOTTest a value against a boolean IS NULLNULL value test ISTest a value against a boolean <=Less than or equal operator <Less than operator LIKESimple pattern matching NOT BETWEEN... AND...Check whether a value is not within a range of values !=, <>Not equal operator NOT LIKENegation of simple pattern matching NOT, !Negates value ||, ORLogical OR

21 DML: Penggunaan Update Update semua data UPDATE clients SET client_name = 'Geoffrey & Company', city = 'Boston', state = 'MA' WHERE client_name LIKE 'Geoffrey%'; Update hanya 50 row pertama UPDATE clients SET client_terms = client_terms + 15 WHERE client_city = 'Boston' AND YEAR(date_opened) < 2005 ORDER BY date_opened LIMIT 50;

22 String di MySql (sql ch 11) Mysql menyediakan fungsi String di MySql 1.Character set & Collation (menampilkan charakterset) 2.Converting (ascii(), char(), dll) 3.Formating (concat() lcase(), ucase,dll) 4.Expression (position(), strcmp(), dll) 5.Extracting (left(), substr(), dll) 6.Manipulating (insert(), replace(), dll) Karakter ‘escape’ di MySql –Contoh: O'Connor "Boo" –Solusi: O\'Connor \"Boo\“

23 Date Time di MySql (sql ch 12) Mysql menyediakan fungsi Date Time di MySql 1.Menentukan tanggal & waktu (NOW( ), CURRENT_DATE( ), CURRENT_TIME( ), dll) 2.Mengekstrak & memformat tanggal & waktu (DATE_FORMAT( ), DAY( ), DAYNAME( ), DAYOFMONTH( ), dll) 3.Menghitung dan merubah tanggal & waktu (ADDDATE( ), ADDTIME( ), SUBDATE( ), dll)

24 Fungsi date_format()

25 Contoh date_format() Mencetak tanggal dengan format [hari] – [bulan] [tanggal], [taun] at [jam] SELECT DATE_FORMAT(appointment, '%W - %M %e, %Y at %r') AS 'Appointment' FROM appointments WHERE client_id = '8392' AND appointment > CURDATE( );

26 Aritmatika tanggal & waktu pada MySQL Values and Types in Date Arithmetic ValueType Number of secondsSECOND Number of minutesMINUTE Number of hoursHOUR Number of daysDAY Number of monthsMONTH Number of yearsYEAR "minutes:seconds"MINUTE_SECOND "hours:minutes"HOUR_MINUTE "days hours"DAY_HOUR "years-months"YEAR_MONTH "hours:minutes:seconds"HOUR_SECOND "days hours:minutes"DAY_MINUTE "days hours:minutes:seconds"DAY_SECOND Web Teknologi I (MKB511C) Minggu 3 Page 25

27 Contoh aritmatik tanggal & waktu 1.Menambahkan 1 hari pada tanggal UPDATE appointments SET appt_date = DATE_ADD(appt_date, INTERVAL 1 DAY) WHERE appt_id='1202'; 2.Menambahkan 5,5 jam pada waktu SELECT NOW( ) AS 'Now', DATE_ADD(NOW( ), INTERVAL '05:30' HOUR_SECOND) AS 'Later';

28 Mencari bantuan 1.Textbook: MySQL in a Nutshell, Second Edition 2.Google: “ dev.mysql [fungsi] ”

29 Tools MySql 1.phpMyadmin 2.MySQL Workbench 3.Lainnya

30 Membuat model database dengan MySQL Workbench 1.Jalankan MySQL Workbench 2.Buat model baru File -> New Model atau Ctrl + N

31 Membuat model database …. (lanjutan) 3.Klik Add Diagram 4.Tambahkan nama database, tabel, kolom, referensi, indeks, view dan prosedur yang diperlukan. 5.Simpan dalam format *.mwb.

32 Mendeploy model database yang dibuat dengan MySQL Workbench 1.Buka model yang sudah dibuat. 2.Konek ke database Database -> Connect to Database. 3.Masukan username dan password, kemudian klik Ok.

33 Mendeploy model database … (lanjutan) 4.Buka tab EERDiagram 5.Deploy database Database -> Forward Engineer… 6.Kemudian klik Next 7.Pilih opsi yang diperlukan, lalu klik Next 8.Pilih objek yang akan di deploy ke server, lalu klik next 9.Akan tampil script SQL yang akan di jalankan di server, bila sudah ok, klik Next. 10.Akan muncul pesan Forward Engineer Successfully bila tidak ada masalah.

34 Latihan membuat dan mendeploy database dengan MySQL Workbench (20 menit)

35 Buat script SQL untuk mempopulasi data Bagian 1 (30 menit) Tabel 1 kodeMKnamaMKdeskripsiMK MKB511CWeb Teknologi 1Fokus pada pembuatan web dengan PHP & MySQL MKB511CXWeb Teknologi 2Pendalaman MKB511C MKK103XPengantar TI MKK103SPengantar TI Tabel 2 namaMhstglLahirMhs (dd-mm-yyyy) Abdul Brath”s10-10-2010 Sarah’o Corner25-10-2010 Bens Umar15-01-2010 Ariel Doel05-01-2009 Tabel 3 kodeMKnamaMhsNilainamaTA MKB511CAbdul Brath”s90,52013 Ganjil MKB511CSarah’o Corner89.992013 Ganjil MKB511CBens Umar902013 Ganjil MKB511CAriel Doel952012 Ganjil MKK103SAbdul Brath”s802012 Ganjil MKK103SSarah’o Corner852012 Ganjil MKK103SBens Umar902012 Ganjil MKK103SAriel Doel952011 Ganjil

36 Buat script SQL untuk mengambil data Bagian 2 (30 menit) 1.Tampilkan id mata kuliah, kode mata kuliah, nama mata kuliah dan dekripsi mata kuliah yang ber kode MKB 2.Hitung & tampilkan id siswa, nama siswa dan usianya 3.Tampilkan nama tahun ajar, kode mata kuliah, nama mata kuliah & nilai mata kuliah, urutkan berdasarkan nama tahun ajar (desc), kode mata kuliah, untuk siswa yang memiliki nama Sarah’o 4.Tampilkan nama tahun ajar, nama mata kuliah, & nilai rata, urutkan berdasarkan nama tahun ajar & kode mata kuliah. Kirim Bagian 1 & 2 Subject: MKB511C w03 File: [no mhs].txt contoh: 1234567.txt Contoh penulisan file text -- bagian 1 -- masukan tabel 1 …. -- bagian 2 -- no 1 …..


Download ppt "Web Teknologi I (MKB511C) MINGGU 3 Web Teknologi I (MKB511C) Minggu 3 Page 1 Pokok Bahasan: MySQL Tujuan Instruksional Khusus: Agar mahasiswa dapat mengetahui."

Presentasi serupa


Iklan oleh Google