Minggu, 08 September 2013

Kecerdasan Buatan


Tulisan  ini dibuat dalam bentuk non formal dengan pemikiran yang matang dan kekuatan jari-jari untuk tetap berdansa diatas huruf-huruf yang berbaris rapih. Bila menimbulkan keresahan dan ketidaknyamanan bagi pembaca, silahkan ignore saja. Note ini dibuat juga untuk memenuhi salah satu tugas mata kuliah Artificial Intelligence (kecerdasan buatan). Kali ini saya akan mencoba menjelaskan sedikit tentang kecerdasan buatan dan salah satu contoh kecerdasan buatan di masa depan. Semoga bermanfaat :D

AI adalah singkatan dari Artificial Intelligence, apakah Artificial Intelligence itu? Artificial Intelligence adalah kecerdasan yang ditunjukkan oleh suatu entitas buatan, yakni kecerdasan buatan. Banyak hal yang kelihatannya sulit untuk kecerdasan manusia, tetapi untuk Informatika relatif tidak bermasalah. Seperti contoh: mentransformasikan persamaan, menyelesaikan persamaan integral, seperti membuat permainan catur. Meskipun AI mempunyai konotasi fiksi ilmiah yang kuat, AI membentuk cabang yang sangat penting pada ilmu komputer, berhubungan dengan perilaku, pembelajaran dan adaptasi yang cerdas dalam sebuah mesin.
Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.
Nah... Salah satu contoh AI yang saya angkat kali ini adalah robot rumah tangga. Semakin canggihnya teknologi robot dunia, membuat berbagai perusahaan berlomba – lomba membuat robot dan salah satunya adalah robot pembantu rumah tangga yang mampu memudahkan kita melakukan aktifitas – aktifitas rumah tangga. Tim peneliti dari Cornell University, Amerika Serikat, mengumumkan telah membuat robot – robot  yang memiliki kemampuan untuk membantu pekerjaan rumah tangga. Robot ini bisa membantu membukakan pintu lemari es hingga menuangkan minuman atau bir..
Kemampuan robot ini berkat digunakannya sensor gerak Kinect milik Microsoft. sensor itu akan mengikuti gerakan manusia berdasarkan rekaman 120 video tugas rumah tangga, seperti memasukkan makanan ke microwave, menyikat gigi, dan lainnya. Menurut Ashutosh Saxena, ahli komputer dari Cornell University, AS, kunci dari keberhasilan membuat robot yang dapat melakukan pekerjaan rumah tangga adalah kemampuan memprediksi gerakan selanjutnya.
"Untuk membuat robot yang dapat meniru gerakan manusia sangat mudah. Tapi, untuk membuat robot yang memiliki kemampuan memprediksi gerakan selanjutnya adalah sangat sulit," kata Saxena, yang dilansir Science Recorder, 29 Mei 2013. Robot ini mampu menghapal gerakan manusia dalam melakukan pekerjaan rumah tangga. Yang sangat menakjubkan adalah robot ini mempunyai kemampuan menganalisis gerakan manusia dan menghafal letak gelas untuk dituangkan bir.
"Saat saya menaruh gelas di atas meja, robot itu mulai menghitung algoritma dari seberapa jauh lengan saya untuk meletakkan gelas di atas meja," jelas Saxena. Teknologi robot ini bukan hanya sebatas untuk melakukan pekerjaan rumah tangga. Jika hitungan algoritma diperluas, bukan tidak mungkin robot itu memiliki kemampuan untuk membantu pekerjaan medis.
Hingga saat ini sudah ada beberapa robot pintar yang memiliki kecerdasan yang menyerupai manusia. Diantaranya robot PR2, RoboCleaner RC3000, HERB, Kojiro.
1.      Robot PR2
Perusahaan Willow Garage dari Silicon Valley telah memasarkan robot PR2 buatan mereka. Robot ini memiliki dua tangan pemegang, scanner laser dan banyak sekali kamera untuk melipat pakaian, menyajikan minuman, membersihkan meja, hingga bermain bilyard. Bila baterainya kritis, ia secara otomatis mencari sendiri stop kontak dan mengisi kembali baterainya.

