JS

Tuesday, December 25, 2018

STUDI LITERATUR IoT


 Internet of Things (IoT)
Definisi Internet of Things (IoT) bervariasi berdasarkan bagaimana sudut pandang dari seseorang yang melihat konsep IoT, dimana IoT dapat dikatakan sebagai jaringan global yang dinamis dengan sistem konfigurasi dan komunikasi yang berjalan secara otomatis. Secara singkat, IoT dapat diartikan sebagai konsep dalam menggabungkan berbagai komponen seperti mesin, perangkat, mobil, telepon, dan lainnya menggunakan koneksi internet dengan sistem pintar dan bersifat otomatis. [Hassan & Ali. Internet of Things (IoT): Definitions, Challenges, and Recent Research Directions. 2015]
Lingkungan IoT terbentuk dari berbagai macam objek yang diklasifikasikan ke dalam 2 tipe, yaitu objek yang memiliki penggunaan energi baterai berkelanjutan dan objek yang tidak memiliki penggunaan energi baterai yang berkelanjutan. [Hassan & Ali. Internet of Things (IoT): Definitions, Challenges, and Recent Research Directions. 2015]
Umumnya, arsitektur IoT terbentuk berdasarkan 3 dimensi utama, yaitu information items (benda sensor, benda pengidentifikasi, dan benda pengontrol), independent network (bersifat self-configuration, self protection, self-adaption, dan self-optimization) dan intelligent applications (bersifat pintar dalam pengontrolan, penggunaan dan pengolahan data). [Hassan & Ali. Internet of Things (IoT): Definitions, Challenges, and Recent Research Directions. 2015]
Konsep IoT dapat memunculkan berbagai kombinasi komponen fisik dan digital dalam membentuk suatu produk yang baru dan bermanfaat dibandingkan dengan produk yang sejenis. Hal tersebut dapat tercapai dikarenakan adanya efisiensi pengaturan energi, komunikasi langsung, memori yang dapat digunakan secara baik dan teknologi mikroprosesor yang terbaru. Dengan begitu, hal seperti metode pembuatan produk industri dapat digitalisasikan. Hal tersebut membuka kemungkinan bahwa masih terdapat banyak kesempatan dalam mengimplementasikan sistem IoT kedalam sistem lainnya. [Wortmann. Internet of Things. 2015]

Microcontroler AC via WEB (arduino)

Sudah sekian lama saya tidak update di blog ini, mohon maaf karena ada beberapa kesibukan yang lain sehingga waktu untuk membuat konten blog kurang, kali ini saya akan membagikan beberapa ilmu yang saya dapatkan dan saya implementasikan yaitu pemrograman mikrokontroler menggunakan arduino.

Arduino? apa si arduino itu? get to link arduino adalah


kali ini project yang saya buat menggunakan arduino yaitu mengontrol AC(air conditioner) melalui internet, bagaiamana rangkaiannya???
berikut gambar ranggkaiannya dan prosesnya

kali ini untuk hardware saya hanya menggunakan mikrokontroler Wemos dan Ir
yang diaman wemos berfungsi sebagai mikrokontroler yang telah di bekali wifi pada boardnya sendiri. Ir yang berfungsi sebbagai pengirim data ke AC seperti remot pada umumnya, 
hanya saja kita mengendalikan IR tersebut melalui smartphone dan website yang telah di gunakan

software saya menggunakan Arduino IDE untuk memprogramkan wemos, broker mqtt saya menggunakan io.adafruit

metode yang saya gunakan yaitu MQTT yang diamana
subscribe <---> broker<--->publish

yang dimana subscribe sebagai pengikut atau penerima
broker yang berfungsi sebagai jembatan pengubung
publish sebagai pengirim perintah melalui data ke broker


