Showing posts with label RANCANGAN SISTEM. Show all posts
Showing posts with label RANCANGAN SISTEM. Show all posts

Tuesday 17 July 2012

MEMBUAT APLIKASI PENCARIAN DATA MENGGUNAKAN DATABASE (Ms. Access 2010 & Java Netbeans)

Standard
Suatu cara untuk memecah program menjadi beberapa bagian, sehingga kita dapat dengan mudah ketika mengerjakan suatu program tersebut bisa dilakukan pembagian tugas kepada beberapa orang, hal ini dalam java disebut sebagai method atau fungsi. Pada tutorial ini kita akan dikenalkan tentang bagaimana mempelajari dan menerapkan method dalam program yang kita buat, ketika kita sudah mendevelop program dalam skala besar maka kita perlu menggunakan yang namanya method. 

Microsoft Office Access, sebelumnya dikenal sebagai Microsoft Access, adalah sebuah sistem manajemen database relasional dari Microsoft yang mengkombinasikan relasional Microsoft Jet Database Mesin dengan antarmuka pengguna grafis dan perangkat lunak-alat pengembangan. Ini adalah anggota dari Microsoft Office suite aplikasi, termasuk dalam edisi profesional dan lebih tinggi atau dijual secara terpisah. Pada 12 Mei 2010, versi terkini dari Microsoft Access 2010 dirilis oleh Microsoft pada Office 2010, Microsoft Office Access 2007 adalah versi sebelumnya. 
Method adalah kumpulan program yang mempunyai nama. Program harus dibungkus dalam method. Dengan method kita bisa memanggil kumpulan program hanya dengan memanggil nama methodnya, pekerjaan jadi lebih singkat dan tidak boros menuliskan program, program menjadi lebih terstruktur, praktis, dan efisien. 
Bentuk umum: 
<nama_method>( <parameter>); 
//menggunakan tanda kurung setelah nama method itu kuncinya 
//parameter bersifat opsional, tergantung kebutuhan 
Ada 2 jenis method: 
1. Method yang tidak mengembalikan data (diberi tipe void) 
Ex: static void christianto(); 
//method static bernama christianto yang tidak mengembalikan nilai. 
2. Method yang bisa mengembalilkan nilai menggunakan statement return dan tipe data. 
Ex: static int christianto(int b); 
return b; 
//method bernama christianto yang mengembalikan nilai integer 
//mempunyai 1 parameter yaitu b dan bertipe integer 
//return adalah keyword untuk mengembalikan nilai 

Dengan catatan : 
  • Method yang dipanggil dari dalam method static harus static. 
  • Method tidak static hanya bisa dipanggil melalui method tidak static dan mekanisme instansiasi 
  • Jika memanggil method dalam satu kelas method harus static 
  • Method static hanya bisa memanggil method static 
  • Parameter adalah suatu nilai yang dapat diubah-ubah dari luar untuk menentukan hasil. 
  • Mengirim n parameter actual//yang dimain 
  • Menerima n parameter formal. 
JDBC kependekan dari (Java DataBase Connectivity), yang merupakan sebuah API (Application Programming Interface) berisi sekumpulan class-class Java, interface dan exception. JDBC juga sebuah spesifikasi yang baik bagi vendor driver JDBC maupun Driver Manager bagi pengembang aplikasi yang memanfaatkan JDBC. JDBC sangat populer dilingkungan pemrograman Java sebagai standar pengaksesan database. Beberapa vendor RDBMS (Relational DataBase Management Systems), seperti MySQL, Oracle, PostgreSQL, menyediakan driver JDBC khusus untuk produk mereka. 
MS Access menyimpan data dalam format sendiri berdasarkan Jet Engine Akses Database. Hal ini juga dapat mengimpor atau link langsung ke data yang disimpan dalam aplikasi dan database. 
Pengembang perangkat lunak dan arsitek data yang dapat menggunakan Microsoft Access untuk mengembangkan perangkat lunak aplikasi , dan ” power user “dapat menggunakannya untuk membangun aplikasi sederhana. Seperti aplikasi Office , Akses didukung oleh Visual Basic for Applications , sebuah berorientasi objek pemrograman bahasa yang dapat referensi berbagai benda termasuk DAO (Data Access Objects), ActiveX Data Objects, dan banyak komponen ActiveX lainnya. Obyek visual yang digunakan dalam bentuk dan laporan mengekspos metode dan properti di lingkungan pemrograman VBA, dan kode VBA modul dapat mendeklarasikan dan memanggil Windows sistem operasi fungsi. 

