Jumat, 07 Mei 2010

MODEL DATA RELASIONAL

MODEL DATA RELASIONAL
Pengertian Basis Data Relasional
• Basis Data relasional menggunakan tabel dua dimensi yang terdiri atas baris dan kolom untuk memberi gambaran sebuah berkas data.
• Basis data akan “disebar” atau dipilah-pilah ke dalam berbagai tabel dua dimensi. Setiap table selalu terdiri atas lajur mendatar yang disebut baris data (row / record) dan lajur vertikal yang biasa disebut dengan kolom (column / field).
Contoh Tabel dan keterhubungannya
MHS
NPM Nama Alamat
10296832 Nurhayati Jakarta
10296162 Astuti Jakarta
31296500 Budi Depok
41296525 Prananingrum Bogor
50096487 Pipit Bekasi
21196353 Quraish Bogor
MKUL
KDMK MTKULIAH SKS
KK021 P.Basis data 2
KD132 SIM 3
KU122 Pancasila 2
Tabel penghubungnya :
NILAI
NPM KDMK MID FINAL
10296831 KK021 60 75
10296126 KD132 70 90
31296500 KK021 55 40
41296525 KU122 90 80
21196353 KU122 75 75
50095487 KD132 80 0
10296832 KD132 40 30
Keuntungan Basis Data Relasional
• Bentuknya sederhana
• Mudah melakukan berbagai operasi data.
Istilah dalam Basis Data Relasional
• Relasi
Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapabaris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya.
• Atribut
Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data.
• Tuple
Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yangsaling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang, misalnya : NPM,nama mahasiswa, alamat, kota, dll.
• Domain
Kumpulan nilai yang valid untuk satu atau lebih atribut
• Derajat (degree)
Jumlah atribut dalam sebuah relasi
• Cardinality
Jumlah tupel dalam sebuah relasi
Relational Key
• Super key
Satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah tuple didalam relasi
• Candidate key
Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik. Satu set minimal dari atribut menyatakan secara taklangsung dimana kita tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik.
• Primary key
Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada.
• Alternate key
Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate key yang tidak dipilih sebagai primary key.
• Foreign key (Kunci Tamu)
Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan pada entitas anak dan sama dengan primary key induk direlasikan.
Relational Integrity Rules
• Null
Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut. Nilai (konstanta) Null digunakan untuk menyatakan / mengisi atribut-atribut yang nilainya memang belum siap/tidak ada.
• Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.
• Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan.
Bahasa Pada Basis data Relational Menggunakan bahasa query pernyataan yang diajukan untuk mengambil informasi. Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya untuk pengelolaan data
Bahasa query terbagi 2 :
1. Bahasa Formal
Bahasa query yang diterjemahkan dengan menggunakan symbol-simbol matematis.
Contoh :
•Aljabar Relasional
Bahasa query prosedural, pemakai menspesifikasikan data apa yangdibutuhkan dan bagaimana untuk mendapatkannya.
•Kalkulus Relasional
Bahasa query non-prosedural, pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Terbagi 2 :
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain
2. Bahasa Komersial
Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).
Contoh :
• QUEL
Berbasis pada bahasa kalkulus relasional
• QBE
Berbasis pada bahasa kalkulus relasional
• SQL
Berbasis pada bahasa kalkulus relasional dan aljabar relasional
Contoh-contoh Basis Data Relasional :
DB2 - IBM
Oracle - ORACLE
Sybase - POWERSOFT
Informix - INFORMIX
Microsoft Access – MICROSOFT
STRUCTURED QUERY LANGUAGE
(S Q L)
STRUCTURED 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 secara interaktif atau ditempelkan (embedded) pada suatu program aplikasi.
KOMPONEN-KOMPONEN SQL
? DATA DEFINITION LANGUAGE (DDL)
Digunakan untuk mendefinisikan data dengan menggunakan perintah : Create, Drop, Alter
? DATA MANIPULATION LANGUAGE (DML)
Digunakan untuk memanipulasi data dengan menggunakan perintah : Select, Insert, Delete, Update. DML merupakan bagian terpadu bahasa SQL. Perintahperintahnya dapat dibuat secara interaktif atau ditempelkan pada program aplikasi. Pemakai hanya menentukan “APA” yang diinginkan, DBMS menentukan “BAGAIMANA” cara mendapatkannya.
? DATA CONTROL LANGUAGE (DCL)
Digunakan untuk mengontrol hak para pemakai data dengan perintah : Grant, Revoke
DATA DEFINITION LANGUAGE
1. CREATE TABLE
Fungsi : membuat table
Sintaks : CREATE TABLE tbname
(col 1 data type data spec,
Col 2 data type data spec,
-
-
PRYMARY KEY (col1………))
Contoh :
CREATE TABLE PERSONAL
(REGNO CHAR( 10 ) NOT NULL,
NAME CHAR( 45 ) NOT NULL,
ADDRES CHAR( 45 ),
BIRTH DATE NOT NULL WITH DEFAULT.
PRIMARY KEY (REGNO))
NULL
Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT
NULL :
Dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (nol).
NOT NULL :
Pemakai atau program harus memberikan nilai-nilai ada saat memasukkan record.
NOT NULL WITH DEFAULT :
Nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.
Nilai default-nya :
Nol untuk tipe field NUMERIC
Blank untuk tipe field CHARACTER
CURRENT DATE untuk tipe field DATE
CURRENT TIME untuk tipe field TIME
2. CREAT VIEW
Fungsi : membuat table view.
View merupakan bentuk alternative penyajian data dari satu atau lebih table. View dapat berisi semua atau sebagian kolom yang terdapat pada table dimana kolom tersebut didefinisikan.
Tujuan membuat view :
• Meningkatkan keamanan data
• Meningkatkan kemandirian data
• Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik).
Properti :
• Tidak terdapatnya data tambahan
• View mwncakup subset kolom dan / atau baris
• View dapat berisikan data dari beberapa table dan/atau tbel-tabel view lainnya
• View dapat berisikan perolehan data, missal : nilai rata-rata
• Manipulasi data melalui view terbatas
Sintaks : CREATE VIEW viewname (column1. column2, …….)
AS SELECT statement FROM tbname
[WITH CHECK OPTION]
Keterangan :
View-name : nama view yang akan dibuat.
Column : nama atribut untuk view
Statement : atribut yang dipilih dari table basis data.
Tabel-name : nama table basis data.
Contoh :
CREATE VIEW VPERSON (REGNO, NAME) AS
SELESCT REGNO, NAME FROM PAUL PERSONEL
3. CREATE INDEX
Fungsi : membuat index
Sintaks : CREATE UNIQUE INDEX PERSONIDX
ON PERSONEL (REGNO)
Dengan index memungkinkan suatu table diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat melalui index yang dibuat berdasar nilai field tertentu. Spesifikasi UNIQUE akan menolak key yang sama dalam file.
4. DROP TABLE
Fungsi : menghapus table
Sintaks : DROP TABLE tbname
Contoh : DROP TABLE PERSONEL
Dengan perintah itu obyek lain yang berhubungan dengan table tersebut otomatis akan dihapus atau tidak akan berfungsi seperti :
- semua record dalam table akan terhapus
- index dan view pada table akan hilang
- deskripsi table akan hilang
5. DROP VIEW
Fungsi : menghapus view
Sintaks : DROP VIEW viewname
Contoh : DROP VIEW VPERSON
6. DROP INDEX
Fungsi : menghapus index
Sintaks : DROP INDEX indexname
Contoh : DROP INDEX PRSONIDX
7. ALTER
Fungsi : merubah atribut pada suatu table
Sintaks : ALTER TABLE tbname
MODIFY (nama_kolom tipe kolom)
ADD (nama_kolom tipe_kolom [[before, nama_kolom]])
DROP (nama_kolom tipe_kolom)
Contoh : merubah table TABX dengan menambah field D.
ALTER TABLE TABX
ADD D CHAR(3)
DATA MANIPULATION LANGUAGE
1. INSERT
Fungsi : menambah baris (record) baru
Sintaks : INSERT INTO tbname
(col1. ..) VALUES (value1. …)
Contoh :
Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai. Tetapi jika dalam table semua kolom akan diisi dapat digunakan sintaks berikut ini :
Sintaks : INSERT INTO tbname
VALUES (value1, value2, …)
Nilai-nilai diisikan sebanyak kolomyang terdapat di tael tersebut.
2. UPDATE
Fungsi : Merubah record
Sintaks : UPDATE tbname SET field = ekspresi
WHERE kondisi
3. DELETE
Fungsi : menghapus record
Sintaks : DELETE FROM tbname
WHERE kondisi
4. SELECT
Fungsi : menampilkan record
Sintaks : SELECT [DISTINCT] colname FROM tbname
[WHERE kondisi]
[GROUP BY kondisi]
[HAVING kondisi]
[ORDER BY kondisi]
Contoh kasus DDL :
• Membuat table (create table)
1. CREATE TABLE S
(Sn Char(5) NOT NULL,
Sname Char(20) NOT NULL,
Status Smallint NOT NULL,
City Char(15) NOT NULL);
2. CREATE TABLE P
(Pn Char(6) NOT NULL,
Pname Char(20) NOT NULL,
Color Char(6) NOT NULL,
Weight Smallint NOT NULL);
3. CREATE TABLE SP
(Sn Char(5) NOT NULL,
Pn Char(6) NOT NULL,
QTY INTEGER NOT NULL);
4. CREATE UNIQUE INDEX Sidx ON S(Sn);
CREATE UNIQUE INDEX ON P(Pn);
CREATE INDEX Sdx ON S(Sn);
CREATE INDEX Pdx ON P(Pn);
Contoh kasus DML :
• Menambah record (INSERT)
INSERT INTO S VALUES (‘S1’,’Smith’.20.’London’);
INSERT INTO S VALUES (‘S2’,’Jones’.10.’Paris’);
INSERT INTO S VALUES (‘S3’,’Blake’.30.’Paris’);
Tabel S, P dan SP isikan dengan data-data sebagai berikut:
TABEL S
SN Sname Status City
S1 Smith 20 London
S2 Jones 10 Paris
S3 Blake 30 Paris
S4 Clarks 20 London
S5 Adams 30 Athens
TABEL P
Pn Pname warna weight city
P1 Nut Red 12 London
P2 Bolt Green 17 Paris
P3 Screw Blue 17 Rome
P4 Screw Red 14 London
P5 Cam Blue 12 Paris
P6 Cog Red 19 London
TABEL SP
Sn Pn Qty
S1 P1 300
S1 P2 200
S1 P 40
S1 P4 200
S1 P5 100
S1 P6 100
S2 P1 300
S2 P2 400
S3 P2 200
S4 P2 200
S4 P4 300
S4 P5 400
• Merubah record (UPDATE)
1. merubah data (record) pada abel P yan mempunai nomor part P2, warnanya dirubah menjadi kuning dan beratnya ditambah 5.
UPDATE P SET Warna = ‘yellow’,
Weight = Weight + 5
WHERE Pn = ‘P2’
2. Merubah record pada table S, statusnya menjadi dua kali status awal untuk supplier yang bertempat tinggal di kota London
UPDATE S SET status = 2* status
WHERE CITY= ‘london’
• Menghapus record (SELECT 1 tabel)
Menghapus record pada table S yang nomor supplier-nya S5
DELETE FROM S
WHERE Sn = ‘S5’
• Menampilkan record (SELECT 1 tabel)
1. Menampilkan semua data supplier
SELECT * FROM S
Atau
SELECT Sn, Sname, Status, City FROM S
2. Menampilkan semua nilai Pn pada tbel Sp
SELECT Pn FROM Sp
3. Menampilkan nomor supplier dan status untuk supplier yang tinggal di Paris.
SELECT Sn, Status FROM S
WHERE City = ‘Paris’
4. Menampilkan no.supplier yang tinggal di Paris dengan status > 20.
SELECT Sn FROM S
WHERE City = ‘Paris” AND Status > 20
5. Menampilkan jumlah pengiriman P1.
SELECT COUNT (*) FROM SP
WHERE Pn = ‘P1’
6. Perintah untuk menghindari hasil data yang sama terulang kembali (distinct)
SELECT DISTINCT Pn FROM Sp
7. Menampilkan no.supplier dan status bagi supplier yang tinggal di Paris dalam urutan status menurun.
SELECT Sn, Status FROM S
WHERE City = ‘Paris’
ORDER BY Status desc
8. Menampilkan no.part dari semua part yang dipasok oleh lebih dari seorang supplier.
SELECT Pn FROM Sp
GROUP BY Pn
HAVING COUNT (*) > 1
9. Menampilkan semua part yang nomornya dimulai dengan huruf c.
SELCET * FROM P
WHERE Pname LIKE ‘C%’
• Menampilkan record (SELECT lebih dari satu table/JOIN)
1. Menampilkan semua supplier dan part yang keduanya bertempat tinggal pada kota yang sama.
SELECT Sn, Sname, Status S.city, pn, Pname, warna, weight FROM S,P
WHERE S.city = P.city
2. Menampilkan nama supplier yang memasok barang dengan nomor part P2
SELECT Sname FROM S,SP
WHERE S.sn = SP. Sn AND SP. Pn = ‘P2’
3. Menampilkan nama supplier yang memasok part berwarna merah
SELECT Sname FROM S, SP, P
WHERE S.Sn = SP.Sn
AND Sp.Pn = P.Pn
AND P.COLOR = ‘RED’
• Menampilkan record (SELECT lebih dari satu table/SELECT bertingkat)
1. Menampilkan nama supplier yang memasok barang dengan no part P2
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM Sp WHERE Pn = ‘P2’)
2. Menampilkan nama supplier yang memasok dari part yang berwarna merah
SELECT Sname FROM S WHERE Sn IN
(SELECT Sn FROM Sp WHERE Pn IN)
(SELECT Pn FROM P WHERE warna = ‘RED’))
3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status yang ada pada tabel s.
SELECT Sn FROM S WHERE status <
(SELECT MAX (Status) FROM S)
4. Menampilkan nama supplier yang tidak memasok barang dengan no part P2
SELECT Sname FROM S WHERE Sn NOT IN
(SELECT Sn FROM SP WHERE Pn = ‘P2’)
5. Menampilkan semua no supplier yang sama lokasinya dengan S1
SELECT Sname FROM S WHERE city =
(SELECT city FROM S WHERE Sn = ‘S1’)
• Fungsi perhitungan
COUNT : Jumlah baris dalam kolom
SUM : Jumlah nilai dalam kolom
AVG : Rata – rata nilai dalam kolom
MAX : Nilai terbesar dalam kolom
MIN : Nilai terkecil dalam kolom
Untuk SUM dan AVG nilainya harus numeric (INT, SMALLINT, FLOAT). Fungsi-fungsi tersebut jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT (*).
1. Menghitung jumlah supplier
SELECT COUNT (*) FROM S
Atau
SELECT COUNT (Sn) FROM S
2. Menampilkan nomor part dan total kuantitas pengiriman dari setiap part.
SELECT Pn, SUM (Qty) FROM SP
GROUP BY Pn
3. Menghitung jumlah kuantitas dari P2 yang telah disupply
SELECT SUM (Qty) FROM SP WHERE Pn = ‘P2’
4. menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh supplier S1
SELECT COUNT (*) FROM Sp
WHERE Pn = ‘P4’ AND Sn = ‘S1’
5. Menampilkan nomor part dan total kuantitas dari masing-masing part
SELECT Pn, SUM (QTY) FROM SP
GROUP BY P3
DATA CONTROL LANGUAGE
1. GRANT
Fungsi : digunakan untuk memberikan izin akses pada user
Sintaks : GRANT privileges ON Tbname To user
Contoh :
GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT, UPDATE, DELETE, ON CLUB TO USER01
2. REVOKE
Fungsi : Digunakan untuk mencabut izin akses kepada user
Sintaks : REVOKE privilages On Tbname FROM user
Contoh :
REVOKE INSERT, UPDATE, DELETE, ON CLUB FROM USER01
REVOKE ALL ON CLUB FROM PUBLIC
JENIS PERINTAH SQL
(menggunakanMYSQL)
Jenis Perintah SQL
• DDL (Data Definition Language)
? untuk membuat, mengubah dan menghapus basis data beserta table-tabelnya
contoh : CREATE, ALTER, DROP
• DML (Data Manipulation Language)
? untuk melihat, menambah, mengubah dan menghapus isi table.
contoh : INSERT, DELETE, UPDATE
• DCL (Data Control Language )
? untuk mengatur sekuritas basis data seperti memberikan dan menghapus hak akses user ke basis data.
contoh : GRANT, REVOKE
(DDL) Data Definition Language
o Membuat basis data
? Membuat Basis Data
mysql> create database nama_database;
Contoh membuat basis data “dbkuliah”
mysql> create database dbkuliah;
? Setelah dibuat, basis data siap digunakan
mysql> use dbkuliah;
o Membuat Tabel & Strukturnya
? Membuat tabel
mysql>create table namatabel (field1 type1 (panjang-data1),field2 tipe2 (panjangdata2));
contoh :
mysql> create table tbldosen(NIP VARCHAR(9) PRIMARY KEY,nama VARCHAR(30),alamat VARCHAR(50));
? Melihat struktur tabel tsb
mysql> desc tbldosen;
o Mengubah Struktur Tabel
Menambah / mengubah struktur field yang telah dibuat digunakan perintah ALTER
? Menambah field
mysql> alter table nama-tabel add fieldbarux tipe-baru ;
Contoh pada tbldosen ditambahkan field tgllahir dengan tipe date
mysql> alter table tbldosen add tgllahir date;
? Menghapus field :
mysql> alter table tbldosen drop column tgllahir;
o Mengubah Struktur Tabel (lanjutan)
? Mengubah lebar field pada tabel
mysql> alter table namatabel modify fieldnya tipenya (panjangbaru);
Contoh mengubah panjang data untuk namadosen
mysql> alter table tbldosen modify nama varchar (50);
? Mengganti nama field
mysql> alter table nama_tabel change nama_fleld_lama nama_fleld_baru tipe_data;
o Mengubah Struktur Tabel (lanjutan)
Contoh mengganti nama field
mysql> alter table tbldosen change alamatdosen alamatkotadosen text;
? Mengganti Nama Tabel
mysql> alter table nama_tabel_ lama rename nama_tabel_baru;
Contoh mengganti nama tabel
mysql> alter table tbldosen rename tbliddosen;
o Menghapus Tabel
? Menghapus Tabel
mysql> drop table nama_tabel;
Contoh:
mysql> drop table tbliddosen;
o Menghapus Basis Data
Setelah tidak terpakai, basis data dapat dihapus
? Menghapus Basis Data
mysql> drop database nama_database;
Contoh:
mysql> drop database dbdosen;
o Membuat Index
• Index digunakan untuk mempercepat proses pencarian data dalam suatu tabel
• Index dapat dibuat untuk setiap kolom yang akan dijadikan kriteria untuk pencarian data shg pencarian data untuk kolom dapat lebih cepat.
? Membuat Index:
mysql> create index namaindex on namatabel (namakolom1,namakolom2,…);
Contoh membuat index pada tbldosen dengan kolom nip dan namadosen :
mysql> create index dosen on tbldosen(nip, namadosen);
o Menghapus Index
• Index dapat dihapus yg tidak akan menyebabkan terhapusnya tabel.
• Akibat penghapusan index, pencarian data pada kolom akan lebih lambat.
? Menghapus Index:
mysql> drop index namaindex on namatabel;
Contoh menghapus index pada tbldosen :
mysql> drop index dosen on tbldosen;
(DML) Data Manipulation Language
o Memasukkan Data
? Ada dua perintah untuk memasukkan data ke dalam table.
mysql > insert into nama_tabel values (isi_field_l, isi_field_2,…, isi_-field_n);
atau
mysql > insert into nama_tabel (nama-field_l, nama_ field 2,…, nama_field_n) values (isi-field_l, isi-field_2,…, isi_fleld_n);
• Isian data disertai dengan tanda petik di atas.
Contoh
mysql> insert into tbldosen values (’131651258’,’Titon Dutono’,’Semolowaru Indah N-30 Surabaya’);
mysql> insert into tbldosen (nip,namadosen,alamatdosen)
values (‘132309426’,’mera’,’jatiwarna indah blok T4’);
o Mengubah Data
Digunakan untuk mengupdate atau mengubah isi data dalam table data dalam table.
mysql> update namatabel set field1=nilai1,field2 =nilai2,…, where kondisi;
• Contoh :
update tbldosen set namadosen= ‘andi’,alamatdosen = ‘depok tengah’ where NIP = ‘131651258’;
o Menghapus Data
Menghapus baris/record data dalam table
mysql> delete from namatabel where kondisi;
Contoh :
delete from tbldosen where NIP =‘131651258’;
o Memilih dan Menampilkan Data
Menampilkan data :
SELECT nama_field 1, nama_field_2,…, nama_field_n
FROM nama_tabel
WHERE kondisi
ORDER BY nama_field ASC | DESC;
o Memilih dan Menampilkan Data (lanjutan)
Contoh : menampilkan NIP, nama, dan alamat dosen yang diurutkan berdasarkan urutan abjad nama (ascending) .
mysql> select NIP, namadosen, alamatdosen from tbldosen order by namadosen asc;
Atau
mysql> select * from tbldosen order by namadosen asc;
mysql> select NIP, namadosen,alamatdosen from tbldosen where alamatdosen =‘depok’;
o Memilih dan Menampilkan Data (lanjutan)
Contoh : menampilkan nim, nama dan alamat mail mhs yang mana nama mhs diawali huruf ‘A’ dan diurutkan nim menurun (descending) .
mysql>select nim_mhs,nama_mhs,email_mhs from tblmastermhs where nama_mhs like 'A%' order by nim_mhs desc;
o Menghapus Data
•Apabila terdapat kesalahan data atau data sudah tidak dipakai lagi, hapus dengan perintah DELETE.
•Sintaksnya:
mysql> delete from nama tabel where kondisi;
• Contoh :
delete from tbldosen where namadosen = ‘wiwid’;
(DCL) Data Control Language
• DCL digunakan sebagai alat kontrol keamanan terhadap basis data dan tabelnya.
• Dua perintah utama di dalam DCL adalah GRANT dan REVOKE.
• GRANT digunakan untuk mengijinkan user mengakses tabel dalam basis data tertentu, sedangkan REVOKE sebaliknya.
• REVOKE digunakan untuk mencabut kembali ijin yang sudah pernah diberikan sebelumnya oleh GRANT.
Script-Script Tambahan
Perintah Show
• Perintah Show digunakan u/ menampilkan info basis data.
- Informasi basis data
mysql> show databases;
- Informasi tabel, yang sebelumnya pastikan memilih basis data yang akan dilihat tabelnya dengan perintah use
mysql> use nama_database;
mysql> show tables;
Perintah Show (lanjutan)
• Perintah Show digunakan u/ menampilkan info basis data.
- Informasi tabel basis data
mysql> show create table nama_tabel;
Perintah Query
• PerintahQuery merupakan suatu proses yg digunakan u/ melakukan penyajian data dari basis data dg kondisi tertentu.
- Kondisi dinyatakan
where nama_field like suatu_nilai
• Contoh penggunaan :
mysql> select nama,alamat,email from tblbukualamat where nama like ‘A%’;
ENTITY RELATIONSHIP DIAGRAM
HAL YANG BERKAITAN
• Model Data
kumpulan perangkat konseptual untuk menggambarkan data, hubungan data, semantik (makna) dari data dan keterhubungannya dengan data.
• Perancangan Basis Data
1. Scratching (Langsung dari awal)
kelangkaan data/fakta yang dimiliki
2. Preliminary Design (Bentuk diagram awal)
mudah di evaluasi/analisis u/ diperbaiki agar mendapatkan model data yang lebih permanen dan lebih mendekati kenyataan sesungguhnya.
• Fakta Dunia Nyata “Real World”
bukan berarti dunia dan segala isinya, tapi lebih bermakna sempit yang merujuk pada semesta (keseluruhan) data yang belum terstruktur yang secara nyata ada/terkait dalam sebuah lingkup topik yang ditinjau.
Contoh : Perbankan >< Perkuliahan
Contoh ffakta dunia nyata :
Perguruan Tinggi X :
- Mahasiswa
- Dosen
- Kurikullum
- Ruang Kuliah
- Penilaian
- Ujian
- Praktikum
MODEL KETERHUBUNGAN ENTITAS (Model E-R)
Model E-R didasarkan pada persepsi dari sebuah dunia nyata yang terdiri dari sekumpulan objek, disebut entiti & relasi diantara objek-objek tersebut.
Komponen2 Pembentuk E-R Model
1. Entitas (Entity) dan Himpunan Entitas (Entitas Set).
2. Atribut (Attributes/properties)
3. Relasi (Relationship) dan Himpunan Relasi (Relationship Sets)
4. Kardinalitas (Cardinality)
1.. Entitas (Entity) dan Himpunan Entitas (Entitas Set)
- Merupakan barang/obyek yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan
dari sesuatu yang lain.
Contoh :
Individu : Pegawai, Pelanggan, Mahasiswa, Distributor
Tempat : Ruang,Bangunan, Lapangan, Kampus
Obyek : Buku, Motor, Paket Software, Produk
Peristiwa : Pendaftaran, Pemesanan, Penagihan
Konsep : Rekening, Kualifikasi
2. Atribut (Attributes/properties)
3. Relasi (Relationship) dan Himpunan Relasi (Relationship Sets)
4. Kardinalitas
Kardinalitas relasi
Definisi
- angka yang menunjukan banyaknya kemunculan suatu obyek terkait dengan kemunculan obyek lain pada suatu relasi
- kombinasi yang mungkin : (1:1, 1:N, M:N)
KARDINALITAS PEMETAAN
1. Hubungan satu ke satu (one to one).
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam B.
2. Hubungan satu ke banyak (one to many)
Yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam B. Satu entity dalam B dihubungkan dengan maksimum satu entity dalam A.
3. Hubungan banyak ke satu (many to one)
Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam B. Satu entity dalam B dapat dihubungkan dengan sejumlah entity dalam A.
4. Hubungan banyak k banyak (many to many).
Satu entity dalam A dihubungkan dengan sejumlah entity dalam B, & satu entity dalam B dihubungkan dengan sejumlah entity dalam A.
Pemodelan data yang baik
- Sederhana
- Tidak ada duplikasi data (redundant)
- Fleksibel dan mudah beradaptasi dengan perkembangan
Contoh pemodelan data
Representasi tabular
Entity Relationship Diagram (ERD)
ERD merupakan notasi grafis dalam pemodelan data konseptual yang mendeskripsikan hubungan antara penyimpanan. ERD digunakan untuk memodelkan struktur data dan hubungan antar data, karena hal ini relatif kompleks. Dengan ERD kita dapat menguji model dengan mengabaikan proses yang harus dilakukan. Dan dengan ERD kita mencoba menjawab pertanyaan seperti; data apa yang kita perlukan? bagaimana data yang satu berhubungan dengan yang lain?
Komponen E-R Diagram
1. Persegi panjang (rectangles)
merepresentasikan entity sets
2.. Elip (ellipses)
merepresentasiikan atriibut entity
3.. Wajik(diamonds)
merepresentasiikan rellatiionshiip sets
4.. Liines (garis)
merepresentasiikan hubungan atriibut ke entiity sets & entity sets kerelatioship sets
TAHAPAN PEMBUATAN DIAGRAM E-R
1. Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat.
2. Menentukan atribut2 key dari masing2 himpunan entitas.
3. Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitashimpunan entitas yang ada beserta foreign-key nya
4. Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi.
5. Melengkapi himpunan entitas dan himpunan relasi dengan atribut2 deskriptif (non-key)
6. Kamus Data - Struktur Data