2.      Robocleaner RC3000
ini alat pembersih lantai yang menggunakan kombinasi sapu dan vacuum (penyedot) debu dan kotoran. Dengan teknologi robotic, alat ini dapat bekerja secara otomatis membersihkan ruangan dengan sempurna tanpa menyisakan debu di lantai maupun di karpet. RoboCleaner juga dilengkapi alat navigasi dan fitur sensor, sehingga mampu mendeteksi benda-benda yang ada di sekitarnya seperti kabel, furnitur dan lain-lain. Tidak perlu khawatir akan mengganggu kenyamanan Anda, karena alat ini juga dilengkapi sensor yang dapat mendeteksi tangga, sehingga alat ini tidak terguling.

3.      HERB
HERB (Home Exploring Robot Butler) mungkin akan menjadi pesaing para pembantu rumah tangga di masa depan karena robot ini memang akan melakukan banyak tugas rumah tangga mulai dari cuci piring, ambil makanan sampai buang sampah.  HERB yang dikembangkan oleh Quality of Life Technology Center dan Carnegie Mellon University menggunakan 6 buah komputer dan banyak sensor untuk melakukan banyak tugas di sekitar dapur.
Di dalam demonya diperlihatkan bagaimana HERB mengambil minuman yang kita minta dan kemudian langsung memberikannya (melepaskan minuman) pada saat tangan kita mendekati minuman tersebut.

4.      Kojiro
Ilmuan di Tokyo University’s JSK Robotika Laboratorium, telah menciptakan sebuah robot humanoid bernama Kojiro, uniknya ia bisa bergerak dalam mode alami karena memiliki struktur kerangka mirip dengan manusia dan memiliki tulang belakang buatan. Canggihnya lagi, terdapat sekitar 100 sistem mirip otot tendon yang memungkinkan Kojiro lebih bebas bergerak. Sensor ditambahkan ke beberapa sendi dan accelerometer serta dua gyroscopes untuk membantu keseimbangan robot.

Pimpinan tim ilmuwan, Profesor Nakanishi mengatakan, kegunaan tulang belakang memungkinkan Kojiro lebih fleksibel bergerak untuk mengerjakan pekerjaan rumah.
Namun, dalam salah satu makalah ilmiah, mereka menulis: “Saat ini normal robot humanoid tidak cocok untuk bekerja di lingkungan kita sehari-hari.

Kurangnya keamanan dan fleksibilitas adalah alasan utama. Bahan dasar robot yang keras dan berat bisa melukai manusia atau benda-benda di sekitarnya, dan mereka dapat melakukan tugas-tugas terbatas dibandingkan dengan apa yang manusia lakukan dalam kehidupan sehari-hari. “
Saat ini para ilmuwan menguji gerakan kecil Kojiro menggunakan konsol game controller. Tim ilmuwan berharap suatu hari nanti akan dapat menangani gerakan-gerakan yang rumit dengan menggunakan seluruh anggota badan. Andaikan itu terwujud, suatu hari nanti anda akan menemukan Kojiro melayani sarapan pagi.

Demikianlah tadi salah satu contoh AI, harapannya adalah semoga kedepannya robot - robot pembantu rumah tangga itu sudah mulai ada di Indonesia. Aamiin..

Sumber :
http://k3j3p1t.wordpress.com/2010/11/21/ai-artificial-intelligence-kecerdasan-buatan/
http://forum.kompas.com/teras/207626-5-robot-pembantu-rumah-tangga-terbaik-di-dunia.html
http://teknologi.news.viva.co.id/news/read/407527-tim-ugm-juara-kompetisi-robot-di-amerika-serikat

Minggu, 28 Juli 2013

Peranan Business Plan (Rencana Bisnis) dalam Kewirausahaan

Tulisan ini saya posting dengan tujuan salah satunya adalah untuk memenuhi Ujian Akhir Semester mata Kuliah Kewirausahaan Ilmu Komputer Universitas Pendidikan Indonesia.


Ketika bisnis mengalami kendala, target bisnis pun akan ikut terancam. Berbagai solusi bisnis diterapkan untuk mengatasi kendala tersebut. Jika solusi tersebut ternyata tidak berhasil, solusi lain dicoba. Alih – alih ingin mengatasi satu kendala, teknik trial-and-error semacam ini tak jarang justru membuat sebuah bisnis menjauh dar itarget awalnya. Kunci dari seluruh kendala bisnis adalah business plan. Pada kesempatan kali ini saya ingin menulisan tentang apa itu business plan dan seperti apa pentingnya business plan dalam kewirausahaan. Sebelum kita membahas lebih dalam seperti apa pentingnya business plan  ini, menurut saya ada baiknya kita review terlebih dahulu apa itu business plan?