langsung saja kita ke tahap pengujian
Pada tahap pengujian, terdapat 3 prosedur pengujian yang dilakukan, yaitu pengujian ketepatan rangkaian Wemos, pengujian dalam menentukan ketepatan konektivitas AC dan pengujian pengaturan suhu dan keadaan on/off menggunakan broker Adafruit IO.
A.    Pembentukan Rangkaian Wemos
-          Wemos terlebih dahulu dibentuk dengan menggunakan komponen hardware berupa Wemos D1 Mini dan LED menggunakan bantuan berbagai alat dan bahan seperti solder, papan konektor, kamera, dll. Penyusunan rangkaian Wemos ini juga didasari pada penggunaan library ESP8266 untuk menentukan fungsi dari modul yang digunakan.
-          Setelah Wemos telah dibentuk, pemberian kode menggunakan Arduino IDE dilakukan. Kode yang paling pertama diuji yaitu kode untuk memancarkan infrared dari LED. Pemancaran infrared LED tersebut didasari dari penggunaan library IRremote8266.
B.     Pengaturan Konektivitas AC
-          Mikrokontroler akan diuji terkait konektivitasnya dengan AC yang bermerk Daikin. Pada pengujian ini, hal yang dibutuhkan adalah penggunaan library IRdaikinESP.
C.    Pengaturan Broker IO Adafruit
-          Wemos akan diberikan kode dari library WiFi-Manager untuk memberikan fungsi untuk menerima koneksi dari suatu koneksi WiFi terlebih dahulu.
-          Pada Broker IO Adafruit, terlebih dahulu dibentuk berbagai macam kebutuhan fungsi pada dashboardnya yaitu berupa fungsi untuk penentuan derajat suhu dan keadaan on/off.
-          Wemos kemudian diberikan kode library adafruit dan menentukan konektivitas antara Wemos dan Broker IO Adafruit beserta fungsi yang telah dibentuk pada dashboard IO Adafruit.
-          Pengaturan Wemos selanjutnya akan dilakukan berdasarkan kebutuhan penggunaan pengaturan suhu dan keadaan on/off dari AC.

untuk shource code nya, bisa langsung ke gethub saya
code AC controler

apa sih Arduino itu?


Arduino IDE (Arduino Integrated Development Environment) merupakan suatu software open source yang pada umumnya digunakan untuk menulis ataupun compile kode menjadi suatu modul Arduino. Arduino IDE terdapat pada sistem operasi seperti MAC, Windows, Linux dan berjalan pada platform java yang memiliki fungsi dan perintah untuk debugging, editing dan compiling kode pada suatu lingkungan sistem. [Fezari. Integrated Development Environment “IDE” For Arduino. 2018]




Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri. Saat ini Arduino sangat populer di seluruh dunia. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun ikut senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino. Arduino juga menyederhanakan proses bekerja dengan mikrokontroler, sekaligus menawarkan berbagai macam kelebihan antara lain:
* Murah – Papan (perangkat keras) Arduino biasanya dijual relatif murah (antara 125ribu hingga 400ribuan rupiah saja) dibandingkan dengan platform mikrokontroler pro lainnya. Jika ingin lebih murah lagi, tentu bisa dibuat sendiri dan itu sangat mungkin sekali karena semua sumber daya untuk membuat sendiri Arduino tersedia lengkap di website Arduino bahkan di website-website komunitas Arduino lainnya. Tidak hanya cocok untuk Windows, namun juga cocok bekerja di Linux.
* Sederhana dan mudah pemrogramannya – Perlu diketahui bahwa lingkungan pemrograman di Arduino mudah digunakan untuk pemula, dan cukup fleksibel bagi mereka yang sudah tingkat lanjut. Untuk guru/dosen, Arduino berbasis pada lingkungan pemrograman Processing, sehingga jika mahasiswa atau murid-murid terbiasa menggunakan Processing tentu saja akan mudah menggunakan Arduino.
* Perangkat lunaknya Open Source – Perangkat lunak Arduino IDE dipublikasikan sebagai Open Source, tersedia bagi para pemrogram berpengalaman untuk pengembangan lebih lanjut. Bahasanya bisa dikembangkan lebih lanjut melalui pustaka-pustaka C++ yang berbasis pada Bahasa C untuk AVR.
* Perangkat kerasnya Open Source – Perangkat keras Arduino berbasis mikrokontroler ATMEGA8, ATMEGA168, ATMEGA328 dan ATMEGA1280 (yang terbaru ATMEGA2560). Dengan demikian siapa saja bisa membuatnya (dan kemudian bisa menjualnya) perangkat keras Arduino ini, apalagi bootloader tersedia langsung dari perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat perangkat Arduino beserta periferal-periferal lain yang dibutuhkan.
KELEBIHAN ARDUINO
Tidak perlu perangkat chip programmer karena didalamnya sudah ada bootloadder yang akan menangani upload program dari komputer.
Sudah memiliki sarana komunikasi USB, Sehingga pengguna laptop yang tidak memiliki port serial/RS323 bisa menggunakannya.
Memiliki modul siap pakai ( Shield ) yang bisa ditancapkan pada board arduino. Contohnya shield GPS, Ethernet,dll.
SOKET USB
Soket USB adalah soket kabel USB yang disambungkan kekomputer atau laptop. Yang berfungsi untuk mengirimkan program ke arduino dan juga sebagai port komunikasi serial.
INPUT/OUTPUT DIGITAL DAN INPUT ANALOG
Input/output digital atau digital pin adalah pin pin untuk menghubungkan arduino dengan komponen atau rangkaian digital. contohnya , jika ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output digital dan ground. komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin pin ini.
Input analog atau analog pin adalah pin pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. contohnya , potensiometer, sensor suhu, sensor cahaya, dll.
CATU DAYA
pin pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan arduino. Pada bagian catu daya ini pin Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada arduino tanpa melalui tegangan pada USB atau adaptor, sedangkan Reset adalah pin untuk memberikan sinyal reset melalui tombol atau rangkaian eksternal.
Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai arduino dengan tegangan dari baterai/adaptor 9V pada saat arduino sedang tidak disambungkan kekomputer. Jika arduino sedang disambungkan kekomputer dengan USB, Arduino mendapatkan suplai tegangan dari USB, Jika tidak perlu memasang baterai/adaptor pada saat memprogram arduino.

