ILMU KOMPUTER

welcome

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

INFORMATIKA


Informatika adalah suatu bidang keilmuan yang mempelajari teknologi komputer khususnya dalam pengembangan perangkat lunak.

Informatika merupakan salah satu cabang keilmuan yang cukup luas karena hampir mencakup dan terkait dengan berbagai hal tentang kehidupan ini, dimana kumpulan disiplin informatika ini meliputi sains maupun teknik yang secara spesifik mengolah data menjadi informasi dengan memanfaatkan seoptimal mungkin teknologi informasi atau komputer.

Dalam bahasa Indonesia, istilah Informatika diturunkan dari bahasa Perancis informatique, yang dalam bahasa Jerman disebut Informatik. Sebenarnya, kata ini identik dengan istilah computer science di Amerika Serikat dan computing science di Inggris.

Dalam pendefenisian istilah informatika, menurut Philippe Dreyfus (1962) dan l`Academie Francaise (1967) yang mendefenisikan informatika tersebut sebagai berikut:

Kumpulan Disiplin Ilmu (scientific discipline) dan Disiplin Teknik (engineering discipline) yang secara spesifik menyangkut transformasi / pengolahan dari "Fakta Simbolik" (data / informasi), yang terutama menggunakan fasilitas mesin-mesin otomatis/komputer.

Dalam bahasa Inggris memiliki makna yang sedikit berbeda, yaitu lebih menekankan pada aspek pengolahan informasi secara sistematis dan rasional.

Jika dilihat secara menyeluruh dari pengertian informatika di atas, pendekatan logika dan sistematika merupakan ciri yang cukup dominan dari Informatika ini, mengingat pendekatan tersebut merupakan kunci dalam hal mendapatkan solusi dalam menyelesaikan berbagai masalah.

Pada prinsipnya keilmuan ini lebih menekankan bagaimana suatu data dan informasi dapat diolah sedemikian dengan berbantuan teknologi yang terotomatisasi.

Teknologi yang terautomatisasi tersebut tidak hanya dalam satu mesin, namun bisa melibatkan beberapa mesin. Mesin ini lebih umum disebut dengan komputer.

Komputer sebagai bahan utama dalam bidang keilmuan ini memiliki peranan yang sangat tinggi, sehingga informatika secara sederhana mengupas mulai dari bagaimana mesin tersebut bisa bekerja, bagaimana suatu data diolah dengan cara yang dimengerti oleh mesin sedangkan informasinya dimengerti juga oleh manusia, sampai bagaimana mesin tersebut mampu berkomunikasi dengan mesin lainnya.

MONITOR


Monitor adalah suatu tipe data abstrak yang dapat mengatur aktivitas serta penggunaan resource oleh beberapa thread. Ide monitor pertama kali diperkenalkan oleh C.A.R Hoare dan Per Brinch-Hansen pada awal 1970-an.

Monitor terdiri atas data-data private dengan fungsi-fungsi public yang dapat mengakses data-data tersebut. Method-method dalam suatu monitor sudah dirancang sedemikian rupa agar hanya ada satu buah method yang dapat bekerja pada suatu saat. Hal ini bertujuan untuk menjaga agar semua operasi dalam monitor bersifatmutual exclusion.

Monitor dapat dianalogikan sebagai sebuah bangunan dengan tiga buah ruangan yaitu satu buah ruangan kontrol, satu buah ruang-tunggu-masuk, satu buah ruang-tunggu-dalam. Ketika suatu thread memasuki monitor, ia memasuki ruang-tunggu-masuk (enter). Ketika gilirannya tiba, thread memasuki ruang kontrol (acquire), di sini thread menyelesaikan tugasnya dengan shared resource yang berada di ruang kontrol (owning). Jika tugas thread tersebut belum selesai tetapi alokasi waktu untuknya sudah habis atau thread tersebut menunggu pekerjaan thread lain selesai, thread melepaskan kendali atas monitor (release) dan dipindahkan ke ruang-tunggu-dalam (waiting queue). Ketika gilirannya tiba kembali, thread memasuki ruang kontrol lagi (acquire). Jika tugasnya selesai, ia keluar dari monitor (release and exit).

Gambar 20.1. Monitor

Monitor

Karena masalah sinkronisasi begitu rumit dan beragam, monitor menyediakan tipe data condition untuk programmer yang ingin menerapkan sinkronisasi yang sesuai untuk masalah yang dihadapinya. Condition memiliki operasi-operasi:

  1. Wait, sesuai namanya thread yang memanggil fungsi ini akan dihentikan kerjanya.

  2. Signal, jika suatu thread memanggil fungsi ini, satu (dari beberapa) thread yang sedang menunggu akan dibangunkan untuk bekerja kembali. Operasi ini hanya membangunkan tepat satu buah thread yang sedang menunggu. Jika tidak ada thread yang sedang menunggu, tidak akan terjadi apa-apa (bedakan dengan operasi buka pada semafor).

Ilustrasi monitor dengan condition variable:

Gambar 20.2. Monitor dengan condition variable

Monitor dengan condition variable

Bayangkan jika pada suatu saat sebuah thread A memanggil fungsi signal pada condition x (x.signal()) dan ada sebuah thread B yang sedang menunggu operasi tersebut (B telah memanggil fungsi x.wait() sebelumnya), ada dua kemungkinan keadaan thread A dan B setelah A mengeksekusi x.signal():

  1. Signal-and-Wait, A menunggu sampai B keluar dari monitor atau menunggu condition lain yang dapat mengaktifkannya.

  2. Signal-and-Continue, B menunggu sampai A keluar dari monitor atau menunggu condition lain yang dapat mengakifkannya.

Monitor dikembangkan karena penggunaan semafor yang kurang praktis. Hal itu disebabkan kesalahan pada penggunaan semafor tidak dapat dideteksi olehcompiler. Keuntungan memakai monitor:

  1. Kompilator pada bahasa pemrograman yang telah mengimplementasikan monitor akan memastikan bahwa resource yang dapat diakses oleh beberapa threaddilindungi oleh monitor, sehingga prinsip mutual exclusion tetap terjaga.

  2. Kompilator bisa memeriksa kemungkinan adanya deadlock.