Business Plan adalah rancangan penyelenggaraan sebuah usaha bisnis secara menyeluruh terhadap semua aspek yang dibutuhkan dalam menjalankan usaha tersebut. Ketika business plan kita sudah mantap, maka kita akan mendapatkan jaminan yang lebih serius dari pengelola bisnis yang bersangkutan.

Melalui sebuah business plan yang mantap, maka itu akan memberikan jaminan yang lebih terhadap keseriusan dari pengelola bisnis yang bersangkutan. Business plan juga merupakan cara kita untuk meyakinkan pihak investor atau pemberi dana hibah di perusahaan yang akan kita buat. Business plan yang baik akan mengundang isian yang jelas dan mudah dipahami apa sebenarnya yang menjadi maksud tujuan, upaya-upaya, gambaran target, strategi dan sebagainya.

Nah, seperti yang kita ketahui bersama, biasanya pihak – pihak pemberi dana hibah akan menilai tak hanya dari aspek kejelasan saja, namun sejauh mana kebermanfaatan dari rancangan bisnis yang diupayakan. Langkah – langkah dan target seperti apa yang dipersiapkan di kemudian hari untuk mengantisipasi berbagai persoalan yang akan dihadapi perusahaan.

Ada yang salah kaprah dikalangan pebisnis atau wirausaha dan orang – orang yang terkait di dalamnya dalam memahami kegunaan business plan yang sebenarnya. Business plan  dibuat menurut sebagian besar pemahaman mereka, hanya digunakan semata-mata untuk mendapatkan dana, baik dana pinjaman ataupun dana investasi. Begitu dana yang diinginkan sudah ada ditangan, perencanaan yang di buat dengan susah payah, banyak meluangkan waktu, mencurahkan tenaga dan pikiran, hanya menjadi lembaran arsip perusahaan yang tidak pernah dibuka lagi. Ini berarti perencanaan bisnis hanya digunakan sekali saja, dan ini merupakan sebuah fakta yang sangat menyedihkan dan sekaligus meragukan, karena strategi bisnis yang terkandung di dalamnya dibiarkan begitu saja. Perencanaan bisnis bisa dikatakan bermanfaat dan efektif bila digunakan sesuai dengan tujaun dan maksud yang terkandung di dalamnya, dan menurut pengertian yang sebenarnya. Kegunaan perencanaan bisnis di samping untuk mendapatkan dana, juga sebagai pedoman dan acuan dalam upaya meraih kesuksesan, mengendalikan operasionalisasi bisnis, menerapkan strategi sekaligus mengerahkan keputusan bisnis beberapa tahun kedepan. Dalam berwirausaha, business plan dan timeline itu penting. Mengapa? Sebab penggunaaan resource waktu haruslah terplanning.
Beberapa manfaat dan peranan  business plan dalam berwirausaha antara lain :
  • Peta jalan. Business plan adalah juga peta jalan bagi perusahaan. Seperti kapan kita harus mulai berhenti untuk melakukan manuver seanjutnya. Dalam hal ini business plan dibutuhkan untuk pencapaian target yang telah kita tetapkan di awal tahun memulai suatu usaha. Dalam pembuatan peta, kita wajib melihat dari sisi global baru perlahan menuju sisi yang lebih lokal.
  • Contingency plan. Alangkah baiknya jika kita juga menyediakan beberapa versi business plan. Karena kondisi yang juga tidak akan pasti. Diperlukan banyak alternatif business plan. Meningkatkan daya nalar. Business plan diharapkan dapat meningkatkan daya nalar dari semua orang yang terlibat di dalamnya. Sehingga semua orang yang ada dalam perusahaan bisa menjadi dewasa. Karena kedewasaan penting dimiliki setiap karyawan yang ada di perusahaan.
  • Alat evaluasi. Business plan bisa dijadikan sebagai alat evaluasi. Karena di dalam business plan harusnya terdapat aturan – aturan yang harus dipatuhi sehingga juga memudahkan bagi pengusaha untuk mengetahui alasan dia mengalami peningkatan atau penurunan.
