Menu Tab

KOMPAS.com - Edukasi

Jumat, 08 Mei 2009

Tugas 4 (Perorangan)

Buat aplikasi seperti pada gambar dibawah ini:


Jawaban di tunggu via e-mail dengan ketentuan sebagai berikut:

  • Pengiriman via e-mail ke gurusmkbima@yahoo.co.id paling lambat kahir bulan Mei 2009.
  • Subject e-mail di tulis dengan format Tugas 4-P-(Nomer Siswa).

Data Access Object pada PRADO

Setelah kita mempelajari tentang SQL Statement pada MySQL sekarang kita akan belajar tentang Data Access Object (DAO) pada PRADO. Perlu diperhatikan didalam penggunaan koneksi database dalam PRADO selalu mengunakan PHP Data Objects (PDO) sehinga kita harus memastikan bahwa modul PDO telah aktif dalam Server kita dengan mengceknya terlebih dahulu. Jika PDO telah terinstall maka akan tampak tampilan pada gambar 10.1 sebagai berikut:



Gambar 10.1  Konfigurasi PDO Aktif

Seperti tampak pada gambar 10.1 bahwa PDO telah diaktif, untuk mengetahui konfigurasinya dengan mengakses http://localhost:8081/xampp/phpinfo.php pada browser Anda. Di mana PDO pada server penulis dapat menangani database berjenis MS SQL, MySQL, dan SQLite 2.

Setelah PDO aktif sekarang waktunya kita mengkonfigurasi aplikasi kita dengan melakukannya pada file “application.xml”, untuk menghubungkan database dengan PDO pada ADO kita dapat menggunakan beberapa parameter koneksi yaitu:

  1. MySQL: mysql:host=ALAMAT_SERVER_DB;dbname=NAMA_DB

  2. SQLite: sqlite:/path/tod/dbfile

  3. ODBC: odbc:NAMA_ODBC


Setelah kita mengetahui parameter koneksi kini saatnya kita membuat parameter dalam “application.xml” yang kita letakkan setelah “<services>”, adapun codenya adalah sebagai berikut:

<parameters>

<parameter id="myDSN" value="mysql:host=localhost;dbname=modul9" />

<parameter id="myUser" value="root" />

<parameter id="myPass" value="" />

</parameters>

Kemudian jangan lupa untuk melakukan include/import class TParameterModule pada path kita dengan menuliskan “System.Util.ParameterModule” serta tidak lupa untuk memasukkan kelas untuk mengakses database “System.Data.*”, adapun data “application.xml” secara lengkap tampak pada listing berikut:

<?xml version="1.0" encoding="utf-8"?>

<application id="modul10" mode="Debug">

<paths>

<using namespace="System.Web.*" />  

<using namespace="System.Web.UI.*" />

<using namespace="System.Data.*" />

<using namespace="System.Util.TParameterModule" />

</paths>

<modules />

<services>

<service id="page" class="TPageService" BasePath="Application.App_Page" DefaultPage="Index" />                                             

</services> 

<parameters>

<parameter id="myDSN" value="mysql:host=localhost;dbname=modul9" />

<parameter id="myUser" value="root" />

<parameter id="myPass" value="" />

</parameters>

</application>

Disini kita mengunakan database yang telah kita buat pada Modul 9 sebelumnya. Sehinga program kita nanti dapat berkomunikasi dengan database yang telah kita buat sebelumnya. Setelah itu kita akan membuat UI pada ”Index.page” adapun source codenya adalah sebagai berikut:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Modul 10</title>

</head>

<body>

<com:TForm ID="mod10">

<h1>Menampilkan data Login</h1>

<com:TDataGrid ID="dgView" AutoGenerateColumns="false" AllowPaging="true" DataKeyField="user_login" HeaderStyle.BackColor="black" HeaderStyle.ForeColor="white" ItemStyle.BackColor="#BFCFFF" ItemStyle.Font.Italic="true" AlternatingItemStyle.BackColor="#E6ECFF">

