kumpulan tugas tugas praktikum si web
TRANSCRIPT
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.