Pengembangan 
Access menyimpan tabel database semua, query, form, laporan, macro, dan modul dalam database Jet akses sebagai file tunggal. 
Untuk pengembangan query, menawarkan akses “Query Designer”, antarmuka pengguna grafis yang memungkinkan pengguna untuk membangun query tanpa pengetahuan bahasa pemrograman SQL. Dalam Query Designer, pengguna dapat “menunjukkan” DataSources dari query (yang dapat tabel atau query) dan pilih field yang ingin mereka kembali dengan mengklik dan menyeret mereka ke dalam grid. Satu dapat mengatur bergabung denganmengklik dan menyeret mereka ke dalam grid. Satu dapat mengatur bergabung dengan mengklik dan menyeret field dalam tabel untuk bidang dalam tabel lainnya. Akses memungkinkan pengguna untuk melihat dan memanipulasi kode SQL jika diinginkan. Setiap meja Akses, termasuk tabel yang terhubung dari sumber data yang berbeda, dapat digunakan dalam query. 
Akses juga mendukung penciptaan “pass-through query”. Ini potongan kode SQL dapat alamat sumber data eksternal melalui penggunaan koneksi ODBC pada mesin lokal. Hal ini memungkinkan pengguna untuk berinteraksi dengan data yang tersimpan di luar program Akses tanpa menggunakan tabel terkait atau Jet. [23] Pengguna membangun pass-melalui query menggunakan sintaks SQL yang didukung oleh sumber data eksternal. 

Cara mealakukan koneksi database dengan java netbean: 
I. Sebelum melakukan koneksi 
Tahap ini adalah tahap yang harus dilakukan sebelum kita mulai menuliskan kode untuk koneksi database. 
Sebelum membuat program/aplikasi yang menggunakan koneksi database, terlebih dahulu kita lakukan hal-hal berikut: 
1. Siapkan Driver untuk Database yang kita gunakan 
Driver ini bisaanya disediakan oleh para pengembang database. Untuk mendownload nya silahkan download langsung di situs resminya. 
Contoh: untuk driver MySQL bisa di dapatkan di :http://dev.mysql.com/ 
2. setelah drivernya kita dapatkan, maka langkah selanjutnya adalah setting classpath. 
Pelajari lebih lanjut tentang setting classpath di sini: URL ubah Classpath. 
3. setelah kedua langkah diatas dilakukan, lanjut ke bgian II. 

