Muhammad Oryza Nurfajri

Hidup Itu Bermanfaat

Belajar SQL Untuk Penyimpanan Data Web

11111

Saat ini dunia telematika dengan jaringan internet bukanlah hal yang aneh bagi lingkungan masyarakat, dari mulai anak-anak yang memainkan game online sampai orang tua yang mencari koran elektronik di internet untuk bacaan mereka. Inilah yang dinamakan perkembangan masyarakat berbasis teknologi, dengan teknologi kita dapat mempersempit jarak sangat jauh yang memisahkan kita menjadi serasa ada di depan mata.
Dalam dunia internet, pasti kita sering mengunjungi suatu situs(url) atau alamat web yang tampilannya sangat menarik dan memiliki fungsi yang berbeda-beda dalam menyampaikan informasi. Ada web tentang informasi berita, web pendidikan yang berisi modul pembelajaran, web untuk berbelanja secara online sampai web untuk mencurahkan isi hati pemiliknya atau sering di sebut Blog dan masih banyak web lainnya.

Dalam membuat suatu web, kita membutuhkan beberapa perlengkapan sebelum memulainya. Antara lain Web Hosting, adalah suatu host layanan jasa penyewaan tempat di dunia internet, sehingga kita dapat membuat sendiri web kita dengan alamat yang kita inginkan seperti punyaku.com, curhatku.com sehingga dengan web hosting ini web kita dapat di akses dan dilihat oleh banyak orang. Namun jika kita menggunakan web hosting yang gratis seperti nama.co.cc atau nama.blogspot(blog). Jika web hosting kita free, domain atau alamat web kita tidak langsung menggunakan .com namun akan disela dengan nama domain gratisan tadi.

Setelah kita membuat web entah itu gratis atau berbayar, ada perlengkapan lain yang dibutuhkan, yaitu Basis Data, apa itu basis data? basis data adalah kumpulan informasi yang di simpan di dalam komputer, sehingga sewaktu-waktu jika kita inginkan, data tersebut dapat kita ambil dengan bantuan program.

Adakah yang bertanya-tanya seperti apasih kegunaan basisdata ini secara real dalam sebuah web?

kita contohkan anda memiliki web komunitas dengan berbagai macam tampilan dan tambahan widget dan gadgetnya, apabila dalam web anda terdapat form yang akan di gunakan untuk mendaftarkan member baru, tentu data dari pendaftar baru tadi harus disimpan, karena sewaktu-waktu data tersebut akan di pakai lagi di web kita, untuk itulah di perlukan tempat penyimpanan basis data.

Dalam basisdata, kita membutuhkan software/program yang akan kita gunakan untuk memanggil data tersebut, program itu adalah DataBaseManagementSystem(DBMS). Program ini bekerja dengan menjalankan suatu Query(bahasa pemanggilan) yang kita tulis untuk mengolah data-data dalam database tapi sehingga sesuai dengan harapan kita.

DBMS yang paling dipakai saat ini adalah XAMPP, MAMMP, MySQL dan beberapa yang tidak terkenal.

Nah, untuk itulah tutorial ini akan membahas secara garis besar tentang cara menggunakan atau mengolah data-data dalam basisdata dengan menggunakan XAMPP untuk windows, agar mengerti maksud dari query yang ditulis salam DBMS

1.Menginstal XAMPP

untuk menginstal master XAMPP dapat di download di web asli XAMMP :

apachefriends.org

Setelah di instal, klik ganda shortcut program XAMPP yang berada di desktop, kemudian klik start Apache dan MySql sehinnga running seperti gambar di bawah ini :

a

Jika sudah running seperti gambar di samping, artinya XAMPP kita sudah siap untuk dipakai.

2.Menjalankan MySQL XAMPP

Dalam menjalankan MySQL XAMPP, ada dua jenis cara, cara pertama dengan menggunakan localhost di dalam browser yang nantinya kita dapat membuat dan mengatur table kita dengan lebih mudah. Keunggulan lainnya dengan menggunakan localhost ini adalah hasil query kita apabila di tulis akan bersusun secara rapi dan adanya pemberian keterangan not null (tidak boleh tidak diketahui) apabila dalam suatu kolom tidak di cantungkan null atau tidak.

Cara menjalankannya :

-buka browser yang di inginkan (contoh FireFox)

-ketikkan di url atas http://localhost/phpmyadmin/

-tinggal membuat database dan berlanjut ke pembuatan tabel.