Yah, demikianlah penjelasan saya mengenai manfaat dan peranan business plan dalam kewirausahaan. Bagi kamu – kamu semua yang ingin memulai beriwrausaha, jangan lupa untuk terlebih dahulu membuat business plan atau rencana bisnis yang akan kamu bangun. Semoga postingan ini dapat memberi kebermanfaatan bagi siapapun yang membaca.

Lihat juga:
budi.staf.upi.edu
cs.upi.edu

Sabtu, 15 Juni 2013

Studi Kasus "Concurrency"


Studi Kasus
Pembayaran SPP di Universitas Pendidikan Indonesia sekarang sudah menggunakan sistem autodebet. Dimana, akan ada penarikan otomatis dari saldo di rekening mahasiswa sebesar jumlah SPP yang wajib dibayar pada tiap semester nya. Banyak mahasiswa yang terkadang tidak memperhatikan kapan jadwal dimulainya penarikan otomatis untuk pembayaran SPP tersebut, sehingga banyak pula mahasiswa yang sesaat kaget melihat saldo rekening yang tiba-tiba menipis drastis. Dalam kasus ini, ada seorang mahasiswa A yang ingin melakukan transfer ke rekening lain ketika hendak belanja online. Saat di cek saldo tabungan, si mahasiswa masih memiliki uang senilai Rp. 2.150.000. Si A ingin mentransfer uang ke rekening penjual barang sebesar Rp.500.000. Namun, ketika A sedang melakukan proses transfer, saat itu juga dimulainya jadwal autodebet untuk pembayaran SPP senilai Rp. 2.000.000, dan terambillah sudah uang tabungan senilai uang SPP yang harus dibayar, sehingga saldo si A dalam tabungan hanya tinggal Rp. 150.000. Seperti dikatakan di awal, banyak mahasiswa yang tidak memperhatikan kapan jadwal dimulainya penarikan otomatis untuk pembayaran SPP, salah satunya adalah si A. Maka pada saat si A sedang melakukan transaksi untuk belanja akan selalu gagal karna jumlah yang akan ditransfer melebihi saldo dalam tabungan. Padahal dengan yakin si A sudah cek saldo sebelum melakukan transaksi dan saldonya mencukupi untuk transfer. Setelah atm card dikeluarkan dan dicoba kembali melakukan cek ulang saldo, ternyata saldo si A sudah ter-autodebet untuk pembayaran SPP.
                Materi yang terkait dalam studi kasus di atas adalah tentang concurrency, khususnya pada sub pembahasan lock. Sebelum memulai pembahasan dan penyelesaian kasus di atas, saya akan mencoba memberikan sedikit penjelasan tentang materi concurrency untuk memudahkan dalam pembahasan studi kasus ini.

Materi Bersangkutan
Banyak submateri yang harus dibahas untuk concurrency, mulai dari permasalahan dalam concurrency, locking, deadlock, isolation level, dan lain-lain. Disini akan dibahas beberapa permasalshan dalam concurrency. DBMS yang sering kita gunakan mengizinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Pemakaian satu sumber secara bersama-sama pastinya akan menggganggu jalannya transaksi, itulah yang dimaksud dengan concurrency. Oleh karna itu kita membutuhkan Concurrency Control Mechanism agar transaksi tidak saling mengganggu. Ada 3 (tiga) masalah dalam concurrency, ada lost update problem, uncommited depedency problem dan inconsistent analysis problem. Berikut adalah contoh dari ketiga permasalahan di atas:
Lost Update Problem, merupakan suatu masalah yang timbul akibat dihiraukannya informasi pada saat ada update dari user lain yang hampir bersamaan waktunya. Misalnya: ketika user 1 mengambil data R, dan kemudian user 2 juga mengambil data R. Setelah user 2 mengambil data, user 1 melakukan update data R dan di COMMIT. Ketika user 2 ingin mengupdate data R, maka sebenarnya user 2 akan mengupdate data baru dari updatetan user 1 bukan data yang awalnya sudah di ambil.
Uncommited Depedency Problem, ini terjadi jika satu transaksi membaca hasil dari transaksi lainnya sebelum transaksi kedua dinyatakan COMMIT.
Inconsisten Analysis Problem, Ketika transaksi pertama membaca beberapa nilai, tetapi transaksi kedua melakukan perubahan terhadap nilai tersebut, selama eksekusi transaksi pertama berlangsung.
                Pada transaksi database, dikenal istilah locking yang berfungsi untuk menjaga integritas data. Terdapat dua buah metode locking yaitu :