<com:TBoundColumn HeaderText="Username" HeaderStyle.Wrap="false" DataField="user_login" />

<com:TBoundColumn HeaderText="Password" HeaderStyle.Wrap="false" DataField="password_login" />

<com:TBoundColumn HeaderText="Kode Role" HeaderStyle.Wrap="false" DataField="kd_role" />

</com:TDataGrid>

</com:TForm>

</body>

</html>


Sedangkan untuk logic controlnya yaitu ”Index.php” adalah sebagai berikut:

<?php

class Index extends TPage {

 private $_conn; 

 public function OnLoad($param){

  parent::OnLoad($param);

  try {

   $this->_conn = new TDbConnection($this->Application->Parameters['myDSN'],

    $this->Application->Parameters['myUser'],

    $this->Application->Parameters['myPass']);

   $this->_conn->Active = true;



   $sql = "SELECT * FROM tblLogin";

   $dr = $this->_conn->createCommand($sql)->query();

   $rows = $dr->readAll();



   if(!$this->Page->IsPostBack){

    $this->dgView->DataSource = $rows;

    $this->dgView->dataBind();

   }

  }

  catch(Exception $e){

   die($e);

  }

 }



 public function __destruct(){

  $this->_conn->Active = false;

 }

}

?>


Disini fungsi OnLoad($param) dalam Visual Basic sama dengan Form_Load sehinga proses datagrid pada TDataGrid dapat kita diproses pada awal proses dimana ada perintah !$this->Page->IsPostBack untuk menghandle pemrosesan hanya dilakukan pada awal kali proses jika halaman mengalami refresh maka tidak akan dilakukan penulisan ulang, untuk function __ destruct() merupakan function dari PHP 5 (Chapter 59. General Information, PHP Manual) yang berfungsi untuk menutup koneksi database. Adapun hasil dari program kita tampak pada gambar 10.2



Gambar 10.2  Hasil dari tampilan program

Dimana hasil diatas bisa kita modifikasi sesuai keinginan kita di dalam mengembangkan aplikasinya. Untuk modul berikuntya kita akan belajar insert, update, dan delete dengan ADO.

Rabu, 15 April 2009

Tugas 3 (Kelompok)

Buatlah paper tentang pembuatan database dan tabel dengan menggunakan phpMyAdmin dengan menggunakan SQL dan desain adapun struktur tabelnya adalah sebagai berikut:

Tugas di kumpulkan dalam format sebagai berikut:

  1. Diketik dalam format Microsoft Word atau dalam bentuk PDF.
  2. Ukuran font sebesar 12 dan paragraph sebesar 1.5
  3. Dituliskan nama-nama kelompok yang tercantum pada halaman berikut http://gurusmkbima.blogspot.com/2009/02/daftar-kelompok-kelas-xi-2009.html
  4. Pengiriman via e-mail ke gurusmkbima@yahoo.co.id paling lambat kahir bulan april 2009.
  5. Subject e-mail di tulis dengan format Tugas 3-K-(Nomer kelompok).

Mengingat nilai waktu UTS kurang bagus maka harap mengerjakan Tugas 1-3 untuk menambah nilai.

Kuis-1

Kuis dikumpulkan ke Bu-Novi/TU terakhir pada tanggal 25 April 2009. Adapun kuisnya adalah sebagai berikut:

1. Sebutkan SQL Statement yang termasuk DDL & DML?

2. Sebutkan dan jelaskan parameter pada koneksi database mysql?

3. Apakah perbedaan pengunaan database bertip MyISAM dan InnoDB?

4. Sebutkan sistem enksripsi data pada mysql yang dapat digunakan dalam mengamankan data field tabel kita.

5. Buatkan query untuk pada data berikut ini:

  a. tampilkan nama_role dan return_url pada tabel yang ada pada modul 9.

  b. tampilkan password_login dalam bentuk tidak terenkripsi.

SQL Statement & MySQL

