• Tidak ada hasil yang ditemukan

Modul Pembelajaran. Aplikasi Basis Data. Penulis Raja Sabaruddin, M.Kom Universitas Bina Sarana Informatika

N/A
N/A
Protected

Academic year: 2022

Membagikan "Modul Pembelajaran. Aplikasi Basis Data. Penulis Raja Sabaruddin, M.Kom Universitas Bina Sarana Informatika"

Copied!
91
0
0

Teks penuh

(1)

Modul Pembelajaran

Aplikasi Basis Data

Penulis Raja Sabaruddin, M.Kom Universitas Bina Sarana Informatika

(2)

2

Kata Pengantar

Segala puji syukur kepada Tuhan Yang Maha Esa karena berkat rahmatNya penulisan modul Mata Kuliah Aplikasi Basis Data dapat terselesaikan dengan baik.

Modul ini disusun untuk memenuhi kebutuhan mahasiswa dalam mata kuliah Aplikasi Basis Data yang disajikan dalam bentuk praktikum dan diharapkan dapat membekali mahasiswa dalam memahami Pembuatan dan perancangan database menggunakan MySQL.

Penulis berharap Modul Aplikasi Basis Data dapat menjadi acuan dan referensi dalam membangun web aplikasi berbasis framework. Dimana pada penyusunan materi web programming II mahasiswa mendapatkan materi dari pertemuan 1 s/d 10, pada pertemuan 11 akan dilakukan review materi, selanjutnya pada pertemuan 12 a/d 15 mahasiswa mempresentasikan hasil dari merancang database serta menganalisa sebuah projek yang dimana kelompok dan tema sudah ditentukan pada awal kontrak perkuliahan. Penilaian hasil dari presentasi projek kelompok mahasiswa akan menjadi nilai ujian akhir semester.

Penulis menyadari sepenuhnya bahwa modul ini tentu memiliki banyak kekurangan. Untuk itu penulis dengan lapang dada menerima masukan dan kritik yang konstruktif dari berbagai pihak demi kesempurnaannya di masa yang akan datang. Semoga modul ini dapat bermanfaat bagi para pembaca.

Pontianak, Maret 2020 Penulis,

Raja Sabaruddin, M.Kom

(3)

3

Daftar Pustaka

Modul Pembelajaran ... 1

Kata Pengantar ... 2

Daftar Pustaka ... 3

Defenisi MySQL ... 6

Pengertian MySQL sebagai RDBMS ... 6

Bagaimana dengan MariaDB? ... 7

Sejarah MySQL dan Masa Depan MySQL ... 9

Kisah tentang UNIREG dan Tcx ... 9

Asal Nama MySQL... 9

MySQL dan MySQL AB ... 10

Sang Penguasa pasar database mulai mendekat: Oracle dan Sun Microsystem .. 10

Akuisisi MySQL AB oleh Sun Microsystem... 11

Masa Depan MySQL ... 11

Update (Desember 2017): MariaDB, the next MySQL ... 12

Pengertian Database, Database Model dan RDBMS ... 13

Pengertian Database ... 13

Database Model : Relation ... 13

RDBMS : Relational Database Management Systems ... 14

Client-Server RDBMS Arsitektur ... 14

Setelah Relational Database Model : Object-Oriented Database Model ... 15

Relational Database ... 16

Pengertian Database dalam Relational Database ... 16

Candidate Key (Kunci Kandidat)... 16

Primary Key (Kunci Utama) ... 17

Foreign Key (Kunci Tamu) ... 17

Referential Integrity ... 18

Index ... 18

Normalisasi Database... 18

Entity Relationship Diagram (ERD) ... 19

SQL (Structured Query Language) ... 20

Pengertian Structured Query Language (SQL) ... 20

Sejarah SQL ... 20

Jenis-jenis perintah SQL ... 21

Installasi XAMPP ... 21

Dasar Penulisan Query MySQL... 22

Menjalankan Perintah (query) MySQL ... 22

Cara Merubah Tampilan output MySQL ... 23

Aturan Penulisan huruf BESAR dan kecil dalam MySQL ... 24

Perhatikan penggunaan tanda ... 24

Cara Membuat dan Menghapus Database MySQL ... 26

Cara Membuat database MySQL ... 26

Cara Melihat Daftar Database MySQL... 26

Cara Memilih dan Menggunakan Database MySQL ... 27

Cara Menghapus Database MySQL... 27

Membuat dan Menghapus Tabel MySQL ... 29

(4)

4

Cara Membuat Tabel MySQL ... 29

Cara Melihat Daftar Tabel dalam MySQL ... 30

Cara Melihat Struktur Tabel MySQL ... 30

Cara Menghapus Tabel MySQL ... 31

Tipe Data Numerik MySQL ... 32

Tipe Data Integer MySQL: Tinyint , Smallint, Mediumint, Integer (Int), dan Bigint... 32

Cara Penulisan Tipe Data Integer MySQL ... 32

Tipe Fixed Point MySQL: DECIMAL ... 33

Tipe Floating Point : FLOAT dan DOUBLE ... 35

Tipe Data String (Huruf) MySQL... 37

Tipe data CHAR dan VARCHAR MySQL ... 37

Tipe Data BINARY dan VARBINARY dalam MySQL ... 38

Tipe Data BLOB MySQL ... 40

Tipe Data Date (Tanggal) dalam MySQL ... 42

Jenis tipe data DATE dalam MySQL ... 42

Tipe Data ENUM dan SET dalam MySQL ... 45

Pengertian Tipe data ENUM dalam MySQL ... 45

Pengertian Tipe data SET dalam MySQL ... 46

Atribut Tipe Data dalam MySQL ... 48

Pengertian Atribut tipe data MySQL ... 48

Atribut AUTO_INCREMENT... 48

Atribut BINARY ... 48

Atribut DEFAULT ... 48

Atribut NOT NULL ... 48

Atribut NULL ... 49

Atribut SIGNED ... 49

Atribut UNSIGNED... 49

Atribut ZEROFILL ... 49

Merubah Tabel MySQL (ALTER TABLE) ... 51

Cara Merubah Tipe Data Kolom MySQL ... 51

Cara Merubah Nama Kolom Tabel MySQL ... 52

Cara Merubah Nama Tabel MySQL ... 52

Cara Menambahkan Kolom Baru pada Tabel MySQL... 53

Cara Menghapus Kolom Tabel MySQL ... 54

Cara Merubah Tipe Data Table (Table Engine) MySQL ... 54

Menambahkan data ke dalam Tabel MySQL (INSERT) ... 56

Query INSERT untuk menambahkan data kedalam Tabel MySQL ... 56

Cara Penulisan dasar query INSERT ... 57

Cara Penggunaan Query INSERT…VALUES ... 57

Cara Penggunaan Query INSERT (nama_kolom)… VALUES ... 58

Cara Penggunaan Query INSERT IGNORE… VALUES... 59

Cara Penggunaan Query INSERT… VALUES…ON DUPLICATE KEY UPDATE… ... 61

Menambahkan data dari File (LOAD DATA INFILE) ... 62

Mempersiapkan Tabel Contoh: daftar_dosen ... 62

Cara Penulisan dasar query LOAD DATA INFILE ... 62

Cara Penggunaan query LOAD DATA INFILE dalam MySQL ... 63

Berbagai pilihan instruksi dari query LOAD DATA INFILE ... 64

Penjelasan opsi [REPLACE | IGNORE] ... 65

(5)

5

Penjelasan opsi LINES STARTING BY ‘string’ dan TERMINATED BY ‘string’65

Penjelasan opsi IGNORE number ... 65

Ujian Tengah Semester ... 68

Menampilkan Data dari Tabel MySQL (SELECT) ... 69

Mempersiapkan Tabel Contoh: mata_kuliah dan daftar_dosen ... 69

Format Dasar Penulisan query SELECT ... 71

Cara Menampilkan Seluruh Isi Tabel MySQL ... 72

Cara Menampilkan Kolom Tertentu dari Tabel MySQL (SELECT … FROM) . 72 Cara Menfilter/Menyeleksi data dari Tabel MySQL (SELECT…WHERE…) .. 73

Cara Mengurutkan hasil tampilan data MySQL (SELECT…ORDER BY) ... 75

Cara Membatasi Hasil query SELECT (SELECT…LIMIT) ... 75

Pencarian Data dari Tabel MySQL (SELECT..LIKE) ... 77

Mempersiapkan Tabel Sample: daftar_dosen ... 77

Pencarian Data Tabel MySQL Menggunakan query SELECT..LIKE ... 77

Pencarian Untuk Huruf Besar dan Huruf Kecil? ... 79

Menggabungkan Tabel MySQL (INNER JOIN) ... 80

Mempersiapkan Tabel Sample: mata_kuliah dan daftar_dosen ... 80

Cara Menggabungkan Tabel MySQL dengan INNER JOIN ... 80

Cara Penulisan Nama Kolom: Nama_Tabel.Nama_Kolom ... 82

Menghapus Baris Tabel MySQL (DELETE) ... 84

Mempersiapkan Tabel Sample: daftar_dosen ... 84

Cara Menghapus Record dengan Query DELETE ... 84

