Rabu, 25 November 2015

UAS SIMBADA

UAS SimbadaNama : Silvia FadillahNIM   : 1400040Kelas  : Pilkom B-2014
===============================================================
1.     Perbedaan Basis Data dan Sistem Basis Data
--------------------------------------------------------------------------------------------Basis Data           Basis data terdiri dari 2 (dua) kata, yaitu kata Basis dan Data. Basis bisa di artikan sebagai markas ataupun gudang, tempat berkumpul. Sedangkan data yaitu kumpulan fakta dunia nyata yang mewakili suatu objek, seperti manusia, barang, dan lain-lain yang direkam ke dalam bentuk angka, bentuk huruf, simbol, teks, bunyi, gambar atau juga  kombinasinya. Jadi pengertian basis data adalah kumpulan terorganisasi dari data – data yang saling berhubungan sedemikian rupa sehingga dapat mudah disimpan, dimanipulasi, serta dipanggil oleh penggunanya. 
  • Tujuan Basis data sendiri adalah sebagai berikut ini: Kecepatan serta kemudahan dalam menyimpan, memanipulasi atau juga menampilkan kembali data tersebut.  
  1. Efisiensinya ruang penyimpanan, karena dengan basis data, redudansi data akan bisa dihindari.
  2. Keakuratan (Accuracy) data.
  3. Ketersediaan (Availability) data.Kelengkapan (Completeness) data, Bisa melakukan perubahan struktur dalam basis data, baik dalam penambahan objek baru (tabel) atau dengan penambahan field-field baru pada table.
  4. Keamanan (Security) data, dapat menentukan pemakai yang boleh menggunakan basis data beserta objek-objek yang ada didalamnya serta menentukan jenis -jenis operasi apa saja yang boleh dilakukannya.
  5. Kebersamaan Pemakai (Sharability), Pemakai basis data bisa lebih dari satu orang, tetapi tetap menjaga atau menghindari masalah baru seperti: inkonsistensi data (karana data yang sama diubah oleh banyak pemakai pada saat yang bersamaan) dan juga kondisi deadlock (karena ada banyak pemakai yang saling menunggu untuk menggunakan data 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
  • Komponen Utama Sistem Basis Data :
  1. Perangkat Keras (Hardware)
  2. Sistem Operasi (Operating Sistem)
  3. Basis data (Databas)
  • Tujuan Utama Sistem Basis Data sendiri adalah :
    1.  Menunjukkan suatu lingkungan yang tepat dan efisien didalam melakukan pengambilan (retrieving) dan penyimpanan (storing) informasi basis data, serta menyediakan antarmuka yang lebih ramah kepada user dalam melihat data.
    2. Kegunaan atau Fungsi Sistem Basis Data, mengatasi masalah-masalah pemrosesan data yang sering ditemui dengan menggunakan metode konvensional, permasalah yang diatasi diantaranya:
a.       Redudansi data dan juga inkonsistensi data.
b.      Kesuliatan dalam pengaksesan data.
c.       Data Isolation.
d.      Konkurensi pengaksesan.
e.       Masalah keamanan.
f.       Masalah Integritas.
  •  Pemakai sistem basis data diantaranya: 
    1. Programmer Aplikasi yaitu orang atau pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML),
    2.  User Mahir (Casual User) yaitu pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query untuk mengakses data dengan bahasa query yang telah disediakan oleh suatu DBMS.
    3. User Umum (End User/ Naïve User) yaitu Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah disediakan sebelumnya.
    4. User Khusus (Specialized User) yaitu Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus.
    ===============================================================2.     Integritas Data
    --------------------------------------------------------------------------------------------           Integritas data artinya akurasi dan kebenaran data. Integritas data dalam sebuah sistem basis data harus dijaga untuk menjaga kebenaran data yang disimpan.
    • Ada beberapa cara dan tujuan dalam menjaga integritas data, diantaranya :
      1.  Memasukkan aturan bisnis di dalam database 
      2. Menjaga agar data yang tidak valid tidak masuk ke database 
      3. Menjaga konsistensi data pada relasi keterkaitan antar tabel
    • Berikut ini adalah jenis-jenis integritas data yang disertai dengan contoh kasusnya: 
      1.  Create Domain,  yaitu membuat tipe data baru. Fungsi ini biasa digunakan untuk menangani data yang membutuhkan aturan bisnis sendiri, Contohnya : membuat tipe data “gender” untuk yang isinya hanya boleh berisi pria atau wanita Maka sintaksnya dalam SQL adalah :
      2. Not NULL, yaitu menjaga agar suatu data tidak kosong dengan kata lain harus ada value-nya. Contohnya : nama matakuliah pada tabel mata kuliah tidak boleh kosong. Maka sintaksnya dalam pl / sql :
      3. Unique, yaitu membuat agar suatu data tidak memiliki nilai yang sama dengan recordlainnya dalam tabel yang sama. Contohnya : email pada tabel akun_facebook hanya boleh satu email untuk satu akun. Maka sintaksnya dalam pl / sql :
      4. Primary key, merupakan gabungan antara not null dan unique. Misalnya : NIM pada tabel mahasiswa. Maka sintaksnya dalam pl / sql :
      5. Check, memeriksa data dengan aturan bisnisinya sendiri tanpa membuat tipe data baru. Contohnya : sebelum memasukkan nilai ujian pada tabel nilai, data diperiksa terlebih dahulu. Data tidak boleh masuk jika bernilai negatif. Maka sintaksnya dalam pl / sql :
      6. Referential Integrity, adalah integritas pada relasi antar tabel. Contohnya jika kolom NIM mahasiswa pada tabel nilai mengacu ke kolom NIM pada tabel mahasiswa, dan terjadi perubahan (delete atau update) pada NIM di tabel mahasiswa, maka ada beberapa pilihan yang dapat dilakukan terhadap NIM yang di tabel nilai, diantaranya adalah : 

    ===============================================================4.    Transaksi dan Concurrency
      1.  Transaki
                          Transaksi pada basis data adalah satu atomic operasi berupa lojik pekerjaan maupun                     lojik recovery (pemulihan) yang bisa terdiri dari beberapa intruksi. Tujuan dari transaksi                     adalah menjaga database dari kehilangan data dan kerusakan, seperti system crash dan                         pengaksesan data yang sama secara bersamaan oleh dua aplikasi yang berbeda yang                             menimbulkan gangguan.
    • Ada empat elemen dalam transaksi yang biasa disingkat ACID, yaitu :
    1. Atomicity,  semua berhasil atau semua gagal
    2. Consistency,  transaksi mempertahankan konsistensi database
    3. Isolation,  transaksi terisolasi satu dengan yang lain
    4. Durability,  setelah commit update harus survive di database
    • Dan ada dua jenis transaksi yang paling penting dalam sistem basis data adalah :
    1. Commit, memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system). Pada implementasinya, contohnya di konsol SQL command, setelah proses transaksi selesai untuk commit tinggal ketikkan = commit;
    2. Rollback, memberi tanda bahwa transaksi gagal. Semua update harus di-undo. Pada implementasinya, contohnya di konsol SQL command, setelah proses transaksi selesai untuk membatalkan transaksi tadi tinggal ketikkan = rollback;
    2. Concurrency           Concurrency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan. Pada umumnya terdapat 3 masalah utama pada concurrency :
    1. Lost update problem, ketika dua user mengupdate dua buah data yang sama, Contoh :                                                                                          maka transaksi A tidak akan dianggap dan data update pada transaksi A akan di overwrite oleh transaksi B Ini akan menimbulkan lost update problem pada transaksi A.
    2. Uncommited dependency problem, ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut,contoh : 
                               Dari contoh diatas, maka transaksi A akan menerima data yang salah karena pada transaksi B saat di update terjadi kesalahan kemudian di rollback.
    3. Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut, Contoh :
                                Dari contoh diatas, maka transaksi A akan menghasilkan data yang salah dan tidak sesuai database karena saat analisis di transaksi A terjadi update data pada salah satu datanya.
    Untuk menangani masalah-masalah tersebut, dilakukan proses locking, jika sebuah transaksi ingin record/resource tidak berubah dalam waktu tertentu maka dia bisa meminta lock.
    • Ada dua jenis lock yaitu :  
    1. Exclusive Lock (Xlock) -> write lock
    2. Shared Lock (Slock) -> read lock
    Bagaimana cara kerjanya?
    1. Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
    2. Jika transaksi A memegang Slock pada record R maka permintaan Xlock transaksi lain pada R ditolak dan permintaan Slock transaksi lain pada R diterima
    Tapi, ada satu masalah yang dapat terjadi ketika melakukan proses locking ini, yaitu deadlock yaitu situasi dimana dua atau lebih transaksi dalam kondisi wait-state, satu sama lain menunggu lock dilepaskan sebelum dapat memulai.
    • Cara penanganannya adalah :
    1. Deteksi dan pecahkan deadlock
    2. Deteksi deadlock -> wait-for-graph
    3. Pecahkan deadlock -> salah satu dirollback paksa
    4. Ostrich Algorithm  -> diabaikan
    ===============================================================5.     Back-End Programming
    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, yaitu dengan trigger dan stored procedure.
    1. Trigger
    Trigger adalah blok PL/SQL yang disimpan dalam database dan akan diaktivasi ketika kita melakukan statement-statement SQL (DELETE, UPDATE, dan INSERT) pada sebuah tabel. Adanya trigger dalam database akan meringankan kita dalam pembuatan aplikasi karena di dalam aplikasi yang kita buat, kita tidak perlu lagi untuk melakukan validasi data. 
    Berikut adalah daftar yang mungkin untuk aktivasi trigger :
    •  Model-model yang digunakan untuk menspesifikasi aturan basis data aktif adalah model ECA (Event-Condition-Action). Aturan dalam model ECA memiliki tiga komponen yaitu:
    1. Event, yang memicu suatu rule tersebut biasanya berupa operasi perubahan basis data yang secara eksplisit ditambahkan ke basis data. Namun pada umumnya, bisa berupa event temporal atau jenis event eksternal yang lain.
    2. Condition, menentukan apakah suatu rule dijalankan atau tidak. Ketika suatu trigger dijalankan, maka bagian condition (bersifat optional) akan dievaluasi jika didefinisikan oleh yang membuat trigger. Jika evaluasi bagian condition bernilai TRUE maka aksi suatu rule dijalankan.
    3. Action, biasanya berupa statement sql.
    • Manfaat trigger antara lain adalah :
    1. Membuat integrity constraint yang kompleks.
    2.  Mencatat aktivitas suatu tabel (logging).
    3. Sinkronisasi
    Contoh Kasus :
    Pada database supermarket, jika ada pembelian baru maka otomatis stok barang pada table barang akan berkurang sesuai dengan jumlah barang yang dibeli. Maka sintaks lengkapnya dalam pl / sql adalah sebagai berikut : 
    2.      Stored Procedure
    Stored procedure adalah subprogram yang disimpan di dalam database berupa SQL + Bahasa prosedural. Ada beberapa kelebihan yang dapat diperoleh dengan menggunakan stored procedure, meliputi :
    1. Dijalankan di database server yaitu performance lebih baik, network trafik lebih rendah.
    2. Tools DBA yaitu praktis, selalu tersedia di database server.
    3. Dapat digunakan oleh banyak aplikasi
    4. Standarisasi business logic.
    5. SP dapat dipanggil oleh aplikasi luar
    6. Dapat memanfaatkan tipe, fungsi yang disediakan DBMS
    7. Powerfull, tools sangat penting bagi DB designer, DB programmer dan DBA
    8. Hampir semua RDBMS mensupport.
    9. Walaupun syntax berbeda, umumnya menggunakan prinsip yang sama
    ===============================================================
          6.     XML (Extensible Markup Language)
            XML adalah markup language sepertinya halnya HTML untuk dokumen yang mengandung informasi terstuktur dan ditujukan untuk pertukaran dokumen via web. XML berberntuk file teks yang cross platform, independen terhadap software dan hardware
    •  Berikut adalah spesifikasi XML :
          Tag: <nama> budi </nama>
    Tag didefinisikan sendiri.
    Tag dapat mempunyai atribut,
    contoh : 

    • Keuntungan XML :
    1. Self Documenting yaitu dengan melihat tag, dapat diketahui isi dokumen.
    2. Dapat dibaca software dan manusia.
    3. Fleksibel
    4. Dapat dikembangkan tanpa melanggar format lama.

    • Kerugian XML :
    1. Pengulangan tag , tidak efisien, ukuran file membengkak
    2.  Beberapa aturan XML : Setiap tag harus ada penutupnya dan penamaan Tag
    3.  case sensitive. <nama> tidak sama dengan <Nama>.
    4. Tidak diawali dengan angka
    5.  Tidak mengandung spasi
    6.  Hindari ‘-’ dan ‘.’
    7.  Urutan hirarki harus benar.

    • Untuk membaca XML diperlukan proses parser. Parser XML dapat dilakukan dengan dua cara, yaitu :
      1. Tree based, isi XML dipindahkan ke memori terlebih dulu DOM (Document Object Model).
      2.  Event based, tidak dipindahkan ke memori. Fungsi callback dipanggil setiap menemui element SAX (Simple API XML).
    Referensi :