VIDEO EDITING ULEAD

anda sering berpikir jika ingin mengedit video anda dengan mudah, sebenarnya ada yaitu Video Studio Ulead

anda dapat menggabungkan video juga sebanyak 5 sampai 7 bisa dalam 1 layar

ini juga sudah memiliki fitur lengkap untuk editor para pemula dan mudah untuk di pelajari

bagi kalian ingin belajar, silahkan tanya om Google.com ,


untuk mendownload filenya silahkan klik  :)

LIVE MOBILE LEGEND DI YOUTUBE DENGAN OBS DAN ANDROID

CARA LIVE DI YOUTUBE MENGGUNAKAN HP-ANDROID TERHUBUNG KE OBS


pada zaman sekarang dunia game smartphone apa sih yang terbaik saat ini? apa lagi jika bukan permainan game bergenre MOBA, yaitu game MOBILE LEGEND. yang sangat tinggi peminat nya
dalam bermain game MOBILE LEGEND saat ini sangat pesat karena bermain secara teamwork, bagaimana kerjasama team itu sendiri.

langsung saja membahas sesuai judul, tentang bagaimana live di youtube, sebenarnya banyak orang bermain ML (mobile legend) di PC tapi kan untuk mengontrol itu tidak lah semudah kita bermain di smartphone, pasti bedalah cara kita bermain di layar sentuh dengan bermain menggunakan keyboard, yang bermain di pc biasanya dia menggunakan nox, untuk yang tetap ingin bermain menggunakan nox dan mengkoneksikannya ke OBS sialahkan ke post sebelumnya atau langsung ke ----LINK halaman----
ok saya di sana akan membahas tentang live ML di youtube dengan tetap menggunakan smartphone, sebenarnya bisa sih langsung dari palikasi youtube gaming, tapi sensasinya beda loh dan settingan di OBS lebih mantap dan kita bsa libe webcame serta menambahkan frame apa saja misal bannernya entah apa saja, kali ini kita siapkan dulu
1. Software mirror android, banyak di google, salah satunya bisa menggunakan MirrorGo atau AirDroid, dan install
2. silahkan jalankan App tersebut dan menghubungkannya ke smartphone
3. jika sudah terhubung, kita selanjutnya menghubungkannya di OBS
4. membuka OBS dan membuat 1 layar di bagian bawah (scene)
5 setelah ituke source dan tambahkan beberapa item yang akan di tampilkan dalam 1 scene/layar
6. pilih window capture dan hubungkan dengan aplikasi mirror
setelah itu silahkan mulai streaming

mungkin itu saja, mohon maaf jika penjelasan tidak jelas, jadi mungkin bsa langsung ke chanel youtube saya atau nonton di bawah ini