Pada modul sebelumnya kita telah membahas tentang sistem koneksi database PRADO ke dalam database. Pada kesempatan ini kita akan belajar terlebih dahulu tentang beberapa pengunaan SQL Statement pada MySQL dimana disini kita akan belajar secara langsung pada studi kasusnya. Untuk awal kali yang diperlukan adalah membuat database dengan cara sebagai berikut:



  1. Kita jalankan server database kita MySQL dengan menjalankan "C:\Program Files\xampp\mysql_start.bat", setelah itu akan muncul data seperti berikut ini:






Diese Eingabeforderung nicht waehrend des Running beenden


Please dont close Window while MySQL is running


MySQL is trying to start


Please wait  ...


MySQL is starting with mysql\bin\my.cnf (console)


090415  9:15:41  InnoDB: Started; log sequence number 0 2949741


090415  9:15:41 [Note] Event Scheduler: Loaded 0 events


090415  9:15:41 [Note] mysql\bin\mysqld: ready for connections.


Version: '5.1.30-community'  socket: ''  port: 3306  MySQL Community Server (GPL)





  1. Setelah itu kita akan melakukan login ke database melalui DOS secara default dengan cara seperti berikut:






C:\Program Files\xampp\mysql\bin>mysql -u root -h localhost


Welcome to the MySQL monitor.  Commands end with ; or \g.


Your MySQL connection id is 1


Server version: 5.1.30-community MySQL Community Server (GPL)


Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


mysql>





  1. Setelah itu kita akan menggunakan DDL Statement untuk membuat database dengan perintah seperti berikut:






mysql> create database modul9;


Query OK, 1 row affected (0.03 sec)


mysql> show databases;


+--------------------+


| Database           |


+--------------------+


| information_schema |


| modul9             |


| mysql              |


| phpmyadmin         |


| test               |


| webauth            |


+--------------------+


6 rows in set (0.23 sec)


mysql>





  1. Setelah database terbentuk maka kita akan masuk ke dalam database tersebut untuk membuat sebuah table adapun perintahnya adalah sebagai berikut:






mysql> use modul9;


Database changed


mysql>





  1. Setelah  muncul “database changed” maka kita telah siap untuk membuat table, sebagai panduan kita akan membuat table sebagai berikut:









Maka scriptnya DDL untuk create table adalah sebagai berikut:


mysql> create table tblrole(


-> kd_role int(2) auto_increment,


-> nama_role varchar(25) not null,


-> return_url varchar(50) not null,


-> constraint pk_modul9_tblrole_kdRole PRIMARY KEY(kd_role)


-> )engine=innodb;


Query OK, 0 rows affected (0.20 sec)


mysql> create table tbllogin(


-> user_login varchar(6) not null,


-> password_login varchar(50) not null,


-> kd_role int(2),


-> constraint pk_modul9_tbllogin_userLogin PRIMARY KEY(user_login),


-> constraint fk_modul9_tbllogin_kdRole FOREIGN KEY(kd_role) references tblrole(kd_role)


-> )engine=innodb;


Query OK, 0 rows affected (0.13 sec)


mysql> show tables;


+------------------+


| Tables_in_modul9 |


+------------------+


| tbllogin         |


| tblrole          |


+------------------+


2 rows in set (0.00 sec)





  1. Untuk melihat struktur table yang telah kita buat dapat mengunakan script SQL berikut:






mysql> desc tblrole;


+------------+-------------+------+-----+---------+----------------+


| Field      | Type        | Null | Key | Default | Extra          |


+------------+-------------+------+-----+---------+----------------+


| kd_role    | int(2)      | NO   | PRI | NULL    | auto_increment |


| nama_role  | varchar(25) | NO   |     | NULL    |                |


| return_url | varchar(50) | NO   |     | NULL    |                |


+------------+-------------+------+-----+---------+----------------+


3 rows in set (0.03 sec)


mysql> desc tbllogin;


+----------------+-------------+------+-----+---------+-------+


| Field          | Type        | Null | Key | Default | Extra |


+----------------+-------------+------+-----+---------+-------+


| user_login     | varchar(6)  | NO   | PRI | NULL    |       |


