0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
334 tayangan
Pemrograman Client Server
Dokumen tersebut membahas tentang arsitektur aplikasi, terutama arsitektur standalone, client/server, dan three-tier. Arsitektur standalone memiliki kelemahan kinerja yang menurun dengan bertambahnya user, sedangkan client/server menyebarkan beban ke client namun kurang skalabel. Three-tier menyebarkan fungsi ke lapisan-lapisan untuk meningkatkan skalabilitas, fleksibilitas dan keamanan.
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
334 tayangan
Pemrograman Client Server
Dokumen tersebut membahas tentang arsitektur aplikasi, terutama arsitektur standalone, client/server, dan three-tier. Arsitektur standalone memiliki kelemahan kinerja yang menurun dengan bertambahnya user, sedangkan client/server menyebarkan beban ke client namun kurang skalabel. Three-tier menyebarkan fungsi ke lapisan-lapisan untuk meningkatkan skalabilitas, fleksibilitas dan keamanan.
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 136
Oleh
Iwan, SKom, MM.
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER STIKOM BALI 2013 ARSITEKTUR Bentuk design sebuah aplikasi Atau dimana komponen yang membentuk suatu sistem ditempatkan dan bagaimana mereka berkomunikasi
Terdapat beberapa macam arsitektur aplikasi, yaitu : 1. Standalone (one-tier) Semua pemrosesan dilakukan pada mainframe. Kode aplikasi, data dan semua komponen sistem ditempatkan dan dijalankan pada host. Tidak ada pemrosesan yang terjadi pada mesin client, karena mereka dump-client atau dump-terminal. Semua pemrosesan terjadi secara terpusat.
Gambar 1.1 Arsitektur Standalobe (one-tier) Ada dua masalah pada komputasi berbasis host: Semua pemrosesan terjadi pada sebuah mesin tunggal, sehingga semakin banyak user yang mengakses host, semakin lambat juga layanan host terhadap permintaan client. Jika sebuah perusahaan memiliki beberapa kantor pusat, user yang dapat mengakses mainframe adalah yang berlokasi di tempat itu, sementara kantor yang lain tidak dapat mengakses aplikasi yang ada. 2. Client/Server (two-tier) Pemrosesan pada sebuah aplikasi terjadi pada client dan server. Tipikal sebuah aplikasi two-tier dengan banyak client dan sebuah server yang dihubungkan melalui sebuah jaringan. Aplikasi ditempatkan pada komputer client dan mesin database dijalankan pada server jarak-jauh. Aplikasi client mengeluarkan permintaan ke database yang mengirimkan kembali data ke client-nya. Gambar 1.2 Arsitektur Client-Server(two-tier) Perbedaan Client dengan Server A. Client a) Aplikasi ini dibuat dengan bahasa pemrograman yang mendukung koneksi ke server. b) Aplikasi yang dilayani c) Aplikasi ini dapat berjalan di sistem operasi yang sama dengan server, dapat pula berbeda d) Pemrosesan untuk presentasi diletakkan pada mesin user (computer client)
A. Server (server basis data) a) Software server menerima permintaan data dari software client dan mengirimkan hasilnya ke client. b) Sebuah aplikasi mesin basis data disebut server jika: Dapat menyimpan database Dapat dikases oleh banyak pemakai Dapat dikases oleh banyak pemakai dalam waktu bersamaan (concurency access). Dapat menjaga sendiri (dari level database) tidak terjadinya pengubahan data oleh dua atau lebih user pada baris yang sama (locking). Tipe-tipe tugas yang terjadi di client: Antarmuka pengguna Interaksi database Pengambilan dan modifikasi data Sejumlah aturan bisnis Penanganan kesalahan
Tipe-tipe tugas yang terjadi di server: Manajemen data Keamanan Query, trigger, prosedur tersimpan Penangan kesalahan Apa kelebihan arsitektur Client Server dengan Standalone?
Mengurangi beban pemrosesan dari komputer sentral ke komputer client. Kinerja server file tidak akan menurun dengan cepat, walaupun ada penambahan user/client. User dari berbagai lokasi dapat mengakses data yang sama dengan sedikit beban pada sebuah mesin tunggal.
Kelemahan dari model Client Server : Kurangnya skalabilitas : seberapa besar aplikasi menangani suatu kebutuhan yang meningkat misalnya 50 user tambahan yang mengakses aplikasi tersebut. Karena masih banyak pemrosesan yang terjadi pada server. Dalam model client/server semakin banyak user yang mengakses aplikasi semakin banyak beban pada server. Koneksi database harus dijaga untuk masing-masing client. Koneksi menghabiskan sumber daya server yang berharga dan masing-masing client tambahan diterjemahkan ke dalam satu atau beberapa koneksi.
Apa Kabar baiknya model client/server?
Dengan kelemahan tersebut di atas bukan berarti model client/server bukanlah merupakan model yang layak bagi aplikasi- aplikasi. Banyak aplikasi yang lebih kecil dengan jumlah user terbatas bekerja sempurna dengan model ini.
Kemudahan pengembangan aplikasi client/server turut menjadikannya sebuah solusi menarik bagi perusahaan. Pengembangan umumnya jauh lebih cepat dengan tipe sistem ini. Siklus pengembangan yang lebih cepat ini tidak hanya menjadikan aplikasi meningkat dan berjalan dengan cepat namun juga lebih hemat biaya. 3. Three-Tier / Multi-Tier Dikembangkan untuk menjawab keterbatasan pada arsitektur client/server. Pemrosesan disebarkan di dalam tiga lapisan (atau lebih jika diterapkan arsitektur multitier) Layanan presentasi/logika (tingkat client) Layanan bisnis (tingkat menengah) Layanan data (tingkat sumber data) Logika bisnis dikeluarkan dari kode client dan ditempatkan dalam tingkat menengah. Lapisan layanan data berisi server database Setiap tingkatan dalam model three-tier berada pada komputer tersendiri Membagi fungsionalitas ke dalam lapisan-lapisan, aplikasiaplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan.
Gambar 1.3 Arsitektur Three-Tier / Multi-Tier Contoh Aplikasi Client Server
Pemamfaatn aplikasi yang berbasis client-server sering kita jumpai di sekitar kehidupan kita tanpa kita sadari bahwa aplikasi tersebut mengadopsi sistem client-server, seperti:
Sistem Informasi Pengurusan KRS di kampus Aplikasi Pembayaran Rekening Listrik atau Air Aplikasi Pemesanan Tiket Pesawat Terbang Aplikasi Perbankan, dan masih banyak lagi yang lain.
Contoh di atas merupakan aplikasi yang menggunakan server sebagai tempat penyimpanannya dan client sebagai tempat input data atau proses lainnya. Selain contoh di atas yang termasuk aplikasi yang mengadopsi system client-server yaitu facebook, yahoo, google, atau media yang lain yang mana kita sebagai client dapat mengoperasikannya dari mana saja selama terhubung dengan media internet dan data yang telah kita inputkan tadi dapat disimpan di computer server, dan data tersebut dapat kita ambil kapanpun, di mana pun selama kita terhubung dengan server tersebut. A. DATABASE SERVER Database Server adalah sebuah program komputer yang menyediakan layanan database untuk program komputer lain atau komputer, seperti yang didefinisikan oleh model client- server. Istilah ini juga merujuk kepada sebuah komputer yang didedikasikan untuk menjalankan program server database. Server tersebut diakses baik melalui suatu "front end" yang berjalan di komputer pengguna yang menampilkan data yang diminta atau "back end" yang berjalan pada server dan menangani tugas-tugas seperti analisis data dan penyimpanan. B. DATABASE MANAGEMENT SYSTEM(DBMS) Database Management System adalah sebuah program komputer yang memungkinkan pengguna untuk membuat dan memelihara database sehingga pengguna dapat memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh kembali data tersebut dengan mudah. Sebagai contoh DBMS yang sering kita gunakan adalah My SQL, MS. Access, MS. SQL Server, Oracle dan lain-lain. Suatu database terdiri dari beberapa object, diantaranya tabel, view, domain, store procedure, dan trigger. Obyek- obyek database menyimpan struktur database dan data. Tujuan Perancangan Database
Untuk memenuhi informasi yang berisikan kebutuhan - kebutuhan user secara khusus dan aplikasi aplikasinya.
Memudahkan dalam pengertian struktur informasi
Mendukung kebutuhan-kebutuhan pemrosesan dan beberapa obyek penampilan (response time, processing time, dan storeage space).
Komponen DBMS Data Dictionary Sebuah repository yang menyimpan data definition dan deskripsi dari struktur data didalam database DBMS Utilities Program yang memungkinkan user mengelola data dengan cara create, edit, delete data dan file. Didalamnya termasuk data recovery dan back up. Report Generator Program untuk menghasilkan laporan yang berasal dari data yang disimpan Manfaat dan kelebihan DBMS Performa yang dapat dengan penyimpanan dalam bentuk DBMS cukup besar, sangat jauh berbeda dengan performance data yang disimpan dalam bentuk flat file. Disamping memiliki unjuk kerja yang lebih baik, juga akan didapatkan efisiensi penggunaan media penyimpanan dan memori. Integritas data lebih terjamin dengan penggunaan DBMS. Masalah redudansi sering terjadi dalam flat file. Redudansi adalah kejadian berulangnya data atau kumpulan data yang sama dalam sebuah database yang mengakibatkan pemborosan media penyimpanan. Manfaat dan kelebihan DBMS (lanjutan) Independensi. Perubahan struktur database dimungkinkan terjadi tanpa harus mengubah aplikasi yang mengaksesnya sehingga pembuatan antarmuka ke dalam data akan lebih mudah dengan penggunaan DBMS. Sentralisasi. Data yang terpusat akan mempermudah pengelolaan database. kemudahan di dalam melakukan bagi pakai dengan DBMS dan juga kekonsistenan data yang diakses secara bersama-sama akan lebiih terjamin dari pada data disimpan dalam bentuk file atau worksheet yang tersebar. Kemanan. DBMS memiliki sistem keamanan yang lebih fleksibel daripada pengamanan pada file sistem operasi. Keamanan dalam DBMS akan memberikan keluwesan dalam pemberian hak akses kepada pengguna. Contoh Database Management System Oracle adalah Database relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen Database RDBMS. Perusahaan Software Oracle memasarkan jenis Database ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).
Database Oracle terdiri dari beberapa komponen berikut ini : Software Oracle Database, yang tersimpan dalam bentuk file pada satu disk atau lebih. Instance Oracle,terdiri dari background process dan shared memory area Server process, yang meng-handle user dan aplikasi yang telah terhubung dengan Database, dan juga mengatur memori dan temporary storage yang mengunakan process tersebut. Oracle Net, yang memungkinkan komunikasi antara client application dengan Database oracle pada sebuah jaringan. Tools yang biasa digunakan pada Database oracle antara lain: Oracle Universal Installer : Digunakan untuk instalasi software oracle, dan dapat juga digunakan untuk menjalankan Oracle database configuration assistant untuk menginstal sebuah database Oracle Database Configuration Assistant : Digunakan untuk meng- create database dari template yang dibuat oleh oracle, atau kita dapat membuat database sendiri sesuai keinginan kita Database Upgrade Assistant : Tools yang membantu kita dalam melakukan upgrade database. Net Configuration Assistant : Digunakan untuk konfigurasi listener dan naming methods, yang merupakan komponen penting dalam oracle database network Oracle Enterprise Manager Database Control : Tools yang digunakan untuk me-manage oracle database interface yang berbasis web. Keunggulan Oracle dibanding dengan database yang lain : Scalability, memiliki kemampuan menangani banyak user yang melakukan koneksi secara bersamaan tanpa berkurangnya performance. Reliability, memiliki kemampuan untuk melindungi data dari kerusakan jika terjadi kegagalan fungsi pada sistem seperti disk failure. Serviceability, memiliki kemampuan untuk mendeteksi masalah, kecepatan dalam mengkoreksi kesalahan, dan kemampuan melakukan konfigurasi ulang struktur data. Stability, memiliki kemampuan untuk crash karena beban load yang tinggi. Hal ini berkaitan dengan scability. Availability, yaitu kemampuan dalam penanganan crash atau failure agar service dapat tetap berjalan. Multiplatform, dapat digunakan pada banyak sistem operasi seperti windows, unix, linux, dan solaris. Mendukung data yang sangat besar, Oracle dapat menampung data hampir 512 pet byte (1 pet byte = 1.000.000 gigabyte). Sistem sekuriti yang cukup handal Dapat menampung hampir semua tipe data seperti data teks, image,sound, video, dan time series
Kekurangan Oracle antara lain : Merupakan software DMBS yang paling mahal, paling rumit, dan paling sulit untuk dipelajari. Membutuhkan spesifikasi hardware yang tinggi untuk dapat menjalankan software DMBS Oracle supaya berjalan dengan stabil. Hanya diperuntukan bagi perusahaan berukuran besar, dan tidak cocok untuk perusahaan kecil maupun menengah. MICROSOFT SQL SERVER Microsoft SQL Server merupakan produk RDBMS ( Relational Database Management System) yang di buat oleh Microsoft. Orang sering menyebutnya dengan SQL Server saja. Ini kadang kadang membingungkan bagi kalangan awam karena sebelumnya sudah ada terminologi SQL. Microsoft SQL Server juga mendukung SQL sebagai bahasa untuk memproses query kedalam database dan kita tahu bahwa SQL ini sudah banyak digunakan secara umum pada semua produk database server yang da di pasaran saat ini. Microsoft SQL Server banyak digunakan pada dunia bisnis, pendidikan atau juga pemerintahan sebagai solusi database atau penyimpanan data. Berbagai macam skala bisnis mulai yang kecil sampai skala enterprise bisa menggunakan Microsoft SQL Server sebagai database servernya. Kelebihan Microsoft SQL Server antara lain : Cocok untuk perusahaan dengan skala kecil, menengah, dan besar sehingga mampu untuk mengolah data dengan jumlah yang besar. Memiliki kemampuan untuk management user dan tiap user bisa diatur hak akses terhadap suatu database oleh database administrator. Untuk diterapkan pada pembangunan suatu program aplikasi, akan mudah dalam melakukan koneksi dengan computer client yang pembangunan aplikasinya menggunakan software yang sama platform dengan MS-SQL, misalnya Microsoft Visual Basic. Memiliki tingkat pengamanan / security data yang baik. Memiliki kemampuan untuk back-up data, rollback data, dan recovery data. Memiliki kemampuan untuk membuat database mirroring dan clustering. Kekurangan Microsoft SQL Server antara lain : Hanya dapat diimpelementasikan pada 1 unit server, jika terdapat tambahan server maka hanya akan berfungsi sebagai pasif / standby server (tidak memiliki kemampuan Technology Cluster Server seperti halnya pada DMBS Oracle). Hanya bisa berjalan pada satu platform system operasi yaitu Microsoft Windows. Merupakan software berlisensi dan berharga mahal untuk perusahaan skala kecil dan menengah. MYSQL MySQL adalah sebuah perangkat lunak Pembuat database yang bersifat terbuka atau open source dan berjalan disemua platform baik Linux maupun Si Windows,MySQLmerupakan program pengakses database yang bersifat network sehingga dapat digunakan untuk aplikasi Multi User (Pengguna Banyak). MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase. Kelebihan MySQL antara lain: Merupakan DBMS yang gratis / open source berlisensi GPL (generic public license). Cocok untuk perusahaan dengan skala yang kecil. Tidak membutuhkan spesifikasi hardware yang tinggi untuk bisa menjalankan MySQL ini bahkan dengan spesifikasi hardware yang minimal sekalipun. Bisa berjalan pada lebih dari satu platform system operasi, misalnya windows, linux, FreeBSD, Solaris, dan masih banyak lagi. Cepat dalam menjalankan perintah SQL / Structured Query Language misalnya ketika akan menyeleksi suatu data atau memasukkan suatu data karena MySQL merupakan turunan dari konsep SQL.Multi user, artinya database dapat digunakan oleh beberapa user dalam waktu bersamaan tanpa mengalami masalah atau konflik. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain. MySQL memiliki beberapa lapisan keamanan, seperti subnetmask, namahost, dan izin akses user dengan system perijinan yang mendetail serta sandi/password terenkripsi. MySQL dapat melakukan koneksi dengan computer client menggunakan Protokol TCP/IP, Unix Socket (UNIX), atau Named Pipes (windows NT). MySQL memiliki antar muka / interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). Command and function, MySQL memiliki fungsi dan operator secara penuh yang mendukung perintah select dan where dalam query. Structure Table, MYSQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE dibandingkan DBMS lainnya. Kekurangan MySQL antara lain: Tidak cocok untuk menangani data dengan jumlah yang besar, baik untuk menyimpan data maupun untuk memproses data. Memiliki keterbatasan kemampuan kinerja pada server ketika data yang disimpan telah melebihi batas maksimal kemampuan daya tampung server karena tidak menerapkan konsep Technology Cluster Server. Perbandingan Oracle, Microsoft SQL Server dan MySQL
Operating System yang dapat menjalankan RDBMS Windows Mac OS X Linux BSD Unix Microsoft SQL Server Ya - - - - MySQL Ya Ya Ya Ya Ya Oracle Ya Ya Ya - Ya Lisensi RDBMS Maintainer Lisensi Microsoft SQL Server Microsoft Proprietary MySQL Sun Microsystems (sekarang dibeli Oracle Corporation) GPL dan Proprietary Oracle Oracle Corporation Proprietary Limitasi RDBMS Max DB Size Max Table Size Max Row Size Max Column per Row Max Blob/Clob Size Max Char Size Max Number Size Min Date Value Max Date Value Size Microsoft SQL Server 524258TB (32767 files * 16TB max file size) 524258TB Unlimite d 30000 2GB 2GB 126 bits 0001 9999 128 MySQL Unlimited MyISAM storage limits: 256TB; Innodb storage limits: 64TB 64kB 4096 4GB (longtext, longblob) 64kB (text) 64 bits 1000 9999 Oracle Unlimited (4GB * block size per tablespace) 4GB * block size (with BIGFILE tablespace) 8kB 1000 Unlimited 4000B 126 bits -4712 9999 Faktor Pemilihan DBMS Pemilihan DBMS didasarkan pada beberapa faktor, yakni beberapa hal teknis, ekonomi dan kebijakan organisasi. Faktor Teknis dan Non-Teknis Faktor teknis berhubungan dengan ketepatan DBMS yang dipilih. Yang termasuk faktor teknis adalah tipe DBMS (relational, network, hierarchical, object-relational, object lainnya), struktur penyimpan dan jalur akses yang didukung DBMS, ketersediaan antar muka pemakai dan pemrogram, tipe bahasa query tingkat tinggi, ketersediaan alat bantu pengembangan, kemampuan berhubungan dengan DBMS lain melalui media standard, pilihan arsitektur yang berhubungan dengan operator client-server dan lain sebagainya. Faktor non teknis termasuk di dalamnya status finansial dan dukungan organisasi terhadap vendor. Faktor Ekonomi dan Organisasi Hal-hal yang harus dipertimbangkan secara ekonomi dan faktor organisasi adalah : Software acquisiton cost : Merupakan harga up-front dalam pembelian perangkat lunak, termasuk pilihan bahasa, pilihan antar muka seperti form, menu dan antar muka Web berbasis GUI, pilihan recovery/backup, metode akses khusus dan dokumentasi. Versi DBMS yang tepat untuk sistem operasi harus dipilih. Biasanya, alat bantu pengembangan, alat bantu desain dan dukungan bahasa tambahan tidak termasuk dalam harga dasar. Maintenance cost : Berhubungan dengan harga layanan pemeliharaan standard dari vendor dan untuk menjaga versi DBMS tetap up to date. Hardware acquisition cost : perangkat keras baru mungkin diperlukan, seperti memory, terminal, disk drive dan controller baru, atau penyimpan DBMS khusus. Database creation and conversion cost : Berhubungan dengan biaya pembuatan sistem basis data dari konversi sistem yang sudah ada ke perangkat lunak DBMS baru. Operasi sistem yang sudah ada dilakukan paralel dengaan sistem baru sampai semua aplikasi diimplementasikan penuh dan diujicoba. Personal cost : Akuisisi perangkat lunak DBMS untuk pertama kali oleh organisasi biasanya dilakukan dengan reorganisasi departemen data processing. Training cost : Karena DBMS biasanya berupa sistem komplek, personal harus ditraining menggunakan dan memprogram DBMS. Training diperlukan pada semua level, termasuk programming, pengembangan aplikasi dan administrasi basis data. Operating cost : Biaya operasi lanjutan dari sistem basis data biasanya tidak termasuk dalam evaluasi. Keuntungan DBMS tidak mudah diukur dan dihitung. DBMS mempunyai beberapa keuntungan dibandingkan sistem file, seperti Mudah dalam penggunaan, Konsolidasi informasi perusahaan yang lebih luas Ketersediaan data yang lebih luas Akses yang lebih cepat ke informasi. Dengan akses berbasis Web, bagian data dapat dibuat akses global seperti pemakai luar. Mengurangi biaya pengembangan aplikasi Mengurangi redudancy data dan keamanan dan kontrol yang lebih baik. Tugas Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi. Komponen-Komponen SQL a. DDL (Data Definition Language) DDL adalah suatu pernyataan untuk mendefinisikan struktur atau skema database. Contoh : Create , untuk membuat object dalam database, bisa berupa table, view, procedure, function, trigger, ataupun package (oracle). Contoh : create table mahasiswa (npm char(7) not null primary key,nama char(30), alamat char(50));
Alter, untuk mengubah structur dari suatu objek dalam database.contoh : alter table mahasiswa add email char(30)
Drop, untuk menghapus objek dalam database, contoh: drop table mahasiswa; Truncate, untuk menghapus/membersihkan isi table beserta alokasi space yang ada di dalamnya, contoh : truncate table mahasiswa
Comment, memberikan keterangan/komentar pada ke dalam kamus data. berisi deskripsi dari sebuah objek dalam database.
Rename, mengganti nama objek dalam database.(Mysql, Oracle) b. DML (Data Manipulation Language) DML adalah pernyataan yang digunakan untuk mengorganisir data dengan menggunakan skema objek. Select, untuk menyeleksi data dari dalam database. contoh : select npm, nama, alamat from mahasiswa;
Insert, untuk menginputkan record ke dalam suatu table. contoh : insert into mahasiswa(npm,nama,alamat) values(0401034,Abdul Malik Ikhsan,Jalan Jakarta No. 28)
Update, untuk melakukan update dari table yang sudah dibuat. contoh : update mahasiswa set npm=001 where npm=0401034; Delete, untuk menghapus isi record baik semuanya ataupun sebagian dari suatu table. contoh : delete from mahasiswa (menghapus semua isi ) delete from mahasiswa where npm = 001(hanya pada kondisionalnya saja). Merge, penggabungan update, insert, delete pada suatu table berdasarkan kondisi yang cocok. (Oracle).
EXEC, memanggil procedure yang telah kita buat.
contoh : kita buat procedure seleksimhs: create procedure seleksimhs @npm char(7) As select * from mahasiswa where npm=@npm.
cara eksekusi : EXEC seleksimhs 001; c. DCL (Data Control Language)
Terdiri dari 2 statement, yaitu Grant dan Revoke.
Grant digunakan untuk memberikan izin akses kepada user. Sintaks : GRANT privileges ON tbname TO user
Contoh : GRANT SELECT ON CLUB TO PUBLIC GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01 Revoke digunakan untuk mencabut izin akses kepada user
Sintaks : REVOKE privileges ON tbname FROM user
Contoh : REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01 REVOKE ALL ON CLUB FROM PUBLIC Soal Latihan 1. Buat database dengan nama akademik 2. Buat struktur data/tabel dengan nama tabel mahasiswa dan field serta type data-nya sbb: npm char(7) not null primary key,nama_mahasiswa char(40), alamat char(50) 3. Mengisi nilai data kedalam database akademik untuk tabel mahasiswa (minumum 3 records) 4. Menampilkan seluruh data dari tabel mahasiswa 5. Menampilkan data NPM dari tabel mahasiswa 6. Menampilkan data NPM, Nama Mahasiswa dan Alamat dari Tabel mahasiswa 7. Menampilkan data mahasiswa dengan kriteria tertentu(gunakan where atau like) 8. Mengubah struktur tabel untuk field nama_mahasiswa dari type char(40) menjadi type char(60) 9. Mengubah struktur tabel untuk field nama_mahasiswa dari type char(40) menjadi type char(60) 10. Mengubah struktur tabel untuk menambah field baru yaitu email dengan type char(20) 11. Mengubah nilai data email dari tabel mahasiswa untuk data NPM tertentu 12. Menghapus data mahasiswa dengan NPM tertentu 13. Menghapus field yang menampung seluruh isi data email 14. Create table matakuliah(kdmk char(7) not null primary key,nama_matakuliah char(50),sks int) kemudian isikan recordnya. 15. Create table dosen(kd_dosen char(7) not null primary key,nama_dosen char(30), alamat_dosen char(40)) kemudian isikan recordnya 16. Create table perkuliahan(id_kuliah int not null primary key,npm char(7),semester char(2)) 17. Create table nilai(id_nilai int,kd_mk char(7),kd_dosen char(7), nilai char(2)); 18. Create table nilai(id_nilai int,kd_mk char(7),kd_dosen char(7), nilai char(2)); 19. Gabungkan seluruh tabel kita akan mencoba menampilkan nama mahasiswa, nama matakuliah yang diambil, dan nilai yang didapat, beserta nama dosen nya ). Transact-SQL Transact-SQL (T-SQL) adalah bahasa yang dikembangkan pada SQL Server. T-SQL mengembangkan kemampuan SQL sehingga dapat melengkapi SQL dengan instruksi logic. Hasil proses dapat diolah lebih lanjut dengan menggunakan kontrol logic pemrograman procedural seperti fungsi, procedure, looping, case, if else, dan lainnya. Struktur penulisan
DECLARE var1 <datatype>, var2 <datatype>, var n <datatype> BEGIN sql statement | statement block END
Deklarasi Variable Nama variable dimulai dengan karakter @ DECLARE @var1 <datatype>, @var2 <datatype>, @var n <datatype> DECLARE @nrp varchar(10) DECLARE @nama varchar(50)
----- atau -------
DECLARE @nrp varchar(10) , @nama varchar(50)
Assign Variable Variable diassign dengan 2 cara Dengan SELECT statement SELECT @local_variable = expression/sql statement Dengan SET SET @local_variable = expression
DECLARE @nrp varchar(7) SELECT @nrp = 3302019 ---- atau -------- SET @nrp = 3303019
PRINT Statement Digunakan untuk menulis ke layar DECLARE @nrp varchar(7) SELECT @nrp = 3302019 ---- atau -------- SET @nrp = 3303019
PRINT NRP saya : + @nrp Assign Variable dari SELECT statement Assign variable juga dapat diambil dari query dengan select statement. DECLARE @nama_customer varchar(35) SELECT @nama_customer= CustomerName from Customers WHERE CustomerNumber =70000001
PRINT Ahmad Syukeni is + @ nama_customer + \m/ Table Variable sebagai Table DECLARE @mat_table table ( MaterialNumber int Primary Key, MaterialDescription varchar(50) ) BEGIN insert into @mat_table values(1,Material 1) insert into @mat_table values(2,Material 2) insert into @mat_table values(3,Material 3)
Contoh : DECLARE @mat_table table ( MaterialNumber int Primary Key, MaterialDescription varchar(50) ) BEGIN insert into @mat_table select MaterialNumber, MaterialDescription from Material
select * from @mat_table END Assign Variable dari Sub Query Declare @nama_venfor varchar (35)
Select @nama_vendor=(select VendorName from Vendor Where VendorNumber=5000001)
Print @nama_vendor Global Variable Nama variable global diawali dengan @@ @@ ERROR Mengembalikan nilai integer yang mengindikasi 0 = no error dan sebaliknya. @@ ROWCOUNT Mengembalikan jumlah row pada statement terakhir. BEGIN UPDATE MATERIAL SET MaterialDescription=BlackBerry WHERE MaterialNumber = 300001 PRINT @@ROWCOUNT END @@TRANCOUNT Mengembalikan jumlah row yang berhasil dieksekusi pada trnsaksi BEGIN BEGIN TRANSACTION UPDATE MATERIAL SET MaterialDescription=Android WHERE MaterialNumber = 300001 PRINT @@TRANCOUNT COMMIT TRANSACTION END Operator Arithmetic Operators
Digunakan untuk operasi aritmetik
Operator Keterangan + Penjumlahan/Penambahan - Pengurangan * Perkalian / Pembagian % Sisa Bagi Logical Operators Digunakan untuk operasi-operasi yang memberikan hasil BOOLEAN (True/False)
Comparison Operators Operator yang menyatakan hubungan dari dua buah operand. Hasil dari operasi ini juga bernilai BOOLEAN (True/False). Operator Keterangan AND True jika 2 operand bernilai True OR True jika slah satu operand bernilai True NOT Kebalikan dari boolean operator Operator Keterangan = Sama dengan > Lebih besar < Lebih kecil String Concatenation Operators Untuk menggabungkan string SQL Server menggunakan tanda +. Operator Keterangan >= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan <> Tidak sama dengan Exception Ketika SQL dijalankan kemudian terdapat error, maka secara otomatis SQL Server akan menampilkan pesan error sesuai dengan error number. SQL Server dapat menngkap error dengan menggunakan BEGIN TRY {sql statement | statement block} END TRY BEGIN CATCH [{sql statement | statement block}] END CATCH
Contoh :
BEGIN TRY SELECT 1/0; END TRY BEGIN CATCH PRINT Error Pembagian dengan 0; END CATCH Function String Function Nama Fungsi Keterangan ASCII Mengembalikan nilai kode ASCII; ASCII(character_expression); contoh : SELECT ASCII(A) CHAR Kebalikan ASCII, mengembalikan character dari ASCII. CHAR(integer_expression), contoh : SELECT CHAR(65) LEN Mengembalikan panjang dari suatu string, LEN(string_expression), contoh : SELECT MaterialDescription,LEN(MaterialDescription) Panjang FROM Material LEFT Mengambil part dari suatu string dari kiri dengan panjang yang spesifik. LEFT(string_expression,integer_expression). Contoh : SELECT LEFT(CustomerName,3) FROM Customer. RIGHT Mengambil part dari suatu string dari kanan dengan panjang yang spesifik. RIGHT(string_expression,integer_expression). Contoh : SELECT RIGHT(CustomerName,3) FROM Customer. Nama Fungsi Keterangan SUBSTRING Mengambil part dari suatu string. SUBSTR(expression,start,length) Contoh : SELECT SUBSTR(STIKOM BALI,8,4) LOWER Mengembalikan string dengan huruf kecil. LOWER(character_expression) Contoh : LOWER(INI HURUF BESAR) UPPER Mengembalikan string dengan huruf besar. UPPER(character_expression) Contoh : UPPER (ini huruf kecil) LTRIM Mengembalikan character dengan menghapus spasi pada character sebelumnya (kiri). LTRIM(character_expression) Contoh : SELECT LTRIM( No one is secure) RTRIM Mengembalikan character dengan menghapus spasi pada character sebelumnya (kanan). LTRIM(character_expression) Contoh : SELECT RTRIM(No one is secure ) REVERSE Mengembalikan denga character terbalik. REVERSE(character_expression) Contoh : SELECT RESERVE(kebalik) Nama Fungsi Keterangan REPLICATE Mengulang string dengan spesifik number. REPLICATE(string_expression,integer_expression) Contoh : SELECT REPLICATE(8,4) SPACE Mengulang spasi sebanyak spesifik number. SPACE(integer_expression) Contoh : SELECT SPACE(5) + lima spasi STR Konversi dari numerik ke string. STR(float_expression[,length[,decimal]] Contoh : SELECT STR(1000) REPLACE Merubah spesifik suatu string dengan string lain. REPLACE(string_expression1,string_expression2,string+expression3 Contoh : SELECT REPLACE(UJUNG TANDUK,TANDUK,TOMBAK) System Function Nama Fungsi Keterangan ISDATE Memeriksa sebuah ekspresi tanggal dan mengembalikan nilai integer 1 jika valid dan 0 jika tidak valid. ISDATE(expression). Contoh : SELECT ISDATE(10/10/2012) ISNULL Mengganti NULL dengan spesifik value. ISNULL(checl_expression,replacement_value) Contoh : SELECT ISNULL(CustomerName,unknown) FROM Customer ISNUMERIC Memeriksa sebuah ekspresi numerc dan mengembalikan nilai integer1 jika valid dan 0 jika tidak valid. ISNUMERIC(expression) Contoh : SELECT ISNUMERIC(a1000) NULLIF Mengembalikan value NULL jika kedua ekspresi sama. NULLIF(expression1,expression2) Contoh : SELECT(CustomerName,PT. ABC) FROM Customer Date Function Nama Fungsi Keterangan GETDATE Mengembalilkan tanggal sekarang dari server dimana sql terinstall. Contoh : SELECT GETDATE() DAY Mengembalikan nilai integer part tanggal dari tanggal. DAY(date) Contoh : SELECT DAY(GETDATE()) MONTH Mengembalikan nilai integer bulan dari tanggal. MONTH(date) Contoh : SELECT MONTH(GETDATE()) YEAR Mengembalikan nilai integer tahun dari tanggal. YEAR(date) Contoh : SELECT YEAR(GETDATE()) DATEADD Mengembalikan datetime baru berdasarkan penambahan interval ke spesifik tanggal. DATEADD(datepart,number,date) Contoh : SELECT DATEADD(day,5,02/08/2012) Dimana datepart : Nama Fungsi Keterangan year yy, yyyy quarter qq, q month mm, m dayodmonth dy, y day dd, d week wk, ww weekday dw, w hour Hh minute mi, n second ss, s millisecond MS Nama Fungsi Keterangan DATEDIFF Mengembalilkan number dari batasan tanggal dab waktu antara dua tanggal. DATEDIFF(datepart,startdate,enddate) Contoh : SELECT (DATEDIFF(day,04/21/2012,GETDATE()))/365 DATEPART Mengembalikan nilai integer bagian dari tanggal. DATEPART(datepart, date). Contoh : SELECT DATEPART(month, GETDATE()) AS Bulan DATENAME Mengembalikan string datepart dari sebuah spesifik tanggal. DATENAME(datepart,date) Contoh : SELECT DATENAME(month, GETDATE()) as Nama Bulan Numeric Function Nama Fungsi Keterangan ABS Mengembalikan value positif dari ekspresi numeric. ABS(numeric_expression. Contoh : SELECT ABS(-1) CEILING Mengembalikan pembulatan ke bawah lebih besar atau sama dengan ekspresi numerik. CEILING(numeric_expression) Contoh : SELECT CEILING(123.45) FLOOR Mengembalikan pembulatan ke atas lebih kecil atau sama dengan ekspresi numerik. FLOOR(numeric_expression) Contoh : SELECT CEILING(123.75) ROUND Pembulatan dengan presisi tertentu. ROUND(numeric_expression, length[, function]. Contoh : SELECT ROUND(123.45, 0) SQRT Mengembalikan nilai akar dari value float. SQRT(float_expression) Contoh : SELECT SQRT(16) POWER Mengembalikan pangkat dari value float. POWER(float_expression, y) Contoh : SELECT POWER(2, 4) Konversi Digunakan untuk mengkonversi dari satu tipe data ke tipe data lainnya.
Konversi dengan CAST CAST(ekspresi as type_data [(panjang}]
Contoh : SELECT CAST(getdate() as varchar(10)) SELECT CAST(10 as int) + CAST(5 as int)
Konversi dengan CONVERT CONVERT(data_type[(panjang)], exkspresi[, style])
Contoh : SELECT CONVERT(varchar, getdate(), 103) SELECT CONVERT(int, 10 ) + CAST(int, 5) Style value datetime dan small datetime Format yy Format yyyy Standart Output - 0 or 100 Default mon dd yyyy hh:miAM(or PM) 1 101 U.S mm/dd/yyyy 2 102 ANSI yy.mm.dd 3 103 British/Franch dd/mm/yy 4 104 German dd.mm.yy 5 105 Italian dd-mm-yy 6 106 dd mon yy 7 107 mon dd, yy 8 108 hh:mi:ss - 9 or 109 Default+Millis econd mon dd yyyy hh:mi:ss AM(or PM) 10 110 USA mm-dd-yy Format yy Format yyyy Standart Output 11 111 JAPAN yy/mm/dd 12 112 ISO yymmdd - 13 0r 113 Europe Default+ Millisecond dd mon yyyy hh:mi:ss:mmm(24h) 14 114 hh:mi:ss:mmm(24h) IF ELSE Seleksi kondisi alur progrm
DECLARE @bilangan int; SET @bilangan = 75; If @bilangan >=60 PRINT 'lulus'; ELSE PRINT 'gagal'; WHILE Statement Digunakan untuk mengeksekusi satu blok perulangan sampai kondisi menjadi false. WHILE Boolean Ekspresi { sql statement | tatement_block | BREAK | CONTINUE }
DECLARE @i int; SELECT @i=1; WHILE @i<=10 BEGIN PRINT @i; SET @i = @i + 1; END; Pada looping while dapat juga digunakan statement. CONTINUE Digunakan untuk skip perilangan DECLARE @i int; SELECT @i=0; WHILE @i<10 BEGIN SET @i = @i + 1; IF @i=5 CONTINUE; PRINT @i; END; BREAK Digunakan untuk keluar dari perulangan DECLARE @i int; SELECT @i=0; WHILE @i < 10 BEGIN SET @i = @i + 1; IF @i=5 BREAK; PRINT @i; END; CASE Statement CASE expresi WHEN when_expresi THEN hasil_expression [ n] ELSE [ else_hasil_expresi ] END as Field[Alias] DECLARE @bil int, @terbilang varchar(15) SET @bil=4 SELECT @terbilang= CASE WHEN 1 THEN Satu WHEN 2 THEN Dua WHEN 3 THEN Tiga WHEN 4 THEN Empat WHEN 5 THEN Lima ELSE Out of Range END PRINT @terbilang DECLARE @bil int, @terbilang varchar(15) SET @bil=4 SELECT @terbilang= CASE WHEN @bil = 1 THEN Satu WHEN @bil = 2 THEN Dua WHEN @bil = 3 THEN Tiga WHEN @bil = 4 THEN Empat WHEN @bil = 5 THEN Lima ELSE Out of Range END PRINT @terbilang Cursor Cursor adalah sejenis variabel yang digunakan menampung banyak nilai berupa baris atau record. Untuk menggunakan cursor ada beberapa tahapan :
deklarasi (Declare) buka (Open) ambil data (Fetch) tutup (Close) membersihkan memory reference (Deallocate) DECLARE @materialNumber varchar(6), @materialDescription varchar(35) DECLARE Material_Cursor CURSOR FOR SELECT MaterialNumber, MaterialDescription FROM Material;
OPEN Material_Cursor; FETCH NEXT FROM Material_Cursor INTO @materialNumber,@materialDescription WHILE @@FETCH_STATUS = 0 BEGIN PRINT @materialNumber FETCH NEXT FROM Material_Cursor END; CLOSE Material_Cursor; DEALLOCATE Material_Cursor;
@@FETCH_STATUS Return Value Keterangan 0 Pengambilan data berhasil -1 Pengambilan data gagal atau melebihi resultset -2 Data yang diambil tidak ada Latihan 1. Buatlah sebuah block T-SQL yang menampilkan tulisan STOCK MIN, SILAHKAN DIORDER dari tabel Material yang nama barangnya IBM Series X350 jika stock kurang dari 5. 2. Buatlah T-SQL untuk menampilkan nama-nama bulan pada sebuah nilai integer sebagai inputannya. 3. Tampilkan data Customer yang berkota di Bandung dan beralamat di Ujung Berung 4. Tampilkan Vendor yang beralamat bukan di Amerika 5. Tampilkan data Material yang mengandung kata GALAXY 6. Tampilkan data material yang berawalan kata SAMSUNG Store Procedure adalah kumpulan dari perintah Transact-SQL yang dikompile dalam satu unit untuk dijalankan bersama. Dalam SQL Server store procedure memiliki kemampuan antara lain : Menerima parameter input dan mengembalikan beberapa nilai parameter output dari procedure yang dipanggil.
Mengandung statement pemrograman yang melakukan operasi terhadap database termasuk memanggil store procedure lain.
Memberikan status yang mengindikasikan keberhasilan atau kegagalan eksekusi store procedure
Keuntungan pemakaian store procedure adalah : Merupakan pemrograman modular Store procedure dibuat sekali dan dapat dipakai berulang untuk komputasi yang sama Memungkinkan eksekusi lebih cepat. Ketika pertama kali dijalankan store procedure akan tersimpan dalam memori. Sehingga memungkinkan eksekusi berikutnya lebih cepat. Mengurangi trafik jaringan. Barisan kode transact SQL yang seharusnya dilewatkan jaringan, akan digantikan dengan statement tunggal pemanggilan store procedure. Dapat digunakan sebagai mekanisme sekuriti Pengguna dimungkinkan mengeksekusi Store procedure, walau mungkin tidak dapat mengeksekusi procedure didalamnya secara langsung. Sintaks dasar untuk membuat store procedure : CREATE PROCEDURE [ Nama_Procedure ]
[ { @parameter tipe_data } ]
AS sql_statement [ ...n ] Deskripsi : Nama_Procedure Adalah nama store procedure. Nama harus mengikuti aturan dimana harus unik dalam sebuah database. @parameter Adalah parameter procedure. Kita bisa mendefinisikan lebih dari satu parameter dalam satu parameter pada waktu membuat Store Procedure. Satu Store Procedure maksimum memiliki 2,100 parameters.
Tipe_data Adalah tipe data dari parameter yang bersangkutan. Semua tipe data dapat masuk seperti Text, Numeric, Int, Smallint dan lainnya. Tipe data Cursor hanya dapat digunakan sebagai Output. AS Tempat meletakkan aksi-aksi procedure. sql_statement Kumpulan perintah SQL yang akan dimasukkan dalam procedure tersebut
n Adalah indikasi berapa banyak Statement SQL yang dimasukkan
Catatan: Ukuran satu store procedure maksimal 128 MB. Latihan 1. Buka kembali Database AIRLINES yang pernah kita buat sebelumnya. 2. Aktifkan database AIRLINES 3. Membuat Store Procedure untuk menampilkan seluruh data pesawat 4. Jalankan store procedure Sp_TampilkanDataPesawat 5. Membuat Store Procedure untuk menampilkan data pesawat tertentu 6. Jalankan store procedure Sp_TampilkanDataPesawatId 7. Membuat Store Procedure untuk menambahkan data pesawat 8. Jalankan store procedure Sp_TambahDataPesawat 9. Membuat Store Procedure untuk merubah data pesawat 10.Jalankan store procedure Sp_UbahDataPesawat 11.Membuat Store Procedure untuk menghapus data pesawat 12.Jalankan store procedure Sp_HapusDataPesawat Tugas Langkah-langkah (simpan semua script yang anda buat ) : 1. Buka kembali Database PERUSAHAAN yang anda pernah buat sebelumnya. 2. Buat store procedure untuk menampilkan semua data pegawai 3. Buat store procedure untuk menampilkan data pegawai berdasar id_pegawai 4. Buat store procedure untuk menambahkan data pegawai 5. Buat store procedure untuk merubah data pegawai 6. Buat store procedure untuk menghapus data pegawai 7. Buat store procedure untuk menampilkan semua data departemen 8. Buat store procedure untuk menampilkan data departemen berdasar id_dept 9. Buat store procedure untuk menambahkan data departemen 10.Buat store procedure untuk merubah data departemen 11.Buat store procedure untuk menghapus data departemen 12.Buat store procedure untuk menampilkan semua data departemen_pegawai 13.Buat store procedure untuk menampilkan data departemen_pegawai berdasar id_dept 14.Buat store procedure untuk menampilkan data departemen_pegawai berdasar id_pegawai 15.Buat store procedure untuk menambahkan data departemen_pegawai 16.Buat store procedure untuk merubah data departemen_pegawai 17.Buat store procedure untuk menghapus data departemen_pegawai
Trigger adalah prosedur yang secara otomatis dijalankan sebagai respon terhadap perubahan yang telah ditentukan pada database, dan biasanya ditentukan oleh DBA. Sebuah database memiliki sekumpulan trigger yang telah digabung disebut active database. Deskripsi trigger terdiri dari tiga bagian : Event : Perubahan database yang mengaktifkan trigger Condition : Query atau tes yang berjalan ketika tigger sedang diaktifkan Action : Sebuah procedure yang dieksekusi ketika trigger diaktifkan dan persyaratannya bernilai benar. Trigger dapat dianggap sebagai daemon yang memonitor database, dan dieksekusi ketika database dimodifikasi dengan suatu cara yang sesuai dengan spesifikasi event. Pernyataan insert, delete atau update dapat mengaktifkan trigger, tanpa mempertimbangkan pengguna mana atau aplikasi mana yang meminta pernyataan pengaktifan. Pengguna bahkan mungkin tidak sadar bahwa trigger telah dieksekusi sebagai efek samping dari program mereka. Condition pada trigger dapat merupakan pernyataan true/false atau sebuah query. Query diinterpretasikan sebagai true jika set jawaban tidak kosong dan false jika query tidak memiliki jawaban. Jika bagian persyaratan mengevaluasi true, maka tindakan yang berhubungan dengan trigger dieksekusi.
Sintaks dasar untuk pembuatan Trigger :
CREATE TRIGGER nama_trigger ON table | view FOR INSERT | UPDATE | DELETE AS statement_sql [ ...n ] Deskripsi Nama_trigger Adalah nama trigger. Nama triger harus mengikuti aturan identifier dan harus unik harus unik di dalam satu database. Table Tabel adalah tempat dimana trigger tersebut berapa dan dieksekusi. AS Adalah Aksi yang dilakikan oleh trigger tersebut. Statement_sql Adalah kondisi dan aksi perintah SQL yang ada saat Trigger itu dijalankan. n Variabel yang menyatakan bahwa anda bisa menyertakan banyak pernyataan Transact-SQL.
Latihan: 1. Buka kembali database Airlines 2. Tambahkan tabel Penerbangan dan Bonus dengan perintah sql sbb:
CREATE TABLE PENERBANGAN ( Id_Penerbangan INT NOT NULL PRIMARY KEY IDENTITY(1,1), Tgl_Penerbangan DATETIME NOT NULL DEFAULT GETDATE(), Kota_Asal CHAR(15) NOT NULL, Kota_Tujuan CHAR(15) NOT NULL, Id_Pesawat CHAR(2) NOT NULL FOREIGN KEY REFERENCES pesawat(id_pesawat) ON DELETE NO ACTION ON UPDATE CASCADE, Id_Pilot CHAR(2) NOT NULL FOREIGN KEY REFERENCES pilot(id_pilot) ON DELETE NO ACTION ON UPDATE CASCADE, Jml_Penumpang SMALLINT NOT NULL DEFAULT 0) Table Penerbangan CREATE TABLE BONUS (Id_Bonus INT NOT NULL Primary key Identity(1,1), Tgl_Bonus DATETIME NOT NULL, Id_Pilot CHAR(2) NOT NULL FOREIGN KEY REFERENCES pilot(id_pilot) ON DELETE NO ACTION ON UPDATE CASCADE, Nilai_Bonus NUMERIC NOT NULL DEFAULT 0) Table Bonus 3. Pada penerbangan. Pilot harus memiliki sertifikasi untuk pesawat yang dibawa. Buat Trigger untuk mengecek pilot apakah sudah tersertifikasi create trigger tr_cek_pilot_penerbangan on penerbangan for insert, update as declare @id_pesawat char(2) declare @id_pilot char(2) select @id_pesawat=id_pesawat, @id_pilot=id_pilot from inserted if (select count(*) from sertifikasi where id_pesawat=@id_pesawat and id_pilot=@id_pilot) = 0 begin RAISERROR ('Pilot belum sertifikasi untuk pesawat tsb', 16, 1) rollback transaction end 4. Setiap melakukan penerbangan. Pilot akan mendapatkan bonus sebesar : 0.005 x Gaji x Jml_Penumpang. Buat Trigger untuk menambahkan data bonus secara otomatis setiap ada penerbangan baru. create trigger tr_bonus_penerbangan on penerbangan for insert as declare @tgl datetime declare @id_pilot char(2) declare @jml_penumpang smallint declare @gaji numeric begin transaction select @tgl=Tgl_Penerbangan, @id_Pilot=Id_Pilot, @jml_Penumpang=Jml_Penumpang from inserted select @gaji=gaji from pilot where id_pilot=@id_pilot insert into bonus values (@tgl,@id_pilot,((0.005)*@gaji*@jml_penumpang)) if @@error <> 0 rollback transaction else commit transaction 5. Cek apakah trigger-trigger tersebut telah berfungsi dengan menambahkan data penerbangan. insert into penerbangan values (Getdate(),'JOG','JKT','04','01',9) go insert into penerbangan values (Getdate(),'JOG','JKT','01','01',9) go Tugas Langkah-langkah (simpan semua script yang anda buat ) : 1. Buka kembali Database PERUSAHAAN yang anda buat sebelumnya 2. Tambahkan tabel Lembur dan Bonus pada Database PERUSAHAAN
Nama Field Tipe data
Lebar Not Null
Keterangan * Id_Lembur INT Yes Primary key, Identity(1,1) Tgl_Lembur DATETIME Yes DEFAULT GETDATE() ** Id_Pegawai CHAR 4 Yes FOREIGN KEY Jml_Jam_Lembur SMALLINT Yes DEFAULT 0 Tabel Lembur Nama Field Tipe data
Lebar Not Null
Keterangan * Id_Bonus INT Yes Primary key, Identity(1,1) Tgl_Bonus DATETIME Yes ** Id_Pegawai CHAR 4 Yes FOREIGN KEY Nilai_Bonus NUMERIC Yes DEFAULT 0 Tabel Bonus 3. Buatlah trigger pada tabel lembur yang akan menambahkan secara otomatis data bonus ke tabel bonus. Nilai bonus untuk setiap kali lembur adalah 0,04 * jumlah_jam_lembur * gaji karyawan bersangkutan. Seperti telah dipelajari sebelumnya. Dalam arsitektur aplikasi model client/server, pemrosesan pada sebuah aplikasi terjadi pada client dan server. Aplikasi client mengeluarkan permintaan ke database yang mengirimkan kembali data ke client-nya. Dalam client/server, client-client yang cerdas bertanggung jawab untuk bagian dari aplikasi yang berinteraksi dengan user, termasuk logika bisnis dan komunikasi dengan server database. Tipe-tipe tugas yang terjadi pada client adalah :
Antarmuka pengguna Interaksi database Pengambilan dan modifikasi data Sejumlah aturan bisnis Penanganan kesalahan Aplikasi yang kita buat seringkali menyertakan database untuk menyimpan data misalnya aplikasi monitoring temperatur , data temperatur harian atau per menit kita simpan di MsAccess , Mysql atau yg lainya. Untuk menghubungkan aplikasi berbasisi .NET (dot net) spt C#, VB.net, ASPX dll dengan berbagai database dibutuhkan suatu penghubung yaitu ADO.NET . Pada masa sebelumnya untuk menghubungkan aplikasi dgn database kita menggunakan ADO , OLEDB dan ODBC. Mengenal ADO.NET ADO.NET merupakan kumpulan class yang memberikan akses ke database serta XML ditujukan buat para programmer .NET. Class class tsb merupakan bagian dari framework .NET yg terletak di namespace system.data.dll Didalam ADO.NET tersedia berrbagai data provider spt OLEDB, ODBC dan data provider spesiik database tertentu spt untuk SQL server dan oracle. selain itu juga tersedia untuk XML. ADO.NET menyediakan mode conected dan disconected dlm mengelola database. Pada Mode conected client memodifikasi data dlm keadaan online sedangkan mode disconected adalah fitur baru ADO.NET. Gambaran mekanismenya antara lain sbb: client membuka koneksi ke server database kemudian data disimpan di buffer(dataset) client lalu koneksi server diputus setelah data diolah baru dibuat lagi koneksi ke server untuk transfer data. model disconected spt ini sangat membantu karena bisa mengurangi trafik data dlm jaringan terutama jika jumlah client sangat banyak. XML digunakan untuk pertukaran data antar system yg berbeda contoh sebuah system di linux dgn aplikasi java dan mysql akan bertukar data dgn system lain yg mengunakan os windows dgn aplikasi C# dan MsAccess . Cara mudah pertukaran data antara dua system tsb adalah data yg dipertukarkan mempunyai format yang sama yaitu dlm bentuk XML Arsitektur ADO.NET Karena pada pembahasan ini kita tidak membahas mengenai XML maka kita sederhanakan arsitektur ADO.NET menjadi Berdasarkan gambar arsitektur diatas kita dapat melihat dengan jelas perbedaan cara mengakses database dgn conected ( client dan server database tergubung terus selama manipulasi data) dgn data reader. dan disconected. Pemilihan kedua cara tsb tergantung kebutuhan aplikasi yg kita buat. Sedangkan yang dimaksud data provider adalah bagian yg spt tampak berikut ini: Tiap data profider mempunyai namespace masing2 yg ada di NET Framework antara lain : System.Data.SqlClient, .NET Framework data provider untuk SQL Server System.Data.OracleClient, .NET Framework data provider untuk Oracle System.Data.Odbc, .NET Framework data provider untuk ODBC System.Data.OleDb, .NET Framework data provider untuk OLE DB 1. Data Provider untuk database SQL SERVER Data Profider SQL Server ada di namespace System.Data.SqlClient. Berikut ini beberapa class class yg disediakan dlm namespace tsb : SqlConnection : class yg digunakan untuk koneksi ke database SQL Server SqlCommand : class yg digunakan untuk mengeksekusi SQL query atau store procedures SqlDataAdapter : class yg menghubungkan dataset dan database SQL Server SqlDataReader : class yg digunakan untuk membaca database secara read only. 2. Data provider untuk database ORACLE Data provider khusus untuk database Oracle tersedia di namespace System.Data.OracleClient 3. Data provider OLEDB untuk database dg teknoogi yg lama OLEDB digunakan untuk database lama antara lain : Pradox, Dbase, MsAccess ,Mysql ,DB2 dan sql server versi lama. selain itu OLEDB juga digunakan ketika kita menggunakan 2 database yg berbeda misal kita menggunakan MsAccess dan SQL server dlm satu aplikasi secara simultan. Data provider OLEDB harus melalui beberapa layer untuk mengakses database. sehingga lebih efisien anda menggunakan data provider yg spesifik untuk tiap database. misal untuk Oracle gunakanlah data provider yg ada di System.Data.OracleClient begitupun untuk SQL Server lebih efisien menggunakan dataprovider yg tersedia di System.Data.SqlClient dari pada anda menggunakan data provider OLEDB (System.Data.OleDb). Class class yg digunakan oleh data provider OLEDB (class class tsb ada di namespace System.Data.OleDb) antar lain: - OleDbConnection, class untuk mengkoneksi database - OleDbCommand, class untuk menjalankan SQL query - OleDbDataAdapter, class untuk menghubungkan dataset dgn database - OleDbDataReader, membaca hasil output dari database Contoh1 : Aplikasi console C# mengkases database sql server dgn data provider SQL Server (using System.Data.SqlClient ) : using System; using System.Data.SqlClient; // namespace data provider sql server namespace ContohAksesSqlServer { class ContohSqlServerProvider { static void Main(string[] args) { // buat string untuk koneksi string stringKoneksi = @ server = .\sqlexpress; integrated security = true; database = perpustakaan ; // buat query string SQL = @ select * from data_buku ; // deklarasikan objek connection dan data reader SqlConnection koneksi_database = null; SqlDataReader baca_data = null; try { // 1. buka koneksi ke database koneksi_database = new SqlConnection(stringkoneksi); koneksi_database.Open(); // 2. jalankan query SqlCommand cmd = new SqlCommand(SQL, koneksi_database); // tampilkan judul kolom data Console.WriteLine(Judul buku \t Pengarang\n); // 3. proses output table baca_data = cmd.ExecuteReader(); while(baca_data.Read()) { Console.WriteLine({0} | {1}, baca_data[0].ToString(), baca_data[1].ToString()); } } catch (Exception e) { Console.WriteLine(Error: + e); } finally { //4. Tutup Koneksi koneksi_database.Close(); } } } Untuk menghubungkan aplikasi C# dng database sql server selain dengan data provider khusu untuk sql server spt diatas ( using System.Data.SqlClient) juga bisa dengan OLEDB ataupun dgn ODBC adapun dimana letak perbedaan utamanya bisa dilihat di table berikut ini: Buatlah database dengan nama toko, dengan tabel-tabel sbb: No Nama Fields Type Fields Ukuran Fields Ket 1 Kd_barang varchar 10 key 2 Nm_barang varchar 20 3 Satuan varchar 15 4 Harga_beli decimal 5 Harga_jual decimal 6 Stock int Tabel barang No Nama Fields Type Fields Ukuran Fields Ket 1 Kd_masuk varchar 10 key 2 Tgl_masuk date 3 Kd_barang varchar 10 4 Id_distributor varchar 5 5 Jumlah int Tabel barang_masuk Tabel distributor No Nama Fields Type Fields Ukuran Fields Ket 1 Id_distributor varchar 5 key 2 Nm_distributor varchar 30 3 Alamat varchar 40 4 No_telp varchar 15 Tabel transaksi No Nama Fields Type Fields Ukuran Fields Ket 1 Kd_transaksi varchar 10 key 2 Tgl_transaksi date 3 Kd_barang varchar 10 4 Nm_barang varchar 20 5 Satuan varchar 15 6 Harga_beli decimal 7 Jumlah int 8 Total decimal Socket? Socket adalah Saluran komunikasi antarkomputer yang berbasis protocol internet atau gabungan antara alamat IP dan nomor Port Socket programming? Socket programming adalah bagaimana cara menggunakan socket API ( Application Socket Programming ), untuk menghubungkan komunikasi antara proses remote dan local. Sedangkan API adalah sebuah library atau fungsi windows untuk mengeksekusi sebuah perintah yang ada di dalam semua tampilan windows , sebagai contoh untuk tampilan desktop ,screen saver ,shutdown computer dll. Dengan kata lain socket adalah suatu Class yang digunakan oleh aplikasi untuk saling berhubungan. berikut ini menunjukkan bagaimana suatu aplikasi berhubungan dengan aplikasi lainnya. Socket pertama kali diperkenalkan di sistem UnixBSD versi 4.2, pada tahun 1983, sebagai kelanjutan dari implementasi protocol TCP/IP yang muncul pertama kali pada sistem Unix BSD versi 4.1 pada akhir tahun 1981. Hampir setiap variant unix atau linux mengadopsi BSD Soket. Untuk membangun aplikasi hal pertama yang perlu dilakukan adalah menganalisa jenis aplikasi kita, kebutuhan bandwidth, kebutuhan ketersampaian data dan sensitifitas terhadap delay. Berdasarkan hal ini kita bisa menentukan protokol apa yang kita gunakan. Jenis protokol? Ada dua jenis protokol yang digunakan untuk berkomunikasi antar computer, yaitu : TCP (Transmission Control Protocol) adalah protokol yang paling umum digunakan di Internet. Alasan untuk ini adalah karena TCP menawarkan koreksi kesalahan. Ketika protokol TCP digunakan ada guaranteed delivery. yaitu jaminan bahwa packet akan terkirim. Hal ini disebabkan metode yang disebut flow control. Flow control menentukan kapan data harus dikirim kembali, dan menghentikan aliran data paket sebelumnya sampai berhasil ditransfer. Saat paket data dikirim, tabrakan dapat terjadi. Ketika ini terjadi, client akan meminta kembali paket dari server sampai seluruh paket lengkap dan identik dengan aslinya. Cara kerja aplikasi yang menggunakan TCP dapat digambarkan oleh di bawah ini : Detail dari proses tersebut adalah : Untuk bisa melakukan koneksi client server, program server harus berjalan terlebih dahulu. Di sisi server disediakan sebuah socket, yang disebut welcoming socket yang fungsinya untuk mendeteksi adanya permintaan koneksi dari sisi client. Di sisi client terdapat client socket. Jika ingin menghubungi server, maka melalui client socket-nya, client membuat inisialisai koneksi ke welcoming socket milik server, dengan mode three-way handshake. Setelah welcoming socket menerima inisialisasi koneksi dari client socket, aplikasi server akan membuat connection socket di sisi server. Dengan connection socket ini, client socket dan connection socket berinteraksi satu sama lain untuk mengirim dan menerima data. Client membaca data yang dikirim oleh server dari client socket-nya. Kemudian menampilkan data tersebut di monitor. UDP (User Datagram Protocol) adalah protokol yang umum digunakan di Internet. Namun, UDP tidak pernah digunakan untuk mengirim data penting seperti halaman web, informasi database, dll. UDP umumnya digunakan untuk streaming audio dan video. Media streaming seperti Windows Media audio files (.WMA), Real Player(.RM),dan lain-lain menggunakan UDP karena menawarkan kecepatan! Alasan UDP lebih cepat daripada TCP adalah karena tidak ada bentuk flow control atau koreksi kesalahan. Data yang dikirim melalui Internet dipengaruhi oleh tabrakan, dan error akan muncul. Ingatlah bahwa UDP hanya berkaitan dengan kecepatan. Ini adalah alasan utama mengapa media streaming tidak berkualitas tinggi. Contoh aplikasi untuk UDP socket berikut ini menggunakan kasus yang sama dengan kasus yang digunakan oleh TCP socket, yaitu :
Client membaca inputan dari keyboard, kemudian mengirimkan hasilnya ke server melalui socket-nya. Server membaca data yang dikirim oleh client di connection socket Server mengubah data menjadi huruf besar Server mengirimkan data yang telah diubah menuju client melalui socket-nya. Client membaca data yang dikirim oleh server dari client socket- nya. Kemudian menampilkan data tersebut di monitor Port Dalam protokol jaringan,TCP/IP. sebuah port adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan. Port dapat mengidentifikasikan aplikasi dan layanan yang menggunakan koneksi di dalam jaringan TCP/IP. Sehingga, port juga mengidentifikasikan sebuah proses tertentu di mana sebuah server dapat memberikan sebuah layanan kepada klien atau bagaimana sebuah klien dapat mengakses sebuah layanan yang ada dalam server. Port dapat dikenali dengan angka 16bit (dua byte) yang disebut dengan Port Number dan diklasifikasikan dengan jenis protokol transport apa yang digunakan, ke dalam Port TCP dan Port UDP. Karena memiliki angka 16-bit, maka total maksimum jumlah port untuk setiap protokol transport yang digunakan adalah 65536 buah. Dilihat dari penomorannya, port UDP dan TCP dibagi menjadi tiga jenis, yakni sebagai berikut: Well-known Port: yang pada awalnya berkisar antara 0 hingga 255 tapi kemudian diperlebar untuk mendukung antara 0 hingga 1023. Port number yang termasuk ke dalam well-known port, selalu merepresentasikan layanan jaringan yang sama, dan ditetapkan oleh Internet Assigned Number Authority (IANA). Beberapa di antara port-port yang berada di dalam range Well-known port masih belum ditetapkan dan direservasikan untuk digunakan oleh layanan yang bakal ada di masa depan. Sebagai contoh www atau http ada di port 80, sedangkan mail ada di port 25. Contoh lain port 20 dan 21 untuk FTP (file transfer protocol) Registered Port: Port-port yang digunakan oleh vendor-vendor komputer atau jaringan yang berbeda untuk mendukung aplikasi dan sistem operasi yang mereka buat. Registered port juga diketahui dan didaftarkan oleh IANA tapi tidak dialokasikan secara permanen, sehingga vendor lainnya dapat menggunakan port number yang sama. Range registered port berkisar dari 1024 hingga 49151 dan beberapa port di antaranya adalah Dynamically Assigned Port.
Dynamically Assigned Port: merupakan port-port yang ditetapkan oleh sistem operasi atau aplikasi yang digunakan untuk melayani request dari pengguna sesuai dengan kebutuhan. Dynamically Assigned Port berkisar dari 1024 hingga 65536 dan dapat digunakan atau dilepaskan sesuai kebutuhan. Berikut ini contoh aplikasi yg berkomuniaksi lewat LAN atau internet dlm kehidupan sehari hari: Ada 2 orang yang sedang chating sambil chating kedunya juga bermain program catur online . contoh 2 aplikasi network mempunyai no port berbeda Untuk mencapai tujuan,paket data masing masing aplikasi mempunyai alamat PC yg dituju dan alamat aplikasi yg dituju. Alamat PC berupa IP adress dan alamat aplikasi (prosses) berupa nomor port (port yang dimaksud disini bukan port yg ada di microcontroller ). Kombinasi IP adress dan nomor port disebut socket. Aplikasi dalam contoh gambar di atas yaitu program Catur online dan Chating Socket = alamat IP + alamat aplikasi (port) Socket bisa juga dianalogikan dengan sebuah alamat kartu pos jika kita ingin mengirim surat, maka kita perlu alamat rumah dan nama si penerima ,karena di alamat rumah yg dituju dihuni beberapa orang. Jika hanya alamat rumah saja nanti suratnya , maka tdk akan sampai kepada orang yg dituju. alamat rumah = IP adress nama orang yg dituju = nomor port