Mengubah Data Tabel MySQL (query UPDATE) ... 86

Mempersiapkan Tabel Sample: daftar_dosen ... 86

Cara Mengubah Data Tabel Menggunakan Query UPDATE ... 86

Cara Mengupdate Lebih dari 1 Baris ... 87

PRESENTASI PROJEK ... 89

UJIAN AKHIR SEMESTER ... 90

Referensi ... 91

(6)

6

Defenisi MySQL

Mengawali tutorial belajar matakuliah Aplikasi Basis Data, pada modul kali ini kita akan membahas tentang pengertian MySQL dan kelebihan MySQL jika dibandingkan dengan aplikasi database lainnya. Kepopuleran MySQL tidak hanya karena gratis, tetapi juga merupakan sebuah aplikasi database yang dapat disandingkan dengan aplikasi database berbayar lain, seperti Oracle dan Microsoft SQL Server. Kepopuleran MySQL juga disebabkan karena MySQL merupakan salah satu aplikasi standar dalam pengembangan web, bersama dengan Web Server Apache, dan bahasa pemrograman PHP.

Pengertian MySQL sebagai RDBMS

Bagi mahasiswa maupun web developer, kalau bicara database, kemungkinan besar akan membicarakan MySQL. Tapi, kenapa harus MySQL? Bagaimana dengan Oracle? Jawaban singkat, padat dan tepat adalah: gratis dan user friendly. MySQL adalah salah satu aplikasi RDBMS (Relational Database Management System).

Pengertian sederhana RDBMS adalah: aplikasi database yang menggunakan prinsip relasional. Apa itu prinsip relasional? Kita akan membicarakannya dalam tutorial berikutnya.

MySQL juga bukan satu-satunya RDBMS, list lengkapnya ada di wikipedia.

Diantaranya yang banyak dikenal adalah: Oracle, Sybase, Microsoft Access, Microsoft SQL Server, dan PostgreSQL. MySQL bersifat gratis dan open source.

Artinya setiap orang boleh menggunakan dan mengembangkan aplikasi ini. Namun walaupun gratis, MySQL di support oleh ribuan programmer dari seluruh dunia, dan merupakan sebuah aplikasi RDBMS yang lengkap, cepat, dan reliabel.

Berikut beberapa keunggulan MySQL dibandingkan dengan RDBMS lainnya:

⚫ Speed

Sebuah studi dari eWeek di February 2002 yang membandingkan performa kecepatan MySQL dengan RDBMS lainnya, seperti Microsoft SQL Server 2000, IBM DB2, Oracle 9i dan Sybase :

“MySQL has the best overall performance and that MySQL scalability matches Oracle … MySQL had the highest throughput, even exceeding the numbers generated by Oracle.”

Yang terjemahan bebasnya, MySQL memiliki kecepatan yang lebih dibandingkan pesaing yang berbayar. Bagi anda ingin membaca paper tersebut, tersedia di situs MySQL

⚫ Reliability

Biasanya sesuatu yang gratis susah diandalkan, bahkan banyak bug dan sering hang. Tidak demikian dengan MySQL, karena sifatnya yang open source, setiap orang dapat berkontribusi memeriksa bug dan melakukan test case untuk berbagai skenario yang memerlukan sistem 24 jam online, multi-user dan data ratusan GB. Hasilnya, MySQL merupakan RDBMS yang reliabel namun memiliki performa diatas rata-rata.

⚫ Skalability

(7)

7

MySQL dapat memproses data yang sangat besar dan kompleks, tanpa ada penurunan performa yang berarti, juga mendukung sistem multi-prosesor. MySQL juga dipakai oleh perusahaan-perusahaan besar di dunia, seperti Epson, New York Times, Wikipedia, Google, Facebook, bahkan NASA.

⚫ User Friendly

Instalasi dan mempelajari MySQL cukup mudah dan tidak dipusingkan dengan banyak settingan. Cukup download aplikasi MySQL dan install, kita dapat menggunakan MySQL dalam waktu kurang dari 5 menit (dengan asumsi tidak mati lampu).

⚫ Portability and Standard Compliance

Database MySQL dapat dengan mudah berpindah dari satu sistem ke sistem lainnya. Misalkan dari sistem Windows ke Linux. Aplikasi MySQL juga dapat berjalan di sistem Linux (RedHat, SuSE, Mandrake, Debian), Embedded Linux (MontaVista, LynuxWorks BlueCat),Unix (Solaris, HP-UX, AIX), BSD (Mac OS X, FreeBSD), Windows (Windows 2000, Windows NT) dan RTOS (QNX).

⚫ Multiuser Support

Dengan menerapkan arsitektur client-server. Ribuan pengguna dapat mengakses database MySQL dalam waktu yang bersamaan.

⚫ Internationalization

Atau dalam bahasa sederhananya, mendukung beragam bahasa. Dengan dukungan penuh terhadap unicode, maka aksara non-latin seperti jepang, cina, dan korea bisa digunakan di dalam MySQL.

⚫ Wide Application Support

Biasanya database RDBMS tidak digunakan sendirian, namun ditemani dengan aplikasi atau bahasa pemrograman lainnya untuk menyediakan interface, seperti C, C++, C#, Java, Delphi, Visual Basic, Perl Python dan PHP. Ke semua itu di dukung oleh API (Application Programming Interface) oleh MySQL.

⚫ Open Source Code

Kita pun bisa (jika mampu dan mengerti), mengembangkan MySQL dengan mempelajari kode programnya. MySQL di kembangkan dengan bahasa C and C++.

Bahkan sudah terdapat berbagai variasi rasa RDBMS baru yang dikembangkan dari code MySQL, diantaranya: Drizzle, MariaDB, Percona Server dan OurDelta.

Bagaimana dengan MariaDB?

Pada tahun 2010, MySQL dibeli oleh perusahaan Oracle. Hal ini membuat khawatir banyak kalangan. Karena sebagaimana yang kita tau, Oracle merupakan perusahaan database terbesar di dunia, yang salah satu saingannya adalah MySQL.

Banyak yang khawatir bahwa suatu saat pengembangan MySQL akan dihentikan oleh Oracle. Untuk mengantisipasi hal ini, dikembangkanlah MariaDB sebagai pengganti MySQL. MariaDB dibuat oleh tim yang dulunya juga membuat MySQL.

Pada dasarnya, MariaDB adalah cloningan MySQL. Boleh dibilang bahwa MariaDB berisi MySQL yang diberi “merk” MariaDB serta penambahan fitur dan perbaikan performa. Seluruh materi yang dibahas dalam tutorial MySQL di duniailkom ini bisa berjalan baik di MariaDB maupun MySQL.

Faktanya, jika kita mendownload aplikasi XAMPP, sekarang sudah di bundle dengan database MariaDB, bukan lagi MySQL. Anda mungkin tidak sadar akan hal

(8)

8

ini, karena di sisi programming (misalnya menggunakan PHP) dan query yang dipakai, tidak ada perbedaan antara MySQL dengan MariaDB.

(9)

9

Sejarah MySQL dan Masa Depan MySQL

Jika pada Pertemuan Pertama Belajar MySQL: Pengertian MySQL dan Kelebihan MySQL berkisah tentang keunggulan MySQL dibandingkan dengan RDBMS lainnya, dalam Pertemuan Berikutnya Belajar MySQL: Sejarah MySQL dan Masa Depan MySQL ini kita akan membahas tentang sejarah, asal muasal, kisah, masa lalu dan masa depan MySQL.

Kisah tentang UNIREG dan Tcx

Cerita tentang MySQL bermula pada tahun 1979, ketika Michael Widenius (a.k.a.

Monty), seorang programmer asal Swedia, mengembangkan sebuah sistem database sederhana yang dinamakan UNIREG. UNIREG ini menggunakan koneksi low-level ISAM database engine dengan indexing (baca : sistem database sederhana yang mendukung index). Monty bekerja pada perusahaan bernama TcX di Swedia. TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan berencana menggunakan UNIREG sebagai sistem databasenya. Namun malang bagi Monty, UNIREG dianggap tidak cocok untuk database yang dinamis seperti web. TcX mencoba mencari alternatif sistem database lainnya, salah satunya adalah mSQL (miniSQL), sebuah RDBMS yang tidak terlalu mahal dan hampir open source, maksudnya jika anda membeli aplikasi ini, anda juga akan mendapatkan source code nya juga. Namun mSQL versi 1 ini juga memiliki kekurangan, yaitu tidak mendukung indexing, sehingga performanya tidak terlalu bagus.

Dengan hasutan petinggi-petinggi TcX, Monty mencoba menghubungi David Hughes (programmer yang mengembangkan mSQL) untuk menanyakan apakah ia tertarik mengembangkan sebuah konektor di mSQL yang dapat dihubungkan dengan UNIREG ISAM sehingga mendukung indexing. Pada saat itu Hughes menolak, dengan alasan sedang mengembangkan teknologi indexing yang independen untuk mSQL versi 2.

