32
 AntiInjection Teknik injection SQL merupakan salah satu teknik penyerangan terhadap sekuritas wordpress pada saat ini. Para hacker  melakukan penyerangan blog dengan cara menggunakan sintaks SQL alias yang diserang database blognya langsung. Apa bila blognya dihack orang untuk antisipasi mengamankan blog kita Plugin Jangan Disuntik atau Plugin Anti Injection. Plugin Jangan Disuntik ini merupakan plugin buatan orang Indonesia. Plugin ini berfungsi untuk mencegah semua aktivitas yang bertujuan untuk menginjeksi perintah SQL pada blog kita. Setiap program berbasis dekstop yang menyediakan fasilitas Login User pasti akan ada batasan  jumlah Login, begitu pula dengan Pemrograman Berbasis Web, dalam Web Script batasan  jumlah Login User sudah tentu ada, jika pada program dekstop akan mengak hiri program ketika User menginputkan username dan password salah dalam jumlah yang telah ditentukan, maka dalam Web biasanya akan ada dua kemungkinan. 1. Akun Akan doblokir dalam database 2. Akun akan login kembali setelah beberapa menit kemudian tergantung banyaknya pengaturan  jumlah waktu, ini disebut timer login Di sini akan membahas yaitu bila User menginputkan Username dan Password salah dalam 3 kali, maka Username tersebut akan diblokir dan tidak bisa Login kembali sebelum menghubungi Admin. Langkahnya sebagai berikut : 1. Buat Database bebas, Misal Sumberdaya, Jika belum paham cara buat database MySql, 2. Jika database sudah dibuat, langkah selanjutnya adalah Buatlah Tabel misalkan kita berinama Users, 3. Didalam tabel Users, yang wajib diperhatikan adalah filed batas_login dan blokir, kedua field inilah yang nantinya akan kita mainkan dalam script, Logikanya, jika batas login user adalah 3 kali, maka status blokir akan berubah 'Y' ketika user menginputkan sebanyak 3 kali salah

Kumpulan Tugas Tugas Praktikum SI Web

Embed Size (px)

Citation preview

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 1/32

 

AntiInjection

Teknik  injection SQL merupakan salah satu teknik penyerangan terhadap sekuritas

wordpress pada saat ini. Para hacker  melakukan penyerangan blog dengan cara menggunakan

sintaks SQL alias yang diserang database blognya langsung. Apa bila blognya dihack orang

untuk antisipasi mengamankan blog kita Plugin Jangan Disuntik atau Plugin Anti Injection.

Plugin Jangan Disuntik ini merupakan plugin buatan orang Indonesia. Plugin ini berfungsi

untuk mencegah semua aktivitas yang bertujuan untuk menginjeksi perintah SQL pada blog kita.

Setiap program berbasis dekstop yang menyediakan fasilitas Login User pasti akan ada batasan

 jumlah Login, begitu pula dengan Pemrograman Berbasis Web, dalam Web Script batasan

 jumlah Login User sudah tentu ada, jika pada program dekstop akan mengakhiri program ketika

User menginputkan username dan password salah dalam jumlah yang telah ditentukan, maka

dalam Web biasanya akan ada dua kemungkinan.

1. Akun Akan doblokir dalam database

2. Akun akan login kembali setelah beberapa menit kemudian tergantung banyaknya pengaturan

 jumlah waktu, ini disebut timer login

Di sini akan membahas yaitu bila User menginputkan Username dan Password salah dalam 3

kali, maka Username tersebut akan diblokir dan tidak bisa Login kembali sebelum menghubungi

Admin. Langkahnya sebagai berikut :

1. Buat Database bebas, Misal Sumberdaya, Jika belum paham cara buat database MySql,

2. Jika database sudah dibuat, langkah selanjutnya adalah Buatlah Tabel misalkan kita berinama

Users,

3. Didalam tabel Users, yang wajib diperhatikan adalah filed batas_login dan blokir, kedua field

inilah yang nantinya akan kita mainkan dalam script, Logikanya, jika batas login user adalah 3

kali, maka status blokir akan berubah 'Y' ketika user menginputkan sebanyak 3 kali salah

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 2/32

 

4. Langkah selanjutnya adalah, kita lihat script pada Cek_login.php

<?php

include "config/koneksi.php";

function antiinjection($data){

$filter_sql =

mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));

return $filter_sql;

}

$username = antiinjection($_POST['username']);

$pass = antiinjection(md5($_POST['password']));