II. Melakukan koneksi 
Untuk melakukan koneksi ke database, sangat mudah. Hanya ada beberapa langkah yang harus dilakukan. Berikut saya paparkan caranya. 
Sebagai contoh saya menggunakan mysql (untuk database lain langkah-langkah yang harus dilakukan sama) 
1. Load Driver Database. 
Untuk melakukan hal ini gunakan syntax berikut: 
Class.forName(“com.mysql.jdbc.Driver”); // sesuaikan dengan driver databasenya 
2. Koneksi dan Panggil URL databasenya. 
Setelah driver databasenya ditentukan, pannggil URL databasenya: 
Connection con=DriverManager.getConnection(url, user, password); 
url : URL database 
user : username database 
password : password database 
untuk mysql syntaknya dapat diubah menjadi sebagai berikut 
Connection con=DriverManager.getConnection(“jdbc:mysql:http://localhost/table_coba”, “root”, “blackonta”); 
3. buat Statement 
pada tahap in buat query yang nantinya akan di eksekusi oleh data base: 
stmt = conn.createStatement(); // step 4 
4. Eksekusi perintah (Bisaanya berupa Statement SQL) 
rs = stmt.executeQuery("SELECT * FROM tabel02"); 
5. Proses Hasil 
Pada tahap ini hasil yang di dapat bisa kita proses lebih lanjut, dapat langsung ditampilkan dengan System.out.println(); atau mau ditampilkan di Grid untuk GUI Interface 
6. Tutup Koneksi. 
Setelah didapatkan hasil yang diinginkan, tutup koneksinya: 
stmt.close(); 
conn.close(); 

Langkah Kerja 
Pada tutorial ini akan membahas cara pembuatan aplikasi pencarian menggunakan netbeans pada database yang dibuat menggunakan microsoft access. Berikut langkah kerja dari masing-masing aplikasi : 
1. Membuat Database Data Nilai Mahasiswa 
a. Buatlah database dengan field-field sebagai berikut : 

Setelah selesai simpan tabel dengan nama MasterMhs. Kemudian isilah beberapa data seperti gambar berikut ini : 

b. Simpan database DataNilaiMahasiswa pada direktori yang anda ketahui. 

2. Koneksi Database Ms.Access dengan Netbeans 
a. Buka Folder Control Panel – Administrative Tools - Data Sources (ODBC). Hingga muncul kotak dialog seperti gambar berikut ini: 

b. Klik Add... – Pilih Microsoft Access Driver (*.mdb, *accdb) – Klik Finish 

c. Muncul kotak dialog ODBC Microsoft Access Setup – Klik Select 

d. Carilah file microsoft Access yang telah kita buat tadi – Klik OK. Jangan lupa closelah program microsoft access agar dapat di inputkan pada tahap ini. 

e. Beri nama Data Source DataNilaiMahasiswa – Klik Advanced – Isi Login Name : admin | Password : admin – Klik OK 

3. Membuat Koneksi Pada sisi Java Netbeans 
a. Buatlah project seperti biasa dengan nama koneksi 

b. Buatlah sebuah Java class dengan nama koneksi dengan cara klik kanan koneksi – new – java class 

c. Pada Java Class ketikkan kode program berikut ini: 



d. Tekan F11 untuk mengcompile dan jalankan aplikasi dengan menekan tombol F6 pada Keyboard. 

4. Program Utama (NewJFrameCari) 
a. Buatlah sebuah JFrame Form dengan nama NewJFrameCari dengan cara klik kanan koneksi – new – JFrame Form 

b. Buatlah design tampilan menggunakan komponen swing pada menu palette seperti gambar berikut ini: 



Pada JComboBox 1 dan JComboBox 2 Isilah item sebagai berikut : 
Jcombobox1: isilah A, B, C, D 
Jcombobox2: isilah 1, 2, 3, 4, 5, 6 

c. Pada JFrame NewJFrameCari ketikkan kode program berikut ini: 











d. Pada jButton1 berilah even Mouse- Mouseclicked kemudian ketikkan kode program berikut ini: 



e. Tekan F11 untuk mengcompile dan jalankan aplikasi dengan menekan tombol F6 pada Keyboard. 

Pembahasan 
1. Analisa Program Koneksi 
Kode Program 



Pada kode program ini mengimport javax.swing dan java..sql. Pada method koneksiDatabase yang tidak mempunyai tipe balikan nilai ini menggunakan struktur kontrol try...catch yang serupa dengan if...else. Struktur kontrol ini digunakan untuk koneksi database. Dapat kita lihat pada kode program di dalam Try mengkonfigurasikan jdbeodbeDriver yang telah kita buat tadi dengan nama database DataNilaiMahasiswa, login name (uid): admin, password (pw): admin. Untuk test koneksi disini menggunakan bantuan JoptionPane untuk menampilkanya. Apabila koneksi terhubung maka akan muncul kotak dialog report koneksi dengan isi koneksi berhasil seperti kode program dibawah ini: 


Apabila koneksi tidak terhubung atau gagal maka akan menjalankan fungsi dari catch yang berisi pesan error. 




Analisa Output Program Koneksi 
Apabila database, username, password telah sesuai dan terhubung, maka akan tampil kotak dialog report koneksi yang berisi koneksi berhasil. Sedangkan jika pada database, username dan password salah maka akan muncul pesan error seperti gambar berikut ini: 



Pada program diatas praktikan mencoba menyalahkan bagian nama database yaitu mengganti nama database DataNilaiMahasiswa2 sehingga muncul pesan error pada outputnya yang menyatakan bahwa konfigurasi dengan nama DataNilaiMahasiswa2 tidak ada. 

2. Analisa Program NewJFrameCari 
Kode Program 



Pada gambar kode program diatas merupakan koneksi ke database seperti yang sudah praktikan bahas sebelumnya. 
Sedangkan kode program utamanya ada pada gambar berikut ini: 



Pada kode program diatas menggunakan even mouseclicked pada button cari (jButton1). Kemudian memanggil method koneksiDatabase yang didalamnya menggunakan struktur kontrol perulangan if...else. 
Pada kode program 165 yaitu pada jTextFiel txnim merupakan kolom inputan yang bertipe data string. Kemudian pada baris 166 merupakan proses pembuatan konfigurasi (con) statement. Pada baris 167 merupakan perintah sql yaitu membuka tabel MasterMhs yang di spesifikan pada field nim dengan kata kunci yang diketikkan pada txnim dengan perintah like pada query sql. Pada baris 168 merupakan Resulset membuat variabel rs yang berisi statement.executeQuery(sql) yaitu akan menjalankan query sql pada baris 167 tadi. Pada baris 170-176 merupakan proses cetak pada jTextField sesuai data kolom yang berada pada file microsoft access yang telah kita buat yang dibaca dari kiri ke kanan. Kemudian pada baris 177, 178 menunjukkan apabila tidak ada data yang dicari maka akan tampil kotak dialog dengan pesan DATA TIDAK ADA DALAM DATABASE. Kemudiant statement close atau selesai. Untuk baris 180-183 hanya untuk menampilkan pesan error apabila koneksi database tidak dapat terhubung seperti yang sudah praktikan ulas pada program sebelumnya. 

Analisa Output Program NewJFrameCari 

Gambar diatas merupakan tampilan awal dari program cari. 

Apabila kita mengetikkan input pada nim M113 kemudian mengklik Cari maka akan tampil data sesuai pada database microsoft access yang telah kita buat sebelumnya: 



Sedangkan apabila kita menginputkan data M114 seperti gambar berikut ini: 
Maka akan muncul pesan DATA TIDAK ADA DALAM DATABASE sesuai kode program yang telah kita ketikkan diatas tadi. 

Kesimpulan 
Koneksi database dapat dilakukan oleh program netbeans dengan mengkonfigurasinya terlebih dahulu. Kita pun harus mensetting sisi sistem operasi yaitu pada Data Sources (ODBC) agar database yang kita buat dikenali oleh program netbeans. 
Pada program diatas membahas penggunaan metode pencarian yaitu menggunakan perintah like pada query sql untuk mencari data pada microsoft access. 
Method adalah kumpulan program yang mempunyai nama. Program harus dibungkus dalam method. Dengan method kita bisa memanggil kumpulan program hanya dengan memanggil nama methodnya, pekerjaan jadi lebih singkat dan tidak boros menuliskan program, program menjadi lebih terstruktur, praktis, dan efisien. 
Pendeklarasian method adalah sebagai berikut : 
<nama_method>( <parameter>); 
//menggunakan tanda kurung setelah nama method itu kuncinya 
//parameter bersifat opsional, tergantung kebutuhan Ada 2 jenis method: (1) Method yang tidak mengembalikan data (diberi tipe void). (2) Method yang bisa mengembalilkan nilai menggunakan statement return dan tipe data. Method yang dipanggil dari dalam method static harus static, method tidak static hanya bisa dipanggil melalui method tidak statik dan mekanisme instansiasi. Jika memanggil method dalam satu kelas method harus static, method static hanya bisa memanggil method yang static.

Monday 16 July 2012

MEMBUAT WEBSERVICE SERVER

Standard
Layanan web merupakan fenomena yang sangat panas saat ini karena, banyak kelebihan yang ditawarkan oleh Web Service terutama interoperabilitas tinggi dan penggunaannya yang dapat diakses kapanpun dan dimanapun selama mesin kita terhubung oleh jaringan internet salah satunya.
Layanan web Sepenuhnya berdasarkan standard web dan xml. Web Service dapat membantu: 
1. Perantara pada integrasi platform sepanjang eksekusi mesin virtual. 
2. Integrasi antara Web dan OO middleware. 
3. Integrasi dari aliran kerja terisolasi dan sevice-service (Web Services Flow Language - WSFL). 
4. Pertukaran data pada aplikasi yang berbeda-beda (X-Schema, XSLT ++) 
5. (Masa depan: standardisasi dari info konteks antara web servis dan klien – integrasi servis horizontal). 
6. Pemain utama dan standard-standard 
Keuntungan penggunaan Web Service: 1) Format penggunaan terbuka untuk semua platform. 2) Mudah di mengerti dan mudah men-debug. 3) Dukungan interface yang stabil. 4) Menggunakan standard-standard “membuka service sekali” dan mempunyai pemakai banyak. 5) Mudah untuk menengahi pesan-pesan proses dan menambahkan nilai. 6) Routing and pengiriman. 7) Security. 8) management and monitoring. 9) schema and service design. 10) Akselerasi. 11) mudah untuk mengembangkan dengan semantic transport tambahan. 12) Terbuka, standard-standard berbasis teks. 13) Pencapaian modular. 14) Tidak mahal untuk diimplementasikan (relatif). 15) Mengurangi biaya integrasi aplikasi enterprise. 16) Implementasi yang incremental. 
Mekanisme Kerja: Sebelum memasuki mekanisme kerja yang terjadi pada Web Service, akan dibahas terlebih dahulu komponen-kompenen yang mempunyai peranan penting pada Web Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service itu sendiri, dimana standard-standard web service adalah sebagai berikut: WSDL Web Services Description Language http://www.w3.org/TR/wsdl Deskripsi-deskripsi dari web service UDDI Universal Discovery, Description & Integration http://www.uddi.org/specification.html Registry mengenai deskripsi servis SOAP Simple Object Access Protocol http://www.w3.org/TR/SOAP/ Protokol transport untuk berkomunikasi antar web service Standard-standard lain: WSRP, WSIA, WSXL. Selain standard-standard Web Service, juga ada Bagian-bagian Web Service (Web Service Dumpstack) yang mendeskripsikan task-task yang akan terjadi pada proses berjalannya web service, dimana task-task tersebut antara lain: Wire Protocols, Description, Discovery. Untuk lebih lanjut mengenai bagian-bagian Web Service maka dapat dilihat ilustrasinya pada gambar 5: Bagian-bagian Web Service. 