Dikarenakan penolakan David Hughes, TcX (dan juga Monty) akhirnya memutuskan untuk merancang dan mengembangkan sendiri konsep sistem database baru. Sistem ini merupakan gabungan dari UNIREG dan mSQL (yang source codenya dapat bebas digunakan). Sehingga pada May 1995, sebuah RDBMS baru, yang dinamakan MySQL dirilis. David Axmark dari Detron HB, rekanan TcX mengusulkan agar MySQL di ‘jual’ dengan model bisnis baru. Ia mengusulkan agar MySQL dikembangkan dan dirilis dengan gratis. Pendapatan perusahaan selanjutnya di dapat dari menjual jasa “support” untuk perusahaan yang ingin mengimplementasikan MySQL. Konsep bisnis yang juga diterapkan perusahaan-perusahaan Open Source lainnya.

Asal Nama MySQL

Asal penamaan MySQL sendiri agak unik. Monty berkata : “It is not perfectly clear where the name MySQL derives from. TcX’s base directory and a large amount of their libraries and tools have had the prefix ‘My’ for well over ten years. However,

(10)

10

my daughter (some years younger) is also named My. So which of the two gave its name to MySQL is still a mystery.”

Berbagai sumber menyatakan, bahkan juga di situs MySQL sendiri bahwa “My”

dari MySQL berasal dari nama anak perempuan Monty. Namun seperti kutipan diatas, Monty pun mengakui bahwa selama ia di TcX, library dan aplikasi yang dikembangkan perusahaan itu juga banyak dimulai dengan awalan “My”.

Logo lumba-lumba dalam lambang MySQL di namai Sakila, yang berasal dari sebuah kontest “Name the Doplhin” yang diadakan MySQL AB. Nama Sakila ini diajukan oleh Ambrose Twebaze, seorang programmer open source dari Swaziland, Afrika. ‘Sakila‘ memiliki akar dari bahasa Siswati, bahasa yang digunakan di Swaziland.

MySQL dan MySQL AB

Kembali ke kisah MySQL, Pada tahun 1995 itu juga, TcX berubah nama menjadi MySQL AB, dengan Michael Widenius, David Axmark dan Allan Larsson sebagai pendirinya. Titel “AB” dibelakang MySQL, adalah singkatan dari “Aktiebolag”, istilah PT (Perseroan Terbatas) bagi perusahaan Swedia. MySQL AB menjadi perusahaan di belakang MySQL, menyediakan jasa dan bertanggung jawab dalam mengembangkan, memasarkan, dan menyediakan dukungan untuk MySQL. MySQL sendiri dirilis dengan “dual licensing“, atau dua lisensi yakni versi gratis dan versi berbayar.

Lisensi pertama di rilis dibawah GNU GPL (General Public License atau dikenal juga dengan Gak Pakai Lisensi). Lisensi GPL ini membebaskan anda menggunakan MySQL tanpa membayar royalti kepada MySQL AB, dengan beberapa syarat tertentu.

Misalnya, jika anda menggunakan MySQL dalam aplikasi yang anda buat, aplikasi tersebut juga harus bersifat gratis dan berada di bawah lisensi GPL.

Lisensi kedua di peruntukkan bagi perusahaan-perusahaan komersil, maupun pengembang software yang berniat menjual aplikasinya, dan menggunakan MySQL sebagai databasenya. Untuk keperluan ini, anda diharuskan membeli lisensi komersial dari MySQL AB. Lebih lanjut tentang permasalahan seputar lisensi MySQL, dapat mengunjungi situs MySQL.

MySQL AB juga memegang hak copyright dari source code MySQL dan pemilik hak merk dagang “MySQL”. Dengan kata lain, walaupun kita memiliki source code MySQL, namun sistem database maupun aplikasi yang kita buat tidak boleh menggunakan merk “MySQL” tanpa membayar royalti kepada pihak MySQL AB.

Hal ini pula yang menjelaskan mengapa salah satu aplikasi administrasi MySQL berbasis web PhpMyAdmin, tidak menggunakan kata “MySQL” pada nama programnya.

Sang Penguasa pasar database mulai mendekat: Oracle dan Sun Microsystem

Pada tahun-tahun berikutnya, MySQL AB semakin berkembang. Di tahun 2002, MySQL AB telah memiliki kantor pusat baru di Cupertino, California, Amerika Serikat, selain di negara asalnya, Swedia. Perkiraan pengguna aktif setidaknya sudah mencapai 3 juta pengguna.

(11)

11

Tahun 2005 MySQL AB merilis MySQL 5. MySQL versi 5 ini menargetkan pengguna-pengguna perusahaan, dengan menyediakan fasilitas-fasilitas tambahan baru, seperti stored procedures, triggers, views, cursors, distributed transactions, dan federated storage engines. Dengan model bisnis dan aplikasi yang sudah lengkap, MySQL mulai menjadi ancaman bagi raksasa industri database lainnya, terutama Microsoft SQL Server dan Oracle.

Mårten Mickos, CEO MySQL, mengkonfirmasi bahwa di tahun 2006, Oracle pernah berniat membeli MySQL, namun Larry Ellison, CEO Oracle saat itu, berkomentar : “We’ve spoken to them, in fact we’ve spoken to almost everyone. Are we interested? It’s a tiny company. I think the revenues from MySQL are between

$30 million and $40 million. Oracle’s revenue next year is $15 billion.” Sebuah pernyataan yang ditutup-tutupi, karena pada tahun itu juga Oracle telah membeli Sleepycat, sebuah perusahaan yang mengembangkan Berkeley DB transactional storage engine bagi MySQL, bahkan sebelumnya Oracle juga telah membeli Innobase, perusahaan di balik InnoDB storage engine MySQL.

Akuisisi MySQL AB oleh Sun Microsystem

Tahun 2008 merupakan akhir bagi MySQL AB sebagai perusahaan yang berdiri sendiri, ketika Sun Microsystems membeli MySQL AB seharga US $1 Milliar.

Selayaknya proses akuisisi, seluruh manajemen MySQL AB, menjadi bagian dari ribuan karyawan SUN lainnya, termasuk Michael Widenius (Monty) dan David Axmark (2 orang pendiri MySQL AB). Akan tetapi tak berapa lama kemudian, keduanya mulai merasa tidak nyaman dan sering mengkritisi kebijakan SUN, sehingga mereka memutuskan keluar dari perusahaan itu.

Mårten Mickos, CEO MySQL AB yang selama ini memimpin MySQL juga meninggalkan SUN tahun 2009. Sehingga MySQL praktis telah kehilangan pemimpin bisnis dan pendiri yang telah membuat MySQL sesukses sekarang. Dan akhirnya April 2009, raksasa di industri database: Oracle, mulai mendekati Sun Microsystems untuk mengakuisisinya.

Masa Depan MySQL

Akhir kisah sesuai dengan janji Oracle, hingga saat ini (Desember 2017) MySQL tetap bisa digunakan dengan gratis. Tetapi, apakah kedepannya MySQL tetap seperti ini? atau dijadikan salah satu produk berbayar oleh Oracle? kita hanya bisa berharap.

Di lain pihak , Monty Widenius, diam-diam telah memulai sebuah proyek baru, MariaDB, yang memiliki kode dasar yang sama dengan MySQL 5.1. Apakah MariaDB merupakan “the next generation” dari RDBMS gratis penerus MySQL? atau MariaDB nantinya akan tenggelam diantara RDBMS lainnya yang juga banyak bermunculan? mari ikuti terus perkembangannya.

Kisah ini setidaknya juga menjadi gambaran, bagaimana perusahaan raksasa, seperti Oracle, menggunakan kekuatan kapitalisnya untuk “mencaplok”

saingan-saingan untuk tumbuh lebih besar lagi. MySQL sekarang secara resmi menggunakan logo oracle dalam produk-produknya.

(12)

12

Update (Desember 2017): MariaDB, the next MySQL

Perkembangan MariaDB saat ini semakin kuat. Berbagai aplikasi (terutama yang berbasis open source) sudah mulai beralih dari MySQL ke MariaDB, termasuk aplikasi web programming seperti XAMPP. Jika anda menggunakan XAMPP, yang terinstall adalah MariaDB, bukan lagi MySQL. Wikipedia juga menyatakan akan beralih dari MySQL ke MariaDB. Secara perlahan aplikasi lain akan menyusul.

Menurut saya, kedepannya MariaDB akan makin banyak dipakai. Terlebih lagi, tim yang dulunya mengembangkan MySQL (termasuk pendiri MySQL), ada dibalik MariaDB. Berdasarkan klaim dari Monty, MariaDB merupakan versi MySQL yang lebih cepat, lebih efisien, dan memiliki berbagai fitur tambahan yang tidak ada di MySQL.

Untungnya, dalam penggunaan sehari-hari MySQL dan MariaDB ini tidak banyak berbeda. Seluruh materi yang akan anda pelajari dalam tutorial ini bisa diterapkan ke MySQL maupun MariaDB.

Untuk web programming seperti PHP, seluruh fungsi MySQL yang ada juga sudah otomatis didukung di dalam MariaDB. Fungsi seperti mysqli_connect() bisa langsung terhubung ke MySQL maupun MariaDB, tanpa perubahan code apapun. Selain itu, hampir seluruh fitur yang ada di MySQL, juga tersedia di MariaDB.