if (!ctype_alnum($username) OR !ctype_alnum($pass)){

echo "<script type=text/javascript>

alert('Script Login');

window.location = 'http://www.google.com/ ' //yang ini pengalihan ketika user salah

</script>";

 //header('location:index.php');

}else{

$login=mysql_query("SELECT * FROM users WHERE username='$username' AND

password='$pass' AND blokir='N'");

$ketemu=mysql_num_rows($login);

$r=mysql_fetch_array($login);

 // Apabila username dan password ditemukan

if ($ketemu > 0){

mysql_query("UPDATE users SET batas_login = 0 where username='$username'");

session_start();

session_register("namauser");

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 3/32

 

session_register("namalengkap");

session_register("passuser");

session_register("leveluser");

$_SESSION[namauser] = $r[username];

$_SESSION[namalengkap] = $r[nama_lengkap];

$_SESSION[passuser] = $r[password];

$_SESSION[leveluser] = $r[level];

header('location:media.php?module=home');

}

else{

mysql_query("UPDATE users SET batas_login = batas_login + 1 where

username='$username'");

$a=mysql_fetch_array(mysql_query("SELECT batas_login from users where username =

'$username'"));$b=$a['batas_login'];

if($b>2){

mysql_query("UPDATE users SET blokir  = 'Y' where username='$username'");

echo "<script type=text/javascript>

alert('Username $username Telah Di Blokir, Silahkan Hubungi Administrator');

window.location = 'http://www.google.com/ '

</script>";

}

else{

echo "<script type=text/javascript>

alert('Username Atau Password Tidak Benar Anda, Sudah $b Kali Mencoba');

window.location.href='index.php'

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 4/32

 

</script>";

}

}

}

?>

5. Keterangan tulisan warna merah http://www.google.com/ adalah script pengalihan program

ketika user diblokir

- users adalah nama table dalam database

- batas_login adalah field pada tabel users yang menentukan banyaknya batasan login

- blokir adalah field yang ada pada tabel user yang berfungsi sebagai aktif dan tidaknya user

- $b adalah variabel yang digunakan untuk penetuan banyaknya jumlah login - 2 adalah jumlah

maksimal login

6. Jalankan program, dan Jika program dijalankan maka akan terlihat seperti ini

Form Login

masukan username yang telah ada pada database, kemudan masukan password yang salah,

makan akan keluar alert, dan setelah memasukan passwrod sebanyak tigakali salah, maka alertterakhir adalah username diblokir

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 5/32

 

Penggunaan MVC/FrameworK

 Model View Controller (MVC) 

 Model View Controller  (MVC) adalah design pattern atau arsitektur yang digunakan dalam

rekayasa perangkat lunak atau aplikasi yang dengan jelas memisahkan antara data (Model)

dengan user interface atau tampilan (View). Penerapan MVC tidak terbatas pada aplikasi

berbasis web. Penggunaan MVC terbukti sangat efektif dalam semua aplikasi.

MVC pertama kali dirancang oleh Trygve Reenskaug dan dipublikasikan pertama kali oleh

XEROX PARAC dan Smalltalk sekitar tahun 1970-1980. Implementasi dari gagasan MVC

dituangkan dalam tulisan berjudul: “ Applications Programming in Smalltalk-80: How to Use

 Model-View-Controller ”. Inti penemuan arsitektur MVC adalah pemisahan tampilan pengguna

dari kendali asupan pengguna dan model informasi yang mendasarinya, seperti gambar di bawah

ini:

Model MVC banyak digunakan karena memiliki banyak keuntungan dalam proses perancanganaplikasi. Beberapa keuntungan adalah:

1.  Penggunaan ulang komponen-komponen antarmuka (user interface reusable component ).

2.  Kemampuan untuk mengembangkan aplikasi dengan antarmuka pengguna secara

terpisah.

3.  Kemampuan untuk melakukan pewarisan (inheritance) dari berbagai bagian yang

berbeda pada suatu hierarki kelas.

4.  Kemampuan untuk mendefinisikan kelas-kelas pengaturan tampilan (control style) yang

menyediakan fitur-fitur umum secara terpisah dengan fitur-fitur yang akan ditampilkan

oleh aplikasi yang dikembangkan.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 6/32

 

Dalam implementasinya model MVC memiliki tiga bagian yaitu, memisahkan data ( Model) dari

tampilan (View) dan cara bagaimana memprosesnya (Controller ). Setiap bagian dapat dijelaskan

sebagai berikut:

1.  Data (Model) 

Pola MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang

digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Dengan

memilahnya sebagai bagian terpisah, seperti penampungan data, persistence, serta proses

manipulasi, terpisah dari bagian lain aplikasi.

Terdapat beberapa kelebihan dalam pendekatan ini. Pertama, membuat detail dari data dan

operasinya dapat ditempatkan pada area yang ditentukan ( Model) dibanding tersebar dalam

keseluruhan lingkup aplikasi. Hal ini memberikan keuntungan dalam proses pemeliharaan

aplikasi.

Kedua, dengan pemisahan total antara data dengan implementasi interface, komponen modeldapat digunakan kembali oleh aplikasi lain yang memiliki kegunaan yang hampir sama.

2.  Tampilan (View) 

Layer ini mengandung keseluruhan detail dari implementasi user interface. Disini, komponen

grafis menyediakan representasi proses internal aplikasi dan menuntun alur interaksi user

terhadap aplikasi. Tidak ada layer lain yang berinteraksi dengan pengguna, hanya View.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 7/32

 

Penggunaan layer View memiliki beberapa kelebihan: Pertama, memudahkan pengabungan divisi

desain dalam development team. Divisi desain dapat berkonsentrasi pada style, look and feel, dan

sebagainya, dalam aplikasi tanpa harus memperhatikan lebih pada detail yang lain.

Dengan memiliki layer View yang terpisah memungkinkan ketersediaan multiple interface dalam

aplikasi. Jika inti dari aplikasi terletak pada bagian lain (dalam Model), multiple interfaces dapat

dibuat (Swing, Web, Console), secara keseluruhan memiliki tampilan yang berbeda namun

mengeksekusi komponen Model sesuai fungsionalitas yang diharapkan.

3.  Cara pemprosesan (Controller) 

Terakhir, arsitektur MVC memiliki layer Controller . Layer ini menyediakan detail alur program

dan transisi layer, dan juga bertanggungjawab akan penampungan events yang dibuat oleh user

dari View dan melakukan update terhadap komponen Model menggunakan data yang

dimasukkan oleh user.

Kelebihan dalam penggunaan layer Controller  secara terpisah: Pertama, dengan menggunakan

komponen terpisah untuk menampung detail dari transisi layer, komponen view dapat didesain

tanpa harus memperhatikan bagian lain secara berlebih. Hal ini memudahkan team pengembang

multiple interface bekerja secara terpisah dari yang lain secara simultan. Interaksi antar

komponen View terabstraksi dalam Controller.

Kedua, dengan menggunakan layer terpisah yang melakukan update terhadap komponen Model,

detail tersebut dihapus dari layer presentasi. Layer presentasi kembali pada fungsi utamanya

untuk menampilkan data kepada user. Detail tentang bagaimana data dari user mengubah

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 8/32

 

ketetapan aplikasi disembunyikan oleh Controller . Hal ini memisahkan dengan jelas antara

presentation logic dengan business logic.

 Java 2 Enterprise Edition (J2EE) 

Java 2 Enterprise Edition (J2EE) merupakan teknologi Java yang dirancang untuk memberikan

solusi pengembangan aplikasi web dalam skala enterprise (besar/komplek). Teknologi ini

merupakan suatu kumpulan API ( Application Programming Interface) untuk pengembangan

aplikasi berbasis Java. J2EE telah dikembangkan ke versi Java EE 5 dengan tujuan

pengembangan JEE 5 adalah menyediakan seperangkat API yang handal bagi pengembang

aplikasi melalui, pengurangan waktu development , mengurangi tingkat kompleksitas tetapi

dengan meningkatkan kinerja aplikasi. Keuntungan dalam pengembangan dengan menggunakan

J2EE adalah:

•  Pengembangan komponen daur hidup untuk memungkinkan pengembangan produk yang

lebih efisien.

•  Pengujian kompatibilitas “Write Once, Run Anywhere” yang menjamin solusi akan

berjalan dimanapun J2EE diterapkan.

•  Dukungan industri untuk J2EE menjamin pembeli dengan pilihan-pilihan produk 

sehingga menghilangkan kuncian di satu vendor dan memungkinkan pembeli merakit

solusi-solusi terbaik berbagai vendor.

•  “Wrap and Embrace” vs. “Rip and Replace”; J2EE memungkinkan lingkungan yang

dapat memperluas arsitektur, menjaga investasi sebelumnya dengan minimal disruption.

•  Skalabilitas industri, layanan middleware kelas enterprise. J2EE menyediakan layanan

lengkap ready-to-use seperti konektivitas basisdata, mesagging, manajemen transaksi dan

sebagainya.

•  Solusi yang aman, model keamanan J2EE menjamin integritas data enterprise.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 9/32

 

J2EE merupakan aplikasi yang terdistribusi ke banyak komponen yang saling bersinergi

membentuk sutu kesatuan aplikasi. Bekerja dengan J2EE sama artinya bekerja dengan banyak 

komponen yang merangkai komponen-komponen tersebut sehingga tercipta aplikasi yang utuh.

Komponen-komponen yang menyusun J2EE antara lain:

•  Java Servlet, yaitu teknologi yang memungkinkan pengembang membuat obyek yang

dapat berinteraksi dengan server. Kelas servlet dapat diakses dengan tata cara yang

dikenal dengan model pemrograman request-response.

•  JavaServer Pages (JSP), yaitu dokumen berbasis teks yang terdiri dari content statis,

misalnya dalam HTML atau WML dan eleman JSP dinamis.

Implementasi MVC pada J2EE 

Dalam pemrograman web menggunakan JSP dan Servlet terdapat 2 macam design pattern untuk 

implementasi pola Modeller-Viewerer-Controller yaitu Model 1 dan Model 2. Model 1 yaitu

teknik pengembangan web yang semua fungsionalitas diserahkan kepada sebuah obyek.

Sedangkan Model 2 memisahakan antara bagian bisnis dengan bagian presentasi. Model 2 ini

sering dengan disebut (MVC).

MVC 1: Page Centric Architecture 

Pada arsitektur ini, sebenarnya tidak ada perbedaan antara Viewer  dengan Controller  karena

keduanya ditangani oleh sebuah file JSP yang sama. Hal ini dapat dilakukan karena padadasarnya sebuah file JSP adalah sebuah servlet . Oleh karena itu JSP memiliki atribut-atribut yang

sama dengan sebuah Servlet dan memiliki banyak kemudahan. Model diimplementasikan dengan

bentuk  Javabean.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 10/32

 

MVC 2 : Servlet Centric Architecture 

Pada arsitektur ini sebuah servlet bertugas untuk menerima request dari web browser kemudianmelakukan pemrosesan model berdasarkan request tersebut. Setelah itu servlet akan meminta file

JSP untuk menangani tampilan dari data-data. Dengan arsitektur ini kita dapat melakukan

pengembangan seperti layaknya kita melakukan pengembangan pada aplikasi Java seperti

biasanya. JSP digunakan hanya untuk memudahkan desain tampilan.

Prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaituprogrammer yang menangani bagian model dan controller, sedangkan designer yang menangani

bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan

organisasi kode. MVC merupakan pattern yang tidak dapat langsung dipetakan menjadi kode,

MVC lebih merupakan suatu rancangan konseptual atau paradigma. Seiring dengan semakin

banyaknya penggunaan client side scripting, ada 3 jenis MVC yang mungkin terjadi pada suatu

aplikasi web yaitu:

•  Server Side MVC 

Server Side MVC biasa terjadi pada aplikasi web tradisional, yang tidak melibatkan client side

seperti Javascript, Java Applet, Flash, dll. Server Side MVC menyerahkan keseluruhan proses

bisnis pada server, aplikasi pada sisi user hanya dapat menerima. MVC jenis ini terkadang

disebut juga dengan nama Thin Client.

•  Mixed Client Side and Server Side MVC 

Pada Mixed Client Side and Server Side MVC 1 client tidak menggunakan model sebagai

 jembatan untuk melakukan komunikasi pada server, dibandingkan dengan Server Side MVC,

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 11/32

 

arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih banyak komponen

yang terlibat. Untuk selanjutnya arsitektur ini disebut, dengan Mixed MVC 1.

Pada Mixed Client Side and Server Side MVC 2, client menggunakan model sebagai jembatan

untuk melakukan komunikasi pada server, dibandingkan dengan arsitektur MVC yang lain,

arsitektur ini memiliki tingkat kompleksitas yang paling tinggi karena lebih banyak komponen

yang terlibat, sehingga membutuhkan sumber daya yang lebih besar pula. Untuk selanjutnya

arsitektur ini disebut dengan Mixed MVC 2.

•  Rich Internet Application MVC 

Application MVC Rich Internet Application (RIA) disebut juga dengan nama Fat Client,

merupakan aplikasi web yang memiliki kemampuan dan fungsi hampir seperti aplikasi desktop.

RIA pada sisi client, memiliki engine untuk mengambil data yang berada pada server, sehingga

pada client terdapat bagian MVC sendiri dan hanya membutuhkan bagian model pada sisi server.

Implementasi pola MVC pada web berbasis Java adalah dengan menggunakan servlet sebagai

controller dan JSP sebagai viewer. Beberapa Method pada servlet terdiri dari:

1.  doGet, adalah method yang diwarisi dari HttpServlet. Method ini dipanggil oleh

container ketika Request GET diberikan pada Servlet khusus. Request GET dikirim oleh

user, jika user ingin melihat keluaran dari Servlet.

2. 

doPost, adalah method yang diwarisi dari HttpServlet. Method ini dipanggil olehcontainer ketika Request POST diberikan pada Servlet khusus. Request POST dikirim

oleh user, jika user ingin melihat keluaran dari Servlet.

3.  getParamater, adalah method yang digunakan untuk memperoleh parameter tertentu dari

sebuah halaman/class.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 12/32

 

4.  sendRedirect, parameter yang diambil adalah sebuah String mewakili path untuk target

yang kita inginkan untuk pengalihan user. Memanggil method ini secara efektif 

memerintahkan browser untuk mengirim dalam HTTP request yang lain ke tujuan

tertentu.

5.  requestDispatcher, parameter string yang diambil dalam method ini adalah lokasi dari

HTML, JSP, atau servlet yang ingin kita hubungkan dengan request. Sekali kita

mempunyai sebuah pengontrol pada sebuah instance dari object RequestDispatcher

membuatnya menjadi sebuah bagian dari respon servlet ke user.

Ada tiga layer utama dalam arsitektur web MVC, yang disebut sebagai best practices yaitu :

Model

Model di sini berperan sebagai representasi dari data yang terlibat dalam suatu proses transaksi.

Setiap kali method / function dari suatu aplikasi butuh untuk melakukan akses ke dalam suatu

data, maka function / method tersebut tidak langsung berinteaksi dengan sumber data tersebut

melainkan harus melalui model terlebih dahulu. Dalam hal ini hanya model yang diijinkan untuk 

berinteraksi langsung dengan sumber data.Secara singkat, layer model ini menangani content

dari aplikasi

View

View di sini berperan sebagai presentation layer atau pengatur user interface (tampilan) bagi

user dari suatu aplikasi. Data yang dibutuhkan oleh user akan diformat sedemikian rupa agar

dapat tampil dan dipresentasikan dengan format tampilan yang memang disesuaikan dengan

kebutuhkan user. Sehingga layer ini tidak peduli apa saja content yang ada. Misalnya, untuk 

Aplikasi Diskon, layer ini memutuskan apakah daftar belanja akan ditampilkan dalam tabel

HTML, ditampilkan ke command prompt, disajikan dalam tabel Swing, atau diekspor menjadi

file text. Sebagai tambahan, biasanya layer View juga bertugas untuk melakukan validasi data

yang diinputkan user.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 13/32

 

 

Controller

Controller di sini berperan sebagai logic aspect dari suatu aplikasi / mengatur user flow.

Controller lah yang akan menentukan bussiness process dari aplikasi yang dibangun. Controller

akan merespon setiap inputan dari user dengan melakukan pemanggilan terhadap model dan

view yang sesuai sehingga request / permintaan dari user tersebugt dapat terpenuhi dengan baik.

Biasanya layer controller juga digunakan untuk mengatur ijin akses dan permission.

Routing

Routing sendiri adalah sebuah proses yang berguna untuk meneruskan paket-paket dari sebuah

 jaringan ke jaringan lainnya, dan biasanya routing ini dilakukan dengan menggunakan router.

Pada tulisan ini saya tidak akan membahas tentang kelebihan dan kekurangan dari router Cisco,

namun saya akan membahas bagaimana cara melakukan static routing dan dinamic routing

dalam router Cisco, di mana untuk dinamic routing saya akan menggunakan protokol EIGRP

(EIGRP akan dijelaskan nanti). Namun sebelum saya menjelaskan bagaimana melakukan

konfigurasi static dan dinamic routing pada router Cisco ada baiknya saya sedikit memaparkan

pengertian static dan dinamic routing serta kelebihan dan kekurangannya.

1.  Static routing adalah di mana seorang administrator melakukan routing secara manual.

Mendefenisikan setiap network yang akan dihubungkan pada router-router yang akan

digunakan.

2.  Dinamic routing adalah dimana administrator hanya melakukan sedikit konfigurasi (bisa

dikatakan hanya mengaktifkan rule dinamic routing) pada setiap router yang akan

dikomunikasikan, dan untuk kemudian router-router tersebut otomatis akan

mendefenisikan network-network yang terhubung.

Beberapa kelebihan dan kekurangan dari static dan dinamic routing adalah sebagai berikut.

1.  Konfigurasi static routing memiliki kompleksitas yang bergantung pada jumlah network 

yang terhubung, sedangkan dinamic routing tidak, baik besar maupun kecil jumlah

network yang akan dihubungkan, konfigurasi pada dinamic routing tetap sederhana.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 14/32

 

2.  Jika terjadi pengubahan topologi, maka konfigurasi pada static routing (routing table)

harus ditambah, dikurangi atau bahkan harus diubah keseluruhan, sedangkan pada

dinamic routing tidak perlu adanya pengubahan pada konfigurasi routing (routing table).

3.  Static routing biasa digunakan pada jaringan dengan skala menengah kebawah,

sedangkan dinamic routing biasa digunakan untuk jaringan sekala besar.

4.  Static routing memiliki tingkat keamanan yang baik, sedangkan dinamic routing tidak,

karena jika ada seseorang yang menambakan sebuah router di dalam jaringan tersebut,

maka router tersebut akan bisa langsung terkoneksi, dan hal itu bisa berbahaya.

5.  Static routing menggunakan sumber daya yang sedikit, baik itu processor, memori,

maupun bandwidth, sedangkan dinamic routing menggunakan sumber daya lebih banyak.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 15/32

 

STEP – STEP DALAMPEMBUATAN WEB

bahasa HTML ini adalah sebuah bahasa pemrogrman dasar untuk membuat sebuah website. kalo

definisi formal nya menurut wiki,  HTML itu adalah sebuah bahasa markup yang digunakan

untuk membuat sebuah halaman web, menampilkan berbagai informasi di dalam sebuah

Penjelajah web Internet dan formating hypertext sederhana yang ditulis kedalam berkas format 

 ASCII agar dapat menghasilkan tampilan wujud yang terintegerasi. 

Nah kita ndak usah berpanjang-panjang di definisi, langsung saja kita ke praktek langkah awal

membuat website profesional. pertama, buka program notepad pada komputer atau laptop kita.

setelah itu ketig script dasar berikut :

<html>

<head>

<title>

Step 1 Belajar membuat website

<title>

</head>

<body>

Nah ini file pertama website saya.

</body>

</html>

setelah itu save document yang telah kita buat. untuk menjadikan file yang kita buat di notepad

menjadi file web. kita harus menyimpannnya dalam bentuk .html. klik save as, dan pilih all file

pada pilhan save as type. kemudian beri nama file index.html.

 jika kurang jelas silahkan lihat gambar berikut :

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 16/32

 

simpan file tersebut di desktop (simpan sesuai selera sobat). kemudian klik dua kali file yang

telah kita buat tadi. maka akan terlihat tampilan seperti berikut.

<html>, <body>, <head><p> itu dalam bahasa HTML di sebut TAG. nah tag ini wajib ada di file

html. tiap2 tag harus di akhiri dengan pasangannya : milsal tag <html> haru di akhiri dengan tag

</html> (ada tanda slash di depannya ). nah tiap-tiap tag memiliki fungsi masing-masing.

.<html> berfungsi untuk mengawali sebuah file html ( tag ini msti ada, semua tag di html harus

ada di dalam tag ini ). tag <head></head> berfungsi sebagai header dari halamann web.

biasanya tag ini di isi dengan judul halaman web, style css, javascript dll. sedangkan tag

<body></body> itu berisi inti dari isi website kita. sekarang kita sedikit modifikasi script html

yang tadi kita buat dengan tambahan sebagai berikut

<html>

<head>

<title>

Step 1 Belajar membuat website

</title>

</head>

<body style= “background-color:#4DA8F7″>

<h1 style=”font-family:verdana; color:#303233; font-size: 14px;”>I. Step Pertama Belajar

Web</h1>

<P style=”font-family : verdana; color :#fff; margin-left:20px; font-weight:bold”>Nah ini file

pertama website saya</p>

</body>

</html>

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 17/32

 

Contoh lain membuat website:

Studi Kasus : Membuat Pagination dalam CodeIgniterKebutuhan : Webserver Package, already installed . CodeIgniter Bundle.

Jika anda tidak familiar dengan istilah “pagination”, pagination merujuk pada link yang berguna

untuk navigasi dari page ke page, seperti gambar dibawah ini,

Pagination dalam CI sangat mudah digunakan, tutorial ini akan memberikan contoh membuat

pagination dalam aplikasi CI.

Okay then, prepare for a cup of tea

Step 1 : Konfigurasi CI

1.  Buka file config.php yang berada dalam folder system-application-config-config.php 

2.  Ubah base url, sesuaikan dengan lokasi dimana folder CI-mu berada (tempat ekstrak-an

tadi). Contoh : Folder CI anda berada dalam folder www/ci

maka ubah baris $config['base_url']="http://example.com/";

dengan 

$config['base_url'] = "http://localhost/ci/";

3.  Setting database. Buka file database.php yang berada dalam folder yang sama dengan

config.php. Ubah hostname, username, password , dan nama database. Sesuaikan dengan

pengaturan mysql anda. Contoh :

$db['default']['hostname'] = "localhost";

$db['default']['username'] = "root";

$db['default']['password'] = "";

$db['default']['database'] = "db_tutorial";

Step 2 : Siapkan Database 

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 18/32

 

1.  Buat database dengan nama db_tutorial (via phpmyadmin)

2.  Siapkan tabel dengan nama tb_book (untuk strukturnya, lihat gambar dibawah ini)

3.  Insertkan beberapa sample data, sebagai contoh insertkan data seperti tabel dibawah ini.

4.  Ok, we’re done with database ! 

Step 3 : Membuat Controller 

1.  Ketikkan script berikut,

<?php

class Buku_con extends Controller {

public function Buku_con()

{

parent::__construct();

$this->load->model('buku_model');

$this->load->library('pagination'); //call pagination library

}

function getBuku() {

 //count the total rows of tb_book 

$this->db->select('*');

$this->db->from('tb_book');$getData = $this->db->get('');

$a = $getData->num_rows();

$config['base_url'] = base_url().'index.php/Buku_con/getBuku/'; //set the base url for

pagination

$config['total_rows'] = $a; //total rows

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 19/32

 

$config['per_page'] = '2'; //the number of per page for pagination

$config['uri_segment'] = 3; //see from base_url. 3 for this case

$config['full_tag_open'] = '<p>';

$config['full_tag_close'] = '</p>';

$this->pagination->initialize($config); //initialize pagination

$data['title'] = 'menampilkan isi buku';

$data['detail'] = $this->buku_model->getBuku($config['per_page'],$this->uri-

>segment(3));

$this->load->view('buku_view', $data);

}

}

?>

2.  Simpan dengan nama buku_con dalam folder system-application-controllers 

3.  Penjelasan : function getBuku() akan mengambil isi dari tb_book via model. Dalam

controller ini, pagination diinisialisasi dan diatur settingannya seperti pada script diatas

(lihat komentar pada script untuk keterangannya).

Step 4 : Membuat Model 

1.  Ketikkan script berikut,

<?php

class Buku_model extends Model {

function Buku_model()

{

parent::Model();

}

function getBuku($perPage,$uri) { //to get all data in tb_book $this->db->select('*');

$this->db->from('tb_book');

$this->db->order_by('id','DESC');

$getData = $this->db->get('', $perPage, $uri);

if($getData->num_rows() > 0)

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 20/32

 

return $getData->result_array();

else

return null;

}}

?>

2.  Simpan dalam folder system-application-models, dengan nama buku_model.php 

Step 5 : Membuat View 

1.  Ketikkan script berikut,

<h4>Book Data</h4><?php if(count($detail) > 0) { ?>

<table border="1"><tr><th>ID</th><th>Title</th><th>Author</th></tr><?phpforeach($detail as $rows) {echo "<tr>";echo "<td>". $rows['id']."</td>

<td>". $rows['title'] ."</td><td>". $rows['author'] ."</td>"; } ?></table><?php } ?><div><?php echo $this->pagination->create_links(); ?></div>

2.  Simpan dalam folder system-application-views, dengan nama buku_view.php 

3.  Penjelasan : $detail didapatkan dari controller, variabel ini berisi data dari tb_book 

(hasil dari model). Kemudian data ditampilkan dalam bentuk arrays.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 21/32

 

QUERY untuk Group

Pada kesempatan kali ini saya akan menjelaskan 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’

Berikut ini adalah contoh-contoh query dalam MySQL:

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: 

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 22/32

 

Pada query ini kita menampilkan jumlah SKS yang telah diselesaikan oleh masing-masingmahasiswa bila matakuliah yang diulang semua masuk dalam perhitungan. Pertama-tama, kitamelakukan join tabel kuliah dengan tabel matakuliah pada kondisi kodemk padatabel 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 pesertapada kondisi kodekuliah pada tabel peserta sama dengan kodekuliah pada tabelA untuk mendapatkan nim dan sks yang selanjutnya kita menjumlahkan sks dengan SUM(sks) yangdikelompokkan berdasarkan nim menggunakan GROUP BY nim.

b. Bila matakuliah yang diulang hanya yang sesuai dengan asumsi yang masuk dalamperhitungan

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-masingmahasiswa bila matakuliah yang diulang hanya dihitung sekali. Pertama-tama kita melakukan

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 23/32

 

 join tabel peserta dengan tabel kuliah pada kondisi kodekuliah pada tabel peserta samadengan 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 yangmempunyai nim dan kodemk yang sama agar matakuliah yang diulang oleh seorang mahasiswahanya 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 padatabel matakuliah untuk mendapatkan nim dan sks yang dijumlahkan dengan SUM(sks) setelahdikelompokkan berdasarkan GROUP BY nim.

2. Menampilkan data-data yang bisa untuk melakukan perhitungan IPK (berdasar asumsi diatas)

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

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 24/32

 

GROUP BY nim, kodemk 

)

Penjelasan: 

Pada query ini kita melakukan join pada tiga tabel, yaitu peserta, matakuliah dan kuliah dengankondisi kodekuliah pada tabel kuliah sama dengan kodekuliah padatabelpeserta dan kodemk pada tabel kuliah sama dengan kodemk pada tabel matakuliah. Setelahitu kita lakukan operasi intersection dengan query yang menampilkan tahun terakhirmenyelesaikan 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 kuliahsamadengan 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 intersectiondilakukan dengan memeriksa apakah record nim, kodemk, thnakademik dari hasil join tiga tabelada pada hasil query untuk menampilkan tahun terakhir menyelesaikan suatu matakuliah.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 25/32

 

3. Menampilkan dosen yang pernah mengampu kelas matakuliah yang pesertanya tidak lebihdari 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 yangpesertanya <= 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 joinpada tabel banyakpeserta dengan tabel kuliah pada kondisi kodekuliah pada tabelkuliah samadengan kodekuliah pada tabel banyakpeserta serta menambahkan kondisi jumlahpeserta <= 15.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 26/32

 

Pada query utama kita menampilkan nip yang di dahului dengan kataDISTINCT agar nip yangditampilkan 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-mulakita menghitung jumlah SKS dari matakuliah yang lulus untuk masing-masing mahasiswa. Kitamelakukan join pada tiga tabel peserta, kuliah dan matakuliah dengan kondisi kodekuliah padatabel kuliah sama dengan kodekuliah pada tabel peserta dan kodemk pada tabel kuliah samadengan 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 diberialias jumlahsks setelah dikelompokkan berdasarkan nim dengan GROUP BY nim. Query

tersebut diberi alias jumlahlulus.

…(

SELECT nim, SUM( sks ) jumlahsks

FROM peserta, kuliah, matakuliah

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 27/32

 

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 dengankondisi nim pada tabel yanglulus sama dengan nim pada tabel mahasiswa disertaikondisijumlahsks > 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 bilakode matakuliah tugas akhir = ‘M0012’. Pertama-tama kita melakukan join padatabel peserta dankuliah dengan kondisi kodekuliah pada tabel kuliah samadengan kodekuliah pada tabel peserta untuk mendapatkan nilai dan kodemk. Lalu hasil jointersebut 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 )

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 28/32

 

) 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 besertaIP berdasar dua asumsi di atas. Pada awalnya kita membuat query untuk 

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 29/32

 

menampilkan nim,kodemk dan nilai yang sudah dikali sks. Query ini mirip seperti query yangdijelaskan 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 querytersebut diberi alias buatip. Lalu kita melakukan join pada tabel buatip dan tabel nama dengankondisi 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 denganmenggunakan GROUP BY nim.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 30/32

 

7. Menghitung IP bila asumsi kedua di atas diganti bahwa nilai yang dipakai untuk penentuanIP 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 padatabel peserta dengan tabel kuliah pada kondisi kodekuliah pada tabel kuliah samadengan kodekuliah pada tabel peserta untuk mendapatkan kodemk dan nilai. Lalu kita mencarinilai terbaik dari setiap matakuliah untuk masing-masing mahasiswa dengan MIN(nilai) setelahdikelompokkan berdasarkan nim dan kodemk dengan menggunakan GROUP BY nim,kodemk karena nilai ascii ‘A’ < ‘B’ < ‘C’ < ‘D’ < ‘E’.

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 31/32

 

…(

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 jointabel 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

5/17/2018 Kumpulan Tugas Tugas Praktikum SI Web - slidepdf.com

http://slidepdf.com/reader/full/kumpulan-tugas-tugas-praktikum-si-web 32/32

 

Hasil query tersebut diberi alias buatip. Kemudian kita menghitung IP seperti query pada nomor6 yaitu SUM(nilaimaxsks) / SUM(sks) setelah dikelompokkan berdasarkan nimdenganmenggunakan GROUP BY nim.