-----video tutorial obs sambung android-----


Tuesday, March 27, 2018

cerita CSP XIII wajo 10-11 Maret 2018



Assalamualaikum wr.wb
sudah lama saya tidak memposting/mengupdate blog ini. mohon maaf, kali ini saya akan menceritakan perjalanan saya di acara CSP yang terselenggarakan di Kab. Wajo.
Acara tersebut adalah dimana kegiatan tersbut bertujuan untuk silaturahmi sesama Scooter yang di selenggarakan oleh saudara scooter sulawesi selatan/Celebes. CSP (celebes scooter party) yang bertempat di kawasan wisata atakkae,Sengkang. perjalanan dari makassar sampai sengkang ada 3 jalur yang di tempuh jika star dari makassar, yaitu jalur Pare-Pare, Buludua, dan Camba. yang paling dekat sebenarnya jalur Camba, akan tetapi jalanan menuju ke soppeng amant banyak jalanan yang tidak baik untuk di lalui, apa lagi extrim atau modifikasi lainnya. kebanyakan teman scooter melewati jalu bulu dua yang jalanannya sangat baik dan mulus untuk di lalui tak lupa pula dengan adanya pemandangan indah sepanjang jalan pegunungan menemani perjalanan kita sampai tujuan, perjalanan saya dari makassar ke sengkang itu kurang lebih 6 jam, saya star pukul 11 pagi dari makassar dan tiba di lokasi kawasan atakkae pukul 6 sore atau tepatnya Magrib.  begitu banyak saudara scooter di jumpai saat perjalanan menuju lokasi. Alhamdulillah perjalanan menuju sengkan tidak terlalu banyak kendala, hanya satu saja kendala yaitu kenalpot vespa saya lepas dan jatuh membuat saya agak lama sampai tujuan. tapi perjalanan menggunakan vespa itu sangatlah seru dan lebih seru lagi jika ada kendala dan berjumpa saudara scooter lainnya yang singgah membantu kita.  mengapa saya bukan sekedar suka vespa saja, apa saja kelebihannya? yang paling berharga iyalah sesuai dengan slogannya, 1 vespa berjuta saudara, maka dari itu saya tak pernah takut menggunakan vespa ketika touring, sebab setiap sektor pasti ada sekret komunitas vespa yang bisa di singgahi untuk istrhat, tapi asal ada link komunikasi kwkwkkw. berikut video pendek yang saya buat selama perjalanan saya saat menuju ke sengkang


Monday, November 6, 2017

DILAN (Dilanku) Short Movie

short movie



share koment dan like

jika ingin lanjutan dari cerita ini

silahkan share banyak-banyak dan koment wkwkwkwkw



Saturday, November 4, 2017

DIY AT HOME SOFTBOX LIGHTING

Tutorial membuat softbox lighting

mari kita liat video berikut di bawah ini

jangan lupa like,koment dan subscribe



jika bermanfaat silahkan bagi, bila menyukai silahkan di like/suka. bila menunggu video lainnya yang bermanfaat silahkan di subscribe

like koment dan subscribe tidak membuat anda rugi maupun membayar, ini sangat gratis tanpa di pungut biaya

thanks before



Sunday, October 29, 2017

Pembahasan transaksi manajemen


Abstrak :  Transaksi adalah sebuah aksi atau serangkaian aksi, yang dilakukan oleh user atau aplikasi yang mengakses atau mengubah isi dari database atau dapat juga dikatakan sebagai unit kerja logical (Logical unit of work) dari suatu database, sehingga yang dimaksud dengan majemen transaksi (transaction management) adalah pengaturan transaksi-transaksi yang digunakan/diakses oleh suatu aplikasi/sistem. Transaksi-transaksi ini perlu diatur untuk mempertahankan ACID (atomicity, consistency, isolation, and durability). Selain transaksi terdapat pula concurrency control atau konkurensi kontrol, concurrency control atau konkurensi kontrol merupakan suatu sistem manajemen database ( DBMS ) konsep yang digunakan untuk mengatasi konflik dengan mengakses simultan atau mengubah data yang dapat terjadi dengan sistem multi-user. Kontrol konkurensi, bila diterapkan ke DBMS, dimaksudkan untuk mengkoordinasikan transaksi simultan sambil menjaga integritas data banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu (waktu bersamaan). Serta ada pula recovery system yakni suatu cara utuk mengembalikan data yang sudah rusak kembali menjadi benar atau baik.

 PEMBAHASAN