(13)

13

Pengertian Database, Database Model dan RDBMS

Pengertian Database

Banyak pendapat jika menyangkut tentang pengertian database, berbagai textbook dan pendapat para expert di dunia database. Namun agar tidak terlalu pusing, marilah kita ambil saja pendapat Wikipedia: “A database is an organized collection of data”. Dengan terjemahan bebasnya, Database adalah kumpulan data yang terorganisir.

Tidak peduli apakah data ini tersimpan dalam bentuk kertas atau file komputer, selama data ini tersusun dalam aturan dan untuk keperluan tertentu, dapat disebut sebagai database. Namun biasanya jika kita menyebut database, hal ini merujuk kepada kumpulan data yang disimpan secara elektronik dalam komputer.

Pengertian Database Model

Sekali lagi, mari kita kutip Wikipedia : A database model is the theoretical foundation of a database and fundamentally determines in which manner data can be stored, organized, and manipulated in a database system. Artian bebasnya, database model adalah teori seputar bagaimana data itu akan disimpan, disusun, dan dimanipulasi dalam sebuah sistem database.

Dari awal konsep database mulai banyak digunakan (sekitar tahun 1960an – di amerika sana), berbagai teori dikemukakan tentang bagaimana cara menyajikan data agar mudah digunakan. Mudah digunakan disini mencakup: membuat, membaca, memperbaharui, dan menghapus data, atau istilah kerennya : CRUD (Create, Read, Update and Delete).

Mulailah berkembang berbagai database model, dari Flat model, Hierarchical model, Network model, hingga Relational model. Flat model adalah istilah lain dari tabel sederhana seperti di microsoft excel, tanpa aturan dan cara penulisan tertentu.

Dalam Hierarchical model, data disusun seperti pohon terbalik, sehingga data terorganisasi dari atas ke bawah. Model database ini digunakan pada sistem database awal, seperti Information Management System (IMS) oleh IBM (1966). Network database model merupakan pengembangan dari Hierarchical model. Pembahasan lebih lanjut tentang Database Model, dapat dibaca di wikipedia-database model.

Database Model : Relation

Konsep Relational Database Model diajukan pertama kali oleh peneliti IBM, Dr.

Edgar F. Codd pada tahun 1969, dan merupakan database model yang paling banyak digunakan saat ini. Dr. Codd pada awalnya mencari cara baru untuk menangani data dalam jumlah besar. Namun karena keterbatasan pada Hierarchical dan Network model yang umum digunakan saat itu, ia menerapkan prinsip matematis dalam menyusun data-data tersebut. Dan karena memang memiliki keahlian di bidang

(14)

14

matematika, Dr.Codd berusaha mencari cara untuk menyelesaikan permasalahan yang sering timbul dalam database model saat itu, seperti redundansi data, hubungan antar data, dan ketergantungan kepada urutan di media penyimpanan.

Dr.Codd mengajukan ide tentang relational model ini dalam sebuah paper berjudul “A Relational Model of Data for Large Shared Databanks” pada Juni 1970.

Relational Database model berasal dari 2 cabang ilmu matematika : set theory dan first-order predicate logic. Sebuah relational database menyimpan data dalam ‘relasi’, atau yang disebut juga tabel. Setiap tabel terdiri dari tuple atau record dan atribut atau field. Urutan penyusunan dalam media penyimpanan fisik tidak berpengaruh dalam model ini, dan setiap record di dalam tabel diidentifikasi dengan sebuah field unik.

Relational Database Model inilah yang paling populer dan banyak diimplementasi dalam berbagai aplikasi database saat ini, termasuk Oracle dan MySQL. Aplikasi database untuk relational model, dikenal juga dengan Relational Database Management Systems (RDBMS).

RDBMS : Relational Database Management Systems

Relational Database Management Systems (RDBMS) adalah software/aplikasi yang menggunakan relational database model sebagai dasarnya. Sejak 1970an, RDBMS sudah banyak digunakan oleh berbagai vendor, dan dalam berbagai sistem hardware. Dua RDBMS pertama adalah System R, yang dikembangkan oleh IBM, dan INGRES (Interactive Graphics Retrieval System) yang dikembangkan oleh University of California di Berkeley. Keduanya pada awal 1970an.

Setelah keunggulan Relational Database banyak dikenal, berbagai perusahaan mulai berlalih dari hierarchical dan network database model ke relational database model. Pada tahun 1980an, Oracle RDBMS lahir, dan diikuti oleh pesaingnya saat itu, IBM DB2 RDBMS.

Jika pada tahun 1980an RDBMS hanya dapat digunakan dalam sistem mainframe perusahaan besar, namun saat ini dengan semakin majunya perkembangan teknologi di sisi hardware, PC-based RDBMS sudah banyak tersedia. MySQL RDBMS dapat diinstall di komputer/laptop biasa.

Client-Server RDBMS Arsitektur

Kebutuhan akan database yang dapat diakses bersama-sama oleh banyak pengguna mulai muncul di sekitar awal 1990an. Sebuah database terpusat, namun dapat diakses dari tiap komputer yang berjauhan, membuat banyak RDBMS dikembangkan dengan arsitektur Client-Server. Dalam arsitektur Client-Server, sebuah komputer bertindak sebagai Database Server pusat. Server inilah yang akan melayani segala permintaan dari komputer (Client) yang membutuhkan akses ke database. Namun fisik database itu sendiri juga tidak harus di dalam Server, bisa saja berada di tempat lain, namun terhubung ke Database Server untuk memprosesnya.

MySQL juga menggunakan arsitektur Client-Server. Namun nantinya dalam tutorial ini, kita akan menjalankan aplikasi server dan client di komputer yang sama.

Namun pada dasarnya, jika kita menjalankan MySQL Server di komputer, setiap komputer yang terhubung kedalam jaringan dapat mengaksesnya dengan

(15)

15

menggunakan MySQL Client. Lebih lanjut tentang hal ini akan kita pelajari dalam pertemuan selanjutnya.

Setelah Relational Database Model : Object-Oriented Database Model

Walaupun RDBMS sudah populer, dan digunakan pada hampir semua keperluan seperti bisnis, inventory, bank, dll, namun untuk kasus-kasus tertentu, Relational Database Model dianggap masih kurang mendukung, khususnya untuk aplikasi baru seperti sistem informasi geografis, dan multimedia. Sehingga mulailah dikembangkan berbagai model database lainnya, seperti Object-Oriented Database dan Object-Relational Database

.

Konsep Database Objek Model ini berasal dari dunia programming: OOP (Object Oriented Programming), dimana setiap data dikaitkan dengan objek dari data tersebut. ODBMS (Object Database Management System) juga sudah banyak beredar, seperti Versant ODBMS oleh Versant Corporation, UniData dari IBM, dan VelocityDB.

Namun konsep Object Oriented Database ini belum terlalu populer digunakan, dan mungkin saja nantinya hanya sebagai pelengkap dari relational database, yang untuk kasus per kasus memerlukan sistem database khusus.

(16)

16

Relational Database

Pengertian Database dalam Relational Database

Dalam relational database model, sebuah database adalah kumpulan relasi yang saling terhubung satu sama lainnya. Relasi adalah istilah dalam relational database, tapi kita lebih familiar jika menyebutnya sebagai tabel. Selayaknya tabel yang memiliki kolom dan baris, dalam relational database, kolom (column) disebut attribute, sedangkan baris (row) disebut tuple. Hal ini hanya sekedar penamaan, dan agar lebih gampang, kita hanya akan menggunakan istilah tabel, kolom dan baris dalam tutorial ini, namun jika anda menemui istilah relation, attribut dan tuple, itu hanya penamaan lain dari tabel, kolom, dan baris.

Candidate Key (Kunci Kandidat)

Database dalam relational database dapat di sederhanakan sebagai sekumpulan tabel yang saling terhubung. Setiap baris dari dalam tabel setidaknya harus memiliki sebuah kolom yang unik. Unik disini maksudnya tidak boleh sama. Contohnya, dalam tabel data mahasiswa, kolom NIM (Nomor Induk Mahasiswa) akan menjadi kandidat yang bagus, karena tidak mungkin ada 2 mahasiswa yang memiliki NIM yang sama.

NIM disini disebut juga dengan Candidate Key (Kunci Kandidat). Candidate Key adalah satu atau beberapa kolom dalam tabel yang bisa mengidentifikasi tiap baris dari tabel tersebut.

(17)

17

Nomor KTP juga merupakan candidate key yang bagus, setidaknya setiap orang akan memiliki Nomor KTP yang berbeda-beda. Namun dalam beberapa kasus, nomor KTP tidak selalu ada, karena bisa saja seseorang belum memiliki KTP karena sesuatu dan lain hal. Beberapa karakteristik Candidate key : unik (tidak boleh berulang), tidak boleh memiliki nilai null (kosong), nilai dari candidate key akan sangat jarang berubah.

Primary Key (Kunci Utama)

Dalam sebuah tabel, akan terdapat beberapa candidate key, namun hanya ada 1 Primary key (kunci utama). Primary key adalah salah satu candidate key yang kita nobatkan sebagai kolom unik untuk identifikasi baris dalam tabel. Kolom ini tidak boleh berulang, dan tidak boleh kosong (null). Dari tabel data_mahasiswa, NIM dapat kita tetapkan sebagai primary key.

