Dasar Teori
Agregasi
dalam SQL merupakan proses untuk mendapatkan nilai dari sekumpulan data
yang telah dikelompokkan. Pengelompokan data didasarkan pada kolom atau
kombinasi kolom yang dipilih.
Beberapa fungsi untuk agregasi adalah:
· MAX : Mencari data terbesar dari sekelompok data
· MIN : Mencari data terkecil dari sekelompok data
· COUNT : Mencari cacah data
· SUM : Mencari jumlah dari sekumpulan data numeris
· AVG : Mencari nilai rata-rata dari sekumpulan data numeris
Sintaks SQL untuk melakukan pengelompokan adalah
SELECT field-1, …, field-n, fungsi_untuk_agregasi(nama_field)
FROM table
GROUP BY field-1, …, field-n
Untuk memperjelas mekanisme pengelompokan, kita gunakan contoh tabel P berikut,
nim kodemk thnakademik nilai bobot
50 A1 1999/2000 B 3
50 A1 2000/2001 B 3
60 A1 2000/2001 A 3
50 A1 2001/2002 B 3
50 A2 2001/2002 B 2
60 A2 2002/2003 B 2
50 A2 2003/2004 A 2
50 A1 2004/2005 A 3
Penggunaan fungsi agregasi tanpa pengelompokan berarti melakukan agregasi dari seluruh data.
SELECT max(thnakademik) as thnambilterakhir
FROM P
Maka akan mengambil tahunakademik terbesar yaitu '2004/2005'
Penggunaan
fungsi agregasi dengan pengelompokan berdasar pada kolom berarti
melakukan pengelompokan dengan aturan dasar record-record yang memiliki
nilai sama untuk kolom tersebut sebagai satu kelompok, dan bila nilai
kolom pengelompokan tidak sama maka berada kelompok yang berbeda.
Selanjutnya agregasi akan dilakukan untuk masing-masing kelompok data.
Agregasi berdasar kolom
SELECT nim as NIM, kodemk as KodeMK, max(thnakademik) as thnambilterakhir, nilai as Nilai
FROM P
GROUP BY nim
Maka akan membentuk kelompok seperti gambar di bawah ini:
NIM KodeMK thnambilterakhir nilai
50 A1 2004/2005 A
50 A2 2003/2004 A
60 A1 2000/2001 A
60 A2 2002/2003 B
SELECT nim as NIM, kodemk as KodeMK, min(thnakademik) as thnambilpertama, nilai as Nilai
FROM P
GROUP BY nim
Maka akan membentuk kelompok seperti gambar di bawah ini:
NIM KodeMK thnambilpertama nilai
50 A1 1999/2000 B
50 A2 2001/2002 B
60 A1 2000/2001 A
60 A2 2002/2003 B
Sintaks SQL untuk membentuk tabel P adalah
CREATE TABLE P ( nim varchar(3),
kodemk varchar(3),
thnakademik varchar(10),
nilai char(1),
constraint pk_P primary key(nim)
);
insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '1999/2000', 'B');
insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '2000/2001', 'B');
insert into P(nim, kodemk, thnakademik, nilai) values ('60', 'A1', '2000/2001', ‘A');
insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '2001/2002', 'B');
insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A2', '2001/2002', 'B');
insert into P(nim, kodemk, thnakademik, nilai) values ('60', 'A2', '2002/2003', 'B');
insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A2', '2003/2004', 'A');
insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '2004/2005', 'A');
Hasil Praktikum
1. Dari tabel mahasiswa yang telah dibuat tambahkan 3 data lagi , tambahkan kolom gender kemudian update datanya dan tampilkan banyaknya data mahasiswa yang telah di inputkan. Kemudian cari nim atau id mahasiswa yang paling kecil, paling besar dan rata-ratanya.
2. Tampilkan rata-rata id atau nim mahasiswa yang data nimnya lebih dari 12.
Saintek 2
Psikologi 1
4. Tampilkan seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari sama dengan 2 saja yang ditampilkan.
5. Tampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
6. Buatlah view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
Evaluasi Perbandingan 2 DBMS
PostgreSQL
PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.PostgreSQL adalah sistem database yang kuat untuk urusan relasi, open source. Memiliki lebih dari 15 tahun pengembangan aktif dan sudah terbukti segala rancangan arsitekturnya telah mendapat reputasi tentang “kuat”, “handal”, “integritas data”, dan “akurasi data”
Fitur
PostgreSQL
Sebagai enterprise
class database, PostgreSQL menghadirkan berbagai fitur yang memuaskan seperti
Multi-Version Concurrency Control (MVCC), point in time recovery, tablespaces,
asynchronous replication, nested transactions (savepoints), online/hot backups,
query planner/optimizer yang baik, dan write ahead logging untuk fault
tolerance. Object-relational database system ini juga mendukung international
character set, multibyte character encoding, Unicode, dan memiliki kemampuan
yang baik dalam sorting, case-sensitivity, dan formatting.
PostgreSQL sangat scalable baik dalam kuantitas data yang dapat ditanganinya maupun dalam jumlah concurrent user yang dapat diakomodasi olehnya. Sebagai contoh ketangguhannya, terdapat sistem PostgreSQL aktif yang mampu menangani dan mengelola penggunaan 4 terabyte data.
PostgreSQL memiliki kemampuan yang tidak dapat diremehkan karena memiliki fitur yang sangat lengkap dan bersifat standard compliant. Sistem database ini juga fleksibel dan dapat dengan mudah disesuaikan (highly customizable), di mana PostgreSQL dapat digunakan dengan berbagai bahasa pemrograman seperti Java, Perl, Python, Ruby, Tcl, C/C++, dan PL/pgSQL (serupa dengan PL/SQL Oracle).
PostgreSQL sangat scalable baik dalam kuantitas data yang dapat ditanganinya maupun dalam jumlah concurrent user yang dapat diakomodasi olehnya. Sebagai contoh ketangguhannya, terdapat sistem PostgreSQL aktif yang mampu menangani dan mengelola penggunaan 4 terabyte data.
PostgreSQL memiliki kemampuan yang tidak dapat diremehkan karena memiliki fitur yang sangat lengkap dan bersifat standard compliant. Sistem database ini juga fleksibel dan dapat dengan mudah disesuaikan (highly customizable), di mana PostgreSQL dapat digunakan dengan berbagai bahasa pemrograman seperti Java, Perl, Python, Ruby, Tcl, C/C++, dan PL/pgSQL (serupa dengan PL/SQL Oracle).
Dan yang terbaik,
source code PostgreSQL tersedia di bawah lisensi liberal open source license,
yaitu PostgreSQL License. Lisensi ini memberikan kebebasan bagi Anda untuk
menggunakan, memodifikasi dan mendistribusikan PostgreSQL dalam bentuk yang
Anda sukai, baik open source maupun closed source.
Sistem
Operasi yang Digunakan Untuk PostgreSQL
PostgreSQL berjalan
pada semua sistem operasi utama, termasuk Linux, UNIX (AIX, BSD, HP-UX, SGI
IRIX, Mac OS X, Solaris, Tru64), dan tidak ketinggalan sistem operasi Windows.
PostgreSQL memiliki kemampuan fully ACID compliant, memiliki dukungan penuh
terhadap foreign key, join, view, trigger, dan stored procedure (pada lebih
dari satu bahasa). Selain itu, PostgreSQL juga mencakup sebagian besar tipe
data SQL:2008, termasuk INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATA,
INTERVAL, dan TIMESTAMP. PostgreSQL mendukung penyimpanan binary large object,
seperti gambar, suara, atau video, dan memiliki native programming interface
untuk C/C++, Java, .NET, Perl, Python, Ruby, Tcl, ODBC, dan lain-lain.
Pengguna PostgreSQL
- Yahoo! untuk analisa prilaku pengguna web, menyimpan 2 petabyte data dan mengklaim sebagai gudang data terbesar. Menggunakan versi PostgreSQL yang dimodifikasi, dengan engine penyimpanan berbasis kolom yang sepenuhnya berbeda.
- MySpace, situs jejaring sosial populer, menggunakan basisdata Aster nCluster untuk gudang data, dibangun diatas PostgreSQL tanpa modifikasi.
- OpenStreetMap, proyek kolaboratif untuk menciptakan peta dunia yang bebas sunting.
- Afilias, register domain untuk .org, .info, dan sebagainya.
- Sony Online multiplayer online game.
- BASF, platform belanja untuk portal agribisnisnya.
- hi5.com portal jejaring sosial.
- Skype aplikasi VoIP, basisdata pusat bisnis.
- Sun xVM, perangkat lunak virtualisasi dan otomasi datacenter milik Sun.
Penghargaan
Sampai dengan tahun 2012 PostgreSQL telah menerima penghargaan-penghargaan sebagai berikut : • Database terbaik tahun 1999 dari LinuxWorld Editor’s Choice Award
• Database terbaik tahun 2000 dari Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2002 dari Linux New Media Editor Choice Award
• Database terbaik tahun 2003 Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2004 dari Linux New Media Award
• Database terbaik tahun 2004 Linux Journal Editors’ Choice Awards
• Ars Technica Best Server Application Award tahun 2004
• Database terbaik tahun 2005 Linux Journal Editors’ Choice Awards
• Database terbaik tahun 2006 Linux Journal Editors’ Choice Awards
• Product of the Year, Database Tool tahun 2008 dari Developer.com
• Linux New Media Award tahun 2012 untuk kategori Database Open source terbaik
MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.
Sistem manajemen basis data relasional
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.
Sejarah MySQL
MySQL pada awalnya diciptakan pada tahun 1979, oleh Michael "Monty" Widenius, seorang programmer komputer asal Swedia. Monty mengembangkan sebuah sistem database sederhana yang dinamakan UNIREG yang menggunakan koneksi low-level ISAM database engine dengan indexing. Pada saat itu Monty bekerja pada perusahaan bernama TcX di Swedia.TcX pada tahun 1994 mulai mengembangkan aplikasi berbasis web, dan berencana menggunakan UNIREG sebagai sistem database. Namun sayangnya, UNIREG dianggagap tidak cocok untuk database yang dinamis seperti web.
TcX kemudian mencoba mencari alternatif sistem database lainnya, salah satunya adalah mSQL (miniSQL). Namun mSQL versi 1 ini juga memiliki kekurangan, yaitu tidak mendukung indexing, sehingga performanya tidak terlalu bagus.
Dengan tujuan memperbaiki performa mSQL, 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. Namun saat itu Hughes menolak, dengan alasan sedang mengembangkan teknologi indexing yang independen untuk mSQL versi 2.
Dikarenakan penolakan tersebut, 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 ini sekarang dikenal dengan istilah Open Source.
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.
Keistimewaan MySQL
MySQL memiliki beberapa keistimewaan, antara lain :- Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
- Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
- Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
- 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
- Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
- Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
- Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
- Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 miliar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
- Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
- Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
- Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
- Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
- Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
Penggunaan
MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak yang dipakai Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo.
Bahasa pemrograman
Terdapat beberapa API (Application Programming Interface) tersedia yang memungkinkan aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa pemrograman untuk dapat mengakses basis data MySQL antara lain: bahasa pemrograman C, C++, C#, bahasa pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa pemrograman Java, bahasa pemrograman Lisp, Perl, PHP, bahasa pemrograman Python, Ruby, REALbasic dan Tcl. Sebuah antarmuka ODBC memanggil MyODBC yang memungkinkan setiap bahasa pemrograman yang mendukung ODBC untuk berkomunikasi dengan basis data MySQL. Kebanyakan kode sumber MySQL dalam ANSI C.
Kesimpulan
Rangkuman
Perbandingan dalam
Perintah Dasar SQL
1. Dilihat
dari segi perbedaan dan kesamaan :
·
Perbedaan : Dalam
praktikum ke-3 ini, khususnya tentang “Perintah Dasar SQL” pada penulisan
source code tidak ada perbedaan.
·
Kesamaan : Cara
penulisan source code sama.
2. Dilihat
dari segi kelebihan dan kekurangan :
·
Kelebihan : MySQL lebih mudah dikerjakan
dibanding postgresql karena kalau salah, maka akan tetap ditampilkan
diprojectnya (tidak bisa dihapus) selama programnya dijalankan.
·
Kekurangan : PostgreSQL lebih sulit dijalankan
karena harus benar-benar teliti.
3.
Tambahan :
Secara
keseluruhan hamper sama antara PostgreSQL dan MySQL hanya ada beberapa
perbedaan yang saya temukan dalam percobaan di praktikum ini, yaitu pada
pengoperasian PostgreSQL harus diinisialisasi tipe datanya agar mendapatkan
hasil yang sebenarnya, sedangkan pada MySQL tidak perlu menginisialisasi tipe
datanya karena hasilnya sudah benar.


