Kamis, 15 April 2010

DOMAIN NAME SYSTEM

Sejarah DNS
Sebelum dipergunakannya DNS, jaringan komputer menggunakan HOSTS files yang berisi informasi dari nama komputer dan IP address-nya. Di Internet, file ini dikelola secara terpusat dan di setiap lokasi harus di copy versi terbaru dari HOSTS files, dari sini bisa dibayangkan betapa repotnya jika ada penambahan 1 komputer di jaringan, maka kita harus copy versi terbaru file ini ke setiap lokasi. Dengan makin meluasnya jaringan internet, hal ini makin merepotkan, akhirnya dibuatkan sebuah solusi dimana DNS di desain menggantikan fungsi HOSTS files, dengan kelebihan unlimited database size, dan performace yang baik. DNS adalah sebuah aplikasi services di Internet yang menerjemahkan sebuah domain name ke IP address. Sebagai contoh, www untuk penggunaan di Internet, lalu diketikan nama domain, misalnya: yahoo.com maka akan di petakan ke sebuah IP mis 202.68.0.134. Jadi DNS dapat di analogikan pada pemakaian buku telepon, dimana orang yang kita kenal berdasarkan nama untuk menghubunginya kita harus memutar nomor telepon di pesawat telepon. Sama persis, host computer mengirimkan queries berupa nama komputer dan domain name server ke DNS, lalu oleh DNS dipetakan ke IP address.
Domain Name System (DNS)
Domain Name System (DNS) adalah distribute database system yang digunakan untuk pencarian nama komputer (name resolution) di jaringan yang mengunakan TCP/IP (Transmission Control Protocol/Internet Protocol). DNS biasa digunakan pada aplikasi yang terhubung ke Internet seperti web browser atau e-mail, dimana DNS membantu memetakan host name sebuah komputer ke IP address. Selain digunakan di Internet, DNS juga dapat di implementasikan ke private network atau intranet dimana DNS memiliki keunggulan seperti:
• Mudah, DNS sangat mudah karena user tidak lagi direpotkan untuk mengingat IP address sebuah komputer cukup host name (nama Komputer).
• Konsisten, IP address sebuah komputer bisa berubah tapi host name tidak berubah.
• Simple, user hanya menggunakan satu nama domain untuk mencari baik di Internet maupun di Intranet.
DNS (Domain Name System) adalah suatu system yang mengubah nama host (seperti linux.or.id) menjadi alamat IP (seperti 64.29.24.175) atas semua komputer yang terhubung langsung ke Internet. DNS juga dapat mengubah alamat IP menjadi nama host. DNS bekerja secara hirarki dan berbentuk seperti pohon (tree). Bagian atas adalah Top Level Domain (TLD) seperti COM, ORG, EDU, MIL dsb. Seperti pohon DNS mempunyai cabang-cabang yang dicari dari pangkal sampai ke ujung. Pada waktu kita mencari alamat misalnya linux.or.id pertama-tama DNS bertanya pada TLDserver tentang DNS Server yang melayani domain .id misalnya dijawab ns1.id, setelah itu dia bertanya pada ns1.id tentang DNS Server yang bertanggung jawab atas .or.id misalnya ns.or.id kemudian dia bertanya pada ns.or.id tentang linux.or.id dan dijawab 64.29.24.175
Sedangkan untuk mengubah IP menjadi nama host melibatkan domain in-addr.arpa. Seperti domain lainnya domain in-addr.arpa pun bercabang-cabang. Yang penting diingat adalah alamat IP-nya ditulis dalam urutan terbalik di bawah in-addr.arpa. Misalnya untuk alamat IP 64.29.24.275 prosesnya seperti contoh linux.or.id: cari server untuk arpa, cari server untuk in-addr.arpa, cari server untuk 64.in-addr.arpa, cari server 29.64.in-addr.arpa, cari server untuk 24.29.64.in-addr.arpa. Dan cari informasi untuk 275.24.29.64.in-addr.arpa. Pembalikan urutan angkanya memang bisa membingungkan.