Foreign Key (Kunci Tamu)

Dalam sebuah database, biasanya akan terdapat beberapa tabel. Tabel-tabel ini dapat dihubungkan satu dengan yang lainnya dengan kolom yang merupakan bagian dari tabel lain. Foreign Key (Kunci Tamu) adalah Primary key dari tabel lainnya yang terdapat di tabel saat ini. Di dalam contoh Tabel data_mahasiswa dapat terlihat bahwa NIM adalah primary key dari tabel data_mahasiswa, dan kode_jurusan adalah primary key pada tabel_jurusan. Kedua tabel tersebut dihubungkan oleh kolom kode jurusan.

Dalam tabel_mahasiswa, kolom NIM adalah primary key, dan kolom kode jurusan adalah foreign key. Kenapa tabel tersebut harus dipisah? Jawabannya adalah agar tidak ada data yang redundan (ganda). Redundansi data adalah salah satu kelemahan dari desain database yang kita buat. Seandainya dari contoh tabel, nama Jurusan Ilmu Komputer berubah menjadi Teknik Informatika, kita hanya tinggal merubah tabel_jurusan.

(18)

18

Referential Integrity

Referential Integrity berkaitan erat dengan foreign key. Pada dasarnya Referential Integrity adalah penerapan aturan bahwa untuk setiap foreign key yang terdapat pada suatu tabel, harus ada nilainya di tabel asal kolom tersebut. Dalam contoh kita, pada tabel 4.2 dan 4.3 setiap kode_jurusan dalam tabel data_mahasiswa harus ada nilainya dalam tabel kode_jurusan. Di dalam tabel data_mahasiswa kita tidak bisa memasukkan nilai 20, karena di tabel kode_jurusan, kode jurusan 20 belum diinput.

Dan jika kita ingin menghapus suatu jurusan dari tabel_jurusan, semua mahasiswa harus terlebih dahulu sudah tidak ada yang memiliki kode jurusan tersebut.

Index

Index dalam database adalah sebuah struktur data yang diimplementasikan oleh RDBMS untuk mempercepat proses pembacaan data. Index lebih kepada penerapan algoritma dari masing-masing aplikasi database, dan diterapkan ke dalam kolom dari tabel yang kita inginkan. Mirip Index yang ada di belakang buku, index seolah-olah daftar cepat untuk mencari sesuatu oleh RDBMS. Kita dapat mendeklarasikan kolom mana saja yang akan di index.

Untuk MySQL, kolom yang ditetapkan sebagai primary key akan otomatis di-index. Tetapi dalam satu tabel, bisa saja terdapat beberapa kolom yang di index.

Pertanyaannya, jika index digunakan untuk mempercepat proses pembacaan, kenapa tidak semua kolom saja kita index? Jawabannya, karena index sendiri juga memiliki kelemahan.

Ketika data baru ditambahkan atau terdapat data yang akan dirubah, index yang tersimpan untuk tabel tersebut harus dibuat ulang, sehingga memperlama proses penambahan data. Namun untuk tabel yang jarang bertambah, index menawarkan perfoma yang cepat untuk pembacaan data.

Normalisasi Database

Normalisasi database (Database normalization) adalah proses penyusunan kolom dan tabel untuk meminimalkan redundansi data (data yang berulang). Normalisasi biasanya akan membagi tabel besar menjadi beberapa tabel kecil yang saling terhubung. Hal ini dilakukan agar mudah dalam mengatur, dan mengorganisasi data yang ada. Contohnya, untuk tabel data_mahasiswa, jika terjadi perubahan nama jurusan, misalnya dari Ilmu Komputer menjadi Teknik Informatika, maka kita harus merubah satu-satu tiap mahasiswa. Namun jika di bagi menjadi 2 tabel, kita hanya tinggal merubah baris no urut 14 dari tabel kode_jurusan menjadi Teknik Informatika. Dan otomatis setiap mahasiswa yang memiliki kode_jurusan 14, adalah mahasiswa Teknik Informatika.

Normalisasi database memiliki beberapa tahapan. Dari wikipedia, normalisasi database setidaknya memiliki 9 tahapan. Pada setiap tahapan, ada syarat yang harus dipenuhi, sampai sebuah tabel tidak lagi memiliki kolom yang redundant. Kita tidak harus mengikuti semua tahap, biasanya hanya dibutuhkan 3 tahapan normalisasi untuk membuat sebuah desain database sederhana. Proses normalisasi database tidak akan

(19)

19

kita bahas disini, namun setidaknya kita mengetahui bahwa normalisasi database adalah proses untuk mendesain database agar terorganisir.

Entity Relationship Diagram (ERD)

Entity Relationship Diagram adalah diagram untuk menggambarkan desain database yang akan dibuat. Di dalam ERD akan terlihat semua tabel yang akan dirancang, primary key masing-masing tabel, serta foreign key, dan kolom-kolom apa saja yang nantinya tersedia. ERD memiliki berbagai versi, baik yang berbentuk balon, maupun tabel. ERD inilah sebagai blueprint dari database yang akan dirancang.

(20)

20

SQL (Structured Query Language)

Pengertian Structured Query Language (SQL)

SQL (Structured Query Language) adalah bahasa pemrograman khusus yang digunakan untuk memanajemen data dalam RDBMS. SQL biasanya berupa perintah sederhana yang berisi instruksi-instruksi untuk manipulasi data. Perintah SQL ini sering juga disingkat dengan sebutan ‘query‘.

Sejarah SQL

Bersamaan dengan paper Dr. Edgar F. Codd pada tahun 1969 tentang Teori Database Relational, ia pun mengajukan sebuah bahasa yang disebut DSL/Alpha untuk memanajemen data dalam relational database. Berdasarkan ide Dr.Codd ini, beberapa saat setelah itu IBM mencoba merancang bahasa prototipe sederhana DSL/Alpha yang disebut SQUARE.

Pada tahun 1970, team yang beranggotakan peneliti IBM Donald D. Chamberlin dan Raymond F. Boyce, mengembangkan SQUARE lebih lanjut menjadi SEQUEL (Structured English Query Language). SEQUEL digunakan untuk mengoperasikan prototipe RDBMS pertama IBM, System R. Di kemudian hari, SEQUEL berubah nama menjadi SQL karena permasalahan merk dagang (trademark) dengan sebuah perusahaan pesawat di inggris yang terlebih dahulu telah memakai nama SEQUEL.

Pada akhir 1970an, perusahaan Relational Software, Inc. (sekarang Oracle Corporation) melihat potensi bahasa SQL dan mengembangkan sendiri versi SQL untuk RDBMS mereka. Oracle V2 (versi 2) yang dirilis Juni 1979 adalah RDBMS komersial pertama yang mengimplementasikan SQL.

Dengan kemudahan yang ditawarkan, SQL mulai diimplementasikan oleh berbagai RDBMS dengan versi SQL mereka masing-masing. Namun hal ini menimbulkan permasalahan karena perbedaan penerapan SQL dari satu aplikasi dengan aplikasi database lainnya yang tidak seragam.Sehingga pada tahun 1986, badan standar amerika, ANSI (American National Standards Institute) merancang sebuah standar untuk SQL. Satu tahun setelahnya, ISO (International Organization for Standardization) juga mengeluarkan standar untuk SQL. Versi terakhir standar SQL dirilis pada 2011, yang dinamakan SQL 2011. Dengan standar ini diharapkan ada keseragaman SQL antar aplikasi RDBMS.

Akan tetapi walaupun sudah ada standar tentang SQL, banyak perusahaan RDBMS yang menambahkan ‘fitur’ SQL selain standar yang ada. MySQL juga memiliki SQL yang tidak standar, yang tidak ada pada Oracle, begitu juga sebaliknya.

Namun setidaknya bahasa SQL hampir sama untuk perintah-perintah dasar antar RDBMS. Perintah SQL untuk membuat tabel misalnya, dapat digunakan baik di Oracle maupun MySQL.

(21)

21

Jenis-jenis perintah SQL

Perintah atau instruksi SQL dapat dikelompokkan berdasarkan jenis dan fungsinya.

Terdapat 3 jenis perintah dasar SQL : Data Definition Language, Data Manipulation Language dan Data Control Language.

◼ Data Definition Language (DDL) adalah jenis instruksi SQL yang berkaitan dengan pembuatan struktur tabel maupun database. Termasuk diantaranya : CREATE, DROP, ALTER, dan RENAME.

◼ Data Manipulation Language (DML) adalah jenis instruksi SQL yang berkaitan dengan data yang ada dalam tabel, tentang bagaiman menginput, menghapus, memperbaharui serta membaca data yang tersimpan di dalam database. Contoh perintah SQL untuk DML : SELECT, INSERT, DELETE, dan UPDATE.

◼ Data Control Language (DCL) adalah jenis instruksi SQL yang berkaitan dengan manajemen hak akses dan pengguna (user) yang dapat mengakses database maupun tabel. Termasuk diantaranya : GRANT dan REVOKE.

