Showing posts with label TEKNOLOGI. Show all posts
Showing posts with label TEKNOLOGI. Show all posts

Tuesday, 1 December 2015

XML

XML

XML (eXtended Markup Language) adalah bahasa markup yang digunakan untuk menyimpan data (tidak ada program) dan tidak tergantung dengan tools tertentu (seperti editor, dbms, compiler, dsb).
XML adalah merupakan suatu bahasa Markup. Markup yaitu bahasa yang berisikan kode-kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri agar dapat dimengerti. Perbedaan antara XML dan HTML dan Perlu di ingat bahwa:
1.      XML bukan merupakan pengganti HTML.
2.      XML dan HTML yang dirancang dengan tujuan yang berbeda:
3.      XML dirancang untuk transportasi dan menyimpan data, dengan fokus pada apa data.
4.      HTML dirancang untuk menampilkan data, dengan fokus pada bagaimana data terlihat.
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>
           
Struktur Dokumen XML
            Dokumen XML berisi informasi dan markup yang dibagi menjadi beberapa bagian yang penting, yaitu :
§  Element
Masing-masing dokumen XML berisi satu atau lebih elemen. Elemen mengenalkan dan menandakan isi. Berikur contoh sebuah element.
<tag>Some text</tag>
§  Atribut
Atribut berfungsi sebagai tambahan informasi tentang sebuah elemen. Atribut disimpan dengan tag pembuka sebuah elemen setelah nama elemen. Contoh penulisan :
<tagname attributr=”attributvalue”>
        Ihikihikhik
</tagname>
§  Text
Text menggambarkan isi informasi di antara tag pembuka dan pentutup elemen. Contoh :
<tag>INI TEKS</tag>
§  Entitie
Entitie/entitas merupakan shortcut dari teks yang umum. Jika dalam pemrograman bisa dibilang sebagai konstantanya. Cara penggunaan :
<!ENTITY bm “Budi Martami>
di XML-nya gunakan &entity;

TRANSAKSI DAN CONCURRENCY

TRANSAKSI & CONCURRENCY

Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.  DBMS yang kita gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak sama sekali.  Tidak boleh ada transaksi yang hanya dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis data.  Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain. Pada saat kita mengeksekusi transaksi, database bisa saja dalam keadaan tidak konsisten. Namun pada saat menemui level commit(proses transaksi selesai dan terpenuhi), maka database harus terjamin konsisten.
Tujuan dari transaksi adalah untuk melindungi database dari kehilangan data atau pun kerusakan data. Contoh masalah yang terjadi adalah sistem crash di tengah eksekusi program yang membuat database dalam state yang tidak diketahui. Masalah lainnya yaitu ketika ada dua program yang mengakses data yang sama dijalankan bersamaan sehingga dapat saling menggangu.
Seperti telah kita singgung di atas tentang commit, commit dapat disebut sebagai pemberi tanda bahwa transaksi telah selesai. Update terahadap database dilakukan secara permanen. Adapun operasi penting lainnya dalam transaksi adalah rollback. Rollback adalah pemberi tanda bahwa dalam proses transaksi terjadi kesalahan. Maka semua update harus di-undo.
Untuk menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus memiliki 4 element berikut ini :
1.      Atomicity, imana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
  1. Consistency, dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
  2. Isolation, jika pada sebuah sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
  3. Durability, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.
Status-status yang dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal adalah:
1.      Aktif (Active), yang merupakan status awal (initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih dieksekusi.
2.      Berhasil Sebagian (Partially Committed), yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir dalam transaksi selesai dikerjakan.
3.      Gagal (Failed), yang merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
4.      Batal (Aborted), yaitu keadaan dimana sebuah transaksi dianggap tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali dengan mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang menjadi tanggung jawab DBMS).
5.      Berhasil Sempurna (Committed), keadaan dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan basis data telah merefleksikan perubahan-perubahan yang memang diinginkan transaksi.

Sedangkan concurrency adalah sebuah mekanisme pada system basis data yang mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama tanpa adanya gangguan. Agar setiap transaksi tidak menggangu satu dengan yang lainnya, maka dibutuhkan Concurrency Control Mechanism (CCM) .
Pada umumnya terdapat 3 masalah utama pada concurrency :
1.      Lost update problem, ketika dua user mengupdate dua buah data yang sama. Misalnya

§  Transaksi A membaca R pada waktu ke-2, transaksi B membaca R pada waktu ke-3.
§  Transaksi A memodifikasi R pada waktu ke-4.
§  Transaksi B memodifikasi record yang sama pada waktu ke-5.
§  Modifikasi dari transaksi A akan hilang karena transaksi B akan memodifikasi R tanpa memperhatikan modifikasi dari transaksi A.
2.      Uncommitted dependency problem, ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut. Misalnya :

§  Transaksi B memodifikasi record R pada waktu ke-2.
§  Transaksi A membaca R pada waktu ke-3.
§  Pada saat waktu ke-4 transaksi B dibatalkan.
§  Maka transaksi A akan membaca record yang salah.


§  Pada waktu ke-2 transaksi A memodifikasi R
§  Karena transaksi B dibatalkan pada waktu ke-5, maka transaksi A memodifikasi record yang salah.






3.      Inconsistent analysis problem, ketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut.

§  Transaksi A menjumlah nilai 1, nilai 2 dan nilai 3.
§  Transaksi B " nilai 1 + 10 ; nilai 3 - 10
§  Pada waktu  t8, transaksi A membaca nilai yang salah karena nilai 3 sudah dimodifikasi menjadi 20 (transaksi B sudah melakukan commit sebelum transaksi A membaca nilai 3).