| password_login | varchar(50) | NO   |     | NULL    |       |


| kd_role        | int(2)      | YES  | MUL | NULL    |       |


+----------------+-------------+------+-----+---------+-------+


3 rows in set (0.00 sec)





  1. Setelah itu kita akan melakukan pengisian table dengan mengunakan Statement DML adalah sebagai berikut:






mysql> insert into tblrole values(null, upper('admin'), 'admin.Index');


Query OK, 1 row affected (0.05 sec)





  1. Setelah itu kita akan menampilkan data table dengan mengunakan:






mysql> select * from tblrole;


+---------+-----------+-------------+


| kd_role | nama_role | return_url  |


+---------+-----------+-------------+


|       1 | ADMIN     | admin.Index |


+---------+-----------+-------------+


1 row in set (0.00 sec)





  1. Setelah itu kita melakukan insert data pada table tbllogin sebagai berikut:






mysql> insert into tbllogin values('admin', des_encrypt('123456'), 1);


Query OK, 1 row affected (0.08 sec)


mysql> select * from tbllogin;


+------------+----------------+---------+


| user_login | password_login | kd_role |


+------------+----------------+---------+


| admin      | ?rw§Ñ^,Eo      |       1 |


+------------+----------------+---------+


1 row in set (0.00 sec)



Setelah kita belajar beberapa hal tentang SQL Statement pada MySQL berarti kita telah siap untuk membuat aplikasi login yang akan dibahas pada modul berikutnya.

Kamis, 02 April 2009

Perbaikan Nilai Kelas XI & XII

Untuk perbaikan nilai kelas XI & XII membuat paper dengan ketentuan sebagai berikut:

  1. Ukuran paragraph 1.5
  2. Ukuran Font 12
  3. Jumlah halaman minimal 3 halaman (untuk kelas XII) dan 5 halaman (untuk kelas XI).
  4. Dikumpulkan via e-mail di gurusmkbima@yahoo.co.id
  5. Batas waktu penggumupulan Kelas XII tanggal 03-04-2009 sedangkan kelas XI tanggal 04-04-2009.
  6. Untuk judul kelas XI adalah cara installasi xampp pada operating system (OS) windows, untuk kelas XII apakah itu JSP?
  7. Siswa yang mengumpulkan adalah untuk kelas XI adalah semua siswa, sedangkan siswa kelas XII adalah nilai UAS dibawah 70. Untuk nilai kelas XII sedangkan nilai kelas XI.

Demikian tugas yang saya sampaikan mohon menjadi perhatian untuk siswa-siswa yang bersangkutan.

Rabu, 01 April 2009

Nilai UAS Kelas XII


No Absensi Nama Nilai Grade Ujian

1 9 Evi S. 88 Ok Pass

2 10 Faiz R.M. 86 Ok Pass

3 3 Arum S.A. 84 Ok Pass

4 8 Eko A.S. 82 Ok Pass

5 4 Betty D.S. 80 Ok Pass

6 22 Rizky Y.H. 80 Ok Pass

7 1 Ahmad A.J. 78 Ok Pass

8 14 M. Kharis S. 78 Ok Pass

9 23 Rony C. 78 Ok Pass

10 6 Dina S. 76 Ok Pass

11 7 Doby D.P. 76 Ok Pass

12 25 Rustiwi Y. 76 Ok Pass

13 13 Martha A. 74 Ok Pass

14 18 Putri C.E. 74 Ok Pass

15 24 Rosi P. 74 Ok Pass

16 11 Fitri R. 72 Not Ok Pass

17 17 Nur Y. 72 Not Ok Pass

18 26 Siti D.S. 72 Not Ok Pass

19 2 Arizka N. A. 70 Not Ok Pass

20 19 Ratna P.N. 70 Not Ok Pass

21 5 Danik S. 68 Not Ok Remidi

22 27 Suprapti 68 Not Ok Remidi

23 29 Yossi W.A. 68 Not Ok Remidi

24 12 Guntur Y.P. 66 Not Ok Remidi

