BAB 1
LANDASAN TEORI
- My SQL
Sistem adalah sebuah tatanan
(keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan tugas
khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk
memenuhi suatu proses/pekerjaan tertentu.
Untuk mengelola basis data
dibutuhkan gabungan antara basis data dan pengelolanya (program/aplikasi
software) yang menghasilkan sebuah sistem yaitu sistem basis data. Dalam sebuah
sistem basis data akan terdapat komponen-komponen utama seperti perangkat
keras, sistem operasi, basis data, Database
Management System (DBMS),
pemakai (user), aplikasi (perangkat lunak) lain.
Pada tulisan ini akan dibahas
mengenai salah satu komponen dari sistem basis data yaitu Database Management System (DBMS). Dalam pengelolaannya basis
data ditangani oleh sebuah Perangkat Lunak (Sistem) yang khusus/spesifik,
perangkat lunak ini disebut DBMS, yang akan menentukan bagaimanan data
diorganisasi, di simpan, dan diambil kembali. Selain itu DBMS juga menerapkan
mekanisme pengamanan data, pemakaian data secara bersama, menjaga keakuratan
data/konsistensi data, dan sebagainya.
PERANGKAT LUNAK YANG
TERMASUK DBMS
Berikut di bawah ini adalah
beberapa perangkat lunak yang termasuk DBMS:
- Untuk kelas sederhana
dBase IV, FoxBase, Rbase,
MS-Access, dan Borland Paradox,
- Untuk kelas berat/kompleks
Borland-Interbase, MS-SQL
Server, CA-Open Ingres, Oracle, Informix, MySQL , dan Sybase.
MySQL
MySQL adalah sebuah database relasional gratis dan open source (GPL) yang mula-mula tersedia di
Unix/Linux namun kini tersedia juga di sistem operasi Windows. MySQL mulai
popular sejak pertengahan 1990-an saat Web dan aplikasi web mulai popular. Kala itu, selain mySQL,
tidak ada alternatif database lain yang cepat, stabil, dan memiliki
fitur-fitur yang cukup untuk bisa dijadikan database pendukung aplikasiweb.
Hingga kini MySQL terus bertahan sebagai database
open source yang paling
popular mengalahkan PostgreSQL, Interbase/Firebird, dan lain sebagainya. MySQL
mudah diinstal, mudah dipakai dan dapat dikonek dari berbagai bahasa
pemrograman. Singkat kata, amat
aksesibel bagi rata-rata penggunadatabase.
Kekuatan utama MySQL adalah
pada kecepatannya, terutama untuk kecepatan koneksi (overhead koneksi yang rendah) dan kecepatannya
untuk query-query yang sederhana dan juga cukup mudah
untuk digunakan. Hal ini membuatnya cocok dipakai sebagai backend untuk aplikasi web termasuk berbasis CGI.
FITUR UTAMA MySQL
Berikut di bawah adalah daftar
yang menjelaskan karakteristik yang menarik dari MySQL Database Software.
Internals and Portability
- Ditulis dalam bahasa C dan C++.
- Telah diuji dengan suatu jangkauan luas
dari compiler yang berbeda.
- Bekerja pada banyak platform berbeda.
- Penggunaan GNU Automake, Autoconf, dan Libtool untuk portabilitas.
- Tersedianya APIs untuk C, C++, Eiffel,
Java, Perl, PHP, Python, Ruby, dan Tcl.
- Multi-threaded secara penuh menggunakan kernel
threads. Sehingga dapat
dengan mudah menggunakan multiple CPUs jika mereka ada tersedia.
- Menyediakan transactional and
non-transactional dalam
penyimpanan.
- Menggunakan B-Tree Tabel Disk yang sangat cepat ( MyISAM)
dengan index compression.
- Relatif mudah untuk menambahkan tempat
penyimpanan yang lain. Ini sangat bermanfaat jika ingin menambahkan suatu
SQL yang terhubung ke suatu database
in-house.
- Sistem alokasi memori thread-based yang sangat cepat.
- Penggabungan yang sangat cepat dengan
menggunakan optimized
one-sweep multi-join.
- In-memory hash tables, yang digunakan sebagai tabel temporer.
- Fungsi-fungsi SQL diimplementasikan
dengan perpustakaan kelas yang sangat optimal. Pada umumnya tidak ada alokasi
memori sama sekali setelah query initialisasi.
- MySQL Kode diuji dengan Purify (suatu
pendeteksi kebocoran memori) seperti halnya dengan Valgrind, suatu GPL
alat ( http://developer.kde.org/~sewardj/).
- Server tersedia sebagai program terpisah
untuk digunakan di lingkungan jaringan client/server.
- Tersedia juga sebagai library yang dapat di-embedded yang dihubungkan ke dalam
aplikasistandalone. Seperti aplikasi dapat digunakan di dalam
lingkungan di mana jaringan tidak tersedia.
Tipe Data (Data Types)
- Banyak jenis data: signed/unsigned integers 1, 2, 3, 4, dan 8 bytes long, FLOAT, DOUBLE, CHAR, VARCHAR,
TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM, dan OpenGISspatial
types.
- Fixed-length and
variable-length records.
Statemen dan fungsi
- Mendukung penuh operator dan fungsi dalam SELECT dan WHERE klausa dalam query.
- Mendukung penuh untuk GROUP BY dan ORDER BY klausa. Mendukung untuk group functions(COUNT(), COUNT(DISTINCT …), AVG(),
STD(), SUM(), MAX(), MIN(), danGROUP_CONCAT()).
- Mendukung untuk LEFT OUTER JOIN dan RIGHT OUTER JOIN dengan standar SQL dan
sintaksis ODBC.
- Mendukung untuk alias pada tabel dan
kolom ketika diperlukan oleh SQL standar.
- DELETE, INSERT, REPLACE, dan UPDATE mengembalikan banyaknya baris yang telah diubah ( yang
terpengaruh). Dapat mengembalikan banyaknya baris yang sama
selain dengan pengaturan suatu bendera ketika dihubungkan kepada server.
- Statemen MySQL-specific SHOW dapat digunakan untuk mendapat kembali informasi tentangdatabase, storeage engines, tabel,
dan index.
- SHOW statemen dapat digunakan untuk menentukan
bagaimana optimizer memecahkan suatuquery.
- Dapat menggabungkan tabel dari database yang berbeda di dalam query yang sama ( mulai dari MySQL
3.22).
Keamanan (Security)
- Perlakuan khusus (privilege) dan
sistem password yang fleksibel dan aman, dan
memperbolehkan verifikasi host-based.
Password aman sebab semua password
traffic dalam keadaaan
terenkripsi ketika dihubungkan ke suatu server.
Skalabilitas dan Batas (Scalability
and Limits)
- Dapat menangani database yang besar.
- Jumlah index diatas 64 per tabel diperbolehkan
( 32 sebelum MySQL 4.1.2). Masing-Masing i boleh
terdiri dari 1 sampai 16 kolom atau bagian-bagian dari kolom. Lebar Index maksimumnya adalah 1000 bytes (767 untuk InnoDB); [sebelum
MySQL 4.1.2, batasnya adalah 500 bytes. Suatuindex boleh menggunakan suatu awalan
suatu kolom untuk CHAR, VARCHAR, BLOB, atau jenis kolom TEXT.
Konektivitas (Connectivity)
- Klien dapat menghubungkan pada MySQL server menggunakan TCP/IP socket pada platformmanapun. Pada
sistem Windoes pada NT
family (NT, 2000, XP,
2003, or Vista), klien dapat menghubungkan penggunaan pipes. Pada Sistem Unix,
klien dapat menghubungkan menggunakan file-file Unix domain socket.
- Pada Mysql 4.1 dan atau versi lebih
tinggi, server Windows juga mendukung
koneksi shared-memory jika dimulai dengan pilihan –shared-memory . Klien dapat terhubung melalui pembagian
memori dengan menggunakan pilihan –protocol=memory.
- Connector/ODBC ( MyODBC) menyediakan interface MySQL untuk mendukung program
klien yang menggunakan koneksi ODBC (Open
Database Connectivity). Sebagai contoh, dapat digunakan MS Access
untuk terhubung ke MySQL Server Anda. Klien dapat dijalankan di Windows
atau Unix.
- Connector/J Alat menyediakan interface Mysql untuk mendukung program
klien program Java yang menggunakan koneksi JDBC. Klien dapat dijalankan
di Windows atau Unix.
- MySQL Connector/NET
memungkinkan pengembang untuk dengan mudah menciptakan aplikasi .NET yang
memerlukan keamanan, performa tinggi dalam konektivitas data dengan MySQL.
STABILITAS MySQL
Kode yang asli pada
awal 1980-an. Menyediakan code
base yang stabil, dan format
tabel ISAM yang digunakan oleh storage
engine yang asli tetap backward-compatible. Pada TcX,
pendahulu MySQL AB, kode MySQL telah bekerja dalam proyek sejak pertengahan
1996, tanpa suatu masalah. Ketika MySQL databaseyang
pada awalnya telah dilepaskan untuk umum, para pemakai baru yang dengan cepat
mendapat beberapa potongan yang dari kode yang belum diuji. Masing-masing release baru sejak mempunyai lebih sedikit
permasalahan portabilitas, meskipun masing-masing release-an baru juga telah
mempunyai banyak memiliki fitur yang baru.
Dalam setiap release Mysql
Server telah dapat dipakai. Permasalahan terjadi hanya ketika para pemakai
mencoba kode dari “gray zone”.
Yang secara alami, para pemakai baru tidak mengetahui apa itu “gray zone”.
MySQL Server design adalah multi-layered dengan modul mandiri. Sebagian dari
modul yang lebih baru didaftarkan di sini dengan suatu indikasi seberapa baik
pengujian yang dilakukan:
- Replikasi (Stabil)
Kelompok besar penggunaan
server yang menggunakan replikasi dalam penggunaan produksi, dengan hasil baik.
Bekerja pada peningkatan fitur replikasi terus berlannjut.
- InnoDB tables (Stabil)
Transaksi storeage engine
Innodb telah stabil sejak versi 3.23.49. Innodb
digunakan besar, sistem produksi muatan berat.
- Full-text searches (Stabil)
Full-text searching secara luas
digunakan. Peningkatan fitur penting telah ditambahkan pada Mysql 4.0 dan 4.1.
- MyODBC 3.51 (Stabil)
Myodbc 3.51 menggunakan ODBC
SDK 3.51 dan dalam penggunaan produksi yang lebar/luas. Beberapa isu nampak
terlihat seperti terkait dengan aplikasi dan tidak terikat pada ODBC pengarah
atau mendasari server database.
SEBERAPA BESAR TABEL PADA MySQL
MySQL 3.22 mempunyai batas
banyaknya tabel sampai 4GB ( 4 gigabyte).
Dengan MyISAM storage enginedi
MySQL 3.23, batas ukuran tabel maksimum telah ditingkatkan sampai 65536 terabytes ( 2567-1 bytes). Banyaknya tabel efektif
yang maksimum untuk MySQL database pada umumnya ditentukan oleh batasan
sistem operasi pada besarnya file, bukan oleh batas pada MySQL.
DBMS
(Database Management System) merupakan suatu perangkat lunak atau software yang bertugas sebagai perantara antara
user dan database dan sebagai sistem pengelola (me-manajemen) data di dalam
database.
SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering
disebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL dikenalkan pertama kali
dalam IBM pada tahun 1970 dan sebuah standar ISO dan ANSII ditetapkan untuk
SQL. Standar ini tidak tergantung pada mesin yang digunakan (IBM, Microsoft
atau Oracle). Hampir semua software database mengenal atau mengerti SQL. Jadi,
perintah SQL pada semua software database hampir sama.
Terdapat 3 (dua) jenis perintah SQL, yaitu DDL, DML dan DCL.
1. DDL atau Data Definition Language
DDL merupakan perintah SQL yang
berhubungan dengan pendefinisian suatu struktur database, dalam hal inidatabase dan table. Beberapa perintah dasar yang termasuk
DDL ini antara lain :
§ CREATE
§ ALTER
§ RENAME
§ DROP
2. DML atau Data Manipulation Language
DML merupakan perintah SQL yang
berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang
termasuk dalam DML antara lain :
§ SELECT
§ INSERT
§ UPDATE
§ DELETE
3. DCL atau Data Control Language
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan
hak akses user MySQL, baik terhadap server, database, tabel maupun field.
Perintah SQL yang termasuk dalam DCL antara lain :
§ GRANT
§ REVOKE
beberapa hal yang perlu diperhatikan :
§ CREATE TABLE merupakan perintah dasar dari pembuatan table.
§ mhs merupakan nama tabel yang akan dibuat.
§ Nim, nama, tgllahir dan alamat merupakan nama field
§ Varchar, date dan text merupakan tipe data dari field
§ NOT NULL merupakan option untuk menyatakan bahwa suatu field tidak boleh
kosong.
§ PRIMARY KEY merupakan perintah untuk menentukan field mana yang akan
dijadikan primary key pada tabel.
§ 10 dan 30 di belakang tipe data merupakan panjang maksimal dari suatu field
§ Untuk tipe data date dan text (dan beberapa tipe data lainnya) panjang
karakter maksimalnya tidak perlu ditentukan.
§ Jangan lupa akhiri perintah dengan titik-koma (;)
2. PostgreSQL
Postgresql atau sering disebut 'postgres' termasuk dalam kategori object-Relational database management system (ordbms). Ordbms adalah dbms yang selain menggunakan prinsip-prinsip basis data relational, juga menggunakan pendekatan berorientasi obyek dalam model basis datanya.
Postgres dikembangkan sebagai freesoftware, dan bersifat terbuka (open-source), sehingga tidak dikendalikan oleh satu atau dua perusahaan.
Kelebihan Postgres dibandingkan dbms lainnya adalah: sifatnya yang free dan open-source, dukungan dokumentasinya yang luar biasa, fleksibilitasnya dan fitur-fiturnya yang tidak kalah dengan dbms komersial. Selain mendukung model data object-relational, postgres juga mendukung penggunaan basis data spasial (biasanya untuk penggunaan Sistem informasi geografis). Postgres, juga mendukung operasi multi-user dan multi-threaded, bahkan mungkin lebih bagus dari mysql dari sisi keamanan.
Perintah Dasar
PostgreSQL dalam Query
Hubungan Antar Tabel (References)
Tabel-Tabel
dalam database bisa dihubungkan dengan menggunakan
REFERENCES. Untuk melakukannya maka diperlukan beberapa syarat, antara lain :
1. Tabel yang dihubungkan harus memiliki sebuah field dengan
tipe data yang sama.
2. Harus dibentuk Primary
Key dan Foreign Key pada kedua field bertipe data sama
tersebut.
Contoh Hubungan Antar Tabel (References) :
Misal kita membuat 2 buah tabel, yaitu tabel barang dana macam
barang.
Jika kita ingin menghubungkannya maka querynya adalah:
CREATE TABLE macam_barang (mac_id integer not_null, mac_nama varchar(15),
mac_guna varchar(40), primary key (mac_id));
CREATE TABLE barang (mac_id integer not null, bar_nama varchar(15), mac_id
integer not null references macam_barang, primary key (bar_id, mac_id));
Bila kita lupa memberikan references namun tabel sudah
dibuat. Maka kita bisa menggunakan perintah alter untuk menambahkan references.
ALTER TABLE barang ADD CONSTRAINT relasi_barang foreign key (mac_id) references
macam_barang (mac_id) ON UPDATE NO ACTION ON DELETE NO ACTION.
Memasukkan Data Ke Dalam Tabel.
Sebuah
data dapat dimasukkan ke dalam tabel menggunakan perintah INSERT. Yang perlu
diperhatikan dalam menginputkan data adalah struktur tabel yang akan digunakan
untuk memasukkan data. Sebagai contoh query untuk memasukkan data ke dalam
tabel.
INSERT INTO [Nama Tabel] values (1,’wahyu’,’1992-02-17’,false,’PROGRAMMER’);
Penjelasan
:
Kolom Pertama berisikan (1), tidak menggunakan petik karena
tipe datanya adalah integer.
Kolom Kedua dan Kelima (wahyu dan programmer), karena tipe
datanya varchar maka tanda petik diperlukan.
Kolom Ketiga (1992-02-17), tipe data date dianggap sebagai
string, jadi menggunakan petik
Kolom Keempat (FALSE), tipe data kolom Boolean, hanya
berisi True / False.
Menampilkan Data
Sebuah
data di dalam tabel dapat ditampilkan dengan menggunakan perintah SELECT. Ada
beberapa cara penampilan data dalam tabel. Struktur Query untuk menampilkan
data adalah :
SELECT [Nama Kolom] FROM [Nama
Tabel];
Jika ingin menampilkan semua kolom dalam tabel, maka ganti [Nama Kolom] dengan
symbol *. Untuk menampilkan baris, gunakan perintah WHERE yang diletakkan
dibelakang nama tabel dan isikan nama kolom beserta kata kunci sebagai dasar
dari pencarian baris. Untuk lebih jelasnya berikut perintah struktur querynya.
SELECT [Nama Kolom] FROM [Nama
Tabel] WHERE [Nama Kolom] = [Kata Kunci];
Jika
ingin menampilkan data dari lebih dari satu tabel, maka perintah struktur
querynya adalah :
SELECT [Nama Tabel.Nama Kolom] FROM
[Nama Tabel1, Nama Tabel2, ….]
Menghapus Data
Pada
database PostgreSQL,
untuk menghapus data dalam tabel maka menggunakan perintah DELETE, perintah
struktur querynya adalah :
DELETE FROM [Nama Tabel];
Jika
menggunakan perintah tersebut maka seluruh data pada tabel tersebut akan
terhapus. Namun bisa juga menghapus pada spesifikasi baris tertentu, perintah
struktur querynya adalah:
DELETE FROM [Nama Tabel] WHERE
[Nama Kolom] = [Kata Kunci];
Modifikasi Data
Untuk
memodifikasi data dalam tabel gunakan perintah UPDATE. Perintah struktur
querynya adalah:
UPDATE [Nama Tabel] set [Nama
Kolom] = [Isi Data] WHERE [Nama Kolom] = [Kata Kunci];
Pengurutan Data
Untuk
mengurutkan data dalam tabel gunakan perintah ORDER BY. Jika data sebuah
tabel diurutkan dengan perintah tersebut, maka data tadi akan diurutkan dari
atas ke bawah berdasarkan abjad. Perintah Struktur Querynya adalah:
SELECT * FROM [Nama Tabel] Order By
[Nama Kolom];
BAB II
HASIL PRAKTIKUM
gambar disamping adalah soal praktikum yang harus dibuat tabelnya. dan, hasilnya adalah sebagai berikut.
ada 5 kemudahan yang harus dilakukan untuk membuat tabel yaitu
langkah pertama yang harus dilakukan adalah :
1. membuat tabel fakultas dengan id_key sebagai primary key-nya.
create table fakultas (id_fak int not null, nama_fak varchar(25), primary key (id_fak));
setelah berhasil dibuat, akan muncul tampilan seperti ini.
| sukses |
| hasil |
create table mahasiswa (nim_mah int not null, nama_mah varchar(25),alamat_mah varchar(30),id_fak integer not null references fakultas, primary key (nim_mah,id_fak));
3. untuk memasukkan no.telp nanti, maka harus ditambahkan kolom no.telp terlebih dahulu.
4. lalu, memasukkan id fakultas ke dalam tabel fakultas. karena yang diperlukan hanya fakultas SAINTEK dan PSIKOLOGI, maka saya hanya memasukkan kedua fakultas tersebut.
![]() |
| the query |
![]() |
| sukses |
![]() |
| hasil |
![]() |
| query |
| tanda suksesnya |
![]() |
| hasil |
![]() |
| hasil diamsukkannya fakultas SAINTEK |
![]() |
| bukti suksesnya perintah memasukkan id fakultas SAINTEK |
![]() |
| query of id SAINTEK |
![]() |
| query of PSIKOLOGI |
![]() |
| bukti sukses perintah id PSIKOLOGI |
5. lalu selanjutnya barulah memasukkan data mahasiswa yang sudah tertera di gambar berikut
caranya adalah..
![]() |
| ini adalah hasil dari memasukkan data yang pertama |
![]() |
| ini query atau perintah untuk memasukkan data yang pertama |
| ini bukti berhasilnya perintah untuk memasukkan data pertama |
![]() |
| hasil data kedua |
![]() |
| querynya yang kedua |
| bukti berhasil |
![]() |
| query data3 |
![]() |
| hasilnya |
| bukti suksesnya perintah |
untuk mengerjakan soal nomor2 yang untuk menampilkan data mahasiswa berupa nim dan nama, hasilnya adalah;
dan nomor 3 yang disuruh menampilkan data mahasiswa berdasar nim salah satu mahasiswa ada di berikut ini..
untuk nomor 4, tampilkan data mahasiswa dan fakultas. ambil berdasar nim, nama mahasiswa, nama fakulta
nomor 5, menghapus data mahasiswa yang memiliki nim 13
![]() |
| ketika ingin dihapus, akan muncul tanda seperti ini |
![]() |
| hasilnya |
nomor 7, menampilkan data mahasiswa dan mengurutkannya dari besar ke kecil, berdasra nim mahasiswa. lalu menampilkan data fakultas yang diurutkan secara asscending berdasar kolom ke 2
![]() |
| yang ini adalah data mahasiswa yang telah diurutkan |
![]() |
| sedangkan yang ini, data FAKULTAS yang diurutkan secara ascending berdasar kolom ke 2 |
yang ke 9 adalah, menampilkan seluruh mahasiswa yang berada di fakultas SAINTEK
nomor ke 10, kebalikan nomor 9, yaitu menampilkan mahasiswa yang TIDAK berada di fakultas SAINTEK
yang terakhir yaitu nomor 11 perintahnya adalah, menghapus data fakultas SAINTEK
![]() |
| jika ingin menghapus sesuatu, seperti biasa akan muncul seperti ini |
![]() |
| dan ini dia hasilnya.. |
BAB III
PENUTUP
Kesimpulan
Dalam membuat tabel perlu memerhatikan entitas entitas di dalamnya, dan juga
perlu memperhatikan hubungannya dengan entitas entitas pada table lain.
References digunakan sebagai penghubung dari setiap entitas entitas tersebut.
Untuk memasukkan data ke dalam Tabel gunakan command INSERT. Untuk Tipe data
varchar dan date input harus menggunakan tanda ('), karena tipe data tersebut
bernilai string. Perhatikan juga strukturnya ketika ingin menginputkan data
Untuk menampilkan data dalam tabel gunakan command SELECT. Jika ingin
menampilkan keseluruhan isi tabel maka gunakan tanda (*) sebagai pengganti nama
kolom. Dan Juga Gunakan command WHERE untuk menampilkan baris baris tertentu
dengan memberika spesifikasi tertentu.
Untuk menghapus data dalam tabel gunakan command DELETE. Jika hanya ingin
menghapus data pada baris baris tertentu saja maka tambahkan command WHERE
untuk memberikan spesifikasi baris tertentu.
Untuk modifikasi data dalam tabel gunakan command UPDATE. UPDATE bisa digunakan
untuk memodifikasi data pada kolom kolom tertentu berdasarkan baris tertentu.
Untuk mengurutkan data dalam tabel gunakan command ORDER BY. Command tersebut
digunakan setelah command SELECT layaknya command WHERE.
Saran
Jangan risau, jangan galau, apalagi gundah gulana. kini saya hadir untuk membantu temen2 membuat SQL yang sederhana ini.. semangat ya.. kita bisa kalo nyoba.. jangan lupa cari referensi sebanyak mungkin buat dukungan yang telah kita lakukan.
Manfaatnya
buat temen2 semuanya, tadi sekedar contoh dari banyaknya query tentang SQL. semoga bermanfaat bagi kita semua, dan semoga kita lancar dalam memahaminya..
terimakasih...
































Tidak ada komentar:
Posting Komentar