Di atas kita menyinggung tentang Concurrency Control Mechanism (CCM). Adapun CCM yang bisa dilakukan adalah

1.  LOCKING
Locking adalah salah satu mekanisasi pengontrolan konkuren.
Konsep dasarnya adalah:  ketika suatu transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut.
Fungsinya kunci (lock) adalah dengan menjaga record tersebut agar tidak dimodifikasi oleh transaksi lain.

Cara kerja dari kunci:
1. Pertama kita asumsikan terdapat 2 macam kunci:
·      Xlock : kunci yang eksklusif.
·      Slock : kunci yang digunakan bersama-sama.

2. Jika transaksi A menggunakan Xlock pada record R, maka permintaan dari transaksi B untuk suatu kunci pada R ditunda, dan B harus menunggu sampai A melepaskan kunci tersebut.

3. Jika transaksi A menggunakan Slock  pada record R, maka:
·      Bila transaksi B ingin menggunakan Xlock, maka B harus menunggu sampai A melepaskan kunci tersebut.
·      Bila transaksi B ingin menggunakan Slock, maka B dapat menggunakan Slock bersama A.

Tabel Kunci:


X
S
-
X = Xlock
X
N
N
Y
S = Slock
S
N
Y
Y
N = No
-
Y
Y
Y
Y = Yes


4. - Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia memerlukan Slock " baca (S)
- Bila transaksi tersebut ingin memodifikasi record maka secara otomatis ia memerlukan Slock " memodifikasi (X)
- Bila transaksi tersebut sudah menggunakan Slock, setelah itu ia akan memodifikasi record, maka Slock akan dinaikan ke level Xlock.

5. Xlock dan Slock akan dilepaskan pada saat synchpoint (synchronization point).  Synchpoint menyatakan akhir dari suatu transaksi dimana basis data berada pada state yang konsisten.  Bila synchpoint ditetapkan maka:
·         Semua modifikasi program menjalankan operasi commit atau rollback.
·         Semua kunci dari record dilepaskan.

Dengan menggunakan locking, maka tidak ada transaksi yang akan kehilangan modifikasi.  Tapi, terdapat keadaan / masalah baru yaitu Deadlock, yaitu suatu kondisi dimana ke-2 transaksi dalam keadaan menunggu, sehingga keduanya tidak akan pernah selesai dieksekusi.
Jika pelepasan kunci terlalu cepat dilakukan, maka bisa terjadi inkonsistensi informasi.  Tapi bila dilepas di akhir transaksi, bisa terjadi deadlock.  Hal ini merupakan kondisi dilematis pada sebuah sistem konkuren yang memanfaatkan mekanisme locking.

Mengatasi masalah deadlock bisa dengan cara mendeteksi apa penyebab deadlock tersebut dan pecahkan oleh kita. Cara yang lazim digunakan untuk mendeteksi deadlock adalah dengan menemukan siklus di wait-for-graph. Selain itu kita juga bisa memaksa salah satu permintaan untuk di rollback secara paksa.


index :

INTEGRITAS DATA

INTEGRITAS DATA

Integritas data adalah jaminan suatu data agar mempunyai data yang konsisten dan sesuai terhadap batasan-batasan data tersebut. Integritas data sangat penting karena dapat memastikan keakuratan, konsistensi, aksesibilitas, dan kualitas tinggi dari sebuah data. Tujuan sederhana dari integritas data adalah untuk memastikan bahwa setiap data yang diinputkan memiliki kesesuaian dengan data yang seharusnya. Contoh sederhana integritas data adalah pemasukan usia manusia yang tidak mungkin bernilai minus.
Ada beberapa cara untuk menajaga integritas data, yang pertama bisa dengan dilindungi di inputan software, bisa juga dijaga dilevel sql/database. Pencegahan gangguan integritas data di level software bisa dilakukan dengan cara memastikan inputan di form valid. Sedangkan integritas data via SQL bisa dilakukan dengan cara menambahkan constrain check.
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 “jenis_kelamin” untuk yang isinya hanya boleh berisi laki-laki atau pria
§  Maka sintaksnya dalam SQL adalah :
create domain gender char(10) constraint jk_domain check ( value in(‘laki-laki’,’wanita’));
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 :
§  nama_matkul varchar2(15),
§  constraint nn_ matkul not null (nama_matkul)
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.
§  Sintaksnya :
§  email varchar2(15),
§  constraint u_mail unique (email)
4.     Primary key, merupakan gabungan antara not null dan unique.
§  Misalnya NIM pada tabel mahasiswa.
§  nim char(7) not null,
§  constraint pk_ nim primary key (nim)
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.
§  nilai number,
§  constraint chk_nilai check (nilai > 0)
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 :
§  Delete cascade, hapus record pada kedua tabel yang bersangkutan
§  Delete set null, hapus record di tabel asal dan value record pada tabel yang mengacu di jadikan NULL
§  Update cascade, perbarui isi record pada kedua tabel
Misal diketahui atribut nim seperti dibawah ini :
nim char(7)
            Maka kita bisa membuat integritas relasi seperti dibawah ini :

constraint fk_nim foreign key (nim) references mahasiswa (nim) on delete cascade / on delete set   null /  on update cascade 

index :
BASIS DATA VS SISTEM BASIS DATAINTEGRITAS DATA , TRANSAKSI DAN CONCURRENCY , XML, BACK-END PROGRAMMING