DNS Server di Linux
DNS Server di linux biasanya dijalankan oleh program yang bernama named. Program ini merupakan bagian dari paket bind yang dikoordinasikan oleh Paul Vixie dari The Internet Software Consortium. Biasanya program ini terletak di /usr/sbin/named dan dijalankan pada waktu booting dari /etc/rc.d/init.d/named start. Agar named dijalankan pada setiap booting masukkan named ke daftar server yang harus distart dengan menggunakan ntsysv.
DNS dapat disamakan fungsinya dengan buku telepon. Dimana setiap komputer di jaringan Internet memiliki host name (nama komputer) dan Internet Protocol (IP) address. Secara umum, setiap client yang akan mengkoneksikan komputer yang satu ke komputer yang lain, akan menggunakan host name. Lalu komputer anda akan menghubungi DNS server untuk mencek host name yang anda minta tersebut berapa IP address-nya. IP address ini yang digunakan untuk mengkoneksikan komputer anda dengan komputer lainnya.
Domain name adalah sebuah sistem penamaan alamat internet yang bersifat “manusiawi” karena sebenarnya alamat internet protokol (IP) yang asli adalah berupa angka-angka yang sulit dihapal seperti ini: 212.53.64.62. Adanya domain name membuat penamaan alamat internet protokol menjadi mudah dan gampang diingat. Misalnya www.kompas.com atau www.yahoo.com. Domain name boleh dikatakan sebagai “alamat rumah virtual seseorang di internet”.
Struktur domain name
Domain name terdiri atas sebuah struktur hierarki, di mana level tertinggi disebut sebagai Top-Level Domains (TLDs). Saat ini, terdapat lebih dari 200 TLDs yang terdaftar di seluruh dunia. Jumlah ini akan terus bertambah sesuai perkembangan jaman. Namun di antara semua TLDs tersebut, terdapat tiga yang paling populer, yaitu “.com”, “.net”, dan “.org”. Setiap TLDs harus terdaftar secara resmi di lembaga yang memiliki otoritas untuk masalah domain name, yaitu ICANN (Internet Corporation for Assigned Names and Numbers) dan setiap negara memiliki TLDs yang berbeda-beda. Sebagai contoh, TLDs untuk Indonesia adalah .id, Singapura: sg, dan sebagainya. Adapun .com, .net dan .org berlaku internasional, jadi bisa dipakai oleh siapa saja di seluruh dunia.

Level kedua setelah TLDs adalah second level domains (SLDs). Salah satu contohnya adalah ajangkita.com, di mana ajangkita merupakan SLD. Contoh lainnya, yahoo.com, kompas.com, hotmail.com, dan sebagainya.
Level berikutnya adalah domain level ketiga, keempat, kelima, dan seterusnya. Sebagai contoh adalah www.ajangkita.com, di mana www adalah domain level ketiga. Domain level ketiga dan seterusnya dibuat oleh pemilik SLD, bukan oleh ICANN.
Jenis domain name
Secara umum, domain name terdiri atas dua jenis, yaitu:
- Generic Top-Level Domains (gTLDs) yang berlaku internasinal. Contohnya adalah .com, .org dan .net, sebagaimana diceritakan di atas. Baru-baru ini ICANN meresmikan tujuh gTLDs baru yang berlaku internasional.
- Country Top-Level Domains (cTLDs) yang berlaku hanya di wilayah teritorial tertentu. Sebagai contoh, cTLDs untuk Indonesia = .id, Inggris = .uk, Perancis = .fr, dan sebagainya. Karena berlaku secara teritorial, setiap teritorial memiliki aturan yang berbeda-beda mengenai sistem penamaan dan pendaftaran untuk cTLDs ini.
Host name
Domain name yang digunakan dengan host name akan menciptakan fully qualified domain name (FQDN) untuk setiap komputer. Sebagai contoh, jika nama domain karir.detik.com, maka karir adalah host name dan detik.com adalah domain name-nya, atau pada upt.amikom.ac.id, dimana upt adalah host name dan upt.amikom.ac.id adalah domain name-nya.
DHCP (Dynamic Host Configuration Protocol)
DHCP merupakan singkatan dari Dynamic Host Configuration Protocol. Kegunaan dari DHCP sangatlah besar dalam suatu jaringan komputer. DHCP digunakan agar komputer-komputer yang terdapat pada suatu jaringan komputer bisa mengambil konfigurasi (baik itu IP address, DNS address dan lain sebagainya) bagi mereka dari suatu server DHCP. Intinya dengan adanya DHCP maka akan mampu mengurangi pekerjaan dalam mengadministrasi suatu jaringan komputer berbasis IP yang besar.
DHCP dibuat dan didesain oleh kelompok kerja Dynamic Host Configuration pada Internet Engineering Task Force (IETF). IETF sendiri merupakan organisasi yang mendefinisikan berbagai macam protokol dalam hubungannya dengan internet. Selanjutnya, definisi dari DHCP itu sendiri dituangkan ke dalam suatu dokumen RFC (Request for Comments) dan kemudian Internet Activities Board (IAB) mengkaji statusnya untuk kemudian menjadi suatu standar di internet. Sampai dengan bulan Maret 1996, status DHCP merupakan suatu Internet Proposed Standard Protocol dan sifatnya Elective. Sementara itu BOOTP saat itu merupakan Internet Draft Standard Protocol dan sifatnya Recommended.

DHCP berbasiskan pada BOOTP dan masih kompatibel dengan teknologi sebelumnya. Perbedaan utamanya adalah BOOTP didesain untuk manual pre-configuration dari informasi host di dalam suatu server database, sementara itu DHCP digunakan untuk memberi alokasi alamat jaringan secara dinamis dan juga konfigurasi penting lainnya bagi host-host yang baru bergabung ke dalam jaringan. Sebagai tambahan, DHCP membolehkan suatu metode recovery dan juga relokasi dari suatu alamat jaringan melalui suatu mekanisme leasing.RARP merupakan suatu protokol yang digunakan oleh Sun dan vendor lainnya yang mana membolehkan suatu komputer untuk mencari nomor IP-nya sendiri, yang mana salah satu parameter-parameter protokol diberikan ke client system dengan DHCP atau BOOTP. RARP tidak mendukung parameter-parameter lainnya dan menggunakannya. Sebuah server hanya mampu untuk melayani LAN tunggal. Sementara itu DHCP dan BOOTP didesain agar mereka bisa di-route pada jaringan.
1. Bagaimana jika alamat IP pada client diberikan secara otomatis tanpa menggunakan DHCP server?
Secara teoritis hal ini sangat mungkin, dimana suatu client atau komputer bisa mengambil sembarang IP address bagi dia sendiri dan kemudian mem-broadcast suatu request kepada komputer-komputer lainnya untuk melihat apakah alamat IP tersebut sudah digunakan atau belum. Appletalk didesain dengan ide seperti itu dan MacTCP pada Apple bisa dikonfigurasi seperti hal tersebut. Namun demikian, metode alokasi IP seperti itu memiliki beberapa kelemahan, yaitu:
1. Komputer yang memerlukan IP address permanen bisa saja dimatikan dan hal itu membuatnya kehilangan IP address nya dan IP address tersebut bisa digunakan oleh komputer lainnya. Ini bisa berakibat pada masalah kesulitan mencari service yang ada pada jaringan dan juga resiko pada masalah keamanan.
2. Jika pemberikan IP address ini harus diberikan dengan mengikuti suatu range tertentu, maka hal ini akan menimbulkan masalah karena kita harus menentukan range-nya pada masing-masing komputer. Ini akan bisa mengakibatkan terjadinya hidden configuration error dan kesulitan dalam mengganti range-nya di kemudian hari.
2. Dapatkah DHCP memberi alamat IP ke dalam jaringan secara statis?
Ya. Ini bisa diibaratkan bahwa setiap client di dalam jaringan komputer yang menerapkan DHCP selalu akan menerima IP yang sama selamanya. Ini sangat mungkin diimplementasikan dan menurut dokumen RFC, ini merupakan suatu alokasi alamat secara manual tetapi dilakukan secara tersentralisasi.
3. Dapatkah suatu client BOOTP melakukan booting dari DHCP server?
Bisa saja selama DHCP server secara spesifik ditulis untuk juga menghandle BOOTP query.
4. Dapatkah suatu client DHCP melakukan booting dari BOOTP server?
Bisa saja selama client DHCP ditulis secara spesifik untuk menjawab pesan dari suatu BOOTP server.
5. Bisakah suatu DHCP server menjadi backup bagi DHCP server yang lain?
Anda bisa saja memiliki beberapa DHCP server dalam suatu jaringan. Selama server-server DHCP tersebut identik dan memiliki alokasi yang sama bagi semua client dalam jaringan tersebut, maka apabila salah satu DHCP server mati, data konfigurasi bisa diambil dari server DHCP lain yang masih hidup. Untuk itu diperlukan suatu metode komunikasi server-to-server pada server-server DHCP.
6. Fitur apa saja yang ditawarkan oleh DHCP?
DHCP server mengenal tiga macam jenis alokasi, yaitu:
1. Manual allocation: dimana administrator server membuat konfigurasi pada server yang mencatat MAC address dari setiap komputer dan untuk setiap MAC address tersebut sudah ditentukan masing-masing IP address-nya.
2. Automatic allocation: dimana administrator server membuat konfigurasi pada server yang mana hanya mengandung IP address yang nantinya akan diberikan kepada komputer client. Sekali suatu alamat IP terasosiasi dengan suatu MAC address pada komputer, maka ia akan secara permanen diasosiasikan dengan MAC address tersebut sampai administrator server merubahnya secara manual.
3. Dynamic allocation: hal ini sama halnya seperti automatic allocation, tetapi server akan mencatat status peminjaman IP address (leases) dan akan memberikan alamat IP yang lease-nya sudah expire kepada client DHCP atau komputer yang lainnya.

