Monday, November 30, 2015

Back End Program

Back-End programming adalah program yang berjalan pada database secara otomatis ketika terjadi suatu pemicu tertentu. Dalam oracle ada beberapa metode untuk melakukan back-end programming. Salah satu contoh back end program yang sering dipakai adalah Stored Procedure.

Apa itu stored procedure? stored procedure adalah procedure atau function di dalam database.             

Mengapa menggunakan SP?
-Dijalankan di database server => performance lebih baik, network trafik lebih rendah
-Merupakan tools DBA
-Dapat digunakan oleh banyak aplikasi
-Dapat memanfaatkan tipe dan fungsi yang disediakan DBMS


Contoh eksekusi procedure :

















Reference : Yudi Wibisono. 2015. Stored Procedure dan Trigger.ppt

XML

Apa itu XML? XML adalah singkatan dari EXtensible Markup Language, adalah markup language untuk dokumen yang mengandung informasi terstruktur yang ditujukan untuk pertukaran dokumen via web. XML berbentuk file teks, ini memungkinkan XML untuk independen terhadap software yang satu dengan yang lain (Cross platform).
Contoh XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<daftar_pengarang>
                <pengarang>
                                <nama>budi martami</nama>
                                <alamat>sarijadi </alamat>
                </pengarang>
                <pengarang>
                                <nama>elfan noviari</nama>
                                <alamat>gerlong</alamat>
                </pengarang>
</daftar_pengarang>

Lalu apa keuntungan XML?
-Self Documenting => dengan melihat tag, dapat diketahui isi dokumen tersebut
-Dapat dibaca dengan software dan manusia
-Fleksibel
-Dapat dikembangkan tanpa melanggar format lama
-Hirarkis => dapat mepresentasikan data hyang kompleks
-Independen terhadap bahasa pemograman

Kerugian XML?
-Pengulangan tag pada XML menjadikan dokumen tidak efisien dan ukuran dokumennya pun membengkak

Aturan XML:
-Setiap tag harus ada penutupnya.
-Penamaan Tag
*case sensitive. <nama> tidak sama dengan <Nama>.
*Tidak diawali dengan angka
*Tidak mengandung spasi
*Hindari ‘-’ dan ‘.’
-Urutan hirarki harus benar.
-Setiap XML harus mengandung root (akar)
                <root>
                                <child>
                                                <subchild>.....</subchild>
                                </child>
                </root>
-Setiap atribut harus dalam tanda petik. Contoh:
                <surat  tanggal = “12/12/2007”>
                <catatan oleh = “ Jum’at ” > 
                <catatan oleh = ‘  Budi “si cepat” Martami ‘>
-Komentar dalam XML: 

                <!-- ini komentar lho --!>



Reference : Yudi Wibisono. 2015. XML.ppt

Transaksi dan Concurrency

Transaksi
Apa itu transaksi? Transaksi dalam sistem basis data diartikan sebagai unit logic pekerjaan atau unit logic recovery yang terdiri dari 1 atau lebih set instruksi. Intruksi harus dijamin dikerjakan semua untuk menjamin konsistensi. Untuk menjamin transaksi, ada dua operasi penting didalam  transaksi, yaitu commit (memberi tanda bahwa transaksi telah selesai. Update dibuat permanen) dan rollback (memberi tanda bahwa transaksi gagal. Semua update harus di undo).

Ada empat elemen dalam transaksi,yaitu :
-Atomicity
Setiap transaksi harus dijamin untuk dapat sukses dalam melakukan aksinya atau jika gagal , maka tidak berpengaruh apapun terhadap database.
Consistency: Setiap transaksi adalah sebuah aksi kombinasi secara logikal dari sebuah state database yang konsisten ke state yang lain dengan tetap menjaga kekonsisten-an database tersebut
-Isolation
Meskipun ada beberapa transaksi yang berlangsung bersamaan, masing-masing transaksi tidak boleh mengetahui transaksi lain yang sedang berlangsung. Hasil transaksi sementara harus disembunyikan dari transaksi lain yang sedang berlangsung . (level transparansi transaksi dapat di set).
-Durability
Setelah sebuah transaksi sukses dilakukan, perubahan-perubahan yang dibuatnya terhadap database bersifat permanen, bahkan jika terjadi kegagalan sistem sekalipun.


Concurrency
Concurrency adalah banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu. DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama, untuk itu dibutuhkan Concurrency Control Mechanism (CCM) agar transaksi tidak saling mengganggu.

Ada tiga masalah yang muncul pada concurrency:
-Lost Update Problem,masalah ini muncul ketika dia user mengupdate dua buah data yang sama




-Uncommited dependency problem,masalah ini muncul ketika user yang satu meretrieve data dan user yang lainnya merollback data tersebut.




