Sabtu, 30 Mei 2015

Analisa Database Aktif dalam lingkungan sekitar kita

DASAR TEORI

Manajemen Basis Data adalah disiplin ilmu yang menerapkan beberapa metode-metode  pada database tertentu. Tujuan dari Manajemen database adalah untuk membentuk database yang efektif dan efisien, serta membentuk informasi-informasi yang sangat berguna nantinya bagi pemilik database tersebut
Database yang sesuai dengan ciri di atas harus melalui berbagai aplikasi metode manajemen database, sehingga database tersebut menjadi database yang canggih dan up-to-date dengan dunia modern
Metodologi yang dapat dipakai dan diterapkan pada database yaitu:
1.      Temporal Database
2.      Database Aktif
3.      Database Terdistribusi
4.      Database Client-Server
5.      Data warehouse
6.      Data Mining
Penulis kali ini penulis hanya akan membahas metodologi Database aktif pada saat ini. Database aktif adalah suatu sistem database yang tidak hanya menyimpan data tetapi juga dapat melakukan suatu aksi tertentu terhadap sebuah event dengan menambahkan suatu elemen dinamis dan memiliki kemampuan memantau event untuk mendeteksi ketika data tertentu dimasukkan, dihapus, diubah, atau dipilih kemudian secara otomatis mengeksekusi suatu aksi sebagai respon dari event yang terjadi dan kondisi tertentu terpenuhi.
Secara teknis, Database aktif selalu menggunakan trigger, yang menjadi elemen penting dalam sebuah database aktif. Melalui trigger, sebuah database dengan secara otomatis merubah isi data nya ketika suatu event terjadi, tanpa harus administrator merubah semua data secara manual. Pada saat ini, hampir semua SQL sudah menyediakan fungsi trigger, sebab penggunaan trigger juga menjadi tolok ukur perkembangan database pada saat ini.

DESKRIPSI KASUS

Pada suatu perusahaan yang bergerak di bidang keuangan yang disebut Buana Finance. Buana merupakan salah satu perusahaan pembiayaan atau yang biasa disebut leasing yang kini mulai berkembang. Leasing umumnya membiayai pembelian kendaraan nasabah atau konsumen, dimana nasabah yang bersangkutan dapat membayar kendaraan nya secara bertahap sesuai dengan ketentuan dan perjanjian kontrak.

Informasi yang dicatat pada perusahaan leasing antara lain :
·         Nasabah
·         Vendor penyedia mobil
·         Bank sumber dana
·         Credit Marketing Officer
·         Sistem angsuran dan pembayaran

Banyak nya data yang hanya tersimpan pada database perusahaan ini memerlukan analisis kinerja penjualan. Dari analisis kinerja penjualan tersebut perusahaan dapat mengetahui berapa besar laba yang diperoleh bahkan kerugian. Untuk menganalisa kinerja penjualan diperlukan data historis dari kegiatan penjualan yang kemudian datanya diolah untuk menghasilkan informasi kinerja penjualan.
Analisis kinerja penjualan sangat dibutuhkan karena dari situ lah dapat diketahui gambaran kondisi dari perusahaan sebenernya. Jika kinerja penjualan sedang menurun berarti perusahaan sedang dalam keadaan tidak sehat begitu pun sebaliknya jika kinerja penjualan naik berarti perusahaan dalam keadaan sehat.

Perusahaan dapat menganalisa dan mengetahui faktor-faktor yang dapat menjaga kinerja penjualan agar selalu dalam posisi sehat. Analisis dapat dilakukan dengan mengumpulkan data penjualan yang bersifta historis atau lampau dan kemudian melihat grafik kinerja penjualan. Terdapat banyak macam komponen terkait penjualan diantaranya, hubungan antara variasi produk yang dijual, jumlah produk yang dijual, waktu penjualan, promosi produk yang dijual, dan segmentasi pasar.

Dalam melakukan analisis perusahaan perlu memiliki data yang banyak secara kuantitas dan baik secara kualitas. Pihak manajemen perusahaan membutuhan teknologi yang membantu memahami analisis data yang akan dilakukan.

PEMBENTUKAN REPORT PADA DATABASE

Untuk dapat menggali sebuah informasi pada database, sangat diperlukan adanya laporan atau report berkenaan dengan database itu sendiri. Report yang baik adalah report yang mampu memberikan informasi yang banyak di dalamnya. Pada kasus buana finance, report yang diperlukan  antara lain
a.       Report Nasabah = Nasabah yang banyak dapat memuat informasi berharga, misal kondisi keuangan nasabah yang melakukan kontrak. Pekerjaan nasabah yang dominan. Ada juga informasi nasabah yang paling sering melakukan pelanggaran dan lain-lain.
b.      Report Kontrak  = pada database Kontrak, informasi yang dapat diambil yaitu jumlah kontrak terbanyak dalam sebulan. Dari report ini juga dapat dicari vendor mobil yang banyak diminati nasabah.
c.       Report Vendor mobil = Database vendor mobil memuat daftar-daftar vendor mobil beserta hal-hal yang berkaitan dengan kontrak antara buana finance dengan vendor mobil yang bersangkutan, sehingga dari sini dapat ditemukan informasi berupa vendor mobil yang kontraknya paling menguntungkan dari jumlah komisi yang diberikan, baik berupa persentase ataupun komisi flat, serta jumlah kontrak yang dibuat dengan vendor mobil tersebut
d.      Report Karyawan = Database Karyawan memuat data-data karyawan buana finance itu sendiri. Dari database ini dapat dicari informasi berkaitan dengan karyawan tersebut, misal gaji beberapa karyawan, produktifitas beberapa karyawan
e.       Report Bank sumber dana = Database tentang bank-bank penyedia dana. Dari sini, informasi berupa jumlah dana talangan yang diberikan oleh suatu bank dapat dicari di sini. Selain itu, informasi yang berkaitan dengan bunga pinjaman bank juga dapat ditemukan, misal bunga bank yang paling sedikit ataupun bank yang memiliki bunga paling besar