LAN, MAN DAN WAN

A. Local Area Network (LAN)
Local Area Network (LAN), merupakan jaringan local yang digunakan oleh suatu organisasi untuk berbagi sumber daya (resources sharing) seperti printer dan file. LAN biasanya dibangun dan dikelola oleh organisasi tersebut. Teknologi LAN antara lain Ethernet, Token Ring dan FDDI.
LAN juga dapat definisikan sebagai network atau jaringan sejumlah system komputer yang lokasinya terbatas didalam satu gedung, satu kompleks gedung atau suatu kampus dan tidak menggunakan media fasilitas komunikasi umum seperti telepon, melainkan pemilik dan pengelola media komunikasinya adalah pemilik LAN itu sendiri.
* Ciri-ciri LAN :
-Lingkup lebih kecil
-Biasanya dimiliki oleh organisasi yang mempunyai alat yang sama.
-Data rates jauh lebih tinggi.
-Biasanya digunakan sistem broadcast.
-Sekarang sistem switched dan ATM mulai dikenalkan.
* Komponen-komponen Dasar LAN :
1. Workstation
Workstation merupakan node atau host yang berupa suatu sistem computer.
2. Server
Perangkat keras (hardware) yang berfungsi untuk melayani jaringan dan
workstation yang terhubung pada jaringan tersebut.
3. Link (hubungan)
Workstation dan server tidak dapat berfungsi apabila peralatan tersebut
secara fisik tidak terhubung.
beberapa contoh dari kabel link adalah:
1. Kabel Twisted Pair
a. Kabel ini terbagi dua, yaitu Shielded Twisted Pair dan Unshielded Twisted
Pair(UTP)
b. Lebih banyak dikenal karena merupakan kabel telpon
c. Relatif murah
d. Jarak yang pendek
e. Mudah terpengaruh oleh gangguan
f. Kecepatan data yang dapat didukung terbatas, 10-16 Mbps.

2. Kabel Coaxial
a. Umumnya digunakan pada televisi
b. Jarak yang relatif lebih jauh
c. Kecepatan pengiriman data lebih tinggi di banding Twisted Pair, 30 Mbps
d. Harga yang relatif tidak mahal
e. Ukurannya lebih besar dari Twisted Pair

3. Kabel Fiber Optic
a. Jarak yang jauh
b. Kecepatan data yang tinggi, 100 Mbps
c. Ukuran yang relatif kecil
d. Sulit dipengaruhi gangguan
e. Harga yang relatif masih mahal
f. Instalasi yang relatif sulit
4.Network Interface Card (NIC)
Suatu workstation tidak dihubungkan secara langsung dengan kabel jaringan ataupun tranceiver cable, tetapi melalui suatu rangkaian elektronika yang dirancang khusus untuk menangani network protocol yang dikenal dengan
5.Network Software
Tanpa adanya software jaringan maka jaringan tersebut tidak akan bekerja sebagaimana yang dikehendaki. Software ini juga yang memungkinkan sistem komputer yang satu berkomunikasi dengan sistem komputer yang lain.
* Peralatan Pendukung LAN
a.Repeater
o Pada OSI, bekerja pada lapisan Physical
o Meneruskan dan memperkuat sinyal
o Banyak digunakan pada topologi Bus
o Penggunaannya mudah dan Harga yang relatif murah
o Tidak memiliki pengetahuan tentang alamat tujuan sehingga penyampaian data secara broadcast
o Hanya memiliki satu domain collision sehingga bila salah satu port sibuk maka port-port yang lain harus menunggu.
b.Hub
 Bekerja pada lapisan Physical
 Meneruskan sinyal
 Tidak memiliki pengetahuan tentang alamat tujuan
 Penggunaannya relatif mudah dan harga yang terjangkau
 Hanya memiliki satu buah domain collision
c.Bridge
 Bekerja di lapisan Data Link
 Telah menggunakan alamat-alamat untuk meneruskan data ke tujuannya
 Secara otomatis membuat tabel penterjemah untuk diterima masing2 port
d.Switch
o Bekerja di lapisan Data Link
o Setiap port didalam swith memiliki domain collision sendiri-sendiri
o Memiliki tabel penterjemah pusat yang memiliki daftar penterjemah untuk
semua port
o Memungkinkan transmisi secara full duflex (dua arah)
e.Router
 Router berfungsi menyaring atau memfilter lalu lintas data
 Menentukan dan memilih jalur alternatif yang akan dilalui oleh data
 Menghubungkan antar jaringan LAN, bahkan dengan WAN

B. Metropolitan Area Network (MAN)
Metropolitan Area Network (MAN), pada dasarnya merupakan versi LAN yang berukuran lebih besar dan biasanya menggunakan teknologi yang sama dengan LAN. MAN dapat mencakup kantor-kantor perusahaan yang letaknya berdekatan atau juga sebuah kota dan dapat dimanfaatkan untuk keperluan pribadi (swasta) atau umum. MAN mampu menunjang data dan suara, bahkan dapat berhubungan dengan jaringan televisi kabel.
Ciri-ciri MAN :
• Pertengahan antara LAN dan WAN
• Pribadi dan jaringan umum
• Kecepatan tinggi
• Area besar




C. Wide Area Network (WAN)
Wide Area Network (WAN), jangkauannya mencakup daerah geografis yang luas, seringkali mencakup sebuah negara bahkan benua. WAN memungkinkan terjadinya komunikasi diantara dua perangkat yang terpisah jarak yang sangat jauh. WAN menginterkoneksikan beberapa LAN yang kemudian menyediakan akses ke komputer–komputer atau file server pada lokasi lain. Beberapa teknologi WAN antara lain adalah Modem, ISDN, DSL, Frame Relay, T1, E1, T3, E3 dan SONET.
Ciri-ciri WAN :
• Area geografis yang besar
• Teknologi alternatif
— Circuit switching
— Packet switching
— Frame relay
— Asynchronous Transfer Mode (ATM)

SEJARAH JARINGAN KOMPUTER

JARINGAN
Jaringan komputer adalah sebuah kumpulan komputer, printer dan peralatan lainnya yang terhubung dalam satu kesatuan/Dua atau lebih computer yang saling terhubung sehingga dapat membagi data dan sumber-sumber peralatan lain. Informasi dan data bergerak melalui kabel-kabel atau tanpa kabel sehingga memungkinkan pengguna jaringan komputer dapat saling bertukar dokumen dan data, mencetak pada printer yang sama dan bersama-sama menggunakan hardware/software yang terhubung dengan jaringan. Setiap komputer, printer atau periferal yang terhubung dengan jaringan disebut node. Sebuah jaringan komputer dapat memiliki dua, puluhan, ribuan atau bahkan jutaan node.
SEJARAH JARINGAN KOMPUTER
Konsep jaringan komputer lahir pada tahun 1940-an di Amerika dari sebuah proyek pengembangan komputer MODEL I di laboratorium Bell dan group riset Harvard University yang dipimpin profesor H. Aiken. Pada mulanya proyek tersebut hanyalah ingin memanfaatkan sebuah perangkat komputer yang harus dipakai bersama. Untuk mengerjakan beberapa proses tanpa banyak membuang waktu kosong dibuatlah proses beruntun (Batch Processing), sehingga beberapa program bisa dijalankan dalam sebuah komputer dengan dengan kaidah antrian.
Ditahun 1950-an ketika jenis komputer mulai membesar sampai terciptanya super komputer, maka sebuah komputer mesti melayani beberapa terminal (lihat Gambar 1) Untuk itu ditemukan konsep distribusi proses berdasarkan waktu yang dikenal dengan nama TSS (Time Sharing System), maka untuk pertama kali bentuk jaringan (network) komputer diaplikasikan. Pada sistem TSS beberapa terminal terhubung secara seri ke sebuah host komputer. Dalam proses TSS mulai nampak perpaduan teknologi komputer dan teknologi telekomunikasi yang pada awalnya berkembang sendiri-sendiri.

Memasuki tahun 1970-an, setelah beban pekerjaan bertambah banyak dan harga perangkat komputer besar mulai terasa sangat mahal, maka mulailah digunakan konsep proses distribusi (Distributed Processing). Seperti pada Gambar 2, dalam proses ini beberapa host komputer mengerjakan sebuah pekerjaan besar secara paralel untuk melayani beberapa terminal yang tersambung secara seri disetiap host komputer. Dala proses distribusi sudah mutlak diperlukan perpaduan yang mendalam antara teknologi komputer dan telekomunikasi, karena selain proses yang harus didistribusikan, semua host komputer wajib melayani terminal-terminalnya dalam satu perintah dari komputer pusat.

Selanjutnya ketika harga-harga komputer kecil sudah mulai menurun dan konsep proses distribusi sudah matang, maka penggunaan komputer dan jaringannya sudah mulai beragam dari mulai menangani proses bersama maupun komunikasi antar komputer (Peer to Peer System) saja tanpa melalui komputer pusat. Untuk itu mulailah berkembang teknologi jaringan lokal yang dikenal dengan sebutan LAN. Demikian pula ketika Internet mulai diperkenalkan, maka sebagian besar LAN yang berdiri sendiri mulai berhubungan dan terbentuklah jaringan raksasa WAN.

FUNGSI DAN PROSEDUR MYSQL

FUNGSI DAN PROSEDUR

Pengertian Prosedur dan Fungsi Tersimpan
Yang dimaksud dengan prosedur tersimpan (stored procedure) adalah suatu modul yang berisi kumpulan pernyataan SQL yang ditujukan untuk melaksanakan tugad tertentu dan letaknya ada pada server. Modul ini bisa dipanggil oleh klien, sedangkan pengeksekusian dilakukan di server.
Keuntungan penggunaan prosedur tersimpan adalah sebagai berikut:
1. Meningkatkan kinerja karena mengurangi pengiriman kode dari klien ke server, mengingat modul berada pada server.
2. Meningkatkan keamanan karena pengaksesan data tertentu ditangani dalam server, tidak melalui pengaksesan secara langsung oleh klien.
3. Meningkatkan integritas data (konsistensi data) saat sejumlah aplikasi memanggil prosedur tersimpan yang sama.
Sebaliknya, kelemahan yang terjadi sebagai akibat keuntungan-keuntungan tersebut, server akan lebih terbebani, karena banyak proses yang harus ditangani oleh server.
Pada MySQL, terdapat istilah prosedur tersimpan dan fungsi tersimpan (stored function). Perbedaannya:
 Prosedur tersimpan tidak menghasilkan nilai ketika dipanggil
 Fungsi tersimpan menghasilkan nilai ketika dipanggil dan tetntu saja seperti fungsi biasa bisa dipanggil di dalam suatu pernyataan (misalnya dalam SELECT)
Nilai yang dihasilkan oleh fungsi tersimpan biasa disebut nilai balik (return value)
Prosedur dan fungsi yang tersimpan dikenal dengan sebutan rutin (routine).
Cara Menciptakan Prosedur Tersimpan
CREATE PROCEDURE nama_prosedurtersimpan ([parameter_prosedur [,…]])
bagian_kode
Dalam hal ini:
• nama_prosedurtersimpan menyatakan nama prosedur tersimpan
• parameter_prosedur menyatakan definisi untuk parameter prosedur tersimpan
• bagian_kode berupa pernyataan-pernyataan SQL
Adapun bentuk parameter_prosedur berupa:
[ IN I OUT I INOUT ] nama_parameter tipe
Setiap parameter secara opsional bisa diawali IN, OUT, atau INOUT. IN berarti parameter sebagai masukan bagi prosedur. OUT berarti parameter sebagai keluaran. INOUT berarti sebagai masukan sekaligus keluaran.

Menjalankan Prosedur Tersimpan
Untuk memanggil prosedur tersimpan, gunakan pernyataan CALL. Pernyataan ini memiliki bentuk:
CALL nama_pt ([parameter[,…]])
Dalam hal ini, nama_pt adalah nama prosedur tersimpan.
Cara Menciptakan Fungsi Tersimpan
Fungsi tersimpan diciptakan melalui pernyataan CREATE FUNCTION. Kaidah dasarnya seperti berikut:
CREATE FUNCTION nama_ft ([param_fung [,…]])
RETURNS tipe
bagian_kode
Dalam hal ini:
• nama_ft menyatakan nama fungsi tersimpan
• param_fung menyatakan definisi untuk parameter fungsi tersimpan
• RETURNS tipe berguna untuk menentukan tipe nilai balik
• Bagian_kode berupa pernyataan-pernyataan SQL
Berbeda dengan prosedur tersimpan, semua parameter pada fungsi tersimpan hanya berfungsi sebagai masukan.
Memperoleh Informasi Prosedur dan Fungsi Tersimpan
MySQL menyediakan perintah SHOW PROCEDURE dan SHOW FUNCTION untuk memperoleh informasi tentang prosedur dan fungsi tersimpan. Kaidah pernyataan:
SHOW { PROCEDURE I FUNCTION } STATUS [ LIKE ‘pola’ ]
Bila pola disertakan, informasi nama prosedur atau fungsi tersimpan yang cocok dengan pola akan ditampilkan.
Menghapus Prosedur atau Fungsi Tersimpan
Bila dikehendaki untuk menghapus suatu prosedur atau fungsi tersimpan, bisa menggunakan pernyataan DROP PROCEDURE atau PROCEDURE FUNCTION. Kaidah kedua pernyataan tersebut:
DROP { PROCEDURE I FUNCTION} [ IF EXISTS] nama
Tanda { I } berarti yang ada di dalamnya bisa berupa salah satu (yaitu PROCEDURE atau FUNCTION). Bagian IF EXISTS bersifat opsional; artinya “jika ada”. Bila IF EXISTS disertakan, pernyataan tidak akan menimbulkan kesalahan walaupun prosedur atau fungsi tersimpan nama tidak pernah didefinisikan.