Selain ketiga jenis perintah SQL, terdapat juga 2 jenis SQL tambahan : Transaction Control Language, dan Programmatic SQL.

◼ Transaction Control Language (TCL) adalah perintah SQL untuk proses transaksi.

Proses transaksi ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan semua, atau tidak sama sekali. Misalnya untuk aplikasi critical seperti transfer uang dalam sistem database perbankan. Setidaknya akan ada 2 perintah, yaitu mengurangi uang nasabah A, dan menambah uang nasabah B. Namun jika terjadi kesalahan sistem, kedua transaksi ini harus dibatalkan. Tidak bisa hanya satu perintah saja. Termasuk ke dalam TCL adalah perintah : COMMIT, ROLLCABK, dan SET TRANSACTION.

◼ Programmatic SQL berkaitan dengan sub program (stored procedure) maupun penjelasan mengenai struktur database. Contoh perintah seperti : DECLARE, EXPLAIN, PREPARE, dan DESCRIBE.

Installasi XAMPP

Untuk penulisan query dalam MySQL maka menggunakan Web Server dengan nama XAMPP. berikut link download https://www.apachefriends.org/download.html.

setelah download xampp maka langkah berikutnya adalah proses installasi bisa di

lihat di link berikut ini

https://bangraje.files.wordpress.com/2020/04/bang-raje-xampp.pdf

(22)

22

Dasar Penulisan Query MySQL

Menjalankan Perintah (query) MySQL

Setiap perintah, atau sering juga disebut “query” di dalam MySQL harus diakhiri dengan tanda titik koma “;” dan akan dieksekusi setelah tombol Enter ditekan. Selama query MySQL belum diakhiri dengan “;” maka itu dianggap masih dalam satu perintah. Ketika kita menjalankan sebuah perintah MySQL (query), query tersebut akan dikirim dari MySQL Client ke MySQL Server untuk di proses, setelah proses selesai, hasilnya akan dikirim kembali ke MySQL Client.

Agar lebih mudah memahami query MySQL, kita akan langsung praktek beberapa query sederhana. Silahkan jalankan MySQL Server dan masuk sebagai user root dari MySQL Client. Setelah masuk ke dalam MySQL Client (ditandai dengan awalan mysql> pada jendela cmd), kita akan mencoba beberapa perintah MySQL sederhana. Ketikkan perintah berikut: SELECT NOW(); lalu akhiri dengan Enter pada keyboard.

1 2 3 4 5 6 7 8

mysql> SELECT NOW();

+---+

| NOW() | +---+

| 2019-09-13-13 09:21:08 | +---+

1 row in set (0.69 sec)

Contoh query diatas adalah untuk menampilkan tanggal dan waktu saat ini dengan fungsi NOW(). Query tersebut akan menghasilkan hasil yang berbeda-beda tergantung saat anda menjalankannya. Perintah SELECT kebanyakan digunakan untuk proses pembacaan data dari database, tetapi juga dapat digunakan untuk menampilkan hasil dari fungsi tambahan, seperti fungsi NOW(), yang kita coba kali ini. Hasil query MySQL akan ditampilkan dalam bentuk tabel pada cmd windows, hasil ini dikirim dari MySQL Server.

Selain hasil dalam bentuk tabel, hampir setiap perintah query, MySQL juga akan menampilkan banyaknya baris yang dipengaruhi dan lamanya waktu eksekusi. Pada contoh kita diatas, ditampilkan keterangan: 1 row in set (0.00 sec). Keterangan ini berarti query kita diproses selama 0 detik (0 second), dan mempengaruhi 1 baris (1 row). o detik disini bukan berarti query tersebut akan tampil seketika, namun karena perintah yang sederhana, MySQL (mungkin) hanya membutuhkan waktu 0,001 sekian detik untuk memproses (dibulatkan menjadi 0,00). Sebagai contoh query lainnya, kita akan mencoba untuk menampilkan nama user yang sedang aktif dan versi MySQL Server yang digunakan pada saat ini. Untuk menampilkan keterangan ini, MySQL menyediakan fungsi USER() dan VERSION()

1 2 3 4 5 6 7 8

mysql> SELECT NOW(),USER(),VERSION();

+---+---+---+

| NOW() | USER() | VERSION() | +---+---+---+

| 2019-09-13-13 09:21:37 | root@localhost | 5.6.21-log | +---+---+---+

1 row in set (0.11 sec)

(23)

23

Dapat dilihat dari contoh query tersebut, untuk setiap fungsi dipisahkan dengan tanda koma “,”. Penulisan perintah (query) MySQL juga tidak harus dalam satu baris.

Misalnya, kita bisa menjalankan query berikut:

1 2 3 4 5 6 7 8 9 10

mysql> SELECT NOW(), -> USER(),

-> VERSION();

+---+---+---+

| NOW() | USER() | VERSION() | +---+---+---+

| 2019-09-13 09:22:50 | root@localhost | 5.6.21-log | +---+---+---+

1 row in set (0.00 sec)

Setelah fungsi NOW() pertama, tekan Enter untuk pindah baris, lalu ketikkan perintah sambungannya. Selama kita belum mengakhiri perintah tersebut dengan “;”, maka MySQL menganggap baris berikutnya adalah sambungan dari baris sebelumnya.

Pemisahan perintah seperti diatas akan sangat berguna jika kita menuliskan query yang panjang, sehingga lebih mudah dibaca. Tanda mysql> akan berubah menjadi ->

selama kita belum mengakhiri query tersebut dengan tanda titik koma “;”.

Jika kita telah membuat query MySQL, namun memutuskan untuk membatalkannya, dapat dilakukan dengan kode “\c”. Contoh querynya:

1 2 3 4 5

mysql> SELECT NOW(), -> USER(),

-> \c mysql>

Dapat anda perhatikan bahwa tanda -> akan kembali menjadi mysql> yang menandakan MySQL telah siap untuk perintah yang baru.

Selain menggunakan “;”, query MySQL juga akan mengeksekusi perintah juga diakhiri dengan tanda “\g”.

1 2 3 4 5 6 7 8

mysql> SELECT NOW(),USER(),VERSION()\g

+---+---+---+

| NOW() | USER() | VERSION() | +---+---+---+

| 2019-09-13 09:23:19 | root@localhost | 5.6.21-log | +---+---+---+

1 row in set (0.00 sec)

Cara Merubah Tampilan output MySQL

Untuk perintah MySQL (query MySQL) yang menghasilkan output yang panjangnya melebihi layar cmd, akan sulit bagi kita dalam membacanya. MySQL menyediakan cara untuk merubah tampilan tabel menjadi baris. Untuk merubah tampilan output MySQL menjadi baris, tambahkan tanda “\G” (huruf G besar, bukan g kecil) setelah perintah query. Berikut adalah contoh penggunaannya dalam MySQL:

1 2 3 4 5 6 7

mysql> SELECT NOW(),USER(),VERSION()\G

*************************** 1. row ***************************

NOW(): 2019-09-13 09:23:41 USER(): root@localhost VERSION(): 5.6.21-log 1 row in set (0.00 sec)

(24)

24

Aturan Penulisan huruf BESAR dan kecil dalam MySQL

Konsep penggunaan huruf besar dan huruf kecil dalam MySQL akan berbeda tergantung saat penggunaannya. MySQL tidak membedakan penulisan huruf besar maupun kecil (case insensitive) dalam penulisan fungsi dan identifier. Sebagai contoh, ketiga query ini akan menghasilkan output yang sama (kecuali header dari tabel):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

mysql> SELECT Version();

+---+

| Version() | +---+

| 5.6.21-log | +---+

1 row in set (0.00 sec)

mysql> SELECT VERSION();

+---+

| VERSION() | +---+

| 5.6.21-log | +---+

1 row in set (0.00 sec)

mysql> select version();

+---+

| version() | +---+

| 5.6.21-log | +---+

1 row in set (0.00 sec)

Namun untuk penulisan nama database dan nama tabel, MySQL akan mengikuti sistem operasi dimana MySQL Server berjalan. Untuk Sistem Operasi Windows, nama database mahasiswa dianggap sama dengan MaHaSIsWA, namun dalam MySQL Server yang berjalan pada Linux, kedua database tersebut dianggap berbeda (case sensitive).

Karena hal ini, ada baiknya kita membiasakan menggunakan kesepakatan dalam penamaan. Disarankan untuk menggunakan selalu huruf kecil dalam penulisan database, tabel dan variabel dalam MySQL, sehingga perbedaan huruf tidak akan menjadi masalah pada kemudian hari jika MySQL Server pindah sistem operasi.

Di dalam tutorial duniailkom, dan juga dalam beberapa buku MySQL, perintah-perintah dan fungsi baku MySQL akan menggunakan HURUF BESAR sedangkan untuk nama database, tabel, dan kolom akan menggunakan huruf kecil. Hal ini hanya semata-mata agar perintah SQL mudah dibaca dan dibedakan dengan nama database atau tabel. Kita bisa saja menggunakan huruf kecil untuk seluruh fungsi-fungsi dalam MySQL.

Perhatikan penggunaan tanda