25 21 Ridla A.K.A 66 Not Ok Remidi

26 15 M. Bagir 64 Not Ok Remidi

27 16 Ninda R.S. 64 Not Ok Remidi

28 28 Titik A.W. 64 Not Ok Remidi

29 30 Gayatri L.W. 62 Not Ok Remidi

30 20 Realita B. 58 Not Ok Remidi



  Rata-Rata 72,93


Untuk yang remidi akan di umumkan jika memang dizinkan sementara yang not ok tapi tidak remidi dizinkan untuk ikut remidi. Untuk itu mohon kontak saya jika ingin mengikuti remidi bagi yang not ok tapi ingin remidi.

Nilai UTS Kelas XI


No Absensi Nama Nilai

1 26 Tri M. 52,5

2 15 Himawan R. 50

3 8 Deni R. N. 45

4 18 M. Faktur R. 45

5 3 Aditya K.P. 42,5

6 6 Bagus S. 42,5

7 9 Deniar A.S. 42,5

8 4 Ady B. 40

9 5 Arin N.L. 40

10 7 Data U. 40

11 19 Mundayani M.N 40

12 21 Oki V. Y. 40

13 22 Siti S. B. 40

14 14 Heni M. 37,5

15 23 Taufik 37,5

16 24 Tiara A. 37,5

17 25 Traliasari 37,5

18 27 Wasi L.K. 37,5

19 12 Dwi R.A. 35

20 13 Evilia S. 35

21 28 Winda S. N. 35

22 29 Yohanes E.A. 35

23 1 Achmad F.S. 32,5

24 2 Ade Y 32,5

25 16 Jaswito 32,5

26 20 Novitasari 32,5

27 10 Dessy N.I.H. 30

28 17 Karyati 30

29 11 Dian P.S. 20

Rata-Rata 37,84

Minggu, 22 Maret 2009

UTS - Kelas XI

Untuk UTS Web kelas XI Materi mulai dari modul 1-8, bentuk soal pilihan ganda dan terdapat 2 soal Kode A &  B.

Untuk materi modul bisa di download d http://gurusmkbima.blogspot.com/2009/02/download-modul-kelas-xi-dalam-pdf.html dalam format PDF yang terkompres (zip).

Untuk bentuk tampilan modul latihan file bisa dilihat secara online sebagai berikut:

  1. http://www.adisetiawan.co.nr/smkbima/modul3
  2. http://www.adisetiawan.co.nr/smkbima/modul4
  3. http://www.adisetiawan.co.nr/smkbima/modul6

Sementara untuk tampilan tugas bisa dilihat secara online pada:

  1. http://www.adisetiawan.co.nr/smkbima/tugas1
  2. http://www.adisetiawan.co.nr/smkbima/tugas2

Perlu diperhatikan komposisi nilai untuk kelas XI dapat di akses di http://gurusmkbima.blogspot.com/2009/02/kriteria-penilai-kelas-xi.html perlu diperhatikan untuk ke lulusan minimal nilai adalah 7 jika kurang dari itu siswa dinyatakan tidak naik kelas. Sehingga perlu di perhatikan komposisi nilai yang dapat membuat Anda lulus pada point mana jika nilai UTS/UAS tidak dapat mencapai nilai 100.

Database

Di sini kita akan belajar menggunakan database dengan database tingkat server yaitu MySQL, dimana didalam database MySQL terdapat 2 lisensi yaitu lisensi yang bersifat open source dengan menggunakan GNU (General Public License) dan lisensi komersial. Selain MySQL masih terdapat database yang lain seperti Microsoft SQL Server, Oracle, DB2, Postgree, dan Sybase serta masih banyak lagi yang lainnya yang semuanya termasuk kedalam RDBMS (Rational Database Management System).


MySQL dapat didefiniskan sebagai:

  • RDBMS dimana berfungsi untuk penyimpan data. Untuk menambah, mengakses, dan memproses data yang disimpan dalam sebuah database komputer.

  • Merupakan sistem manajemen database atau basis data terhubung dengan menggunakan SQL (Structured Query Language).

  • Merupakan software open source.

  • Server database MySQL mempunyai kecepatan akses cukup tinggi, mudah digunakan dan handal.

  • Dapat berkerja dengan sistem embedded.