-Inconsistent analysis problem, masalah ini muncul ketika satu user meretrieve data dan user uang lainnya mengupdate data tersebut.


Bagaimana cara mengatasi 3 maslah diatas? Untuk mencegah masalah seperti diatas dilakukanlah Locking. Terdapat 2 jenis lock, yaitu Exclusive Lock (Xlock) dimana transaksi lain bisa melakukan pembacaan dan perubahan data, dan Shared Lock (Slock) dimana transaksi lain hanya bisa melakukan pembacaan data saja.



Reference : Yudi Wibisono. 2015. Transaksi.ppt

Integritas Data

Apa itu integritas data? Integritas data dapat di artikan sebagai akurasi dan kebenaran data. Integritas data dalam sebuah sistem basis data harus dijaga untuk menjaga kebenaran data yang disimpan.

Bagaimana caranya?
Ada beberapa cara untuk menjaga integritas data diantaranya:
-Memasukan aturan bisnis di dalam database
Contoh: NIM tidak boleh kosong, Umur harus diantata 0 sampai 100, dll.
-Menjaga agar data yang tidak valid tidak masuk kedalam database
-Menjaga konsistensi data pada relasi keterkaitan antar table

Mengapa kita harus menjaga integritas data?
-Lebih murah dan mudah menjaga data integrity di level database dibandingkan ditangani di aplikasi.
-Bugs akibat isi database yang tidak valid sulit untuk ditemukan (dapat muncul di kemudian hari).
-Kita sebagai engineer harus mampu berpikir jauh kedepan, untuk mencegah hal hal yang fatal di masa yang akan datang, maka kita harus menjaga ke integritsan suatu data.

Jenis-jenis integritas data diantaranya :
-Entity Integritas
Entity Integritas mendefinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Entity integritas memaksa integritas dari column atau primary key dari suatu tabel (melalui index, unique, constraints, primary key). Primary key tidak boleh null.
Contoh :
create table Pembelian(
ID Pembelian smallint,
ID model smallint,
DeskripsiModel varchar (40),
Primary Key (IDPembelian)
);

-Domain Integritas
Domain Integritas merupakan validasi dari masukan untuk sebuah kolom. Anda dapat memaksa domain integritas dengan membatasi tipe (melalui data types), format (melalui check constraints dan rules), atau range nilai-nilai yang mungkin (melalui Foreign Key Constraints, Check Constraints, Default Definitions dan rules).
Jenis domain yang harus dimiliki oleh setiap atribut :
1. Karakter bebas
2. Alphanumerik
3. Alphabet
4. Numerik
Contoh :
Create table biografi(
idpenulis smallint unsigned not null,
tahunLahir year not null,
kotalahir varchar (40) not null default ‘Kosong’
);
create domain nilai numerik(3,2)
constraint value-test check (value >=0.00)


-Refrential Integritas
Refrential Integritas memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai primary key yang dihubungkan.
Contoh :
create table account(
account-number char (10),
branch-name char (15),
balance integer,
primary key (account-number),
foreign key (branch-name) reference branch
);
create table depositor(
costumer-name char (20),
account-number char (10),
primary key (costumer-name, account-number)
foreign key (account-number) reference account
foreign key (costumer-name) reference costumer) on delete cascade on update cascade
 );

-User Defined Integritas
User–defined integritas mengizinkan Anda untuk menentukan spesific business rules sendiri yang tidak sama pada kategori integrity yang lain.





Reference : Yudi Wibisono. 2015. Integritas Data.ppt

Basis Data dan Sistem Basis Data

Basis Data
Basis data adalah Kumpulan terpadu dari berkas data (integrated collection of data) yang memiliki kaitan satu dengan lainnya, dan dibuat untuk memenuhi kepentingan banyak pemakai pada suatu organisasi. Definisi Basis data juga dapat diartikan sebagai kumpulan data yang terdiri dari satu atau lebih tabel yang terintegrasi satu sama lain, dimana setiap user diberi wewenang untuk dapat mengakses ( seperti mengubah,menghapus dll.) data dalam tabel-tabel tersebut.

Sistem Basis Data
Sistem Basis Data adalah sistem yang terdiri dari koleksi data atau kumpulan data yang saling berhubungan dan program-program untuk mengakses data tersebut.


Jadi, dapat kita simpulkan bahwa sistem basis data adalah kumpulan dari basis data yang saling berhubungan.


Thursday, April 9, 2015

Apa Sih ERD, DDL, DML dan Aggregation & Grouping Itu?

 Mau pake basa basi dulu atau langsung to the point?

apa??

to the point ajah?

ya udah deh langsung kita liat apasih ERD, DDL, DML , dan Aggregation&Grouping

