Selasa, 29 Mei 2012
Rabu, 23 Mei 2012
Cara Mengisi Tabel dengan Inputan Form HTML
Pada artikel ini akan dijelaskan mengenai bagaimana caranya mengisi tabel dengan inputan berasal dari form html. Berikut ini langkah-langkahnya :
forminput.html
<em><html>
<head>
<title>Input data</title>
</head>
<body>
<h2>Input Data Karyawan</h2>
<form action="inputdata.php" method="post">
Nama : <br>
<input type="text" name="nama"><p>
Tanggal Lahir :<br>
<input type="text" name="tgl">Format yyyy-mm-dd<p>
Jenis Kelamin :<br>
<select name="kelamin">
<option>Laki-laki</option>
<option>Perempuan</option>
</select>
<p>
Alamat :<br>
<textarea cols="30" rows="5" name="alamat"></textarea><p>
<input type="submit">
</form>
</body>
</html></em>
Kode di atas adalah kode HTML untuk membuat form inputan, yang nantinya akan kita masukkan ke database. Selain itu pasangan tag ... adalah tag yang berfungsi untuk menampilkan kode script HTML pada postingan. Jadi kalau ingin mengetahui hasilnya tag ... tak usah disertakan langsung saja ke kode HTML-nya saja.
Pada tag , action berarti kode PHP yang akan memproses inputan jika diklik tombol submit. Methode yang digunakan adalah POST. Secara umum ada 2 metode pengiriman data ke server, yaitu POST dan GET. Bedanya jika metode GET, parameter akan ditampilkan di URL.
forminput.html
<em><html>
<head>
<title>Input data</title>
</head>
<body>
<h2>Input Data Karyawan</h2>
<form action="inputdata.php" method="post">
Nama : <br>
<input type="text" name="nama"><p>
Tanggal Lahir :<br>
<input type="text" name="tgl">Format yyyy-mm-dd<p>
Jenis Kelamin :<br>
<select name="kelamin">
<option>Laki-laki</option>
<option>Perempuan</option>
</select>
<p>
Alamat :<br>
<textarea cols="30" rows="5" name="alamat"></textarea><p>
<input type="submit">
</form>
</body>
</html></em>
Pada tag , action berarti kode PHP yang akan memproses inputan jika diklik tombol submit. Methode yang digunakan adalah POST. Secara umum ada 2 metode pengiriman data ke server, yaitu POST dan GET. Bedanya jika metode GET, parameter akan ditampilkan di URL.
Contoh dan Penjelasan Query SQL Akademik
Berikut
akan dijelaskan contoh-contoh query dalam MySQL. Tabel-tabel yang
akan kita gunakan adalah sebagai berikut:
- matakuliah(kodemk, namamk, sks), berisi daftar matakuliah yang ditawarkan
- dosen(nip, nama), berisi daftar dosen pengampu kuliah
- mahasiswa(nim, nama, dosenpembimbing), berisi daftar mahasiswa
- kuliah(kodekuliah, kodemk, nip, thnakademik, semester), berisi daftar matakuliah dan dosen pengampu
- peserta(nim, kodekuliah, nilai), berisi kuliah yang diikuti mahasiswa beserta nilainya dalam huruf
Dalam
pembahasan kali ini diasumsikan:
- matakuliah hanya ditawarkan sekali dalam setahun, yaitu pada semester 1 (ganjil) saja atau semester 2 (genap) saja dan tidak kedua-duanya.
- bila pernah mengulang matakuliah, nilai yang diikutkan untuk perhitungan IP adalah nilai terakhir
- matakuliah dikatakan lulus bila nilai yang diperoleh minimal ‘D’
1.
Menampilkan banyaknya SKS yang telah diselesaikan oleh masing-masing
mahasiswa
a.Bila
matakuliah yang diulang semua masuk dalam perhitungan
SELECT
nim, SUM( sks ) jumlahsks
FROM
peserta, (
SELECT
kodekuliah, kuliah.kodemk, sks
FROM
kuliah, matakuliah
WHERE
kuliah.kodemk = matakuliah.kodemk
)
A
WHERE
peserta.kodekuliah = A.kodekuliah
GROUP
BY nim
Penjelasan:
Pada
query ini kita menampilkan jumlah SKS yang telah diselesaikan oleh
masing-masing mahasiswa bila matakuliah yang diulang semua masuk
dalam perhitungan. Pertama-tama, kita melakukan join tabel kuliah
dengan tabel matakuliah pada kondisi kodemk pada tabel kuliah sama
dengan kodemk pada tabel matakuliah untuk mendapatkankodekuliah,
kodemk dan sks.
…(
SELECT
kodekuliah, kuliah.kodemk, sks
FROM
kuliah, matakuliah
WHERE
kuliah.kodemk = matakuliah.kodemk
)
A
…
Lalu
hasil join tersebut diberi alias A. Selanjutnya, tabel A tadi kita
join-kan dengan tabel peserta pada kondisi kodekuliah pada tabel
peserta sama dengan kodekuliah pada tabelA untuk mendapatkan nim dan
sks yang selanjutnya kita menjumlahkan sks dengan SUM(sks) yang
dikelompokkan berdasarkan nim menggunakan GROUP BY nim.
b.
Bila matakuliah yang diulang hanya yang sesuai dengan asumsi yang
masuk dalam perhitungan
SELECT
nim, SUM( sks ) totalsks
FROM
(
SELECT
DISTINCT nim, kodemk
FROM
peserta, kuliah
WHERE
peserta.kodekuliah = kuliah.kodekuliah
)P,
matakuliah
WHERE
P.kodemk = matakuliah.kodemk
GROUP
BY nim
Penjelasan:
Pada
query ini kita menampilkan jumlah SKS yang telah diselesaikan oleh
masing-masing mahasiswa bila matakuliah yang diulang hanya dihitung
sekali. Pertama-tama kita melakukan join tabel peserta dengan tabel
kuliah pada kondisi kodekuliah pada tabel peserta sama dengan
kodekuliah pada tabel kuliah untuk mendapatkan nim dan kodemk.
… (
SELECT
DISTINCT nim, kodemk
FROM
peserta, kuliah
WHERE
peserta.kodekuliah = kuliah.kodekuliah
)P
…
Kata
DISTINCT setelah SELECT digunakan untuk menghilangkan pengulangan
record yang mempunyai nim dan kodemk yang sama agar matakuliah yang
diulang oleh seorang mahasiswa hanya muncul sekali. Hasil join
tersebut diberi alias P. Lalu tabel P kita join-kan dengan tabel
matakuliah pada kondisi kodemk pada tabel P sama dengan kodemk pada
tabel matakuliah untuk mendapatkan nim dan sks yang dijumlahkan
dengan SUM(sks) setelah dikelompokkan berdasarkan GROUP BY nim.
2.
Menampilkan data-data yang bisa untuk melakukan perhitungan IPK
(berdasar asumsi di atas)
SELECT
nim, kuliah.kodemk, nilai, sks
FROM
peserta, matakuliah, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
AND
kuliah.kodemk = matakuliah.kodemk
AND
(
nim,
kuliah.kodemk, thnakademik
)
IN
(
SELECT
nim, kodemk, MA thnakademik ) thnterakhir
FROM
peserta, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
GROUP
BY nim, kodemk
)
Penjelasan:
Pada
query ini kita melakukan join pada tiga tabel, yaitu peserta,
matakuliah dan kuliah dengan kondisi kodekuliah pada tabel kuliah
sama dengan kodekuliah pada tabelpeserta dan kodemk pada tabel kuliah
sama dengan kodemk mpada tabel matakuliah. Setelah itu kita lakukan
operasi intersection dengan query yang menampilkan tahun terakhir
menyelesaikan suatu matakuliah.
…
AND
(
nim,
kuliah.kodemk, thnakademik
)
IN
(
SELECT
nim, kodemk, MA thnakademik ) thnterakhir
FROM
peserta, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
GROUP
BY nim, kodemk
)
Pada
query untuk menampilkan tahun terakhir menyelesaikan suatu
matakuliah, kita melakukan join pada tabel peserta dan tabel kuliah
dengan kondisi kodekuliah pada tabel kuliah sama dengan kodekuliah
pada tabel peserta. Lalu untuk mencari tahun terakhir digunakan
fungsi MA thnakademik) setelah dikelompokkan berdasarkan nim dan
kodemk denganGROUP BY nim, kodemk. Lalu operasi intersection
dilakukan dengan memeriksa apakah record nim, kodemk, thnakademik
dari hasil join tiga tabel ada pada hasil query untuk menampilkan
tahun terakhir menyelesaikan suatu matakuliah.
3.
Menampilkan dosen yang pernah mengampu kelas matakuliah yang
pesertanya tidak lebih dari 15 mahasiswa
SELECT
DISTINCT nip
FROM
kuliah, (
SELECT
kodekuliah, COUNT( * ) jumlahpeserta
FROM
peserta
GROUP
BY
kodekuliah
)
banyakpeserta
WHERE
kuliah.kodekuliah = banyakpeserta.kodekuliah
AND
jumlahpeserta <=15
Penjelasan:
Pada
query ini kita akan menampilkan dosen yang pernah mengampu matakuliah
yang pesertanya <= 15 mahasiswa. Awalnya menggunakan tabel
peserta, kita hitung dahulu jumlah peserta dari setiap kuliah dengan
menggunakan COUNT setelah dikelompokkan berdasarkan kodekuliah dengan
GROUP BY kodekuliah.
…(
SELECT
kodekuliah, COUNT( * ) jumlahpeserta
FROM
peserta
GROUP
BY
kodekuliah
)
banyakpeserta
…
Setelah
itu query tersebut diberi alias banyakpeserta. Lalu pada query utama
kita melakukan join pada tabel banyakpeserta dengan tabel kuliah pada
kondisi kodekuliah pada tabelkuliah sama dengan kodekuliah pada tabel
banyakpeserta serta menambahkan kondisi jumlahpeserta <= 15. Pada
query utama kita menampilkan nip yang di dahului dengan kata DISTINCT
agar nip yang ditampilkan tidak ada perulangan.
4.
Menampilkan nama mahasiswa yang telah lulus lebih dari 100 SKS
SELECT
nama
FROM
(
SELECT
nim, SUM( sks ) jumlahsks
FROM
peserta, kuliah, matakuliah
WHERE
nilai <
'E'
AND
kuliah.kodekuliah = peserta.kodekuliah
AND
kuliah.kodemk = matakuliah.kodemk
GROUP
BY
nim
)
yanglulus, mahasiswa
WHERE
jumlahsks >100
AND
yanglulus.nim = mahasiswa.nim
Penjelasan:
Pada
query ini kita akan menampilkan nama mahasiswa yang telah lulus >
100 SKS. Mula-mula kita menghitung jumlah SKS dari matakuliah yang
lulus untuk masing-masing mahasiswa. Kita melakukan join pada tiga
tabel peserta, kuliah dan matakuliah dengan kondisi kodekuliah pada
tabel kuliah sama dengan kodekuliah pada tabel peserta dan kodemk
pada tabel kuliah sama dengan kodemk pada tabel matakuliah disertai
dengan kondisi nilai < ‘E’ yang berarti nilai >= ‘E’
tidak diikutkan. Lalu sks yang memenuhi kondisi dijumlahkan dengan
SUM(sks) yang diberi alias jumlahsks setelah dikelompokkan
berdasarkan nim dengan GROUP BY nim. Query tersebut diberi alias
jumlahlulus.
…(
SELECT
nim, SUM( sks ) jumlahsks
FROM
peserta, kuliah, matakuliah
WHERE
nilai <
'E'
AND
kuliah.kodekuliah = peserta.kodekuliah
AND
kuliah.kodemk = matakuliah.kodemk
GROUP
BY
nim
)
yanglulus …
Pada
query utama kita melakukan join pada tabel yanglulus dengan mahasiswa
dengan kondisi nim pada tabel yanglulus sama dengan nim pada tabel
mahasiswa disertai kondisi jumlahsks > 100 untuk menampilkan nama
mahasiswa yang telah lulus > 100 SKS.
5.
Menampilkan banyaknya siswa yang telah lulus tugas akhir bila kode
matakuliah untuk tugas akhir adalah ‘M0012’
SELECT
COUNT( * ) lulusTA
FROM
peserta, kuliah
WHERE
nilai <
'E'
AND
kuliah.kodekuliah = peserta.kodekuliah
AND
kodemk =
'M0012'
Penjelasan:
Pada
query kali ini kita akan menampilkan jumlah mahasiswa yang telah
lulus tugas akhir bila kode matakuliah tugas akhir = ‘M0012’.
Pertama-tama kita melakukan join pada tabel peserta dankuliah dengan
kondisi kodekuliah pada tabel kuliah sama dengan kodekuliah pada
tabel peserta untuk mendapatkan nilai dan kodemk. Lalu hasil join
tersebut kita saring dengan kondisi nilai < ‘E’ dan kodemk =
‘M0012’ yang selanjutnya setelah disaring kita hitung dengan
COUNT dan diberi alias lulusTA untuk menghitung jumlah mahasiswa yang
telah lulus tugas akhir.
6.
Menampilkan daftar nomor dan nama mahasiswa beserta IP berdasar dua
asumsi di atas
SELECT
buatip.nim, nama, (
SUM(
nilaisks ) / SUM( sks )
)
ip
FROM
mahasiswa, (
SELECT
nim, kuliah.kodemk, (
(
69 – ASCII( UPPER( nilai ) ) ) * sks
)
nilaisks, sks
FROM
peserta, matakuliah, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
AND
kuliah.kodemk = matakuliah.kodemk
AND
(
nim,
kuliah.kodemk, thnakademik
)
IN
(
SELECT
nim, kodemk, MA thnakademik ) thnterakhir
FROM
peserta, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
GROUP
BY nim, kodemk
)
)buatip
WHERE
mahasiswa.nim = buatip.nim
GROUP
BY nim
Penjelasan:
Pada
query yang cukup panjang ini. kita akan menampilkan nomor dan nama
mahasiswa beserta IP berdasar dua asumsi di atas. Pada awalnya kita
membuat query untuk menampilkan nim,kodemk dan nilai yang sudah
dikali sks. Query ini mirip seperti query yang dijelaskan pada nomor
2 dengan sedikit perubahan.
…(
SELECT
nim, kuliah.kodemk, (
(
69 – ASCII( UPPER( nilai ) ) ) *
sks
)
nilaisks, sks
FROM
peserta, matakuliah, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
AND
kuliah.kodemk = matakuliah.kodemk
AND
(
nim,
kuliah.kodemk, thnakademik
)
IN
(
SELECT
nim, kodemk, MA thnakademik ) thnterakhir
FROM
peserta, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
GROUP
BY nim, kodemk
)
)
buatip
Bagian
yang ditebalkan merupakan perubahan yang dilakukan untuk query kali
ini. Hasil query tersebut diberi alias buatip. Lalu kita melakukan
join pada tabel buatip dan tabel nama dengan kondisi nim pada tabel
mahasiswa sama dengan nim pada tabel buatip untuk mendapatkan nama.
Selanjutnya untuk menghitung IP, kita menjumlahkan semua nilaisks dan
membaginya dengan jumlah sks dengan SUM(nilaisks) / SUM(sks) setelah
dikelompokkan menurut nim-nya dengan menggunakan GROUP BY nim.
7.
Menghitung IP bila asumsi kedua di atas diganti bahwa nilai yang
dipakai untuk penentuan IP adalah nilai yang terbaik (dari
serangkaian mengulang matakuliah)
SELECT
nim, (
SUM(
nilaimaxsks ) / SUM( sks )
)ip
FROM
(
SELECT
nim, (
(
69 – ASCII( UPPER( nilaimax ) ) ) * sks
)nilaimaxsks,
sks
FROM
matakuliah, (
SELECT
nim, kodemk, MIN( nilai ) nilaimax
FROM
peserta, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
GROUP
BY nim, kodemk
)
nilaiterbaik
WHERE
nilaiterbaik.kodemk = matakuliah.kodemk
)buatip
GROUP
BY nim
Penjelasan:
Pada
query ini kita akan menampilkan IP dengan asumsi kedua diganti
menjadi nilai yang dipakai untuk menghitung IP adalah nilai yang
terbaik. Mula-mula kita mencari nilai terbaik pada setiap matakuliah
untuk masing-masing mahasiswa. Kita melakukan join pada tabel peserta
dengan tabel kuliah pada kondisi kodekuliah pada tabel kuliah sama
dengan kodekuliah pada tabel peserta untuk mendapatkan kodemk dan
nilai. Lalu kita mencari nilai terbaik dari setiap matakuliah untuk
masing-masing mahasiswa dengan MIN(nilai) setelah dikelompokkan
berdasarkan nim dan kodemk dengan menggunakan GROUP BY nim, kodemk
karena nilai ascii ‘A’ < ‘B’ < ‘C’ < ‘D’ <
‘E’.
…(
SELECT
nim, kodemk, MIN( nilai ) nilaimax
FROM
peserta, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
GROUP
BY nim, kodemk
)
nilaiterbaik
…
Hasil
query tersebut diberi alias nilaiterbaik. Setelah itu kita melakukan
join tabel nilaiterbaik dengan tabel matakuliah pada kondisi kodemk
pada tabel nilaiterbaik sama dengan kodemk pada tabel kuliah untuk
mendapatkan sks.
Selanjutnya
ditampilkan nim, nilaimaxsks yang merupakan nilaimax dikali sks serta
sks.
…(
SELECT
nim, (
(
69 – ASCII( UPPER( nilaimax ) ) ) * sks
)nilaimaxsks,
sks
FROM
matakuliah, (
SELECT
nim, kodemk, MIN( nilai ) nilaimax
FROM
peserta, kuliah
WHERE
kuliah.kodekuliah = peserta.kodekuliah
GROUP
BY nim, kodemk
)
nilaiterbaik
WHERE
nilaiterbaik.kodemk = matakuliah.kodemk
)buatip
…
Hasil
query tersebut diberi alias buatip. Kemudian kita menghitung IP
seperti query pada nomor 6 yaitu SUM(nilaimaxsks) / SUM(sks) setelah
dikelompokkan berdasarkan nim dengan menggunakan GROUP BY nim.
sumber : http://bswig.blog.ugm.ac.id/2010/04/13/contoh-contoh-query-sql/
Langganan:
Postingan (Atom)