Desain Database
Struktur Tabel
Berikut ini struktur tabel dari rancangan sistem webservice pada database nilai mahasiswa: 


Dalam tutorial ini kami hanya membuat satu buah tabel saja yaitu tabel mahasiswa yang terdiri dari tujuh buah field.


Script (Source Code)
Berikut adalah kode program untuk sistem webservice pada database nilai mahasiswa:
1. Kode Program Database webservice data nilai mahasiswa

CREATE TABLE IF NOT EXISTS `mahasiswa` ( 
`NIM` varchar(8) NOT NULL, 
`Nama` varchar(25) NOT NULL, 
`Kelas` varchar(3) NOT NULL, 
`Kelompok` varchar(3) NOT NULL, 
`Tugas` int(11) NOT NULL, 
`UTS` int(11) NOT NULL, 
`UAS` int(11) NOT NULL, 
PRIMARY KEY (`NIM`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

INSERT INTO `mahasiswa` (`NIM`, `Nama`, `Kelas`, `Kelompok`, `Tugas`, `UTS`, `UAS`) VALUES 
('M3110111', 'Nur Rochim', 'TIB', '1', 85, 90, 92), 
('M3110112', 'Nurgust Fikrin', 'TIB', '2', 80, 92, 75), 
('M3110110', 'Nugroho Dwi H', 'TIB', '1', 79, 87, 85), 
('M3110089', 'Linda Anugrah', 'TIB', '2', 70, 90, 85), 
('M3110086', 'Laras Seytowati', 'TIB', '3', 71, 92, 80), 
('M3110155', 'Trisnayanti', 'TIC', '4', 69, 90, 90), 
('M3110156', 'Vena', 'TIC', '4', 89, 80, 80), 
('M3110056', 'Fajar Faruq', 'TIA', '5', 89, 82, 85), 
('M3110021', 'Asih Putri', 'TIA', '5', 89, 72, 85);

2. Kode Program Webservice Php
configureWSDL("mahasiswaWSDL", "urn:mahasiswaWSDL"); 
$server->wsdl->addComplexType( 
'mahasiswa', 
'complexType', 
'struct', 
'all', 
'', 
array( 
'nim'=>array('name'=>'nim', 'type'=>'xsd:string'), 
'nama'=>array('name'=>'nama', 'type'=>'xsd:string'), 
'kelas'=>array('name'=>'kelas', 'type'=>'xsd:string'), 
'kelompok'=>array('name'=>'kelompok', 'type'=>'xsd:string'), 
'tugas'=>array('name'=>'tugas', 'type'=>'xsd:string'), 
'uts'=>array('name'=>'uts', 'type'=>'xsd:string'), 
'uas'=>array('name'=>'uas', 'type'=>'xsd:string') 
) 
); 

$server->wsdl->addComplexType( 
'arrayOfmahasiswa', 
'complexType', 
'array', 
'', 
'SOAP-ENC:Array', 
array(), 
array(array('ref'=>'SOAP-ENC:arrayType', 'wsdl:arrayType'=>'mahasiswa[]')), 
'mahasiswa' 
); 

$server->wsdl->addComplexType( 
'retVal', 
'complexType', 
'struct', 
'all', 
'', 
array( 
'retNum'=>array('name'=>'retNum', 'type'=>'xsd:integer'), 
'retStr'=>array('name'=>'retStr', 'type'=>'xsd:string') 
) 
); 

//membuat register(simpan) methods 
$server->register( 
'simpan', 
array('datamahasiswa'=>'tns:mahasiswa'), 
array('return'=>'tns:retVal'), 
'urn:mahasiswaWSDL', 
'urn:mahasiswaWSDL#simpan', 
'rpc', 
'encoded', 
'metode simpan() digunakan untuk proses simpan data kelompok mahasiswa' 
); 

//membuat register(tampil) methods 
$server->register( 
'tampil', 
array('prodi'=>'xsd:string'), 
//array('return'=>'tns:mahasiswa[]'),// 
array('return'=>'tns:arrayOfmahasiswa'), 
'urn:mahasiswaWSDL', 
'urn:mahasiswaWSDL#tampil', 
'rpc', 
'encoded', 
'metode tampil() digunakan untuk menampilkan seluruh data nilai mahasiswa berdasarkan nomor induk mahasiswa'
); 

//membuat register(cari) methods 
$server->register( 
'cari', 
array('nim'=>'xsd:string'), 
array('return'=>'tns:mahasiswa'), 
'urn:mahasiswaWSDL', 
'urn:mahasiswaWSDL#cari', 
'rpc', 
'encoded', 
'metode cari() digunakan untuk melakukan pencarian mahasiswa berdasarkan kata kunci nim ' 
); 

//membuat function simpan 
function simpan($datamahasiswa){ 
$cn = mysql_connect('localhost', 'root', ''); 
mysql_select_db('mahasiswa_ocim', $cn); 
if (!empty($datamahasiswa['nim'])){ 
$nim = $datamahasiswa['nim']; 
$nama = $datamahasiswa['nama']; 
$kelas = $datamahasiswa['kelas']; 
$kelompok = $datamahasiswa['kelompok']; 
$tugas = $datamahasiswa['tugas']; 
$uts = $datamahasiswa['uts']; 
$uas = $datamahasiswa['uas']; 
$sql="UPDATE mahasiswa SET Kelompok='$kelompok' WHERE NIM='$nim' "; 
mysql_query($sql, $cn); 
$affected = mysql_affected_rows($cn); 
$msg = ($affected > 0)?"berhasil":"gagal"; 
return array('retNum'=>$affected, 'retStr'=>'Proses simpan data kelompok mahasiswa ' . $msg . '!'); 
}else{ 
return array('retNum'=>0, 'retStr'=>'Data mahasiswa yang dimasukkan tidak valid!'); } }
//membuat function tampil 
function tampil($kelompok){ 
$cn = mysql_connect('localhost', 'root', ''); 
mysql_select_db('mahasiswa_ocim', $cn); 
if ($kelompok=="SEMUA"){ 
$sql = "SELECT p.nim, w.nama, w.kelas, p.kelompok, w.tugas, w.uts, w.uas FROM mahasiswa w, posisi p WHERE p.nim=w.nim "; } else { 
$sql = "SELECT p.nim, w.nama, w.kelas, p.kelompok, w.tugas, w.uts, w.uas FROM mahasiswa w, posisi p WHERE p.nim=w.nim AND w.kelompok='$kelompok' ";} 
$hasil=mysql_query($sql, $cn); 
if (mysql_num_rows($hasil)){ 
while ($baris=mysql_fetch_row($hasil)){ 
$items[]=array('nim'=>$baris[0], 
'nama'=>$baris[1], 
'kelas'=>$baris[2], 
'kelompok'=>$baris[3], 
'tugas'=>$baris[4], 
'uts'=>$baris[5], 
'uas'=>$baris[6] ); 
} 

} else { 

$items[]=array('nim'=>'n/a', 'nama'=>'n/a', 'kelas'=>'n/a', 'kelompok'=>'n/a', 'tugas'=>'n/a', 'uts'=>'n/a', 'uas'=>'n/a' ); 
} 
return $items; 
} 

//membuat function cari 
function cari($nim){ 
$cn = mysql_connect('localhost', 'root', ''); 
mysql_select_db('mahasiswa_ocim', $cn); 
$sql = "SELECT SELECT p.nim, w.nama, w.kelas, p.kelompok, w.tugas, w.uts, w.uas FROM mahasiswa w, posisi p WHERE p.nim=w.nim AND p.nim='$nim' "; 
$hasil=mysql_query($sql, $cn); 
if (mysql_num_rows($hasil)){ 
$baris=mysql_fetch_row($hasil); 
$items=array('nim'=>$baris[0], 
'nama'=>$baris[1], 

'kelas'=>$baris[2], 

'kelompok'=>$baris[3], 
'tugas'=>$baris[4], 
'uts'=>$baris[5], 
'uas'=>$baris[6] ); 
} else { 
$items=array('nim'=>'n/a', 'nama'=>'n/a', 'kelas'=>'n/a', 'kelompok'=>'n/a', 'tugas'=>'n/a', 'uts'=>'n/a', 'uas'=>'n/a'); 
} 
return $items; 
} 
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:''; 
$server->service($HTTP_RAW_POST_DATA); 
?>

3. File Php Lampiran
Untuk membuat webservice server, kita harus melampirkan file-file librarynya, diantaranya yaitu
File-file diatas dapat di unduh melalui link DOWNLOAD. Lampirkan satu folder dengan file php webservice server.

D. Hasil Program Webservice Server
Berikut adalah tampilan hasil cetakan (generate) dari program yang telah dibuat:
Terdapat tiga buah menu yaitu simpan, tampil dan cari. Apabila kita klik link-link tersebut maka akan tampil informasi mengenai file program yang telah kita buat diatas.
Pada link Simpan  (terlampir dalam file, bisa didownload dibawah)
 
Pada link tampil  (terlampir dalam file, bisa didownload dibawah)
 
Pada Link Cari  (terlampir dalam file, bisa didownload dibawah)
 
Pada Link WSDL (terlampir dalam file, bisa didownload dibawah) 

Kesimpulan 
Dari tutorial ini dapat diambil kesimpulan diantaranya:
  1. Web service adalah teknologi dengan risiko rendah (relatif) yang dapat digunakan untuk mengimplementasikan strategi bisnis berisiko tinggi. 
  2. Web service berdasarkan middleware OO, XML dan konsep Internet Protokol, dan membantu pergerakkan dari sistem-sistem heterogen menuju sistem yang lebih homogen 
  3. Banyak-vendor turut membuat standard 
  4. Membuka semua jenis kesempatan untuk semua orang 
  5. Incremental, non-intimidating, minimal technology play 
  6. Kostumer memulai tanpa menunggu vendor-vendor 
  7. Web service mentransformasikan web browser centris menjadi servis centris 
  8. Tool-tool yang lebih baik bersifat open source

RANCANGAN SISTEM FEED RSS DAFTAR BUKU MENGGUNAKAN PHP DAN XML

Standard
RSS digunakan untuk menggambarkan standar de facto untuk sindikasi konten Web. RSS adalah berbasis XML dan dapat digunakan dalam cara yang berbeda untuk distribusi konten, penggunaan yang paling luas adalah untuk mendistribusikan berita utama di Web.
Jadi, sebuah situs web mengizinkan situs lain untuk mempublikasikan beberapa isinya dengan sebuah dokumen RSS. Pengguna dapat membaca konten RSS yang terdistribusi dan dapat menggunakan konten pada situs yang berbeda. Konten tersebut dapat mencakup seperti feed berita, daftar acara, berita, headline, update proyek, kutipan dari forum diskusi atau bahkan informasi perusahaan.

Disini saya akan mencoba membuat feed/rss toko buku, berikut ini rancangan dan source code nya:
1. Relasi Tabel
Dari rancangan sistem feed rss daftar buku dapat digambarkan skema databasenya sebagai berikut:

2. Struktur Tabel
Berikut ini struktur tabel dari rancangan sistem feed rss daftar buku:
a. Tabel Buku

b. Tabel detailtransaksi

c. Tabel kategori

d. Tabel transaksi

Script (Source Code)
Berikut adalah kode program untuk sistem rancangan feed rss daftar buku: 
1. Kode Program Generate Tabel 

CREATE TABLE IF NOT EXISTS `buku` ( 
`idbuku` varchar(4) NOT NULL, 
`judul` varchar(30) NOT NULL, 
`harga` int(10) NOT NULL, 
`idkategori` varchar(4) NOT NULL, 
PRIMARY KEY (`idbuku`), 
KEY `idkategori` (`idkategori`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `buku` (`idbuku`, `judul`, `harga`, `idkategori`) VALUES 
('B001', 'Dongen si unyil', 30000, 'K001'), 
('B002', 'Agama Islam', 50000, 'K003'); 
CREATE TABLE IF NOT EXISTS `detailtransaksi` ( 
`iddetail` int(11) NOT NULL AUTO_INCREMENT, 
`idtransaksi` varchar(6) NOT NULL, 
`idbuku` varchar(4) NOT NULL, 
`jumlah` int(3) NOT NULL, 
PRIMARY KEY (`iddetail`), 
KEY `idtransaksi` (`idtransaksi`), 
KEY `idbuku` (`idbuku`) 
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; 
INSERT INTO `detailtransaksi` (`iddetail`, `idtransaksi`, `idbuku`, `jumlah`) VALUES 
(1, 'T00001', 'B001', 2), 
(2, 'T00001', 'B002', 3), 
(3, 'T00002', 'B001', 1), 
(4, 'T00002', 'B002', 1); 
CREATE TABLE IF NOT EXISTS `kategori` ( 
`idkategori` varchar(4) NOT NULL, 
`namakategori` varchar(30) NOT NULL, 
PRIMARY KEY (`idkategori`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `kategori` (`idkategori`, `namakategori`) VALUES 
('K001', 'Cerita'), 
('K003', 'Agama'), 
('K004', 'olahraga'), 
('K005', 'Komputer'), 
('K006', 'Politik'); CREATE TABLE IF NOT EXISTS `transaksi` ( 
`idtransaksi` varchar(6) NOT NULL, 
`pembeli` varchar(30) NOT NULL, 
`tanggal` date NOT NULL, 
PRIMARY KEY (`idtransaksi`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
INSERT INTO `transaksi` (`idtransaksi`, `pembeli`, `tanggal`) VALUES 
('T00001', 'rusdi', '2012-05-01'), 
('T00002', 'ocim', '2012-05-01'); ALTER TABLE `buku` 
ADD CONSTRAINT `buku_ibfk_1` FOREIGN KEY (`idkategori`) REFERENCES `kategori` (`idkategori`) ON DELETE NO ACTION ON UPDATE CASCADE; ALTER TABLE `detailtransaksi` 
ADD CONSTRAINT `detailtransaksi_ibfk_2` FOREIGN KEY (`idbuku`) REFERENCES `buku` (`idbuku`) ON DELETE NO ACTION ON UPDATE CASCADE, 
ADD CONSTRAINT `detailtransaksi_ibfk_1` FOREIGN KEY (`idtransaksi`) REFERENCES `transaksi` (`idtransaksi`) ON DELETE NO ACTION ON UPDATE CASCADE;
2. Kode Program Generate dan Menampilkan XML 
<?php include "koneksi.php";
$sql = mysql_query("SELECT buku.*, kategori.* FROM buku inner join kategori WHERE (buku.idkategori=kategori.idkategori)");
$file = fopen("rss.xml", "w");
fwrite($file, '<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>Membuat RSS Dengan Database dan xml</title>
<link>http://student.d3ti.mipa.uns.ac.id/ocim</link>
<description>DAFTAR BUKU TI-B 2010</description>
<language>en-us</language>');
while($r=mysql_fetch_array($sql)){
//$isi_berita = htmlentities(strip_tags(nl2br($r[idkategori]))); // membuat paragraf pada isi berita dan mengabaikan tag html
//$isi = substr($isi_berita,0,220); // ambil sebanyak 220 karakter
//$isi = substr($isi_berita,0,strrpos($isi," ")); // potong per spasi kalimat
fwrite($file, "<item>
<title>$r[idbuku] | $r[judul]</title>
<description>Harga = $r[harga], Kategori = $r[namakategori]</description>
</item>");
}
fwrite($file, "</channel></rss>");
fclose($file);
$file="rss.xml";
$baca=fopen($file, 'r');
$lihat=fread($baca, filesize($file));
fclose($baca);
echo $lihat;
?>
3. Kode Program Form Inputan Buku 
<?php include('menu.php'); include('koneksi.php');
$hasil=mysql_query("SELECT kategori.*
FROM kategori");
?>
<h1>INPUT BUKU</h1>
<form method="POST" action="terimabuku.php">
<pre>
ID Buku <input type="text" name="idbuku">
Judul Buku <input type="text" name="judul">
Harga <input type="text" name="harga">
Kategori <select name="idkategori">
<?php while($cetak=mysql_fetch_array($hasil)){
echo "<option value=".$cetak['idkategori'].">".$cetak['namakategori']."</option>";}
?>
</select>
</pre>
<input type="submit" value="Input">
</form>
4. Kode Program Pengolahan Form Inputan Buku
<?php  $idbuku=$_POST['idbuku'];  
$judul=$_POST['judul'];  
$harga=$_POST['harga'];  
$idkategori=$_POST['idkategori'];  
include ('koneksi.php');  
$hasil = mysql_query("INSERT INTO buku (idbuku, judul, harga, idkategori) VALUES ('$idbuku', '$judul', '$harga', '$idkategori');");  
if ($hasil==1){echo "Data berhasil di input";}  
else {echo "Data gagal di input";}  
echo "<br><a href='cetakbuku.php'>Lihat Hasil</a>";  
?>
D. Lampiran File XML 
Berikut adalah tampilan hasil cetakan (generate) dari program yang telah dibuat: 

Berikut Kode Program XML
<?php  include "koneksi.php";  
$sql = mysql_query("SELECT buku.*, kategori.*  
FROM buku inner join kategori  
WHERE (buku.idkategori=kategori.idkategori)");  
$file = fopen("rss.xml", "w");  
fwrite($file, '<?xml version="1.0"?>  
<rss version="2.0">  
<channel>  
<title>Membuat RSS Dengan Database dan xml</title>  
<link>http://student.d3ti.mipa.uns.ac.id/ocim</link>  
<description>DAFTAR BUKU TI-B 2010</description>  
<language>en-us</language>');  
while($r=mysql_fetch_array($sql)){  
fwrite($file, "<item>  
<title>$r[idbuku] | $r[judul]</title>  
<description>Harga = $r[harga], Kategori = $r[namakategori]</description>  
</item>");  
}  
fwrite($file, "</channel></rss>");  
fclose($file);  
$file="rss.xml";  
$baca=fopen($file, 'r');  
$lihat=fread($baca, filesize($file));  
fclose($baca);  
echo $lihat;  
?>
*** Selamat mencoba ***

Copyright © AIMAGU. Jasa Pembuatan Website. All Rights Reserved
Design by Automattic | Blogger Theme by NewBloggerThemes | Official: www.aimagu.com