Memahami Perintah-Perintah untuk Rutin
Terkait dengan pembuatan rutin (prosedur maupun fungsi tersimpan), ada beberapa perintah yang perlu dipahami.
• Pernyataan Majemuk BEGIN…END
Bagian kode pada prosedur maupun fungsi tersimpan bisa berupa satu atau beberapa pernyataan. Bila terdapat beberapa pernyataan, Anda perlu meletakan pernyataan-pernyataan tersebut dalam sebuah BEGIN…END. Dalam hal ini, BEGIN…END mewakili pernyataan majemuk (sebuah pernyataan yang sebenarnya tersusun atas sejumlah pernyataan).
Sebuah pernyataan majemuk BEGIN…AND juga bisa diberi label.
Kaidahnya:
[ awal_label: ] BEGIN
[ daftar_pernyataan ]
END [ akhir_label ]

• Pernyataan DECLAR
Pernyatan DECLARE berguna untuk mendefinisikan variabel, kondisi, penangan, dan kursor yang berifat local bagi rutin. Secara umum, pernyataan ini harus berada dalam BEGIN…END dan keberadaannya harus sebelum pernyataan-pernyataan yang lain.
Variabel dapat digunakan untuk menyimpan nilai dan nilainya bisa diubah sewaktu-waktu. Pendefinisian variabel dilakukan dengan mengikuti kaidah seperti berikut:

DECLARE nama_var [ , . . . ] tipe [ DEFAULT nilai ]

Dalam hal ini, tipe menyatakan tipe data untuk variable nama_var dan DEFAULT nilai digunakan untuk memberikan nilai awal bagi variable bersangkutan. Kaidah diatas juga menyatakan bahwa dimungkinkan untuk mendefinisikan beberapa variable sekaligus sepanjang tipenya sama.

• Pernyatan SET
Pernyataan SET digunakan untuk memberikan nilai ke variable.
Kaidahnya:
SET nama_var = ekspr [ , nama_var = ekspr ] . . .

Bedasarkan sintak di atas, sebuah pernyataan SET dapat digunakan untuk mengisi sebuah variable dengan nilai masing-masing.

• Pernyataan SELECT . . . INTO
Pernyataan SELECT . . . INTO berguna untuk memberikan hasil dari pernyatan SELECT ke dalam suatu variable. Kaidahnya:
SELECT nama_kolom [ , . . . ]
INTO nama_var [ ,. . . ] ekspresi_tabel
Pada sintaks di atas, ekspresi_tabel dapat berupa seperti FROM nama_tabel atau dalam bentuk yang lebih kompleks seperti melibatkan klausa seperti WHERE. Perlu diketahui, harus dipastikan bahwa hasil SELECT hanya berupa satu baris.
Contoh penggunaan DECLARE dan SELECT … INTO:
USE pegawai
DELIMITER //
CREATE FUNCTION jumbagian ()
RETURENS INT
BEGGIN
DECLARE jumlah INT;

SELECT COUNT (*) INTO jumlah
FROM bagian;
END
//
DELINITER ;

Penjelasan untuk kode di atas adalah seperti berikut.
• Pernyataan
DECLARE jumlah INT ;
Digunakan untuk mendeklarasikan variable jumlah yang bertipe INT (bilangan bulat)
• Pernyataan
SELECT COUNT (*) INTO jumlah
FROM bagian ;
Digunakan untuk memperoleh jumlah baris dari table bagian dan hasilnya diberikan ke variable jumlah.
• Pernyataan
RETURN jumlah ;
Memberikan nilai balik fungsi berupa isi dari variable jumlah.
berikut menunjukan pengujian fungsi jumbagian ()
mysql > SELECT jumbgaian () ;
+-------------------+
| jumbagian () |
+-------------------+
| 6 |
+-------------------+
1 row in set ( 0.13 set )

mysql >


• Kontruksi Pengatur Aliran Eksekusi

Untuk keperluan pengaturan aliran eksekusi di dalam prosedur atau fungsi tersimpan, MySQL menyediakan berbagai kontruksi yang terkait dengan pengambilan keputusan dan pengulangan. Implementasinya berupa perintah IF, CASE, LOOP, ITERATE, REPEAT, WHILE, dan LEAVE.
Pernyataan IF
Pernyataan IF berguna untuk melakukan pengambilan keputusan berupa pemilihan eksekusi didasarkan suatu keadaan. Bentuknya:
IF kondisi THEN daftar_pernyataan
[ ELSEIF kondisi THEN daftar_pernyataan ] . . .
[ ELSEIF daftar_pernyataan ]
END IF
Daftar pernyataan yang terletak sesudah THEN dieksekusi hanya kalau kondisi didepan THEN bernilai (TRUE). Bagian ELSEIF digunakan untuk menyeleksi kembali kalau keadaan sebelumnya bernilai salah (FALSE).
Contoh berikut menunjukan prosedur yang akan menampilkan nilai terkevil dari dua buah parameternya.
USE pegawai
DELIMITER //
CREATE PROCEDURE tes_if ( x INT, y INT )
BEGIN
IF x < y THEN
SELECT CONCAT ( ‘ Terkecil : ‘, x ) ;
ELSEIF ;
END
//
DELIMITER ;
Contoh pemanggilan fungsi tes_if ()

Mysql > CALL tes_if ( 10, 22 );
+------------------------------------+
| CONTAC ( ‘ Terkecil : ‘, x ) |
+------------------------------------+
| Terkecil : 10 |
+------------------------------------+
1 row in set ( 0. 00 sec )

Query ok, 0 rows affected ( 0. 00 sec )

Mysql > CALL tes_if (22, 10 ) ;
+------------------------------------+
| CONTAC ( ‘ Terkecil : ‘, y ) |
+------------------------------------+
| Terkecil : 10 |
+------------------------------------+
1 row in set ( 0. 00 sec )

Query ok, 0 rows affected ( 0. 00 sec )

Mysql >

Pernyataan CASE
Pernyataan CASE merupakan alternative lain untuk IF dengan kondisi yang bertingkat. Bentuknya:

CASE case_value

WHEN search_condition THEN statement_list
[ WHEN search_condition THEN statement_list ] . . .
[ else statement_list ]

END CASE

Seleksi akan dilakukan dimulai dari WHEN teratas. Kalau ada yang memenuhi (kondisi bernilai benar / TRUE) maka pernyataan yang terletak sesudah THEN akan dieksekusi dan kemudian menuju ke END CASE. Kalau suatu WHEN diperiksa tidak memenuhi, maka WHEN berikutnya akan diperiksa. Bagian ELSE akan dieksekusi kalau tak ada WHEN yang cocok.

Contoh penggunaan CASE:

DELIMITER //
CREATE PROCEDURE tes_case ( nilai INT )
BEGIN
DECLARE skor CHAR (50) ;

CASE
WHEN nilai > 100 OR nilai < 0 THEN
SET skor = ‘Nilai salah’ ;
WHEN nilai > = 90 THEN
SET skor = ‘skor: A’ ;
WHEN nilai > = 70 THEN
SETskor = ‘skor: B’ ;
WHEN nilai > = 60 THEN
SET skor = ‘skor: C’ ;
WHEN nilai > = 50 THEN
SET skor = ‘skor: D’ ;
ELSE
SET skor = ‘skor: E’ ;
END CASE ;
SELECT skor ;
END
//
DELIMITER ;
Pada contoh diatas digunakan untuk memberikan gambaran penggunaan CASE dalam suatu prosedur untuk menghasilkan Skor A, Skor B, hingga skor E bergantung pada keadaan berikut.
Nilai > 100 Nilai < 0 Nilai salah
Nilai ≥ 90 Skor A
70 ≤ Nilai < 90 Skor B
60 ≤ Nilai < 70 Skor C
50 ≤ Nilai < 60 Skor D
0 ≤ Nilai < 50 Skor E
Pernyataan LEAVE
Pernyataan LEAVE digunakan untuk keluar dari suatu konstruksi yang memiliki suatu label. Bentuknya:
Leave nama_label;
Pernyataan LOOP
Pernyataan LOOP berguna untuk melakukan pengulangan. Bentuknya:
[ awal_label : ] LOOP
Statement_list
END LOOP [ akhir_label ]
Daftar pernyataan yang berada antara LOOP dan END LOOP akan terus dieksekusi sampai ada suatu pernyataan untuk keluar pengulangan dieksekusi. Dalam hal ini, pernyataan yang digunakan untuk keluar pengulangan berupa pernyataan LEAVE. Contoh berikut menunjukkan penggunaan LOOP dan LEAVE.
DELIMITER//
CREATE PROSEDUR tes_loop( )
BEGIN
DECLARE pencacah INT;
SET pencacah = 0;