ERD

 ERD adalah singkatan dari Entity-Relationship Diagram, ini adalah suatu diagram yang menggambarkan data yang akan kita buat. Bisa dikatakan ini adalah sebuah sketsa data yang berikutnya bisa diubah menjadi susunan data data.

Mengapa kita perlu ERD? Saya juga tidak tahu sih sebenarnya apa fungsinya, tapi kalau diambil dari logikanya, misalkan seorang arsitek, dia akan membuat banyak sketsa sebelum dia dapat 1 sketsa yang pas untuk bangunan yang akan dibangunnya, tanpa sketsa dia tidak bisa membayangkan apa yang akan dia buat, nah sama seperti basis data, kita membutuhkan konsep awal yaitu ERD.

ERD mempunyai beberapa komponen diantaranya

1. Entitas 
       Entitas didefinisikan sebagai individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. Sederhananya, entitas dikenal sebagai suatu objek yang dapat dibedakan dengan objek lainnya di dalam dunia nyata. Entitas di dalam ER-D direpresentasikan oleh bangun datar persegi panjang. 

2.Atribut
       Atribut merupakan karakteristik dari entity atau relationship yang menyediakan penjelasan detail tentang entity atau relationship tersebut. Atribut di dalam ER-D di representasikan dalam bentuk bangun datar oval.

3.Relasi 
       Relasi didefinisikan sebagai hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Sederhananya, relasi dikenal sebagai hubungan yang terjadi antara satu atau lebih entitas.Relasi pada ER-D di representasikan dalam bentuk bangun datar belah ketupat.

4.Kardinalitas 
          Kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Adapun kardinalitas yang terjadi diantara dua himpunan entitas adalah sebagai berikut:
        a. One to one
        b. One to many
        c. Many to many

  Bisa dilihat dari contoh ERD berikut. Yang berwarna biru tua itu contoh dari entitas, yang berwarna biru muda itu contoh dari atribu, yang berwarna hijau itu contoh relasi, dan yang berlambang 1 dan n itu contoh dari kardinalitas.







DDL

DDL adalah singkatan dari Data Definition Language, adalah bahasa basis data yang digunakan untuk mendfinisikan, mengubah, dan menghapus basis data. Secara umum DDL yang digunakan adalah sebagai berikut:

1. Create => Digunakan untuk membuat objek.
     sebagai contoh jika kita ingin membuat database forum jual beli (fjb) maka syntaxnya adalah :

     create database fjb;
     
     atau membuat tabel penjual beserta field fieldnya maka syntaxnya adalah :

     create table penjual(
id_penjual varchar(5) primary key,
nama_penjual varchar(20) not null,
alamat_penjual varchar(25) not null,
kontak_penjual varchar(15) not null
);

2. Alter => Digunakan untuk mengubah objek.
     sebagai contoh jika kita ingin mengubah nama table penjual menjadi seller maka syntasnya adalah

     alter table penjual rename to seller;

    atau kita ingin menambah field no_rekening kedalam table penjual maka syntasnya adalah

    alter table penjual add column no_rekening varchar(10) not null;

3. Drop => Digunakan untuk menghapus objek.
      sebagai contoh jika kita ingin menghapus tabel penjual maka syntaxnya adalah :
      
      drop table penjual;

       atau kita ingin menghapus database fjb maka syntaxnya adalah :

       drop database fjb;


DML

DML adalah singkatan dari Data Manipulation Language, adalah bahasa yang digunakan untuk memanipulasi data didalam basis data. Secara umum DML yang digunakan adalah sebagai berikut:

1. Insert => Digunaka untuk memasukan data
     ada 2 cara penggunaan perintah Insert, cara ribet dan cara simple.
    cara simplenya, kita tinggal ketik 

INSERT INTO nama_tabel VALUES (isi1, isi2, isi3, ...);

2. Select => Digunakan untuk mengambil data untuk ditampilkan
    ada beberapa perintah select yaitu :

a. Menampilkan seluruh isi tabel

SELECT * FROM nama_tabel;


b. Menampilkan dengan klausa WHERE

SELECT * FROM nama_tabel WHERE kondisi;


c. Menampilkan field tertentu

SELECT nama_field1, nama_field2,...... FROM nama_tabel;


d. Menampilkan data yang diambil dari beberapa tabel

SELECT tabel1.field, tabel2.field,....
FROM tabel1, tabel2,....
WHERE kondisi;


e. Penggunaan operator AND dan OR

SELECT * FROM nama_tabel WHERE kondisi1 AND kondisi2 AND kondisi3..;

SELECT * FROM nama_tabel WHERE kondisi1 OR kondisi2 OR kondisi3...;


f. Penggunaan operator BETWEEN dan NOT BETWEEN

SELECT * FROM nama_tabel WHERE field BETWEEN batas_bawah AND batas_atas ;