A. Transaksi
        Transaksi adalah sebuah aksi atau serangkaian aksi, yang dilakukan oleh user atau aplikasi yang mengakses atau mengubah isi dari database atau transaksi juga bisa diartikan sebagai pengeksekusian sebuah program/aplikasi yang melakukan pengaksesan dan perubahan basis data. Namun apabila kita ingin melakukan transaksi data setelah melakukan transksi haruslah tetap konsisten dan DBMS yang kita gunakan juga 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. Misalkan ketika kita melakukan  pengubahan, penambahan atau penghapusan suatu tabel maka akan berdampak pada isi tabel tersebut dan pada saat eksekusi transaksi terjadi kagagalan, maka akan menimbulkan  ketidak konsistenan integrasi antar tabel. Namun Untuk menjamin agar integritas dapat tetap terpelihara maka setiap transaksi harus memiliki sifat-sifat:
1.       Atomik, merupakan satu kesatuan tunggal yang tidak dapat dipisah laksanakan perkerjaannya dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2.       Konsisten, dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
3.       Terisolasi, 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.       Bertahan, dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati.
Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash) ataupun kemacetan sistem operasi (hang).  Tapi lebih sering terjadi karena user sengaja menghentikan transaksi atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak diinginkan, seperti deadlock atau timeout.

Sebuah transaksi dapat menghasilkan dua kemungkinan:
a.       Jika dilaksanakan lengkap seluruhnya, transaksi tersebut telah di commit dan basis data mencapai keadaan konsisten baru.
b.       Jika transaksi tidak sukses, maka transaksi dibatalkan dan basis data dikembalikan ke keadaan konsisten sebelumnya (rollback).
Transaksi yang sudah di commit tidak dapat dibatalkan lagi.  Jika ada kesalahan, maka harus dilakukan transaksi lain yang membalik dampak transaksi sebelumnya
Ketika transaksi dilaksanakan/ dilakukan dari awal sampai akhir maka terdapat beberapa kemungkinan yang akan terjadi, yaitu :
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.
telah merefleksikan perubahan-perubahan yang memang diinginkan transaksi.
Ketika sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif.  Jika terjadi penghentian sebelum operasi berakhir, maka transaksi segera beralih ke status gagal/failed.  Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu berada pada status berhasil sebagian/partially committed, dimana perubahan-perubahan data masih berada di dalam memori utama yang bersifat volatile/tidak permanen.  Transaksi dalam status ini masih mungkin untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja maupun tidak.  Jika tidak beralih ke status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke dalam disk yang bersifat permanen.  Begitu proses perekaman selesai, maka transaksi beralih ke status committed.
Sementara itu, transaksi yang berada pada status failed, maka DBMS harus menjalan proses rollback.  Proses tersebut dapat berupa:
·         Mengulangi pelaksanaan transaksi / restart, yang dilakukan pada transaksi yang failed akbiat kemacetan perangkat keras ataupun perangkat lunak dan bukannya penghentian transaksi secara sengaja oleh user.
·         Mematikan transaksi / kill, yang dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.
Operasi-operasi yang dapat dilakukan oleh transksi yaitu :
Ø  read(x)
mengeksekusi operasi pembacaan (read)
Ø  write(x)
mengeksekusi perintah penulisan kembali ke database (write).
Misalkan Transaksi transfer uang sebesar $50 dari rekening A ke rekening B, didefinisikan sbg berikut:

1. read (A)
2. A       A – 50
3. write (A)
4. read (B)
5. B       B + 50
            6. write (B)
                       
Consistency requirement – jumlah A dan B tidak berubah setelah eksekusi transaksi.
Atomicity requirement — Jika transaksi gagal dijalankan setelah langkah ke 3 dan sebelum langkah ke 6, maka sistem harus menjamin bahwa perubahan yang terjadi tidak direfleksikan di database, jika hal ini tidak dapat dilakukan maka akan menghasilkan inconsistency.
State (keadaan) Transaksi