Dalam beberapa kasus, sebuah query bisa saja menggunakan tanda baca selain angka dan huruf seperti : “,” (koma), “\” (forward slash/garis miring depan),”’” (tanda

(25)

25

petik), dan “ “ (spasi). Misalnya untuk 123 dan ‘123’, 12e + 14 dan 12e+14 akan memiliki arti berbeda dalam MySQL. Jika anda menemui error, mungkin penggunaan

“tanda” ini adalah masalahnya. Lebih jauh dalam penggunaan tanda ini akan kita pelajari dalam tutorial-tutorial MySQL selanjutnya.

(26)

26

Cara Membuat dan Menghapus Database MySQL

Cara Membuat database MySQL

Dalam penggunaannya sehari-hari, sebuah aplikasi biasanya hanya akan memiliki sebuah database. Di dalam MySQL (dan juga di dalam aplikasi relational database lainnya), Database adalah kumpulan dari tabel-tabel yang saling berhubungan.

Database adalah tempat dimana tabel-tabel akan dibuat. Untuk membuat database, format penulisan querynya adalah:

CREATE DATABASE [IF NOT EXISTS] nama_database

Jika kita ingin membuat sebuah database mahasiswa, maka querynya adalah:

1 2 3

mysql> CREATE DATABASE mahasiswa;

Query OK, 1 row affected (0.00 sec)

Tambahan query [IF NOT EXISTS] digunakan untuk membuat MySQL tidak menampilkan pesan error jika database tersebut telah ada sebelumnya dalam database.

Contohnya, jika kita menjalankan lagi query untuk membuat database mahasiswa, MySQL akan menampilkan pesan error.

1 2 3 4

mysql> CREATE DATABASE mahasiswa;

ERROR 1007 (HY000): Can't create database 'mahasiswa';

database exists

Pesan error ini berguna untuk kita mengidentifikasi kesalahan, namun apabila kita membuat kode query yang panjang untuk dieksekusi secara keseluruhan (kita akan mempelajarinya nanti), pesan error akan menyebabkan query berhenti diproses.

Format [IF NOT EXISTS] akan membuat database jika database itu belum ada sebelumnya. Jika sudah ada, query CREATE DATABASE tidak akan menghasilkan apa-apa (database yang lama tidak akan tertimpa).

1 2 3

mysql> CREATE DATABASE IF NOT EXISTS mahasiswa;

Query OK, 1 row affected, 1 warning (0.00 sec)

Cara Melihat Daftar Database MySQL

Di dalam MySQL Server, biasanya akan terdapat beberapa database, tergantung kebutuhan kita. Untuk melihat seluruh database yang berada pada MySQL Server, gunakan query:

SHOW DATABASES;

1 2

mysql> SHOW DATABASES;

(27)

27

3 4 5 6 7 8 9 10 11 12

+---+

| Database | +---+

| information_schema |

| mahasiswa |

| mysql |

| performance_schema |

| test | +---+

5 rows in set (0.00 sec)

Kita dapat melihat bahwa MySQL Server telah berisi beberapa database bawaan, selain database mahasiswa yang kita buat sebelumnya.

Cara Memilih dan Menggunakan Database MySQL

Kita harus memilih sebuah database yang akan digunakan, format query untuk memilih database ini adalah:

USE nama_database;

nama_database adalah database yang akan kita gunakan. Jika kita ingin menggunakan database mahasiswa, maka querynya adalah:

1 2 3

mysql> USE mahasiswa;

Database changed

Selanjutnya setiap query pembuatan tabel misalnya, akan membuat sebuah tabel didalam database terpilih, dalam hal ini database mahasiswa.

Cara Menghapus Database MySQL

Jika database sudah tidak digunakan lagi, kita dapat menghapusnya. Proses penghapusan ini akan menghapus database, termasuk seluruh tabel dan isi dari tabel tersebut. Sebuah database yang telah dihapus tidak dapat ditampilkan kembali. Kita harus yakinkan bahwa database tersebut memang tidak akan digunakan lagi.

Format query untuk menghapus database:

DROP DATABASE [IF EXISTS] database_name;

Sama seperti query pada pembuatan database, pilihan [IF EXISTS] digunakan untuk menghilangkan pesan error jika seandainya database tersebut memang tidak ada.

Jika kita ingin menghapus database mahasiswa, contoh querynya adalah:

1 2 3

mysql> DROP DATABASE mahasiswa;

Query OK, 0 rows affected (0.01 sec)

Jika kita berusaha menghapus database mahasiswa lagi (yang memang sudah tidak ada), akan muncul pesan error:

1 2 3 4

mysql> DROP DATABASE mahasiswa;

ERROR 1008 (HY000): Can't drop database 'mahasiswa';

database doesn't exist

Dengan menggunakan perintah opsional [IF EXISTS], pesan error tidak tampil:

1 2 3

mysql> DROP DATABASE IF EXISTS mahasiswa;

Query OK, 0 rows affected, 1 warning (0.00 sec)

Setiap database dalam MySQL, setidaknya memiliki satu tabel, selanjutnya kita akan mempelajari cara pembuatan tabel dalam MySQL

(28)

28

(29)

29

Membuat dan Menghapus Tabel MySQL

Cara Membuat Tabel MySQL

Langkah pertama sebelum membuat tabel adalah membuat dan memilih database yang akan digunakan. Seperti pada pertemuan MySQL : Membuat dan Menghapus Database, kita akan melanjutkan menggunakan database mahasiswa. Jika anda belum membuat dan memilih database mahasiswa, silahkan ketik query berikut:

1 2 3 4 5

mysql> CREATE DATABASE mahasiswa;

Query OK, 1 row affected (0.00 sec)

mysql> USE mahasiswa;

Database changed

Format dasar query untuk membuat tabel adalah:

CREATE TABLE [IF NOT EXISTS] nama_tabel (daftar_kolom) [type=tipe_tabel]

◼ Query opsional [IF NOT EXISTS] sama seperti pada query pembuatan database, digunakan untuk membuat MySQL tidak menampilkan pesan error jika tabel tersebut telah ada sebelumnya dalam database.

◼ Nama_tabel adalah nama dari tabel yang ingin kita buat.

◼ Daftar_kolom berisi definisi dari kolom-kolom yang akan kita buat untuk database ini. Lebih lanjut tentang jenis-jenis kolom akan kita bahas dalam tutorial selanjutnya.

◼ Tipe_tabel adalah query opsional dimana kita dapat mendefinisikan tipe tabel untuk tabel yang akan kita gunakan, seperti MyISAM maupun InnoDB. Lebih lanjut tentang tipe tabel akan kita bahas pada tutorial berikutnya.

Sebagai contoh, kita akan membuat tabel berdasarkan data mahasiswa berikut ini :

Dari tabel tersebut kita dapat simpulkan bahwa tabel akan terdiri dari 5 buah kolom:

◼ Kolom NIM (Nomor Induk Mahasiswa), walaupun isi tabel ini berupa angka, namun angka disini bukan dimaksudkan untuk operasi matematis, sehingga kita akan lebih cocok jika jika menganggapnya kumpulan karakter atau huruf, maka kita akan membuatnya dengan tipe tabel string. Dalam MySQL tipe string didefinisikan sebagai char.

◼ Kolom Nama berisi karakter huruf, maka akan kita buat dengan tipe data string.

(30)

30

Kolom Umur akan berisi angka-angka, dan mungkin saja kita akan menggunakan umur untuk keperluan matematis, maka tipe data yang akan kita gunakan adalah integer.

Kolom Tempat Lahir berisi kumpulan karakter huruf, maka akan kita buat dengan tipe data string.

Kolom Jurusan berisi kumpulan karakter huruf, maka akan kita buat dengan tipe data string.

Sehingga query untuk membuat tabel data_mahasiswa seperti diatas adalah:

1 2 3 4

mysql> CREATE TABLE data_mahasiswa ( nim char(9), nama char(50), umur int, tempat_lahir char(50), jurusan char (30) );

Query OK, 0 rows affected (0.08 sec)

Penjelasan query:

◼ Dengan query diatas, kita telah membuat sebuah tabel dengan nama data_mahasiswa, terdiri dari 5 kolom: nim, nama, umur, tempat_lahir, dan jurusan.

◼ Setelah nama kolom, kita definisikan jenis dari kolom tersebut.

◼ Untuk kolom yang berisi huruf (string), dalam MySQL dapat kita definisikan sebagai char. Angka di dalam kurung adalah jumlah karakter maksimal yang dapat ditampung, misalnya untuk kolom nama, kita menginstruksikan MySQL untuk menyediakan maksimal sebanyak 50 karakter untuk kolom nama.

◼ Untuk kolom yang berisi angka, MySQL menyediakan beberapa tipe yang dapat dipilih, untuk contoh diatas, kita memilih integer, disingkat menjadi int.

◼ Untuk setiap kolom, dalam query CREATE TABEL, dipisahkan dengan tanda koma, dan seluruh definisi kolom harus berada diantara tanda kurung.

Cara Melihat Daftar Tabel dalam MySQL

Untuk melihat seluruh tabel yang ada pada database aktif saat ini, format querynya adalah:

SHOW TABLES;