-     SHARED LOCK (S-LOCK)
      Jika transaksi mendapat shared lock pada suatu data, transaksi tersebut hanya bisa melakukan pembacaan.
-     EXCLUSIVE LOCK (X-LOCK)
      Bagi transaksi yang mendapat exclusive lock pada suatu data, transaksi tersebut dapat melakukan perubahan dan pembacaan terhadap data tersebut.
Dengan kata lain, aktifitas yang dapat dilakukan ketika mendapat lock adalah sebagai berikut:
        Jika transaksi A memegang Xlock pada sebuah record, maka permintaan lock (X,S) pada record yang sama harus diabaikan.
        Jika transaksi A memegang Slock pada record R maka:
        Permintaan Xlock trans. lain pada R ditolak
        Permintaan Slock trans. lain pada R diterima
Untuk shared lock, dapat dimiliki oleh beberapa transaksi dalam satu waktu, namun untuk exclusive lock, hanya dapat dimiliki oleh satu transaksi pada satu waktu.

Pembahasan Kasus
Pada kasus di atas, transaksi autodebet yang sedang berlangsung hanya menggunakan metode shared lock. Sehingga ketika transaksi autodebet (penarikan saldo) sedang berlangsung, nasabah masih bisa mengambil data / membaca saldo pada waktu yang bersamaan melalui mesin atm. Namun data yang dibaca adalah data sebelum transaksi di bank berakhir (sebelum commit autodebet). Sehingga si A masih mengira bahwa saldonya sangat mencukupi untuk melakukan transfer karna data yang diambil adalah data sebelum autodebet berlangsung. Jumlah saldo akhir baru akan muncul ketika transaksi yang dilakukan si A berakhir, atau setelah kartu atm dikeluarkan dari mesin atm dan dimasukkan kembali untuk pengecekan ulang saldo. Penyelesaian dalam kasus ini adalah, seharusnya bank menggunakan metode exclusive lock  ketika transaksi autodebet berlangsung sehingga ketika waktu autodebet dimulai, semua transaksi yang memakai / membaca data dari bank harus dihentikan sampai proses autodebet commit.
Dalam kasus ini, ketika ada nasabah yang sedang melakukan transaksi ketika transaksi autodebet berlangsung, maka seharusnya otomatis akan muncul pesan error di mesin atm yang menandakan sedang berlangsung transaksi di bank, sehingga untuk sementara data tidak dapat dibaca sampai proses transaksi selesai (commit). Dengan begitu, maka si A yang tadi akan melakukan transfer akan seketika sadar bahwa saat itu sedang berlangsung proses autodebet dan dia tidak bisa melakukan transaksi dulu sebelum transaksi di bank berakhir, atau A harus menghentikan dulu transaksi yang dilakukan sampai transaksi di bank selesai dan si A dapat mengetahui saldo akhir tidak mencukupi untuk melakukan transfer. 

Minggu, 19 Mei 2013

Materi – Materi di Mata Kuliah Sistem Basis Data



1.      Integritas Data
Integritas data adalah akurasi dan kebenaran suatu data dalam sebuah sistem basis data. Maksudnya data yang ada bakal bisa lebih terpercaya kalau data-data tersebut terjaga kebenarannya. Tujuan dari integritas data adalah memasukkan aturan bisnis dalam database, menyaring data yang tidak valid agar tidak tersimpan di database, dan menjaga konsistensi data pada tabel yang memiliki relasi dalam database. Akurasi data dapat ditangani dengan adanya trigger yang strukturnya menyerupai fungsi atau prosedur yang dijalankan secara otomatis setelah mendapat pemicu dari sebuah kondisi tertentu. Selain itu, integritas suatu data bisa ditunjukkan dengan adanya constraint.  Constraint merupakan batasan perlakuan terhadap suatu data, constraint ada 6 macam, diantaranya:
1.     NOT NULL, ini digunakan ketika dalam satu tabel tidak boleh ada field yang null, artinya ketika kita gunakan constraint NOT NULL, field tersebut harus diisi.
2.     UNIQUE, berfungsi untuk mencegah dua baris atau lebih berisi data yang sama. Yah namanya juga unique, artinya emang gak boleh ada data yang sama di kolom tersebut.
3.     PRIMARY KEY, constraint ini mengkombinasikan UNIQUE dan NOT NULL dalam satu deklarasi. Primary key ini digunakan sebagai kolom acuan dari sebuah tabel.
4.     Foreign KEY, constraint ini memaksakan nilai pada suatu tabel untuk bernilai sama dengan tabel lain. Foreign key ini bertujuan untuk menjaga integritas pada relasi antar tabel.
5.     CHECK, berguna untuk menentukan suatu kondisi yang harus benar, misalnya jenis kelamin hanya ada P atau L.
6.     REF, mereferensi suatu objek dalam tipe objek lainnya atau dalam sebuah tabel relasional. Constraint REF mengizinkan kamu untuk mendeskripsikan relationship lebih jauh antara kolom REF dan objek yang di referensikan