Penerapan Database Aktif dalam pembuatan report

Penerapan Database aktif dalam pembuatan report merupakan hal yang krusial dan penting, karena report yang baik selalu didasari dengan penggunaan trigger yang dinamis dan baik, sehingga dapat mencetak atau memberikan data yang valid, berdasarkan kejadian yang ada.
Pada database aktif, trigger yang baik akan menentukan report yang akan ditampilkan, ini dikarenakan pada setiap trigger, terdapat beberapa sifat, yaitu
1.      Termination: eksekusi aksi dari event yang terjadi. Trigger harus memiliki termination yang baik agar tidak terjadi infinite loop
2.      Priority: Trigger yang baik mampu memilih prioritas dari kedua kemungkinan keputusan yang diambil
3.      Error Handling: Trigger yang baik secara otomatis tahu apa yang harus dilakukan jika terjadi kesalahan pengambilan keputusan
Tahapan-tahapan dalam pembuatan report pada database aktif yaitu:
1.      Event Handling: Trigger akan melakukan tugasnya berdasarkan event-event yang terjadi, sesuai dengan rule yang ada.
2.      Active Recording: Trigger akan secara aktif menyimpan data yang diberikan sesuai dengan rule yang diberikan Trigger tersebut secara otomatis.
3.      Report Printing: Trigger akan mencetak report sesuai dengan informasi yang diinginkan pengguna

ARSITEKTUR DATABASE AKTIF

Database aktif yang baik harus memiliki  2 sistem yang bekerja secara bersinergi dan konsisten, yaitu database transaksional (OLTP) dan database Analitical (OLAP). Pada setiap system, peran trigger sangat dibutuhkan, karena dari kedua database ini membutuhkan system yang aktif dan dinamis. Peran trigger pada masing – masing database antara lain :
1.      Trigger pada Database OLTP
Trigger berperan penting dalam transaksi sebuah database, terutama yang berhubungan dengan jumlah, misal jumlah kontrak. Pada kasus Buana finance, penambahan kontrak yang dicatat oleh administrasi dapat memicu trigger transaksional, berupa penambahan otomatis jumlah kontrak pada data yang berhubungan pada bulan itu. Misal setelah ditambah kontrak, jumlah kontrak yang berhubungan dengan Vendor mobil A bertambah, misal dari 5 kontrak dengan A bertambah otomatis menjadi 6.

2.      Trigger pada Database OLAP
Trigger pada Database OLAP memiliki fungsi yang sedikit berbeda. Di sini trigger lebih digunakan dalam pembuatan report, dimana, segala transaksi yang telah masuk pada database OLTP nantinya akan diduplikatkan lewat trigger ke database OLAP . Selain itu trigger juga digunakan untuk membuat report otomatis, dengan mencatat dengan aktif segala kejadian yang ada ke dalam sebuah report

Selasa, 06 Januari 2015

BAB 3: THREAD

Pada kesempatan kali ini saya akan menjelaskan apa itu Thread. Thread menurut wikipedia.com berbahasa Inggris mendefinisikan hal sebagai berikut

 thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler (typically as part of an operating system).

Artinya adalah bagian terkecil dari urutan-urutan kerja program yang dapat diatur - atur dengan menggunakan Scheduler. Apa manfaat dari Thread? Yang jelas, teknologi thread membawa kita kepada sistem operasi yang multi tasking dan canggih. Karena, thread membuat program-program yang dijalankan terasa "berjalan bersamaan", padahal Thread itu berjalan satu-satu, namun karena thread diatur sedemikian rupa sehingga perpindahan nya cepat, maka tidak disadari bahwa program yang dijalankan itu berjalan satu-satu, tapi terasa berjalan bersamaan.

Pada Linux, Pemrograman berbahasa C yang menggunakan thread semuanya harus menggunakan POSIX Thread library, atau yang lebih dikenal pthread.h. Dengan menggunakan library ini, programmer dapat melakukan banyak fungsi yang berhubungan dengan thread, seperti membuat thread, join thread, scheduling thread dan lain lain. Thread memiliki rtipe data pthread_t.

Thread di create dengan menggunakan fungsi pthread_create. Pada saat proses create. fungsi akan meminta pthread_t yang akan di create dan pointer ke fungsi yang akan menjadi routine dari thread itu.

Join Thread berarti pada Thread yang di-join, tidak akan berjalan sebelum thread yang lain selesai dilakukan. Hal ini berguna ketika suatu saat thread yang kita buat harus menunggu thread lain untuk menyelesaikan 1 pekerjaan dari thread lain.

Thread yang ada juga bisa kita scheduling, artinya kita bisa mengatur jalan nya thread tersebut.

Karena Thread menggunakan mutex, perlu diperhatikan bahwa scheduling Thread harus dilakukan dengan cermat, karena jika tidak, maka besar kemungkinan akan terjadi deadlock yang menyebabkan error pada program