0% 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.

Diunggah oleh

goezrendy
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% 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.

Diunggah oleh

goezrendy
Hak Cipta
© © All Rights Reserved
Format Tersedia
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)

select * from @mat_table

END
Deklarsi Table Variable
Declare variable table (
<field1> <datatype>, <field2> <datatype>, <fieldn> <datatype>
)

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

If Boolean ekspresi { sql statement | statement block}
[ELSE { sql statement | statement block} ]

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

Anda mungkin juga menyukai