MySQL mempunyai logo berupa ikan lumba-lumba yang bernama sakila. Nama tersebut merupakan kontribusi dari pemenang yang diadakan oleh MySQL AB yang dimenangkan oleh Ambroze Twebaze, seorang pengembang software Open Source.

Untuk mengkases SQL pada MySQL melalui browser secara umum kita menggunakan phpMyAdmin yang dapat diakses pada http://nama_server/phpmyadmin (tergantung konfigurasi server Anda). Adapun tampilan phpMyAdmin tampak pada gambar 8.1.



Gambar 8.1 Tampilan phpMyAdmin

Di dalam SQL terdapat sebuah SQL Statement yang terdiri dari:

























SQL

STATEMENT

SELECT

INSERT

UPDATE


DELETE

MERGE

Data Manipulation Language (DML)

CREATE

ALTER


DROP

RENAME

TRUNCATE

COMMENT

Data Definition Language (DDL)

GRANT

REVOKE

Data Control Language (DCL)

COMMIT


ROLLBACK

SAVEPOINT

Transaction Control


Untuk menghubungkan PHP kita ke dalam MySQL kita dapat menggunakan perintah sebagai berikut:

$conn = mysql_connect($nama_server, $nama_username, $password);


$conn = mysql_pconnect($nama_server, $nama_username, $password);


kemudian melakukan pemilihan nama databasenya dengan menggunakan

mysql_select_db($nama_database, $conn);

Berikut ini adalah gambaran dari struktur MySQL Server yang terdapat dalam Server kita, bagan ini diambil untuk versi MySQL 5.1 yang perlu diperhatikan disini adalah “Storage Engine” dikarenakan sistem ini sangat berpengaruh terhadap sistem yang akan kita bangun, pada dasarnya secara sederhana terdapat 2 engine yang sering digunakan adalah “MyISAM” dan “InnoDB”, untuk melihat lebih detail silahkan lihat gambar 8.2 tentang schema MySQL Server Database.

Gambar 8.2 Schema MySQL Server

sementara untuk menjalankan database dengan menggunakan PRADO kita akan membahas beberapa metode terhubung dengan database melalui PRADO adalah sebagai berikut:




  1. Data Access Object (DAO).

  2. Active Record (AR).

  3. Active Record Scaffold (ARS).

  4. SqlMap Data Mapper (SDM).


Untuk masing-masing metode akses database diatas memiliki kelebihan dan kekurangan sesuai dengan kebutuhan sistem yang akan kita buat. Di dalam koneksi database pada PRADO kita harus melakukan setting file application.xml kita pada path module. Perlu diperhatikan bahwa sistem koneksi database PRADO dengan memanfaatkan library dari PHP yaitu PDO sehingga konfigurasi server kita harus di cek apakah PDO sudah terinstall dengan database yang kita pakai. Untuk informasi lebih lanjut tentang PDO dapat diakses pada http://www.php.net/manual/en/ref.pdo.php.

Untuk mensetting database kita kedalam application.xml maka kita dapat menuliskan kodenya sebagai berikut:




<module id="myDB" class="System.Data.TDataSourceConfig">

<database ConnectionString="" Username="" Password="" />


</module>



Dimana untuk ConnectionString bisa diakses sesuai dengan database yang akan kita bangun, tampak pada table berikut ini:






















DATABASE

ConnectionString

MySQL

mysql:host=<nama server>;dbname=<nama db>

SQLite

sqlite:<lokasi filenya>

ODBC

odbc:<nama odbcnya>


Untuk informasi konfigurasi database yang lainnya silahkan kunjungi http://www.php.net/manual/en/ref.pdo.php#pdo.drivers untuk mengaksesnya. Untuk pembahasan lebih lanjut tentang pemanfaatan database akan dibahas pada modul berikutnya.