Untuk contoh kita, karena baru ada 1 buah tabel, maka hasil eksekusi querynya adalah sebagai berikut:

1 2 3 4 5 6 7 8

mysql> SHOW TABLES;

+---+

| Tables_in_mahasiswa | +---+

| data_mahasiswa | +---+

1 row in set (0.07 sec)

Cara Melihat Struktur Tabel MySQL

Untuk melihat struktur dari sebuah tabel, seperti nama kolom yang tersedia, dan tipenya, dapat dilihat dengan format query:

DESCRIBE nama_tabel;

Dalam contoh kita, hasil dari DESCRIBE data_mahasiswa, adalah:

1 2

mysql> DESCRIBE data_mahasiswa;

(31)

31

3 4 5 6 7 8 9 10 11 12

+---+---+---+---+---+---+

| Field | Type | Null | Key | Default | Extra | +---+---+---+---+---+---+

| nim | char(9) | YES | | NULL | |

| nama | char(50) | YES | | NULL | |

| umur | int(11) | YES | | NULL | |

| tempat_lahir | char(50) | YES | | NULL | |

| jurusan | char(30) | YES | | NULL | | +---+---+---+---+---+---+

5 rows in set (0.01 sec)

Dari hasil query, dapat terlihat semua kolom serta tipe dari setiap kolom tersebut.

Untuk keterangan kolom seperti Null, Key, Default, dan Extra akan kita bahas dalam tutorial berikutnya.

Cara Menghapus Tabel MySQL

Format query untuk menghapus tabel adalah:

DROP TABLE[IF EXISTS] table_name [, table_name,...]

Query opsional [IF EXISTS] digunakan untuk menghilangkan pesan error jika tabel yang akan dihapus memang sudah tidak ada. Dari format query DROP TABLE, dapat dilihat bahwa dalam satu query, kita dapat menghapus beberapa tabel sekaligus.

Untuk menghapus tabel data_mahasiswa, querynya adalah:

1 2 3

mysql> DROP TABLE data_mahasiswa;

Query OK, 0 rows affected (0.05 sec)

Setelah membuat database dan tabel dalam MySQL, untuk tutorial selanjutnya kita akan membahas tipe data yang digunakan dalam setiap tabel MySQL. MySQL menyediakan berbagai tipe data sesuai dengan keperluan data yang akan kita input kedalam tabel.

(32)

32

Tipe Data Numerik MySQL

Tipe Data Integer MySQL: Tinyint , Smallint, Mediumint, Integer (Int), dan Bigint

Integer adalah tipe data untuk angka bulat (misalnya: 1,6, 59, -533, 1449).

MySQL menyediakan beberapa tipe data untuk integer, perbedaannya lebih kepada jangkauan yang juga berpengaruh terhadap ukuran tipe data tersebut. Jangkauan serta ukuran penyimpanan tipe data integer dalam MySQL dapat dilihat dari tabel dibawah ini:

Pemilihan tipe data ini tergantung akan kebutuhan data kita. Misalkan untuk nomor urut absensi pada suatu kelas yang memiliki maksimal 30 orang, tipe data TINYINT sudah mencukupi. Namun jika kita bermaksud membuat absensi seluruh rakyat indonesia, tipe data TINYINT sampai dengan MEDIUMINT tidak akan mencukupi. Kita harus memilih INT atau BIGINT.

Cara Penulisan Tipe Data Integer MySQL

Format query untuk tipe data integer adalah:

INT[(M)] [UNSIGNED] [ZEROFILL]

Setiap tipe data integer dapat di definisikan sebagai UNSIGNED, dimana kita mengorbankan nilai negatif, untuk mendapatkan jangkauan nilai positif yang lebih tinggi. Dalam deklarasi tipe data integer, nilai M adalah jumlah digit yang disediakan untuk menampilkan data. Misalnya kita mendefiniskan suatu kolom dengan INT(5), jika kita input angka 102, maka MySQL akan menambahkan spasi sebanyak 2 buah di depan angka, agar tampilan data menjadi 5 digit (istilah pemogramannya : padding left).

Nilai M tidak mempengaruhi nilai maksimal dari integer. Jika angka yang diinputkan melebihi digit M, MySQL akan tetap menampilkan hasilnya (selama masih dalam jangkauan tipe data tersebut). Jika kita deklarasikan INT(4), nilai maksimal tetap 2,147,483,647 bukan 9999. Selain opsional query UNSIGNED, pendeklarasian integer juga terdapat opsional atribut ZEROFILL. ZEROFILL ini

(33)

33

berhubungan dengan nilai M, yang akan mengisi angka 0 pada bagian kiri nilai yang diinput alih-alih spasi.

Contoh query pembuatan tabel dengan deklarasi integer :

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

mysql> CREATE TABLE contoh_int (mini TINYINT, kecil SMALLINT UNSIGNED, sedang MEDIUMINT(4) ZEROFILL, biasa INT(4) UNSIGNED,

besar BIGINT(6) UNSIGNED ZEROFILL);

Query OK, 0 rows affected (0.06 sec)

mysql> DESC contoh_int;

+---+---+---+---+---+---+

| Field | Type | Null | Key | Default | Extra | +---+---+---+---+---+---+

| mini | tinyint(4) | YES | | NULL | |

| kecil | smallint(5) unsigned | YES | | NULL | |

| sedang | mediumint(4) unsigned zerofill | YES | | NULL | |

| biasa | int(4) unsigned | YES | | NULL | |

| besar | bigint(6) unsigned zerofill | YES | | NULL | | +---+---+---+---+---+---+

5 rows in set (0.21 sec)

Dari query DESC kita dapat melihat kolom mini dan kecil, secara otomatis akan bersisi nilai M, walaupun dalam deklarasi pembuatan tabel kita tidak menyatakannya secara langsung. Nilai ini didapat dari jangkauan terbesar tipe data tersebut

Jika kita inputkan angka 122 kedalam seluruh kolom, hasilnya adalah sebagai berikut:

1 2 3 4 5 6 7 8 9 10 11 12 13

mysql> INSERT INTO contoh_int values ((122), (122), (122), (122), (122));

Query OK, 1 row affected (0.07 sec)

mysql> SELECT * FROM contoh_int;

+---+---+---+---+---+

| mini | kecil | sedang | biasa | besar | +---+---+---+---+---+

| 122 | 122 | 0122 | 122 | 000122 | +---+---+---+---+---+

1 row in set (0.00 sec)

Untuk perintah INSERT dan SELECT, kita akan mempelajarinya lebih jauh pada tutorial berikutnya, query INSERT digunakan untuk input data ke dalam tabel, dan SELECT digunakan untuk menampilkan nilai dari tabel. Dari contoh diatas kita setidaknya mendapat gambaran bagaimana cara deklarasi tipe data integer. Perhatikan untuk kolom sedang dan besar, terdapat angka nol di depan angka. Hal ini karena kedua kolom tersebut kita deklarasikan sebagai ZEROFILL.

Tipe Fixed Point MySQL: DECIMAL

Tipe data fixed point adalah tipe data angka pecahan (desimal), dimana jumlah angka pecahan (angka di belakang koma) sudah di tentukan dari awal. Format penulisan query fixed point adalah:

DECIMAL [(M[,D])] [UNSIGNED] [ZEROFILL]

DECIMAL merupakan kata kunci untuk mendefiniskan suatu kolom sebagai fixed point. Besar dari tipe data fixed point ini tergantung dari opsional query [M,D]

dimana M adalah total jumlah digit keseluruhan, dan D adalah jumlah digit dibekang

Referensi

Dokumen terkait

Karena pengelolaan data kesiswaan tidak hanya dilakukan oleh sistem informasi manajemen Kanwil Depdikbud propinsi Sumatera Barat yang ditangani oleh Bagian Perencanaan tetapi

Tinggi badan membanntu atlet dalam menjangkau bola melakukan smash dalam permainan bolavoli dan merupakan faktor yang mempengaruhi kemampuan atlet dalam melakukan blok,

oleh karena itu, penelitian ini berusaha menemukan bukti-bukti empiris mengenai pengaruh tata kelola perusahaan (corporate governance) yang diproksikan dengan

Di tahun 2020 Otoritas Jasa Keuangan telah memberikan relaksasi kepada Perusahaan Pembiayaan dengan diterbitkannya Peraturan Otoritas Jasa Keuangan Nomor 58/POJK.05/2020

Selain observasi, peneliti juga tetap melakukan wawancara dengan guru dan beberapa peserta didik. Hal ini dilakukan untuk mendapatkan informasi yang lebih jelas tentang

Hasil penelitian menunjukkan bahwa pengembangan LKPD interaktif berbasis web dengan pendekatan CTL telah memenuhi kriteria valid, praktis, dan efektif untuk digunakan

Berdasarkan pandangan ini paradigma yang berkembang adalah mitigasi dimana fokus penanggulangan bencana diarahkan pada kesiapan masyarakat dalam menghadapi bahaya

b) apabila semua harga penawaran di atas nilai total HPS, pelelangan dinyatakan gagal;.. 2) harga satuan penawaran yang nilainya lebih besar dari 110% (seratus sepuluh