SELECT CONCAT (‘Nilai awal pencacah : ’ , pencacah);
Ulang : LOOP
SET pencacah = pencacah + 1;
IF pencacah > 10 THEN LEAVE ulang; END IF;
END LOOP ulang;
SELECT CONCAT (‘Nilai akhir pencacah : ’ , pencacah);
END
//
DELIMITER;
Pada prosedur tes_loop, variable pecahan dideklarasikan sebagai variable local yang bertipe INT. Mula-mula variable tersebut diiisi dengan 0. Selanjutnya, pernyataan
SELECT CONCAT ( ‘Nilai awal pecahan : ‘, pecahan ) ;
Digunakan untuk menampilkan tulisan ‘Nilai awal pecahan : ‘diikuti dengan isi variable pecahan.
Pernyataan LOOP digunakan untuk mengeksekusi pernyataan-pernyataan yang ada didalamnya secara terus-menerus, sampai ada perintah untuk keluar dari pernyetaan tersebut.
Pernyataan yang ada dalam LOOP yang pertama adalah
SET pecahan = pecahan + 1 ;
Pernyataan tersebut untuk menaikkan isi variable pecahan sebesar 1.
Pernyataan kedua
IF pecahan > 10 THEN LEAVE ulang ; END IF ;
Digunakan untuk LEAVE saat variable pecahan bernilai 11 (yakin ketika kondisi pecahan > 10 bernilai benar). Ketika LEAVE dijalankan, Pengulangan menjadi berakhir. Dengan demikian, pernyataan selanjutnya yang dieksekusi adalah
SELECT CONCAT ( ‘ Nilai akhir pecahan : ‘, pecahan ) ;
Pernyataan REPEAT
Seperti halnya LOOP, pernyataan REAPET juga berguna untuk melakukan pengulangan. Bentuknya:
[awal_label :] REAPET
Daftar pernyataan
UNTIL kondisi_pengulangan
END REAPET [ akhir_label ]
Pada pernyataan ini, bagian daftar_pernyataan akan dieksekusi terus-menerus sampai kondisi_pengulangan benilai benar (TRUE).
DECLARE pecahan INT DEFAULT 0 ;
Digunakan untuk mendeklarasikan variable local pertama pecahan yang bertipe INT dan diberi nilai awal sebesar 0.
Pernytaan REAPET digunakan untuk menjalankan pernyataan
SET pecahan = pecahan + 1 ;
Sampai kondisi pecahan > 10 bernilai benar. Kondisi ini tercapai saat pecahan bernilai 11.
Pernyataan WHILE
Pernyataan WHILE juga digunakan untuk melakukan pengulangan terhadap sejumlah pernyataan. Bentuknya adalah:
[ awal_label : ] WHILE kondisi_pengulangan DO
daftar_pernyataan
END WHILE [ akhir_label ]
Berada dengan LOOP atau REAPET, WHILE akan menguji kondisi_pengulangan terlebih dulu.Selama kondisi tersebut bernilai benar, bagian daftar_pernyataan akan dieksekusi secara terus-menerus. Berikut contoh penggunaan pernyataan WHILE.
DELIMITER//
CREATE PROSEDUR tes_while( )
BEGIN
DECLARE pencacah INT;
SET pencacah = 0;
SELECT CONCAT (‘Nilai awal pencacah : ’ , pencacah);
WHILE pencacah < 11 DO
SET pencacah = pencacah + 1;
END WHILE;
SELECT CONCAT (‘Nilai akhir pencacah : ’ , pencacah);
END
//
DELIMITER;
Pernyataan
SET pecahan = pecahan + 1 ;
Dijalankan terus-menerus selama kondisi pecahan < 11 bernilai benar. Pada saat varibel pecahan bernilai 11, kondisi pengulangan menjadi salah. Akibatnya, eksekusi terhadap pernyataan
SET pecahan = pecahan + 1 ;
Tidak dilakukan lagi.
Pernyataan ITERATE
Pernyataan ITERATE memiliki bentuk pemakaian sebagai berikut:
ITERATE label
Penggunaan pernyataan ini hanya berada dalam konstruksi LOOP, REAPET, dan WHILE.Kegunaannya adalah untuk mengarahkan eksekusi menuju ke suatu label. Dengan kata lain, pernyataan ini di gunakan untuk “mengulang kembali”.
Berikut contoh penggunaan ITERATE :
DELIMETER//
CREATE PROSEDUR tes_interate( )
BEGIN
DECLARE pencacah INT DEFAULT 0;
DECLARE hasil CHAR (50);
SET hasil = ‘0’;
Ulang: WHILE pencacah < 11 DO
SET pencacah = pencacah + 1;
IF pecacah > 3 AND pencacah < 7 THEN
ITERATE ulang;
END IF;
SELECT CONCAT (hasil, ‘-‘, pencacah)
INTO hasil;
END WHILE;
SELECT hasil;
END
//
DELIMITER;
Pada contoh di atas, mula-mula variable pencacah di isi dengan nol dan hasil dengan string ‘0’.
Pernyataan WHILE di gunakan untuk melakukan pengulangan selama variable pecahan di bawah 10. Di dalam WHILE, mula-mula varibel pecahan dinaikan sebesar satu melalui pernyataan SET. Kemudian, pernyataan IF digunakan untuk menjalankan pernyataan ITERATE ulang sekiranya isi varibel pecahan lebih besar 3 dan kurang dari 7. Dengan demikian, ITERATE dijalankan ketika bernilai 4, 5, dan 6. Pada saa seperti itu, pernyataan
SELECT CONCAT (hasil, ‘_’ , pecahan)
INTO hasil ;
tidak dijalankan. Itulah sebabnya pada hasil pengujian ITERATE di bawah ini nilai 4, 5, dan 6 tidak muncul.
Mysql> CALL tes_iterate( );
+---------------------------+
| hasil |
+---------------------------+
| 0 – 1 – 2 – 3 - 7- 8 – 9 – 10 – 11 |
+---------------------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Mysql>
Menangani Handler
Handler berguna untuk mengatur aliran eksekusi ketika suatu kondisi yang berhubungan dengan error terjadi. Sebagai gambaran, sekiranya terdapat kunci yang kembar ketika terjadi penyisipan data, aliran eksekusi dapat diatur agar segera dihentikan atau dilanjutkan ke pernyataan berikutnya.
Untuk mendapatkan gambaran yang jelas tentang penanganan handler, pertama-tama berikan perintah sebagai berikut :
Use test
CREATE TABLE tmp (kunci CHAR(1) NOT NULL PRIMARY KEY);
Perintah diatas digunakan untuk menciptakan table bernama tmp pada data base test. Dalam hal ini table tmp hanya mengandung sebuah kolom bernama kunci yang bertindak sebagai kunci primer.
Selanjutnya, cobalah memberikan dua perintah untuk menyisipkan data ‘A’ seperti berikut :
Mysql>INSERT INTO tmp VALUES (‘A’);
Query OK, 1 row affected (0.09 sec)
Mysql> INSERT INTO tmp VALUES (‘A’);
ERROR 1062 (23000): Duplicate entry ‘A’ for key 1
Mysql>
Pada penyisipan data kedua terjadi kesalahan mengingat nilai ‘A’ sudah ada. Perhatikan bahwa kesalahan karena nilai yang kembar ini memiliki identitas SQLSTATE berupa 23000. kita akan mencoba menangani kesalahan ini melalui penanganan handler bernama CONTINUE.
Selanjutnya, cobalah menuliskan sederetan perintah didepan kedalam prosedur tersimpan, seperti berikut :
DELIMITER //
CREATE PROCEDURE tes_insert()
BEGIN
DELETE FROM tmp;
SET @kode = 1;
INSERT INTO tmp VALUES (‘A’);
SET @kode = 2;
INSERT INTO tmp VALUES (‘A’);
SET @kode = 3;
END //
DELIMITER;
Pada table diatas, DELETE FROM tmp digunakan untuk mengosongkan table tmp. Adapun perintah seperti :
SET @kode = 1;
Digunakan untuk menghasilkan ke variable global bernama kode dengan suatu nilai. Nilai ini nanti akan diperiksa setelah pemanggilan prosedur tersebut.
Setelah itu, cobalah untuk memanggil prosedur tersimpan tes_insert dan menampilkan isi variable kode. Contohnya sebagai berikut :
Mysql>CALL tes_insert();
ERROR 1062 (23000) : duplicate entry ‘A’ for key 1
Mysql> SELECT @kode;
+---------------+
| @kode |
+---------------+
| 2 |
+---------------+
1 row in set ( 0.01 sec)
Mysql>
Perhatikan bahwa isi variable kode adalah 2. hal ini menunjukan bahwa
Set @kode = 3;
tidak pernah dijalankan setelah perintah yang mengalami kesaahan yaitu
INSERT INTO tmp VALUES (‘A’);
yang kedua dijalankan.
Sekarang, hapus procedure tes_insert dengan memberikan perintah :
DROP PROCEURE tes_insert;
lalu tuliskan kode seperti berikut.
DELIMITER //
CREATE PROCEDURE tes_insert ()
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE ‘23000’
SET @dummy = 0;
DELETE FROM tmp;
SET @kode = 1;
INSERT INTO tmp VALUES (‘A’);
SET @kode = 2;
INSERT INTO tmp VALUES (‘A’);
SET @kode = 3;
END //
DELIMITER;
tambahkan kode :
DECLARE CONTINUE HANDLER FOR SQLSTATE ‘23000’
SET @dummy = 0;
Dimaksudkan untuk menangani handler SQLSTATE dengan kode 23000 (yaitu kunci kembar). Dalam hal ini, variable global dummy akan diisi dengan nol sekiranya terjadi duplikasi data.
Setelah kode diatas anda berikan, ujilah seperti berikut :
Mysql> SET @dummy = 1;
Query OK, 0 rows affected ( 0.00 sec )
Mysql> CALL tes_insert ();
Query OK, 0 rows affected ( 0.14 sec )
Mysql> SELECT @dummy;
+---------------+
| @dummy |
+---------------+
| 0 |
+---------------+
1 row in set ( 0.00 sec )
Mysql> SELECT @kode;
+---------------+
| @kode |
+---------------+
| 3 |
+---------------+
1 row in set ( 0.00 sec )
Pertama-tama, perhatikan bahwa sebelum pemanggilan prosedur tes_insert, variable dummy diisi dengan 1, tetapi setelah pemanggilan prosedur tersebut berisi 0. nilai 0 ini berkat pengaturan pada pendevinisian
DECLARE CONTINUE HANDLER FOR SQLSTATE ‘23000’
SET @dummy = 0;
yang akan membuat variable global dummy diisi dengan 0 kalau ada kesalahan dengan kode 23000. yang menarik lagi berkat penanganan handler CONTINUE, pernyataan yang terletak sesudah pernyataan yang mengalami kesalahan akan tetap dijalankan. Itulah sebabnya, variable kode berisi 3 setelah pemanggilan test_insert Karena perintah
SET @kode = 3;
tetap dieksekusi.
Penanganan Kursor
Penanganan kursor tersedia untuk prosedur maupun fungsi tersimpan. Kursor memungkinkan anda membuat kode yang membaca baris-baris hasil suatu SELECT secara sekuensial (berurutan). Sebagai contoh, anda bisa menyalin setiap baris dari suatu hasil SELECT dan kemudian menyalinnya ke table lain.
Pendeklarasian kursor dilakukan memalalui pernyataan dengan bentuk sebagai berikut
DECLARE nama_kursor CURSOR
FOR suatu_SELECT;
Terkait dengan kursor terdapat pernyataan OPEN, FETCH, dan CLOSE. Pernyataan OPEN digunakan untuk membaca kursor. Adapun pernyataan FETCH memiliki bentuk sebagai berikut :
FETCH nama_kursor INTO nama_variabel [ nama_variabel]
Sebuah baris akan dibaca dari nama_kursor dan kemudian hasilnya diberikan kepada variable_variabel yang disebut dalam INTO. Selain itu, kursor perlu ditutup dengan menggunakan :
CLOSE nama_kursor;
Untuk memperhatikan kursor, pertama-tama berikan perintah berikut :
USE pegawai
CREATE TABLE nipnama (nip CHAR (5), nama CHAR (25) );
Selanjutnya, buatlah prosedur tersimpan seperti berikut :
DELIMITER / /
CREATE PROCEDURE tes_kursor ()
BEGIN
DECLARE nomor_peg CHAR (5);
DECLARE nama_peg CHAR (25);
DECLARE kursor CURSOR FOR
SELECT nip, nama FROM infoprib;
DELETE FROM nipnama;
Open KURSOR;
REPEAT
FETCH kursor INTO nomor_peg, nama_peg;
INSERT INTO nipnama
VALUES (nomor_peg, nama_peg);
UNTIL FALSE END REPEAT;
CLOSE kursor;
END //
DELIMITER ;
Di dalam prosedur tersimpan di atas, mula-mula variable no_peg dan nama_peg dideklarasikan sebagai variable local. Selanjutnya, kursor di deklarasikan sebagai kursor untuk pernyataan
SELECT nip, nama FROM infobrib;
Pernyataan DELETE digunakan untuk mengkosongkan table nipnama.
Pernyataan
OPEN kursor;
Digunakan untuk membuka kursor.
Pernyataan REPEAT dipakai untuk melakukan pengulangan terhadap pernyataan-pernyataan yang ada pada REPEAT-UNTIL sampai kondisi bernilai FALSE.
Pernyataan PETCH dimaksudkan untuk mengambil data pada kursor ke variable nomor_peg dan nama_peg.
Selanjutnya, INSERT digunakan untuk menyisipkan data yang terdapat pada variable nomor_peg dan nama_peg ke table nipnama.
Pernyataan
CLOSE kursor;
Digunakan untuk menutup kursor.
Setelah menuliskan kode didepan, cobalah untuk memangil prosedur tes_kursor. Contoh diperlihatkan pada gambar berikut.
Mysql> CALL test kursor();
ERROR 1329 (02000): No data to FETCH
Mysql>
Walaupun ada pesan kesalahan, Anda bisa melihat isi table nipnama. Adakah isinya? Ya, ada isinya dan sesuai dengan isi table infoprib. Lalu mengapa ada kesalahan? Penyebabanya adalah ketika tidak ada garis lagi, FETCH akan membuat pesan kesalahan ditampilkan dan eksekusi dihentikan.
Untuk menghilangkan kesalahan seperti itu, Anda perlu memodifikasi kode menjadi seperi berikut.
DELIMITER//
CREATE PROSEDUR tes_kursor ()
BEGIN
DECLARE nomor_peg CHAR (5);
DECLARE nama_peg CHAR (25);
DECLARE habis BOOLEAN DEFAULT FALSE;

DECLARE kursor CURSOR FOR
SELECT nip, nama FROM infoprib;
DECLARE CONTINUE HANDLER FOR SQLSTATE ‘02000’
SET habis = TRUE;
DELETE FROM nipnama;

OPEN kursor;
REPEAT
PETCH kursor INTO nomor_peg, nama_peg;
IF habis = FALSE THEN
INSERT INTO nipnama
VALUES (nomor_peg, nama-peg);
END IF;
UNTIL habis END REPEAT;
CLOSE kursor;
END
//
Yang ditulis tebal adalah yang perlu Anda tambahkan modifikasi.
Pernyataan
DECLARE CONTINUE HANDLER FOR SQLSTATE ‘02000’
SET habis = TRUE;
Digunakan untuk mengatur agar variable local habis diisi dengan TRUE saat FETCH dieksekusi dan data tidak ada lagi.
Pernyataan IF digunakan untuk memastikan bahwa penyisipan data hanya dilakukan kalau isi variable habis bernilai FALSE (yang artinya data masih ada).
Lebih Lanjut Mengenal IN, OUT, dan INOUT
Setiap parameter pada prosedur tersimpan secara opsional bisa diawali IN, OUT, atau INOUT. IN berarti parameter sebagai masukan bagi prosedur, OUT berarti parameter sebagai keluaran, dan INOUT berartri sebagai masukan dan sekaligus keluaran.
Untuk mempraktekan OUT dan INOUT pada prosedur, berikan perintah berikut terlebih dahulu:
USE test;
Contoh berikut menunjukkan penggunaan OUT.
DELIMITER//
CREATE PROSEDUR tes_out (OUT jumlah INT)
BEGIN
SELECT COUNT (*) INTO jumlah FROM bagian;
END
//
DELIMITER;
Perhatikan bahwa parameter jumlah dinyatakan dengan OUT. Di dalam BEGIN END, pernyataan SELECT digunakan untuk memperoleh jumlah baris pada table bagian dan hasilnya diberikan ke jumlah.
Sekarang, cobalah menguji prosedur tersimpan test_out. Contoh sebagai berikut :
Mysql> SET @nilai = 0;
Query OK, 0 rows affected (0. 05 sec)
Mysql> CALL tes_out (@nilai);
Query OK, 0 rows affected (0. 69 sec)
Mysql> SELECT @nilai;
+-----------+
| @nilai |
+-----------+
| 6 |
+-----------+
1 row in set (0.00 sec)
Mysql>
Sekarang akan ditunjukan perbedaan antara OUT dan INOUT. Untuk mempraktikkan hal ini, berikan perintah berikut terlebih dahulu:
USE test
Selanjutnya, tuliskan kode seperti berikut.
DELIMITER//
CREATE PROSEDUR tes_inout (OUT x INT)
BEGIN
SET x = x + 2;
END
//
DELIMITER;
Hasil pemanggilan prosedur tersimpan tes_inout ditujukan prosedur dibawah ini.
Mysql> SET @a = 10;
Query OK, 0 rows affected (0. 06 sec)
Mysql> CALL tes_inout (@a);
Query OK, 0 rows affected (0. 05 sec)
Mysql> SELECT @a;
+-----------+
| @a |
+-----------+
|NULL |
+-----------+
1 row in set (0.00 sec)
Mysql>
Dari hasil di atas terlihat bahwa ternyata variable global a yang dilewatkan saat memanggil tes_inout malah tidak dikenal sesudah pemanggilan prosedur tersimpan. Mengapa? Karena x berkedudukan sebagai OUT sehingga tidak punya nilai awal. Oleh karena itu,
SET x = x + 2;
Akan menghasilkan nilai NULL mengingat pada awalnya x juga bernilai NULL.
Untuk mencoba efek INOUT, berikan perintah berikut terlebih dulu:
DROP PROCEDURE tes_inout;
Sekarang, cobalah berikan kode berikut ( dengan mengganti OUT menjadi INOUT terhadap contoh sebelumnya).
DELIMITER//
CREATE PROSEDUR tes_inout (INOUT x INT)
BEGIN
SET x = x + 2;
END
//
DELIMITER;
Dengan cara seperti itu, nilai awal x bergantung pada argument yang diberikan ketika prosedur tersimpan dipanggil.
Contoh berikut memberikan hasil yang berbeda dengan contoh sebelumnya.
Mysql> SET @a = 10;
Query OK, 0 rows affected (0. 06 sec)