Cara kedua adalah dengan menggunakan konsole command prompt di windows, cara kedua ini agak rumit apabila sebelumnya kita tidak pernah menggunaka command prompt untuk menjelajahi seluk beluk komputer. Namun keunggulannya kita jadi mengerti dan hafal terhadap query yang kita tulis karena tidak bersifat instan seperti localhost.

Cara menjalankannya :

-buka command prompt di accessories atau windows+r+”ketik cmd”

-ketikkan cd c:\xampp\mysql\bin\

- untuk memasukki mysql, ketikkan ini untuk menjadi user mysql -u root

Jika sudah dan ada kata penyambutan selamat datang dari MySQL seperti dibawah ini, artinya anda telah masuk :

cmd

Dalam tutorial singkat mengenai query dalam sql ini, saya akan menggunakan localhost sebagai medianya namun tidak membuatnya secara instan, namun tetap menggunakan query dalam proses build-up nya.

Sebelum mengetahui lebih jauh tentang SQL, inilah daftar perintah yang dapat di pakai (dalam command prompt) :

  • help (\h) Mengeluarkan help untuk perintah-perintah dasar Mysql
  • ? (\?) Sinonim dari `help’.
  • clear (\c) Menghilangkan baris perinta yang telah ditulis
  • Connect (\r) Melakukan koneksi kembali ke server dengan argumen opsional database dan nama host
  • ego (\G) Mengirim perintah ke server dan menampilkan hasilnya secara vertikal
  • exit (\q) Keluar dari MySQL konsole
  • go (\g) Mengirim perintah ke server MySQL
  • notee (\t) Tidak menuliskan hasil ke outfile
  • print (\p) Print perintah yang baru saja dituliskan prompt (\R) Mengganti prompt MySQL
  • quit (\q) Keluar dari MySQL
  • rehash (\#) Membangun kembali hashing
  • source (\.) Mengeksekusi SQL dari file, dengan argumen path dari file
  • status (\s) Mendapatkan status dari server
  • tee (\T) Membuat outfile, semua keluaran disimpan dalam outfile
  • use (\u) Menggunakan database, dengan argumen nama database
  • delimiter (\d) Mengaktifkan delimiter

3.Langkah Membuat DataBase

Langkah-langkah membuat database di dalam MySQL adalah :
Membuat database
1. Membuat database
2. Membuat tabel dengan mendefinisikan kolom-kolom di dalam tabel
3. Mengisi data tabel
4. Melakukan query

4.Membuat DataBase

Dalam PHP localhost, setelah masuk ke alamatnya, kita langsung bisa membuat database, seperti gambar di bawah :

php

Masukkan nama di kolom create new database dan klik tombol create, untuk menggunakannya, pilih pada tab dikiri sesuai nama yang kita input tadi.

5.Membuat Tabel

Dalam pembuatan tabel di database, anda tuliskan query ini dalam tab bernama SQL yang berada di atas :

create table anggota (
id_anggota varchar(10) primary key not null,
id_pelanggan varchar(10) not null,
bidang varchar(25),
indeangryid_pelanggan),
foreign key (id_pelanggan)
references pelanggan(id_pelanggan)
on update cascade on delete cascade
);

Query di atas akan kami jelaskan satu per satu untuk memperjelas ke gunaan di setiap kata .

-Pembuatan tabel di atas di namakan tabel “anggota”

-Dalam Tabel Anggota ada kolom bernama “id_anggota” yang bertipe data “varchar”, dan id_anggota ini di jadikan sebagai PRIMARY KEY. Apa itu primary key? primary key adalah nilai unik yang hanya di miliki oleh tabel tersebut, tidak dapat null/tidak diketahui. primary key di gunakan untuk mengidentifikasi suatu baris dalam tabel.

-FOREIGN KEY adalah nilai kolom di suatu tabel yang akan digunakan untuk menyambungkan dengan tabel lain yang di tulis sebelum kata “references” dan kolom tujuan.

-On Update Cascade On Delete Cascade digunakan untuk memberikan perlakuan bahwa setiap relasi yang di hubungkan dengan foreign key, apabila suatu data dalam kolom induk dilakukan perubahan atau dilakukan penghapusan, maka kolom yang berhubungan juga akan melakukan tindakan yang sama pada data yang di maksud.

6.Macam Tipe Data

  • Char | char(panjang)  | Kolom bertipe char dapat diisi dengan data teks. Panjang maksimal hanya 255 karekter
  • Varchar | varchar(panjang)  | Tipe ini berisi data teks dengan panjang maksimal seperti yang dideklarasikan
  • Tinytext | tinytext | Seperti varchar
  • Text | text | Berisi data teks dengan panjang karakter yang lebih luas dari tipe-tipe sebelumnya
  • Integer | int(panjang) [unsigned] | Data berupa angka antara 0 – 4294967295 jika unsigned atau -2147483648 – 2147483647 jika signed. Panjang maksimal karakter sesuai yang dideklarasikan
  • Tinyint | tinyint(panjang) [unsigned] | Data berupa angka antara 0 – 255 jika undigned atau -128 – 127 jika signed. Panjang maksimal karakter sesuai yang dideklarasikan
  • Mediumint | mediumint(panjang)[unsigned] | Data berupa angka antara 0 – 1677215 jika unsigned atau -8388608 – 8388607 jika signed. anjang maksimal karakter sesuai yang dideklarasikan
  • Bigint | bigint(panjang) [unsigned] | Data berupa angka antara 0 – 1020
  • Float | float(panjang) | Data berupa angka real dengan presisi hingga pangkat 38. Panjang maksimal adalah 53
  • Double | double(panjang) | Data berupa angka real dengan presisi hingga pangkat 308.
  • Date | date | Menyimpan nilai dalam format (tahun-bulan-tanggal)
  • Datetime | datetime | Menyimpan nilai dalam format (tahun-bulan-tanggaljam-menit-detik)
  • Timestamp | timestamp(panjang) | Menyimpan date dan timeberdasarkan panjang yang diberikan
  • Time time menyimpan nilai dalam format (jam-menit-detik)

7.Macam dan Contoh Query SQL

  • INSERT INTO

Di gunakan untuk memasukkan data pada tabel yang telah kita buat tadi.

insert into values (“data”,”data”,”data”,…winking

contoh query :

insert into kurir values (“dewi”, “3″, “2006-09-10″, “”, “9908″winking

atau untuk data jamak sekaligus :

insert into kurir values (“dewi”, “3″, “2006-09-10″, “08.00.00″, “9908″winking,
(“Tono”, “4″, “2006-09-08″, “10.00.00″, “4459″winking;

  • DELETE

Digunakan untuk menghapus data pada kolom tertentu dalam suatu tabel.

Delete form <tabel>
Where <kondisi>

contoh query :

Delete from pelanggan
Where status =
”keluar”

  • UPDATE

Digunakan untuk mengupdate atau mengganti informasi dari suatu data dalam tabel.

Update <tabel>
Set <nama kolom> = <value>
Where <kondisi>

contoh query :

Update harga SET Biaya= 19000 WHERE ID_kota=’BDG’ AND Kode_jenis=2 AND
Berat_awal=2 AND Berat_akhir=3 AND Biaya=17000

  • ALTER TABLE

Digunakan untuk mengganti nama dari entity atau nama dari kolom pada suatu tabel.

Alter table <nama tabel>
Change <nama kolom>
<update kolom>

contoh query :

Alter table pengguna
Change ID_pengguna ID_pengguna INT(10) NOT NULL

  • SELECT

Digunakan untuk menampilkan suatu data di kolom tertentu dan pada kondisi yang ditentukan juga.

Select <nama kolom>
From <nama tabel>
Where <kondisi>

contoh query :

Select nama_pelanggan
From transaksi
Where total_transaksi >= 50000 AND nama_cabang = “Gading”

8. Contoh Soal SQL dan Pembahasan

Diberikan sejumlah tabel untuk memodelkan sebagian dari suatu sistem akademik perguruan
tinggi sebagai berikut.

  • Matakuliah(kodemk,namamk,sks) >>> berisi daftar matakuliah yang ditawarkan
  • Dosen(nip,nama) >>> daftar dosen pengampu matakuliah
  • Mahasiswa(nim,nama,dosenpembimbing) >>> daftar mahasiswa
  • Kuliah(kodekuliah,kodemk,nip,thnakademik,semester) >>> daftar matakuliah dan dosen pengampu. Seorang dosen bisa mengajar matakuliah yang sama untuk kelas yang berbeda pada suatu semester. semester bernilai ’1′ untuk ganjil atau ’2′ untuk genap. thnakademik dinyatakan dalam format panjang seperti ’2007-2008′
  • Peserta(nim,kodekuliah,nilai) >>> nilai mahasiswa dalam ‘a’, ‘b s/d. ‘e’.

Catatan
Asumsi

  1. matakuliah hanya ditawarkan sekali dalam setahun, yaitu pada semester 1 (ganjil) saja atau semester 2 (genap) saja dan tidak kedua-duanya
  2. bila pernah mengulang matakuliah, nilai yang diikutkan untuk perhitungan IP adalah nilai terakhir
  3. Matakuliah dikatakan lulus bila nilai yang diperoleh minimal ‘d

Gambar Relasi Antar Tabel
bbb

Untuk membuat tabel beserta isi dari tabelnya, anda tidak perlu membuatnya satu per satu, karena ini tutorial yang akan mengajarkan anda menulis query yang benar, jadi anda tinggal mengimportnya dari link kami. Silahkan download link di bawah ini :

Download Disini

Selanjutnya anda harus mengimport sql yang telah anda download tadi.

bagaimana caranya? masuk ke localhost php anda di http://localhost/phpmyadmin/

Cari tab import, dan selanjutnya klik browse file sql tadi yang anda download dan semua tabel beserta isinya telah masuk ke basisdata anda.

Mari Mulai Belajar ^^

Diasumsikan dalam suatu DBMS terdapat:

  • fungsi upper(string) yang akan mengembalikan string dalam huruf kapital,
  • fungsi concat(s1, s2, .., sn) yang mengembalikan gabungan string s1, s2 … sn (misalnya concat(‘aku’, ‘kamu’winking akan menghasilkan string ‘akukamu’winking.
  • fungsi ASCII(char) yang akan mengembalikan kode ASCII dari karakter char. Detahui pula kode ASCII huruf ‘K’ lebih besar daripada kode ASCII huruf ‘B’.
  • fungsi substring(s,n,k) yang akan menghasilkan sub string dari string s diambil sebanyak k karakter dimulai pada karakter ke n. Contoh: substring(‘hanafi’,4,3) akan menghasilkan sub string “afi”

Tuliskan perintah SQL untuk permasalahan berikut :

A.tampilkan banyaknya SKS yang telah diselesaikan oleh masing-masing mahasiswa
i. bila matakuliah yang diulang semua masuk dalam perhitungan
ii. bila matakuliah yang diulang hanya yang sesuai dengan asumsi yang masuk dalam perhitungan

Jawaban A i.:

SELECT kuliah.kodemk, SUM(matakuliah.sks) FROM kuliah, matakuliah, peserta WHERE kuliah.kodemk=matakuliah.kodemk AND peserta.kodekuliah=kuliah.kodekuliah GROUP BY nim

Penjelasan i.:

SELECT = query yang digunakan untuk mengambil suatu baris tertentu, dalam hal ini kita mengambil kolom kodemk dari tabel kuliah dan kolom sks dari tabel matakuliah, sehingga cara membaca kuliah.kodemk adalah mengambil kolom kodemk di tabel bernama kuliah.

SUM = query yang berfungsi untuk menjumlahkan data-data yang memiliki berdasarkan grup yang kita inginkan , dalam hal ini kita melakukan pengelompokkan / grouping (GROUP BY) berdasarkan nim, sehingga sks dari tabel matakuliah akan jumlah dan dikelompokkan berdasarkan nim yang ada

FROM = query biasa dalam penyeleksian suatu tabel, query ini untuk mencari tabel yang kita ingin tampilkan tadi, untuk kasus di atas, kita menggunakan tabel peserta, matakuliah dan kuliah

WHERE = adalah query kondisi yang kita inginkan. Maksudnya, kita ingin menampilkan suatu kolom dari beberapa tabel dengan kondisi yang kita mau. contoh diatas adalah kita mengambil kodemk dan sks apa bila kodemk dari tabel kuliah sama dengan kodemk di tabel matakuliah, sama seperti kodekuliah yang harus sama di tabel perserta dan kuliah.

AND = query untuk menggabungkan apabila dalam query WHERE terdapat lebih dari 1 kondisi

HASIL

hasil dari query di atas akan terlihat seperti ini

ai

Jawaban Aii.:

SELECT x.nim, sum( x.sks )
FROM
(SELECT peserta.nim, matakuliah.sks, maangry kuliah.thnakademik )  FROM kuliah, matakuliah, peserta WHERE kuliah.kodekuliah = peserta.kodekuliah AND kuliah.kodemk = matakuliah.kodemk GROUP BY peserta.nim, matakuliah.kodemk ) AS x GROUP BY nim

PENJELASAN Aii :

sebelum menjelaskan semua susunan query di atas, saya akan mulai dengan urutan query inti dahulu

SELECT peserta.nim, matakuliah.sks, max( kuliah.thnakademik )  FROM kuliah, matakuliah, peserta WHERE kuliah.kodekuliah = peserta.kodekuliah AND kuliah.kodemk = matakuliah.kodemk GROUP BY peserta.nim, matakuliah.kodemk

Seperti pembahasan sebelumnya, kita ingin mengambil suatu data dengan query SELECT, dalam kasus ini kita ingin menampilkan nim dari tabel peserta, sks dari tabel matakuliah dan thnakademik dari tabel kuliah

MAX() adalah query untuk memilah/menseleksi suatu data berdasarkan nilai tersesabrnya(maksimum) dari data tersebut. Kenapa kita harus menggunakan max dalam kasus ini? karena kasus ini menuruh kita untuk menampilkan sks berdasarkan asumsi yaitu jika mengulang, hanya nilai terkahir dari ip, dengan kata lain matakuliah yang diulang di tahun paling akhir.

query WHERE kita isikan kondisi seperti kasus yang pertama(Ai) bahwa nantinya kodekuliah di tabel kuliah harus sama dengan kodekuliah di tabel peserta, dan juga kodemk dari tabel kuliah harus sama dengan kodemk di tabel matakuliah agar ketiga tabel saling terintegrasi / berelasi

query GROUP BY kali ini menggunakan pengelompokkan berdasarkan nim dan kodemk, kenapa? karena kita menggunakan nim untuk mengelompokkan sks berdasarkan nim yang memiliki dan menggunakan kodemk untuk mengelompokkan tahun akademik paling akhir sesuai dengan kodematakuliahnya.

Hasilnya akan terlihat seperti ini

aii1

gambar di atas adalah sebgian dari hasil query karena data yang sebenarnya sangat banyak. Kita lanjutkan urutan query selanjutnya.

SELECT x.nim, sum( x.sks ) FROM ( ISI QUERY TADI ) AS x GROUP BY nim

query diatas adalah lanjutan dari yang sebelumnya, yang harus diperhatikan dalam query ini adalah tanda X yang jika tidak tau maksudnya akan bingung.

AS x : query ini digunakan untuk menamai urutan query kita pertama tadi dengan sebutan x, kenapa? karena kita ingin mengolah data dalam query itu lagi

SELECT X.NIM : cara membaca query ini sama seperti query select, yaitu kita mengambil sks dari tabel yang kita namai dengan X tadi

SUM(x.sks) : karena kasus ini juga menampilkan jumlah sks, jadi kita harus menjumlahkan semua sms dari hasil tabel X tadi, selanjutnya dilakukan grouping agar total sks yang di inginkan dapat terlihat

Hasil Query Ini Akan Terlihat Seperti Ini :

aii2

B. Tampilkan Data Yang Bisa Dilakukan Untuk Menghitung IPK (berdasar asumsi di atas)

Jawaban :

Dalam menghitung Index Prestasi Kumulatif atau total IP, secara umum yang kita butuhkan adalah NamaMahasiswa,NomorIndukMahasiswa, NamaMataKuliah, banyaknya SKS dan Nilai yang pernah didapat dari matakuliah tersebut.

Skema tabel yang kita butuhkan akan terlihat seperti ini :

Nama >>> Tabel Mahasiswa

NIM >>> Tabel Mahasiswa

NamaMataKuliah >>> Tabel Matakuliah

Banyak SKS >>> Tabel Matakuliah

Nilai >>> Tabel Peserta

Querynya :

SELECT mahasiswa.nama, mahasiswa.nim, matakuliah.nama, matakuliah.sks, peserta.nilai FROM mahasiswa, matakuliah, peserta, kuliah WHERE matakuliah.kodemk = kuliah.kodemk AND mahasiswa.nim = peserta.nim AND peserta.kodekuliah = kuliah.kodekuliah GROUP BY mahasiswa.nama

Seperti kita bahas diatas, kita mengambil nama, nim, nama(mahasiswa), nim, nama(matakuliah), sks dan nilai yang telah didapat. Dalam query WHERE kita harus menyatukan 4 tabel diatas dalam satu relasi. Pertama kita menyamakan kodemk di tabel matakuliah dengan kodemk ditabel kuliah, menyatukan nim ditabe mahasiswa dengan nim ditabel peserta, dan yang terkahir kita harus menyatukan tabel peserta dan kuliah dengan kodemk agar keempat tabel tersebut dapat terelasi.

Dan Kenapa Kita menggunakan GROUP BY nama? agar nantinya tampilan tabel kita akan mengurutkan nama berdasarkan abjad, karena secara default group by akan tersusum ASCENDING

Hasil Query :

nomerb


C. Tampilkan dosen yang pernah mengampu kelas matakuliah yang pesertanya tidak lebih dari 15 mahasiswa.

Maksud pertanyaan ini adalah, kita diharuskan menampilkan nama dosen dari tabel dosen, namun dengan syarat yang pernah mempunyai mahasiswa tidak lebih dari 15 orang dalam satu kelas, dalam hal ini kuliah di namakan kodekuliah. Bagaimana querynya? querynya adalah sebagai berikut :

SELECT y.nama FROM (SELECT dosen.nama, dosen.nip, matakuliah.kodemk, COUNT( peserta.nim ) AS banyak_mahasiswa FROM kuliah, mahasiswa, matakuliah, peserta, dosen WHERE dosen.nip = kuliah.nip AND kuliah.kodemk = matakuliah.kodemk AND peserta.nim = mahasiswa.nim AND peserta.kodekuliah = kuliah.kodekuliah GROUP BY dosen.nama asc, peserta.kodekuliah) AS y WHERE y.banyak_mahasiswa<=’15′ GROUP BY y.nama

kita akan membahasnya secara bertahab karena ini query select bersarang, pertama-tama kita akan menjelaskan maksud select dalamnya dahulu :

SELECT dosen.nama, dosen.nip, matakuliah.kodemk, COUNT( peserta.nim ) AS banyak_mahasiswa FROM kuliah, mahasiswa, matakuliah, peserta, dosen WHERE dosen.nip = kuliah.nip AND kuliah.kodemk = matakuliah.kodemk AND peserta.nim = mahasiswa.nim AND peserta.kodekuliah = kuliah.kodekuliah GROUP BY dosen.nama asc, peserta.kodekuliah

Sebelum lebih lanjut, pastikan anda mengingat isi dari masing-masing tabel yang digunakan, agar tidak bingung dalam penjelasan query ini. Query ini diharuskan menampilkan nama dosen dengan banyaknya mahasiswa terlebih dahulu. Ditabel dosen ada kolom nama dosen, yang kita tulis dengan dosen.nama berikutnya kita akan menggabungkan nip dosen dari tabel itu ke kolom nip yang berada di tabel kuliah, kenapa? agar tabel tersebut dapat tersambung, sehingga kita tulis juga dosen.nip . Kita tampilkan kodeMataKuliah agar nantinya hasil tabel ini tidak membingungkan, maka kita tulis matakuliah.kodemk .

COUNT( peserta.nim ) AS banyak_mahasiswa : Query ini mempunyai fungsi untuk menghitung banyak nim yang ikut dalam perkulihan, seperti keterangan di atas, ada pula sejenis ini, yaitu SUM() yang bedanya adalah jika SUM menjumlahkan data yang kita masukkan, tentunya data tersebut berbentuk anka sehingga dapat di jumlahkan. Beda dengan kasus ini, karena kita menghitung banyak nim yang tertulis dengan string, jadi harus kita hitung/COUNT bukan dengan SUM dan query AS digunakan untuk menamai kolom COUNT tadi dengan nama banyak_mahasiswa

Jangan Lupa query FROM di isikan dengan semua tabel yang dipakai. Selajutnya kita hubungkan tabel-tabel yang berelasi dengan penulisan seperti ini dosen.nip = kuliah.nip AND kuliah.kodemk = matakuliah.kodemk AND peserta.nim = mahasiswa.nim AND peserta.kodekuliah = kuliah.kodekuliah dengan penjelasan bahwa kita menghubungkan nip dari tabel dosen, ke tabel kuliah, menhubungkan kodemk dari tabel matakuliah ke kodemk yang berada ditabel kuliah, menghubungkan nim dari tabel peserta ke nim dari tabel mahasiswa dan yang terpenting, menghubungkan kodekuliah dari tabel peserta ke tabel kuliah, dengan begitu kelima tabel telah terhubung atau berelasi.

GROUP BY dosen.nama asc, peserta.kodekuliah : pengelompokkan kali ini, kita dahulukan bedasarkan nama dosen terlebih dahulu, kenapa? agar tampilan nama dosen terurut berdasarkan alfabeth dan kemudian dikelompokkan berdasarkan kodekuliahnya.

Hasil query ini akan terlihat seperti ini :

do1

Apakah anda memahami sesuatu? ya jika anda melihat dengan teliti, ternayat masing-masing dosen memiliki jumlah peserta yang sama di tiap kelas perkuliahan, sehingga semua dosen adalah jawaban dari permasalahan ini. Langkah berikutnya, kita tinggal memberikan bingkai berupa kondisi dimana banyak_mahasiswa <=15 orang dengan query berikut :

SELECT y.nama FROM (query sebelumnya) AS y WHERE y.banyak_mahasiswa<=’15′ GROUP BY y.nama

Seperti kasus Aii bahwa kita namakan query sebelumnya dengan suatu nama, query di atas menamakannya sebagai tabel y yang terlihat dengan query AS y dengan diberikan kondisi seperti yang kita kehendaki tadi, banyak mahasiswa dibawah 15 orang yang dikelompokkan berdasarkan nama dari tabel y tadi.

Hasil Query akhir akan terlihat seperti ini :

namdos

D. Tampilkan nama mahasiswa yang telah lulus lebih dari 100 SKS

yang perlu ditampilkan dalam kasus ini adalah nama mahasiswa yang telah menyelesaikan lebih dari 100 sks, tentu saja sebelum sampai ke query untuk kasus ini kita membutuhkan query pendahuluan untuk menampilkan data-data yang diperlukan.

Query utuhnya adalah sebagai berikut :

SELECT y.nama, y.byk_sks FROM (SELECT mahasiswa.nama, SUM(matakuliah.sks) AS byk_sks from mahasiswa,matakuliah,peserta,kuliah WHERE mahasiswa.nim=peserta.nim AND kuliah.kodemk=matakuliah.kodemk AND peserta.kodekuliah=kuliah.kodekuliah GROUP BY nama) AS y WHERE y.byk_sks>=100

Penjelasan :

SELECT mahasiswa.nama, SUM(matakuliah.sks) AS byk_sks from mahasiswa,matakuliah,peserta,kuliah WHERE mahasiswa.nim=peserta.nim AND kuliah.kodemk=matakuliah.kodemk AND peserta.kodekuliah=kuliah.kodekuliah GROUP BY nama

Query dalam ini menampilkan nama mahasiswa dari tabel mahasiswa dan menjumlahkan sks dari tabel matakuliah yang selanjutnya di namai dengan byk_sks (penjelasan tentang pembacaan query sama seperti di atas). Dalam query where kita menggabungkan tabel yang perlu seperti di atas agar nantinya dalam penampilan tidak tejadi salah tampil karena tidak sempurna dalam penyambungan tabel. Untuk memudahkan anda sebagai pembelajaran, kami menyarankan membuat mappingnya dalam selembar kertas agar anda tau dalam tabel ini berisi entity apa saja. Terakhir mengelompokkannya dalam nama.

Hasil Query akan terlihat seperti ini :

byk_sks

Hasil di atas mungkin menimbulkan tanda tanya, karena kasus kita kali ini menampilkan mahsiswa yang telah menyesaikan lebih dari 100 sks, sedangkan datanya tidak sampai 100sks, bener sekali! nantinya hasil query berikutnya akan mempunya keterangan zero row alias tidak ada data yang ditampilkan.

Query Pembungkusnya seperti ini :

select y.nama, y.byk_sks from (query awal) as y where y.byk_sks>=100

seperti penjelasan sebelumnya, hasil query ini akan tampak seperti gambar :

zero

E. Bila kode matakuliah untuk Tugas Akhir adalah ‘M0012’, tampilkan banyaknya siswa yang telah lulus tugas akhir

Maksud dari query ini adalah, kita harus menampilkan banyak mahasiswa yang lulus pada tugas akhir, yaitu KodeMataKuliah M0012. Dikatakan lulus apabila mahasiswa tersebut mendapatkan nilai minimal ‘D’ . Bagaimana querynya?

SELECT mahasiswa.nama, peserta.nim FROM peserta, mahasiswa, kuliah, matakuliah WHERE kuliah.kodekuliah = peserta.kodekuliah AND kuliah.kodemk = matakuliah.kodemk AND kuliah.kodemk = ‘M0012′ AND peserta.nilai <= ‘d’ AND mahasiswa.nim = peserta.nim

query ini menampilkan nama dari tabel mahasiswa, dan nim dari tabel peserta, dimana kodekuliah dari tabel kuliah sama dengan kodekuliah dari tabel peserta, kodemk daro tabel kuliah sama dengan kodemk di tabel matakuliah, syarat penting selanjutnya adalah kodemk=’M0012′ yaitu hanya kodemk yang kita perlukan saja, berikutnya adalah syarat bahwa yang di tampilkan hanya peserta dengan nilai minimal D, tapi query kita tertulis peserta.nilai <= ‘d’ kenapa tertulis lebih kecil? karena dalam ASCII, nilai A dan D lebih tinggi D.

APA ITU ASCII?

ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter “|”. Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga 1111 1111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan Desimal.

[dikutip dari id.wikipedia]

jadi kita menuliskannya <=d atau anggotanya adalah yang bernilai A,B,C dan D.

Hasil Query akan terlihat seperti ini :

m0012

F. Tampilkan daftar nomor dan nama mahasiswa beserta IP (Indeks Prestasinya) berdasar dua asumsi di atas

maksud kasus ini adalah kita menampilkan NIM dan Nama dari tabel mahasiswa namun di tambahkan dengan entity IP(Index Prestasi) dari masing-masing mahasiswa.

BAGAIMANA SYSTEM MENCARI IP?

Perhitungan IP Adalah Sebagai Berikut (Nilai x Banyak SKS ) / Jumlah SKS

Nilai yang dimaksud diatas adalah A/B/C/D/E.

Untuk kasus ini, kita menggunakan query dari kasus B karena memiliki kesamaan dalam relasinya sehingga kita tinggal melakukan modif sedikit :

Query Kasus B :

SELECT mahasiswa.nama, mahasiswa.nim, matakuliah.nama, matakuliah.sks, peserta.nilai FROM mahasiswa, matakuliah, peserta, kuliah WHERE matakuliah.kodemk = kuliah.kodemk AND mahasiswa.nim = peserta.nim AND peserta.kodekuliah = kuliah.kodekuliah GROUP BY mahasiswa.nama

Kita modif menjadi :

SELECT mahasiswa.nama, mahasiswa.nim, sum( ( 69 – ASCII( peserta.nilai ) ) * matakuliah.sks ) /  sum( matakuliah.sks ) AS IP FROM  mahasiswa, matakuliah, peserta, kuliah WHERE matakuliah.kodemk = kuliah.kodemk AND mahasiswa.nim = peserta.nim AND peserta.kodekuliah = kuliah.kodekuliah  GROUP BY mahasiswa.nama

Terlihat hanya bagian atas yang kita ubah, agar menampilkan IP yang diperlukan, maka akan kita bahas bagian yang kita modif tadi.

sum( ( 69 – ASCII(( peserta.nilai  ) ) * matakuliah.sks ) /  sum( matakuliah.sks ) AS IP : cara membaca query ini adalah kita menjumlahkan seluruh nilai mahsiswa di tabel mahasiswa yang telah di kali dengan beban tiap SKS yang di ambil dan di bagikan dengan jumlah sks secara keseluruhan, sehingga sama seperti rumus menghitung IP seperti pembahasan di atas.

Lalu apa Maksud 69 – ASCII ?

sebelum itu kita lihat tabel ASCII terlebih dahulu (klik) :

ASCII TABLE

terlihat bahwa nilai alfabeth A,B,C,D,E adalah 65,66,67,68,69 jadi maksud dari 69-ASCII adalah kita hendak emngubah nilai dari String(Huruf) ke bentuk angka agar dapat masuk kedalam perhitungan. Apabila seorang mahasiswa memiliki nilai ‘E’, maka query tersebut akan melakukan perngerjaan yaitu 69-69(nilai ASCII ‘E’) yang artinya 0 (nol), sedangkan mahasiswa yang mendapat A akan dikerjakan seperti ini 69-65(ASCII ‘A’) = 4.

Sama seperti nilai umum dalam perkuliahan yaitu :

A=4

B=3

C=2

D=1

E=0

Hasil Query Di atas adalah seperti ini :

IP

NB : Apabila di entity nilai di suatu tabel mempunya penulisan kecil(bukan huruf kapital) kita dapat memasukkan query upper(nilai)

kita ambil contoh perhitungan tadi apabila nilai tidak ditulis secara kapital, maka querynya seperti ini :

sum( ( 69 – ASCII( upper( peserta.nilai ) ) ) * matakuliah.sks ) /  sum( matakuliah.sks ) AS IP

Sekian Tutorial Singkat dari kami mengenai pembelajaran basis data dengan menggunakan XAMPP sebagai database management system. Mungkin dalam tutorial ini masih banyak kesalahan dan kekurangan, karena kita memang makhluk tak sempurna, dan hanya Dialah yang Maha Sempurna


Sebaik-baik manusia adalah dia yang memberikan manfaat bagi orang lain

Categories: Ilmu Komputer
yang relasi 2 atau lebih datbel sangat berguna ini ,,, nice sudah berbagi ,,,
22 July 10 at 13:52