B. Concurrency Control
                konkurensi kontrol merupakan suatu sistem manajemen database ( DBMS ) konsep yang digunakan untuk mengatasi konflik dengan mengakses simultan atau mengubah data yang dapat terjadi dengan sistem multi-user. Kontrol konkurensi, bila diterapkan ke DBMS, dimaksudkan untuk mengkoordinasikan transaksi simultan sambil menjaga integritas data banyaknya transaksi yang dijalankan secara bersamaan dalam satu waktu (waktu bersamaan).
Ilustrasi : ada dua wisatawan yang pergi ke kios elektronik pada saat yang sama untuk membeli tiket kereta api untuk tujuan yang sama pada kereta yang sama. Hanya ada satu kursi di kiri pelatih, tetapi tanpa kontrol concurrency, mungkin wisatawan yang baik akan berakhir membeli tiket untuk satu kursi. Namun, dengan kontrol concurrency, database ini tidak akan terjadi.. Kedua wisatawan akan masih dapat mengakses database kereta tempat duduk, tetapi concurrency kontrol akan menjaga keakuratan data dan memungkinkan hanya satu jalan untuk membeli kursi.
Kokurensi ini banyak yang menggunakannya hal tersebut dikarenakan beberapa fakor, diantarany :
ü  Idle time (waktu menganggur) kecil.
ü  time (waktu tanggap) lebih baik.
Akan tetapi konkurensi juga suka ada masalah, dan masalah umum yang sering terjadi pada komkurensi adala
  1. Masalah kehilangan modifikasi
  2. Masalah kehilangan modifikasi sementara
  3. Masalah analisa yang tidak konsisten

§  Masalah Kehilangan Modifikasi
Contoh:
Transaksi A
Waktu
Transaksi B
=
|
=
Baca R
t1
=
=
|
=
=
t2
Baca R
=
|
=
Modifikasi R
t3
=
=
|
=
=
t4
Modifikasi R
=
|
=
·      Transaksi A membaca R pada t1, transaksi B membaca R pada t2.
·      Transaksi A memodifikasi R pada t3.
·      Transaksi B memodifikasi record yang sama pada t4.
·      Modifikasi dari transaksi A akan hilang karena transaksi B akan memodifikasi R tanpa memperhatikan modifikasi dari transaksi A pada t3
§  Masalah kehilangan modifikasi sementara
Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).



Contoh:
Transaksi A
Waktu
Transaksi B
=
|
=
=
t1
Modifikasi R
=
|
=
Baca R
t2
=
=
|
=
=
t3
rollback
=
|
=

·      Transaksi B memodifikasi record R pada t1
·      Transaksi A membaca R pada t2.
·      Pada saat t3 transaksi B dibatalkan.
·      Maka transaksi A akan membaca record yang salah
Transaksi A
Waktu
Transaksi B
=
|
=
=
t1
Modifikasi R
=
|
=
Modifikasi R
t2
=
=
|
=
=
t3
rollback
=
|
=

·         Pada waktu t2 transaksi A memodifikasi R
·         Karena transaksi B dibatalkan pada waktu t3, maka transaksi A memodifikasi record yang salah
§  Masalah analisa yang tidak konsisten
Contoh :
Nilai 1 = 40      Nilai 2 = 50       Nilai 3 = 30
Transaksi A
Waktu
Transaksi B
=
|
=
Baca nilai 1 (40)
Juml = 40
t1
=
=
=
|
=
Baca nilai 2 (50)
Juml = 90
t2
=
=
|
=
=
t3
Baca nilai 3 (30)
=
|
=
=
t4
Modifikasi nilai 3
30 " 20
=
|
=
t5
Baca nilai 1 (40)
|
=
t6
Modifikasi nilai 1
40 " 50
|
=
t7
Commit
|
Baca nilai 3 (20)
Juml = 110
(bukan 120)
t8
=
|
·         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).
Namun ada dua cara atau mekanisme untuk menyelesaikan masalah-masalah di atas, yaitu :

v  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:
·      Kunci X : kunci yang eksklusif.
·      Kunci S : kunci yang digunakan bersama-sama.
2. Jika transaksi A menggunakan kunci X 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 kunci S  pada record R, maka:
·      Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut.
·      Bila transaksi B ingin menggunakan kunci S, maka B dapat menggunakan kunci S bersama A.
Tabel Kunci:
X
S
-
X = kunci X
X
N
N
Y
S = kunci S
S
N
Y
Y
N = No
-
Y
Y
Y
Y = Yes

4. - Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia memerlukan kunci S " baca (S)
- Bila transaksi tersebut ingin memodifikasi record maka secara otomatis ia memerlukan kunci S " memodifikasi (X)
- Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan memodifikasi record, maka kunci S akan dinaikan ke level kunci X.
5. Kunci X dan kunci S 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.


Misalkan untuk menyelesaikan permasalahan kehilangan modifikasi

Transaksi A
Waktu
Transaksi B
=
|
=
Baca R
(kunci S)
t1
=
=
|
=
=
t2
Baca R
(kunci S)
=
|
=
Modifikasi R
(kunci S)
tunggu
t3
=
=
|
=
=
t4
Modifikasi R
(kunci X)
tunggu
=
|
=
|
=
tunggu
|
tunggu
·         Pada waktu t3, transaksi A memerlukan kunci X, maka transaksi A harus menunggu sampai B melepaskan kunci S.
·         Transaksi B juga harus menunggu pada t4.
·         Maka tidak akan ada yang kehilangan modifikasi, tetapi terdapat keadaan baru yaitu deadlock.
Deadlock, yaitu suatu kondisi dimana ke-2 transaksi dalam keadaan menunggu, sehingga keduanya tidak akan pernah selesai dieksekusi.
ika 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.
v  Time Stamping
Salah satu alternatif concurrency control yang dapat menghilangkan deadlock adalah time stamping. Secara umum, timestamping (TS) adalah  penanda waktu saat transaksi terjadi.  Hal ini untuk mengurutkan eksekusi transaksi agar sama dengan eksekusi serial.
Time stamp dapat berupa:
  1. waktu sistem saat transaksi dimulai, atau
  2. penghitung logik (logical counter) yang terus bertambah nilainya tiap kali terjadi transaksi baru.

Jika time stamp transaksi a lebih kecil dari pada time stamp transaksi b , atau
TS(Ta) < TS(Tb),  maka transaksi a (Ta) selalu dilaksanakan sebelum transaksi b (Tb).
Contoh:
Misal rekaman pada basis data memuat TS 168, yang mengidentifikasikan transaksi dengn TS 168 adalah transaksi yang terkemudian yang sukses mengupdate rekaman yang bersangkutan.  Maka jika ada transaksi dengan TS 170 mencoba mengupdate rekaman yang sama, maka update ini akan diijinkan, karena TS yang dimiliki lebih kemudian dari TS pada rekaman.  Saat transaksi ini dilakukan, TS pada rekaman akan diatur menjadi 170.  Sekarang, jika transaksi yang akan mengupdate rekaman tersebut memiliki TS 165, maka update ditolak karena TS-nya < TS di rekaman.
Selain transaksi, item data juga memiliki nilai time stamp. Untuk setiap item data Q, ada 2 nilai time stamp, yaitu:
a.       Read time stamp atau R-timestamp(Q), yang menunjukkan nilai TS terbesar dari setiap transaksi yang berhasil menjalankan operasi read(Q).
b.      Write time stamp atau W-timestamp(Q), yang menunjukkan nilai TS terbesar dari setiap transaksi yang berhasil menjalankan operasi write(Q).

Time stamp ini akan selalu diperbarui ketika ada perintah baru read(Q) atau write(Q) yang dijalankan
Cara pemberian nilai timestamp:
  1. Global (systemwide) monotonically increasing number
  2. Local (site) monotonically increasing number.

C.  Recovery System
Recovery merupakan upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.
Terdapat beberapa jenis pemulihan :
  1. Pemulihan terhadap kegagalan transaksi : Kesatuan prosedur alam program yang dapat mengubah / memperbarui data pada sejumlah tabel.
  2. Pemulihan terhadap kegagalan media : Pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (backup)
  3. Pemulihan terhadap kegagalan sistem : Karena gangguan sistem, hang, listrik terputus alirannya.
Mekanisme recovery memiliki dua bagian utama, yaitu:
  1. Aksi-aksi yang ditempuh selama transaksi berjalan normal untuk menjamin adanya informasi yang memadai yang kelak dibutuhkan oleh mekanisme recovery.
  2. Aksi-aksi yang ditempuh setelah terjadinya kerusakan/ kegagalan sistem yang dilakukan untuk memulihkan isi basis data ke suatu keadaan yang menjamin konsistensi basis data, keatomikan, dan ketahanan transaksi.