Mysql> CALL tes_inout (@a);
Query OK, 0 rows affected (0. 05 sec)

Mysql> SELECT @a;
+-----------+
| @a |
+-----------+
|12 |
+-----------+
1 row in set (0.00 sec)
Mysql>
Tampak bahwa variable a yang semula bernilai 10 menjadi 12 setelah pemanggilan prosedur tersimpan tes_inout.
Prosedur Tersimpan dan Pernyataan PREPARE
Khusus untuk prosedur tersimpan (dan tidak berlaku untuk fungsi tersimpan), pernyataan PREPARE bisa dilibatkan. Pernyataan PREPARE dapat digunakan untuk membentuk pernyataan secara dinamis. Contoh pemakaian dapat dilihat pada contoh berikut:
USE pegawai
DELIMITER//
CREATE PROSEDUR tes_dinamis (nama_file CHAR (20))
BEGIN
DECLARE jumlah INT;
SELECT CONCAT(‘SELECT * FROM’, nama_file) INTO @perintah;
PREPARE peroleh_data FROM @perintah;
EXECUTE peroleh_data;
DEALLOCATE PREPARE peroleh_data;
END
//
DELIMITER;
Pada kode di atas, nama_file menyatakan nama table.
Pernyataan
SELECT CONCAT (‘SELECT * FROM’, nama_file) INTO @perintah;
Digunakan untuk membentuk tulisan ‘SELECT * FROM’ yang digabungkan dengan isi variable nama_file. Hasilnya diberikan ke variable global perintah.
Lalu, pernyataan PREPARE menyiapkan string yang terdapat pada variable perintah dan dibentuk menjadi perintah dalam peroleh_data. Selanjutnya, peroleh_data eksekusi melalui EXECUTE. Hasilnya ditunjukkan dibawah ini. Perlu diketahui, DEALLOCATE digunakan untuk menghapus memori yang digunakan pada pembentukan pernyataan PREPA
Mysql> CALL tes-dinamis (‘infoprib’);
+----------+-------------------------+-----------+---------------------+-----------+
| nip | nama | kota | tgl_lahir | sex |
+----------+-------------------------+-----------+---------------------+-----------+
| 12345 | Dian Permana | Yogya | 1969 - 03 – 10 | L |
| 12346 | Tamara Pebrianti | Klaten | 1980 - 01 – 01 | W |
| 12347 | Dara Permatasari | NULL | 1969 - 03 – 10 | W |
| 12348 | Dita Nurafni | Klaten | 1982 - 09 – 01 | W |
| 12349 | Dhani Akbar | Yogya | 1981- 03 – 13 | L |
| 12350 | Aan Setiawan | Yogya | 1981 - 05 – 07 | L |
| 12351 | Raul Stitompul | Bantul | 1979 - 04 – 05 | L |
| 12352 | Rahmanda | Yogya | 1982 - 08 – 04 | W |
| 12353 | Niken | Klaten | 1983 - 10 – 16 | W |
| 12354 | Inneke Safitri | Bantul | 1983 - 12 – 30 | W |
+----------+-------------------------+-----------+---------------------+------------+
10 rows in set (1. 27 sec)
Query OK, 0 rows affected (1.27 sec)
Mysql>


Batasan untuk Prosedur dan Fungsi Tersimpan
Sejauh ini ada beberapa batasan pada prosedur dan fungsi tersimpan. Pernyataan-pernyataan berikut tidak boleh digunakan pada prosedur dan fungsi tersimpan:
 CHECK TABLES
 LOCK TABLE dan UNLOCK TABLES
 LOAD DATA dan LOAD TABLE
 OPTIMIZE TABLE

Khususnya untuk fungsi tersimpan tidak boleh menggunakan pernyataan SQL dinamis PREPARE dan kerabatnya (EXECUTE dan DEALLOCATE PREPARE), SELECT tanpa INTO, FLUSH, dan perintah COMMIT serta ROLLBACK.

Rabu, 14 April 2010

Konsep E-Business

1. Dimensi ruang lingkup pengertian E-Business

a) Dimensi WHAT

Banyak orang mempertukarkan istilah eBusiness dengan eCommerce. Secara prinsip, pengertian eBusiness jauh lebih luas dibandingkan dengan eCommerce; bahkan secara filosofis, eCommerce merupakan bagian dari eBusiness. Jika eCommerce hanya memfokuskan diri pada aktivitas atau mekanisme transaksi yang dilakukan secara elektronik/digital,

Contohnya:

· relasi antara dua entiti perusahaan, interaksi antara perusahaan dengan pelanggannya,

· kolaborasi antara perusahaan dengan para mitra bisnisnya,

· pertukaran informasi antara perusahaan dengan para pesaing usahanya, dan lain sebagainya.

Adanya internet telah memungkinkan perusahaan untuk menjalin komunikasi langsung maupun tidak langsung dengan berjuta-juta bahkan bermilyar-milyar entiti (pelanggan, mitra, pesaing, pemerintah, dsb.) yang ada di dunia maya; karena sifat komunikasi tersebut merupakan bagian dari sebuah sistem bisnis, maka dapat dimengerti luasnya pengertian dari eBusiness.

b) Dimensi WHO

Siapa saja yang terlibat di dalam eBusiness? Seperti yang tersirat dalam definisinya, semua pihak atau entiti yang melakukan interaksi dalam sebuah sistem bisnis atau serangkaian proses bisnis (business process) merupakan pihak-pihak yang berkepentingan dalam ruang lingkup eBusiness. Paling tidak ada tujuh (A sampai G) klasifikasi entiti yang kerap dipergunakan dalam mengilustrasikan eBusiness, masing-masing: Agent, Business, Consumer, Device, Employee, Family, dan Government.

Contohnya

· tipe G-to-G yang menghubungkan dua buah negara untuk permasalahan eksport dan import

· D-to-D yang menghubungkan antara dua peralatan canggih teknologi informasi seperti antara PDA dengan Handphone

· B-to-F yang menghubungkan sebuah perusahaan penjual barang- barang kebutuhan rumah tangga dengan berbagai keluarga; dan lain sebagainya.

c) Dimensi WHERE

Tidak sedikit awam yang mempertanyakan dimana sebenarnya kegiatan bisnis dapat dilakukan dalam eBusiness. Jawabannya sangat singkat dan mudah, yaitu dimana saja, sejauh pihak yang berkepentingan memiliki fasilitas elektronik/digital sebagai kanal akses (access channel). Berbeda dengan bisnis konvensional dimana transaksi biasa dilakukan secara fisik di sekitar perusahaan yang bersangkutan, maka di dalam eBusiness, interaksi dapat dilakukan melalui berbagai kanal akses.

Contoh

· Di rumah, seorang Ibu dapat menggunakan telepon atau webTV untuk berkomunikasi dengan perusahaan penjual produk atau jasa

· Di kantor, seorang karyawan dapat menggunakan perlengkapan komputer atau fax

· Di lokasi keramaian seperti mall, toko-toko, atau pasar, masyarakat dapat memanfaatkan ATM, Warnet, atau Kios-Kios Telekomunikasi (Wartel) untuk melakukan hal yang sama.

Dengan kata lain, istilah dimana saja untuk melakukan hubungan dengan siapa saja bukanlah sekedar semboyan yang muluk, tetapi telah menjadi kenyataan di dalam implementasi eBusiness.

d) Dimensi WHY

Pertanyaan terakhir yang kerap menghantui para pelaku bisnis tradisional adalah mengapa para praktisi bisnis di seluruh dunia sepakat untuk mengimplementasikan eBusiness sesegera mungkin sebagai model bisnis di masa mendatang. Penerapan konsep eBusiness secara efektif tidak saja menguntungkan perusahaan karena banyaknya komponen biaya tinggi yanga dapat dihemat (cost cutting), tetapi justru memberikan kesempatan perusahaan untuk meningkatkan level pendapatannya (revenue generation) secara langsung maupun tidak langsung.

· perusahaan dapat melihat berbagai peluang dan celah bisnis baru yang selama ini belum pernah ditawarkan kepada masyarakat.

· banyak perusahaan yang melakukan transformasi bisnis (perubahan bisnis inti) setelah melihat besarnya peluang bisnis baru di dalam menerapkan konsep eBusiness.

· dengan menerapkan konsep jejaring (internetworking), sebuah perusahaan berskala kecil dan menengah dapat dengan mudah bekerja sama dengan perusahaan raksasa untuk menawarkan berbagai produk dan jasa kepada pelanggan.

2. Value yang ditawarkan E-Business ada 5 (lima) yaitu :

a. Efficiency (Efisien)

Manfaat paling cepat yang dapat diperoleh perusahaan yang terjun ke dunia e-business adalah perbaikan tingkat efisiensi. Sebuah riset memperlihatkan kurang lebih 40% dari total biaya operasional perusahaan diperuntukkan bagi aktivitas penciptaan dan penyebaran informasi ke berbagai divisi terkait. Dengan dimanfaatkannya teknologi informasi (dan e-technology) di dalam berbagai rangkaian bisnis sehari-hari, maka akan terlihat bagaimana perusahaan dapat mengurangi total biaya operasional yang biasa dikeluarkan tersebut.

Contoh :

· email dapat mengurangi biaya komunikasi dan pengiriman dokumen,

· call center dapat mengurangi biaya pelayanan pelanggan,

· website dapat mengurangi biaya marketing dan public relation,

· voip dapat mengurangi biaya telekomunikasi,

· decision support system dapat mengurangi biaya rapat dan diskusi, dan lain sebagainya.

b. Effectiveness (efektivitas)

Manfaat ini dapat dirasakan ketika terjadi perubahan-perubahan yang cukup signifikan dalam cara perusahaan melakukan aktivitas operasional sehari-hari.

Contoh :

· Lihatlah bagaimana dengan dimanfaatkan e-technology perusahaan dapat berhubungan dengan pelanggannya secara non stop 7 hari seminggu dan 24 jam sehari berkat diterapkannya. Demikian pula dengan diterapkannya konsep e-supply chain maka manajemen dapat meningkatkan service level kepada pelanggannya.

· meningkatnya kualitas pengambilan keputusan dari manajemen karena diimplementasikannya aplikasi ERP.

c. Reach (Jangkauan)

Manfaat berikutnya yang dapat diperoleh dari perusahaan adalah kemampuan e-technology di dalam memperluas jangkauan dan ruang gerak perusahaan. Dengan menghubungkan diri ke internet, berarti perusahaan secara tidak langsung telah menghubungkan dirinya dengan ratusan juta calon pelanggan yang tersebar di berbagai belahan bumi. Kemampuan ekspansi yang sedemikan mudah (menembus batas ruang dan waktu) dan tanpa memerlukan biaya yang relatif mahal tentu saja merupakan keuntungan yang tidak ternilai harganya bagi sebuah perusahaan. Selain itu, e-technology juga telah memungkinkan perusahaan untuk memperluas jangkauan domain kerja sama dengan mitra-nya secara signifikan. Untuk pertama kalinya di dunia, berbagai perusahaan-perusahaan skala besar, menengah, dan kecil dengan mudahnya dapat saling berkolaborasi dan bekerja sama untuk menciptakan produk maupun pelayanan yang semakin baik, tanpa harus memikirkan batasan-batasan geografis maupun menyediakan sumber daya finansial yang sangat besar.

Contoh

· Perusahaan Biznet bekerjasama dengan perusahaan dari Amerika, hal ini menggambarkan bahwa jangkauan bukan masalah untuk dapat bekerjasama dalam berbisnis.

· Sebuah sekolah yang ada di Bandung bekerja sama dengan Toko Buku yang berasal dari Jakarta.

· Sebuah Toko jasa isi ulang printer di BEC bekerjasama dengan agen yang ada di Jakarta.

d. Structure

Manfaat penerapan e-business selanjutnya adalah terciptanya berbagai jenis produk-produk maupun jasa-jasa baru akibat berkonvergensinya berbagai sektor industri yang selama ini secara struktur terlihat berdiri sendiri.

Contoh :

· Tengoklah bagaimana sebuah buku dapat dijual dengan cara lelang

· sebuah bank virtual yang berfungsi pula sebagai penasehat keuangan

· paket liburan yang telah lengkap mengemas berbagai produknya (transportasi, hotel, dan lokasi wisata)

· toko buku yang berfungsi pula sebagai perpustakaan

e. Opportunity

Manfaat terakhir adalah terbukanya peluang yang lebar bagi pelaku bisnis untuk berinovasi menciptakan produk-produk atau jasa-jasa baru akibat selalu diketemukannya e-technology baru dari masa ke masa.

Contoh :

Lihatlah bagaimana berbagai jenis model bisnis (business model) baru selalu ditawarkan oleh beraneka-ragam situs yang berkembang dengan pesat di internet.

· Di bidang pendidikan tercatat semakin maraknya situs-situs penyelenggara pendidikan (e-school) maupun pelatihan (e-training) secara virtual

· Di bidang keuangan telah berdiri lembaga-lembaga keuangan virtual semacam e-banking, e-stock.exchange, dan e-insurance

· Di bidang manufacturing berkembang perusahaan-perusahaan yang siap memberikan bisnis outsourcing di bidang e-procurement, e-logistics, e-distribution, dan e-inventory

3. 4 (empat) jenis E-business

a. Business to Business (B2B)

B2B menyatakan bentuk jual-beli produk atau jasa yang melibatkan dua atau beberapa

perusahaan dan dilakukan secara elektronis. Umumnya perusahaan-perusahaan yang terlibat adalah pemasok, distributor, pabrik, toko, dll. Kebanyakan transaksi berlangsung secara langsung antara dua sistem.

Model seperti ini telah banyak diterapkan. Misalnya, yang teijadi antara Wal-Mart dan para pemasoknya. Keuntungan B2B:

1. Mempercepat transaksi antara penjual dan pembeli.