2.      Transaksi
Transaksi adalah satu atau beberapa aksi program aplikasi yang mengakses / mengubah isi basis data. DBSM 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. Kenapa? Karna dapat menyebabkan inkonsistensi basis data. Untuk itu, transaksi selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten lain. Ada 4 (empat) sifat transaksi, yang kalau disingkat tuh bakal jadi kata ACID. Apa itu? Nih ada disini:
1.     Atomicity, semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali
2.     Consistency, eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir
3.     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
4.     Durability, perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati
Ada dua operasi penting dalam transaksi, yaitu COMMIT dan ROLLBACK. COMMIT (memberi tanda bahwa transaksi telah selesai. Update dibuat permanen (bahkan jika setelah commit terjadi kegagalan system) dan ROLLBACK (memberi tanda bahwa transaksi GAGAL). Selain COMMIT dan ROLLBACK juga terdapat operasi transaksi pada oracle, yaitu Save Point. Secara sederhana save point merupakan sebuah titik aman, dimana kita telah menyelesaiakan satu atau beberapa transaksi. Save point dianalogikan seperti sebuah check point saat kita bermain game.  Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah kita buat.

3.      Concurrency
Banyak submateri yang harus dibahas untuk concurrency, mulai dari permasalahan dalam concurrency, locking, deadlock, isolation level, dan lain-lain. Disini akan dibahas beberapa permasalshan dalam concurrency. DBMS yang sering kita gunakan mengizinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Pemakaian satu sumber secara bersama-sama pastinya akan menggganggu jalannya transaksi, itulah yang dimaksud dengan concurrency. Oleh karna itu kita membutuhkan Concurrency Control Mechanism agar transaksi tidak saling mengganggu. Ada 3 (tiga) masalah dalam concurrency, ada lost update problem, uncommited depedency problem dan inconsistent analysis problem. Berikut adalah contoh dari ketiga permasalahan di atas:

Lost Update Problem, merupakan suatu masalah yang timbul akibat dihiraukannya informasi pada saat ada update dari user lain yang hampir bersamaan waktunya. Misalnya: ketika user 1 mengambil data R, dan kemudian user 2 juga mengambil data R. Setelah user 2 mengambil data, user 1 melakukan update data R dan di COMMIT. Ketika user 2 ingin mengupdate data R, maka sebenarnya user 2 akan mengupdate data baru dari updatetan user 1 bukan data yang awalnya sudah di ambil.



Uncommited Depedency Problem, ini terjadi jika satu transaksi membaca hasil dari transaksi lainnya sebelum transaksi kedua dinyatakan COMMIT.

  


Ketika transaksi pertama membaca beberapa nilai, tetapi transaksi kedua melakukan perubahan terhadap nilai tersebut, selama eksekusi transaksi pertama berlangsung

4.      Back-end Programming
Back-end programming adalah baris kode yang tidak dapat dilihat oleh user. Maksudnya adalah pengelolaan yang dilakukan berhubungan dengan database, sehingga tidak akan dapat dilihat oleh user. Beda halnya dengan front-end programming, ini merupakan baris kode yang dapat dilihat user karna lebih berfokus di tampilan.salah stau contoh back-end programming adalah PL/SQL. PL/SQL dirancang khusus untuk pengolahan mulus dari perintah SQL. Ini memberikan sintaks khusus untuk tujuan ini dan mendukung persis datatypes sama seperti SQL. Server-side PL / SQL disimpan dan disusun dalam Oracle Database dan berjalan dalam executable Oracle. Secara otomatis mewarisi ketahanan, keamanan, dan portabilitas Oracle Database.
            Struktur block PL/SQL dibagi menjadi 3 bagian, yaitu: declaration section (DECLARE), execution section (BEGIN, END), exception section (EXCEPTION). Selain itu ada beberapa komponen utama PL/SQL, diantaranya: Anonymous PL/SQL Block, Stored Subprogram (Stored Procedure, Stored Function) dan Trigger.
1.     Anonymous Block
Block PL/SQL tak bernama (anonymous) menyimpannya dalam Oracle Precompiler. Anonymous block tidak dibuat (CREATE) dan tak disimpan pada database, biasanya dijalankan dari dalam aplikasi, pada run-time aplikasi akan mengirimkan anonymous PL/SQL block ini kepada database oracle, dimana anonymous block tsb di compile dan dieksekusi.
2.     SUBPROGRAM
PL/SQL Block yang dipanggil dengan sekumpulan parameter. PL/SQL memiliki dua jenis subprogram yaitu: procedure dan function. Dimana secara umum procedure digunakan untuk melaksanakan aksi dan function digunakan untuk komputasi suatu nilai.
3.     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. Aktivasi trigger didasarkan pada event yang terjadi di dalam tabel tersebut sehingga trigger dapat membantu dalam menjaga integritas dan konsistensi data.

5.      XML
XML adalah singkatan dari eXtensible Markup Language, ini adalah markup language markup language yang menunjukkan data terstruktur dan bersifat sensitive case. Perbedaan yang paling terlihat dengan HTML adalah penulisan nama tag nya bisa dibuat sendiri, maksudnya penamaan tagnya tidak di tentukan. Kalau di HTML tagnya sudah ditentukan. Contoh nya:
                                                                                       XML
                                                                               
                                                                                       HTML

Mengapa kita belajar XML? Itu karena XML disupport oleh banyak tools (RDBMS, bahasa pemrograman, dll), dan XML juga platform independen serta language independen. Platform independen maksudnya adalah ketika diakses, XML akan dibawa bersamaan dengan dictionary-nya agar bahasa yang digunakan mudah dimengerti karna sudah memiliki penerjemah khusus, sehingga keamanan data dengan XML akan lebih bagus dibanding HTML.
Dalam XML, ada istilah XXML Schema. Sebuah schema mendefinisikan struktur dari dokumen XML. Sebuah skema juga digunakan untuk membatasi content dari sebuah dokumen XML kedalam sebuah element, attributes, dan values tertentu. Sebuah Document Type Definition schema adalah bagian dari spesifikasi XML. Kita akan memanggil schema yang ditulis dalam bahasa ini disebut sebagai DTD. DTD ini juga mendefinisikan tag atau attribute mana yang sangat diperlukan dan mana yang bersifat optional.

6.      Keamanan Data
Keamanan database adalah suatu cara untuk melindungi database dari ancaman, baik dalam bentuk kesengajaan atau pun bukan. Ancaman adalah segala situasi atau kejadian baik secara sengaja maupun tidak yang bersifat merugikan dan mempengaruhi system serta secara konsekuensi terhadap perusahaan/organisasi yang memiliki system database. Ada beberapa aturan dalam menjaga keamanan data, diantaranya:
1.     Otorisasi
·           Pemberian Wewenang atau hak istimewa (priviledge) untuk mengakses sistem atau obyek database
·           Kendali otorisasi (=kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi
·           Mengendalikan sistem atau obyek yang dapat diakses
·           Mengendalikan bagaimana pengguna menggunakannya
·    Sistem administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat account pengguna.
2.     Tabel view
Merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.
3.     Backup data and recovery
·         Backup : proses secara periodik untuk mebuat duplikat ari database dan melakukan logging file (atau program) ke media penyimpanan eksternal.
·           Recovery: merupakan upaya uantuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.




Referensi:

http://rezkiny.files.wordpress.com/2011/04/keamanan-database.pdf
Modul_Simbada_6(trigger).pdf
Modul_Simbada3.pdf
http://te.ugm.ac.id/~risanuri/distributed/ringk/bab12.pdf
http://luqmanhakimnadzari.files.wordpress.com/2011/04/basisdata_14_manajementransaksi.ppt