Skema Mekanisme Recovery
Dengan asumsi ruang disk yang dialokasikan untuk basis data tidak mengalami kerusakan, maka ada 3 pilihan skema untuk menjalankan mekanisme recovery secara otomatis begitu kerusakan atau kegagalan sistem telah terjadi. Ketiga skema pilihan itu adalah:
  1. File Log dengan Penundaan Pengubahan (Incremental Log With Defered Update)
  2. File Log dengan Pengubahan langsung (Incremental Log With Immediate Updates)
  3. Page Bayangan (Shadow Paging), yang memerlukan akses ke disk yang lebih sedikit.

Recovery untuk Transaksi Konkuren
a. Interaksi dengan pengendalian konkurensi
Skema recovery ini akan banyak tergantung pada skema pengendalian konkurensi yang digunakan. Untuk menjalankan proses roll back terhadap transaksi yang gagal/ batal,kita harus membatalkan perubahan yang telah dilakukan oleh transaksi tersebut.
                Jika sebuah transaksi T telah mengubah sebuah item data Q, tidak boleh ada transaksi lain yang boleh mengubah item data yang sama hingga T telah di-commit ataupun di-roll back. Kita dapat menjamin hal ini dengan memanfaatkan Loking Protokol Dua Fase yang Ketat, yang menerapkan penguncian dengan mode exclusive hingga akhir transaksi.
b. Restart recovery
Pada saat sistem melakukan pemulihan data, ia membentuk dua buah daftar. Yang pertama adalah daftar undo (undo-list) yang terdiri atas transaksi-transaksi yang harus dikenai operasi undo dan daftar redo (redo-list) yang berisi transaksi-transaksi yang harus dikenai operasi redo.
III. PENUTUP
A.      Kesimpulan
–         Transaksi merupakan sebuah aksi untuk mengakses atau  merubah basis data.
–         Dalam transaksi terapat dua hasil atau output yaitu commit atau rollback
–         Jika transaksi berjalan sukses maka dikatakan commit, sebaliknya jika transaksi tidak berjalan sukses maka transaksi dibatalkan dan kembali ke keadaan semula dikatakan rollback
–         Data harus tetap konsisten
–         Kontrol konkurensi merupakan suatu masalah yang timbul ketika beberapa proses terjadi bersamaan
–         Dua keuntungan apabila menggunakan konkurensi yaitu Idle time (waktu menganggur) kecil dan time (waktu tanggap) lebih baik.
–         Tiga masalah utama yang sring terjadi di konkurensi, yait :
o       Masalah kehilangan modifikasi
o       Masalah kehilangan modifikasi sementara
o       Masalah analisa yang tidak konsisten
–         Dua mekanisme untuk mengatasi masalah-masalah umum dalam konkurensi yaitu : locking dan time stamping
–         Recovery merupakan upaya untuk mengemblikan kembali data yang sudah rusak

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.
Ketika sebuah transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif.  Jika terjadi penghentian sebelum operasi berakhir, maka transaksi segera beralih ke status gagal/failed.  Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu berada pada status berhasil sebagian/partially committed, dimana perubahan-perubahan data masih berada di dalam memori utama yang bersifat volatile/tidak permanen.  Transaksi dalam status ini masih mungkin untuk pindah ke status failed, karena ada pembatalan transaksi baik sengaja maupun tidak.  Jika tidak beralih ke status failed, maka nilai-nilai data yang ada di memori utama akan direkam ke dalam disk yang bersifat permanen.  Begitu proses perekaman selesai, maka transaksi beralih ke status committed.
Sementara itu, transaksi yang berada pada status failed, maka DBMS harus menjalan proses rollback.  Proses tersebut dapat berupa:
         Mengulangi pelaksanaan transaksi / restart, yang dilakukan pada transaksi yang failed akbiat kemacetan perangkat keras ataupun perangkat lunak dan bukannya penghentian transaksi secara sengaja oleh user.
         Mematikan transaksi / kill, yang dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan aplikasi.


Ganti Tampilan

instagram

Instagram

Tombol Atas

Navbar Bawah

IP

Search This Blog