SELECT * FROM nama_tabel WHERE field NOT BETWEEN batas_bawah AND batas_atas ;


g. Penggunaan operator LIKE dan NOT LIKE

SELECT * FROM nama_tabel WHERE field LIKE ‘%....’;


SELECT * FROM nama_tabel WHERE field LIKE ‘....%’;


SELECT * FROM nama_tabel WHERE field LIKE ‘%....%’;

3.UPDATE => Dihunakan untuk memperbaharui data.

UPDATE nama_tabel SET field1=nilai_baru, field2=nilai_baru, …..
WHERE kondisi;

4.DELETE => Digunakan untuk menghapus baris data.

DELETE FROM nama_tabel WHERE kondisi
;

Untuk lebiih jelasnya silahkan bukan CMD kalian dan coba satu satu :3 karena hanya dengan mencoba kita bisa lebih mudah mengerti materi ini .



Aggregation & Grouping

Aggregation singkatnya adalah proses pengolahan data berupa angka didalam basis data sedangkan Gruping adalah proses pengelompokan data dalam suatu syarat tertentu.

Aggregation

1. AVG()
Fungsi ini digunakan untuk menghasilkan nilai rata-rata sekelompok nilai dari sebuah kolom (field) numerik.

Perintah umum: SELECT AVG(nama_field) From nama_tabel


2. COUNT()
Fungsi ini digunakan untuk menghasilkan nilai jumlah data (baris/record) dari sekelompok data tabel maupun view.


Perintah umum : SELECT COUNT(nama_field) From nama_tabel


3. MAX()
Fungsi ini digunakan untuk menghasilkan nilai tertinggi sekelompok nilai dari sebuah kolom (field) numerik.

Perintah umum : SELECT MAX(nama_field) From nama_tabel


4. MIN()
Fungsi ini digunakan untuk menghasilkan nilai terendah dari sebuah kolom (field) numerik.
Perintah umum : SELECT MIN(nama_field) From nama_tabel


5. SUM()
Fungsi ini digunakan untuk menghasilkan nilai total jumlah sekelompok dari sebuah kolom (field) numerik.
Perintah umum : SELECT SUM(nama_field) From nama_tabel


6. ROUND()
Fungsi ini digunakan untuk melengkapi bidang numerik dengan jumlah desimal yang ditentukan.
Perintah: SELECT ROUND(nama_field,jumlah_decimal) From nama_tabel


7. STDDEV_POP()
Fungsi ini digunakan untuk menghasilkan nilai standart deviasi populasi.
Perintah umum: SELECT STDDEV_POP(nama_field) From nama_tabel


8. VAR_POP()
Fungsi ini digunakan untuk menghasilkan nilai standart varian populasi.
Perintah umum : SELECT VAR_POP(nama_field) From nama_tabel

Grouping

1. Order By
Order by adalah perintah yang digunakan untuk menampilkan data secara terurut berdasarkan nilai tertentu. Order by dikelompok menjadi 2 jenis yaitu ascending (data diurutkan dari yang terkecil ke terbesar) dan descending(data diurutkan dari yang terbesar ke terkecil).

Perintah umum : SELECT *FROM(nama_tabel) ORDER BY atribut ASC/DESC


2. Group By
Group by merupakan perintah yang digunakan untuk mengelompokan beberapa data pada perintah SELECT;

Perintah Umum : SELECT *FROM(nama_tabel) GROUP BY atribut;


3. Having
Fungsi Having terkait dengan GROUP BY dan AGREGASI. Biasanya digunakan untuk menentukan kondisi tertentu pada group by dan kondisi tersebut berkaitan dengan fungsi agregasi. Fungsi HAVING sebenarnya memiliki kemiripan dengan WHERE dalam penggunaannya. HAVING digunakan dalam SQL karena WHERE tidak dapat digunakan dengan fungsi agregasi.

Perintah Umum: SELECT atribut FROM nama_tabel GROUP BY atribut HAVING fungsi_agregasi:


4. View
View dapat disebut sebagai sebuah table semu/bayangan. Data-data pada table view dapat merupakan gabungan dari data pada tabe-tabel lain. View dapat digunakan untuk membatasi pengaksesan atas sebuah table tertentu, jadi user hanya boleh melihat table yang berisi data-data secara spesifik.


Perintah umum:CREATE VIEW NAMA_VIEW AS<QUERY>



Sumber referensi :

MODUL #1 PRAKTIKUM BASIS DATA 2015
MODUL #2 PRAKTIKUM BASIS DATA 2015
MODUL #3 PRAKTIKUM BASIS DATA 2015

Image ERD from http://kacamatainformasi.blogspot.com/2012/11/mata-kuliah-basis-data.html