2. Menurunkan biaya transaksi kedua belah pihak.

3. Menciptakan pasar baru tanpa dibatasi oleh wilayah geografis.

4. Meningkatkan komunikasi dan kolaborasi antara penjual dan pembeli.

Contoh Web yang menggunakan B2B adalah

1.www.tradelead.com

2. www.grainger.com

3. www.ecrobot.com

b. Business-to-Consumer (B2C)

B2C adalah bentuk jual-beli produk yang melibatkan perusahaan penjual dan konsumen akhir yang dilakukan secara elektronis. Perusahaan-perusahaan terkenal yang melayani B2C antara lain adalah Dell (www.dell.com), Cisco (www.cisco.com), dan (www.drugstore.com). B2C banyak diminati oleh para pemakai Internet karena pembelian produk dapat dilakukan dengan mudah dan cepat Selain itu, umumnya harga produk lebih murah dan konsumen bisa membayar dengan kartu seperti Master Card atau Visa Card.

Contoh Web yang menggunakan B2C adalah

1. Cisco (www.cisco.com)-- Barang yang dijual adalah peralatan jaringan.

2. Dell (www.dell.com) – Barang yang dijual adalah computer dan periferal

3. www.drugstore.com – Barang yang dijual adalah alat kesehatan dan kecantikan

c. Business-to-government (B2G)

Bisnis menjual barang-barang atau layanan kepada pemerintah dan lembaga pemerintah

Contoh Web yang menggunakan B2G adalah

1. www.epipeline.com

2. www.ostglobal.com

3. www.fcw.com

d. B2E (Business to Education)

B2E merupakan bisnis yang sasarannya adalah dunia pendidikan, contohnya seperti perusahaan buku yang memasukan buku-buku nya ke sekolah-sekolah.

> hubungan yang kuat dan berkelanjutan

> pemberian kredit ke pada penjual ke pelanggan

> lebih kompleks

Contoh Web yang menggunakan B2E adalah

1. www.bukukita.com

2. www.adobe.com

3. www.rumahscript.com

1. Dimensi ruang lingkup pengertian E-Business

a) Dimensi WHAT

Banyak orang mempertukarkan istilah eBusiness dengan eCommerce. Secara prinsip, pengertian eBusiness jauh lebih luas dibandingkan dengan eCommerce; bahkan secara filosofis, eCommerce merupakan bagian dari eBusiness. Jika eCommerce hanya memfokuskan diri pada aktivitas atau mekanisme transaksi yang dilakukan secara elektronik/digital,

Contohnya:

· relasi antara dua entiti perusahaan, interaksi antara perusahaan dengan pelanggannya,

· kolaborasi antara perusahaan dengan para mitra bisnisnya,

· pertukaran informasi antara perusahaan dengan para pesaing usahanya, dan lain sebagainya.

Adanya internet telah memungkinkan perusahaan untuk menjalin komunikasi langsung maupun tidak langsung dengan berjuta-juta bahkan bermilyar-milyar entiti (pelanggan, mitra, pesaing, pemerintah, dsb.) yang ada di dunia maya; karena sifat komunikasi tersebut merupakan bagian dari sebuah sistem bisnis, maka dapat dimengerti luasnya pengertian dari eBusiness.

b) Dimensi WHO

Siapa saja yang terlibat di dalam eBusiness? Seperti yang tersirat dalam definisinya, semua pihak atau entiti yang melakukan interaksi dalam sebuah sistem bisnis atau serangkaian proses bisnis (business process) merupakan pihak-pihak yang berkepentingan dalam ruang lingkup eBusiness. Paling tidak ada tujuh (A sampai G) klasifikasi entiti yang kerap dipergunakan dalam mengilustrasikan eBusiness, masing-masing: Agent, Business, Consumer, Device, Employee, Family, dan Government.

Contohnya

· tipe G-to-G yang menghubungkan dua buah negara untuk permasalahan eksport dan import

· D-to-D yang menghubungkan antara dua peralatan canggih teknologi informasi seperti antara PDA dengan Handphone

· B-to-F yang menghubungkan sebuah perusahaan penjual barang- barang kebutuhan rumah tangga dengan berbagai keluarga; dan lain sebagainya.

c) Dimensi WHERE

Tidak sedikit awam yang mempertanyakan dimana sebenarnya kegiatan bisnis dapat dilakukan dalam eBusiness. Jawabannya sangat singkat dan mudah, yaitu dimana saja, sejauh pihak yang berkepentingan memiliki fasilitas elektronik/digital sebagai kanal akses (access channel). Berbeda dengan bisnis konvensional dimana transaksi biasa dilakukan secara fisik di sekitar perusahaan yang bersangkutan, maka di dalam eBusiness, interaksi dapat dilakukan melalui berbagai kanal akses.

Contoh

· Di rumah, seorang Ibu dapat menggunakan telepon atau webTV untuk berkomunikasi dengan perusahaan penjual produk atau jasa

· Di kantor, seorang karyawan dapat menggunakan perlengkapan komputer atau fax

· Di lokasi keramaian seperti mall, toko-toko, atau pasar, masyarakat dapat memanfaatkan ATM, Warnet, atau Kios-Kios Telekomunikasi (Wartel) untuk melakukan hal yang sama.

Dengan kata lain, istilah dimana saja untuk melakukan hubungan dengan siapa saja bukanlah sekedar semboyan yang muluk, tetapi telah menjadi kenyataan di dalam implementasi eBusiness.

d) Dimensi WHY

Pertanyaan terakhir yang kerap menghantui para pelaku bisnis tradisional adalah mengapa para praktisi bisnis di seluruh dunia sepakat untuk mengimplementasikan eBusiness sesegera mungkin sebagai model bisnis di masa mendatang. Penerapan konsep eBusiness secara efektif tidak saja menguntungkan perusahaan karena banyaknya komponen biaya tinggi yanga dapat dihemat (cost cutting), tetapi justru memberikan kesempatan perusahaan untuk meningkatkan level pendapatannya (revenue generation) secara langsung maupun tidak langsung.

· perusahaan dapat melihat berbagai peluang dan celah bisnis baru yang selama ini belum pernah ditawarkan kepada masyarakat.

· banyak perusahaan yang melakukan transformasi bisnis (perubahan bisnis inti) setelah melihat besarnya peluang bisnis baru di dalam menerapkan konsep eBusiness.

· dengan menerapkan konsep jejaring (internetworking), sebuah perusahaan berskala kecil dan menengah dapat dengan mudah bekerja sama dengan perusahaan raksasa untuk menawarkan berbagai produk dan jasa kepada pelanggan.

2. Value yang ditawarkan E-Business ada 5 (lima) yaitu :

a. Efficiency (Efisien)

Manfaat paling cepat yang dapat diperoleh perusahaan yang terjun ke dunia e-business adalah perbaikan tingkat efisiensi. Sebuah riset memperlihatkan kurang lebih 40% dari total biaya operasional perusahaan diperuntukkan bagi aktivitas penciptaan dan penyebaran informasi ke berbagai divisi terkait. Dengan dimanfaatkannya teknologi informasi (dan e-technology) di dalam berbagai rangkaian bisnis sehari-hari, maka akan terlihat bagaimana perusahaan dapat mengurangi total biaya operasional yang biasa dikeluarkan tersebut.

Contoh :

· email dapat mengurangi biaya komunikasi dan pengiriman dokumen,

· call center dapat mengurangi biaya pelayanan pelanggan,

· website dapat mengurangi biaya marketing dan public relation,

· voip dapat mengurangi biaya telekomunikasi,

· decision support system dapat mengurangi biaya rapat dan diskusi, dan lain sebagainya.

b. Effectiveness (efektivitas)

Manfaat ini dapat dirasakan ketika terjadi perubahan-perubahan yang cukup signifikan dalam cara perusahaan melakukan aktivitas operasional sehari-hari.

Contoh :

· Lihatlah bagaimana dengan dimanfaatkan e-technology perusahaan dapat berhubungan dengan pelanggannya secara non stop 7 hari seminggu dan 24 jam sehari berkat diterapkannya. Demikian pula dengan diterapkannya konsep e-supply chain maka manajemen dapat meningkatkan service level kepada pelanggannya.

· meningkatnya kualitas pengambilan keputusan dari manajemen karena diimplementasikannya aplikasi ERP.

c. Reach (Jangkauan)

Manfaat berikutnya yang dapat diperoleh dari perusahaan adalah kemampuan e-technology di dalam memperluas jangkauan dan ruang gerak perusahaan. Dengan menghubungkan diri ke internet, berarti perusahaan secara tidak langsung telah menghubungkan dirinya dengan ratusan juta calon pelanggan yang tersebar di berbagai belahan bumi. Kemampuan ekspansi yang sedemikan mudah (menembus batas ruang dan waktu) dan tanpa memerlukan biaya yang relatif mahal tentu saja merupakan keuntungan yang tidak ternilai harganya bagi sebuah perusahaan. Selain itu, e-technology juga telah memungkinkan perusahaan untuk memperluas jangkauan domain kerja sama dengan mitra-nya secara signifikan. Untuk pertama kalinya di dunia, berbagai perusahaan-perusahaan skala besar, menengah, dan kecil dengan mudahnya dapat saling berkolaborasi dan bekerja sama untuk menciptakan produk maupun pelayanan yang semakin baik, tanpa harus memikirkan batasan-batasan geografis maupun menyediakan sumber daya finansial yang sangat besar.

Contoh

· Perusahaan Biznet bekerjasama dengan perusahaan dari Amerika, hal ini menggambarkan bahwa jangkauan bukan masalah untuk dapat bekerjasama dalam berbisnis.

· Sebuah sekolah yang ada di Bandung bekerja sama dengan Toko Buku yang berasal dari Jakarta.

· Sebuah Toko jasa isi ulang printer di BEC bekerjasama dengan agen yang ada di Jakarta.

d. Structure

Manfaat penerapan e-business selanjutnya adalah terciptanya berbagai jenis produk-produk maupun jasa-jasa baru akibat berkonvergensinya berbagai sektor industri yang selama ini secara struktur terlihat berdiri sendiri.

Contoh :

· Tengoklah bagaimana sebuah buku dapat dijual dengan cara lelang

· sebuah bank virtual yang berfungsi pula sebagai penasehat keuangan

· paket liburan yang telah lengkap mengemas berbagai produknya (transportasi, hotel, dan lokasi wisata)

· toko buku yang berfungsi pula sebagai perpustakaan

e. Opportunity

Manfaat terakhir adalah terbukanya peluang yang lebar bagi pelaku bisnis untuk berinovasi menciptakan produk-produk atau jasa-jasa baru akibat selalu diketemukannya e-technology baru dari masa ke masa.

Contoh :

Lihatlah bagaimana berbagai jenis model bisnis (business model) baru selalu ditawarkan oleh beraneka-ragam situs yang berkembang dengan pesat di internet.

· Di bidang pendidikan tercatat semakin maraknya situs-situs penyelenggara pendidikan (e-school) maupun pelatihan (e-training) secara virtual

· Di bidang keuangan telah berdiri lembaga-lembaga keuangan virtual semacam e-banking, e-stock.exchange, dan e-insurance

· Di bidang manufacturing berkembang perusahaan-perusahaan yang siap memberikan bisnis outsourcing di bidang e-procurement, e-logistics, e-distribution, dan e-inventory

3. 4 (empat) jenis E-business

a. Business to Business (B2B)

B2B menyatakan bentuk jual-beli produk atau jasa yang melibatkan dua atau beberapa

perusahaan dan dilakukan secara elektronis. Umumnya perusahaan-perusahaan yang terlibat adalah pemasok, distributor, pabrik, toko, dll. Kebanyakan transaksi berlangsung secara langsung antara dua sistem.

Model seperti ini telah banyak diterapkan. Misalnya, yang teijadi antara Wal-Mart dan para pemasoknya. Keuntungan B2B:

1. Mempercepat transaksi antara penjual dan pembeli.

2. Menurunkan biaya transaksi kedua belah pihak.

3. Menciptakan pasar baru tanpa dibatasi oleh wilayah geografis.

4. Meningkatkan komunikasi dan kolaborasi antara penjual dan pembeli.

Contoh Web yang menggunakan B2B adalah

1.www.tradelead.com

2. www.grainger.com

3. www.ecrobot.com

b. Business-to-Consumer (B2C)

B2C adalah bentuk jual-beli produk yang melibatkan perusahaan penjual dan konsumen akhir yang dilakukan secara elektronis. Perusahaan-perusahaan terkenal yang melayani B2C antara lain adalah Dell (www.dell.com), Cisco (www.cisco.com), dan (www.drugstore.com). B2C banyak diminati oleh para pemakai Internet karena pembelian produk dapat dilakukan dengan mudah dan cepat Selain itu, umumnya harga produk lebih murah dan konsumen bisa membayar dengan kartu seperti Master Card atau Visa Card.

Contoh Web yang menggunakan B2C adalah

1. Cisco (www.cisco.com)-- Barang yang dijual adalah peralatan jaringan.

2. Dell (www.dell.com) – Barang yang dijual adalah computer dan periferal

3. www.drugstore.com – Barang yang dijual adalah alat kesehatan dan kecantikan

c. Business-to-government (B2G)

Bisnis menjual barang-barang atau layanan kepada pemerintah dan lembaga pemerintah

Contoh Web yang menggunakan B2G adalah

1. www.epipeline.com

2. www.ostglobal.com

3. www.fcw.com

d. B2E (Business to Education)

B2E merupakan bisnis yang sasarannya adalah dunia pendidikan, contohnya seperti perusahaan buku yang memasukan buku-buku nya ke sekolah-sekolah.

> hubungan yang kuat dan berkelanjutan

> pemberian kredit ke pada penjual ke pelanggan

> lebih kompleks

Contoh Web yang menggunakan B2E adalah

1. www.bukukita.com

2. www.adobe.com

3. www.rumahscript.com