Sabtu, 04 April 2020

Bahasa Inggris Bisnis 2 Exercise 1.12 dan 2.16


Bahasa Inggris Bisnis 2 Exercise 1.12 dan 2.16

Exercise 1.12 
Some of the following sentences contain shifts in person. Identify each error by drawing a line under the pronoun; then write the correct form above the word. You may have to change the form of the verb. 
Example : When a person goes for a job interview, you (he or she) should be well groomed.
  1. I enjoy eating out instead of cooking at home. Living in Seattle, you have a choice of many different kinds of restaurants. My favorite restaurant is a Japanese one near my home. It is small and very popular, so you usually have to wait for a table. 
  2. If a person wants to learn to play a musical instrument well, you will have to develop self-discipline. The serious music student, for example, must be willing to give up watching two or three hours of television a day, and, instead, spend your time practicing.
  1. During the past year or two, the price of food has risen sharply. Every time I go to the market, you can see increases in several items. Not so long ago, your twenty dollars bought quite a few bags of groceries, but now I can carry twenty dollars’ worth of food home in one bag.
  1. I received a camera for a graduation present last year. It worked fine at first, but after a few months, you could tell that something was wrong with it. The pictures were so blurry that you couldn’t recognize the people in them. The repairperson at the camera shop wanted too much money to repair it, so I stopped using it. You would be wasting your money to buy film for that lemon.
  1. My brother likes his job as a lifeguard at the beach. You don’t have to wear a coat and tie to work, and you are out in the fresh air all day. A lifeguard has an important job. You don’t just watch pretty girls; you are responsible for the lives of all those people who come to enjoy the ocean.
answer
1.      I enjoy eating out instead of cooking at home. Living in Seattle, i have a choice of many different kinds of restaurants. My favorite restaurant is a Japanese one near my home. It is small and very popular, so i usually have to wait for a table.

2.      If a person wants to learn to play a musical instrument well, he or she will have to develop self-discipline. The serious music student, for example, must be willing to give up watching two or three hours of television a day, and, instead, spend their time practicing


3.      During the past year or two, the price of food has risen sharply. Every time I go to the market, you can see increases in several items. Not so long ago, my twenty dollars bought quite a few bags of groceries, but now I can carry twenty dollars’ worth of food home in one bag.


4.      I received a camera for a graduation present last year. It worked fine at first, but after a few months, I could tell that something was wrong with it. The pictures were so blurry that i couldn’t recognize the people in them. The repairperson at the camera shop wanted too much money to repair it, so I stopped using it. I would be wasting my money to buy film for that lemon.

5.      My brother likes his job as a lifeguard at the beach. He doesn’t  have to wear a coat and tie to work, and he is out in the fresh air all day. A lifeguard has an important job. He doesn’t just watch pretty girls; he is responsible for the lives of all those people who come to enjoy the ocean. 


Exercise 2.16 
Some of the following sentences contain shifts in tense. Identify each error by drawing a line under the incorrect verb. Write the correct form above the word. 
  1. Last Tuesday night I went to the library because I had a test in history on Wednesday morning. It is too noisy at home to study. My brother is playing the stereo, my mother was vacuuming, and my little sister and her friend are chasing each other around the house. How am I supposed to concentrate with all that commotion?
  1. My friend Greg loves peanut butter. Every morning he spread peanut butter on his toast or waffles. He snacked on peanut butter cups at school, and, of course, he ate peanut butter sandwiches for lunch every day. Nowadays he bakes his own peanut butter cookies because his mother had refused to make them anymore. Greg was a hopeless case; he even covers a slice of chocolate cake with peanut butter.
  1. My wife and I bought a golden retriever puppy last year. We made the mistake on the first few nights of allowing the puppy to sleep on a rug by our bed because he misses his brothers and sisters. Later when we made a bed for him in the laundry room, he howls and scratches on the door for several hours every night. After a while the neighbors call on the telephone to complain about the noise. We thought that he will never give up. The puppy finally learned to sleep by himself, and the neighbors start speaking to us again.
answer : 
1.      Last Tuesday night I went to the library because I had a test in history on Wednesday morning. It was too noisy at home to study. My brother was playing the stereo, my mother was vacuuming, and my little sister and her friend were chasing each other around the house. How am I supposed to concentrate with all that commotion?

2.      My friend Greg loves peanut butter. Every morning he spread peanut butter on his toast or waffles. He snacking on peanut butter cups at school, and, of course, he eat peanut butter sandwiches for lunch every day. Nowadays he bakes his own peanut butter cookies because his mother was refusing to make them anymore. Greg is a hopeless case; he even covers a slice of chocolate cake with peanut butter.

3.      My wife and I bought a golden retriever puppy last year. We made the mistake on the first few nights of allowing the puppy to sleep on a rug by our bed because he misses his brothers and sisters. Later when we made a bed for him in the laundry room, he howled and scratched on the door for several hours every night. After a while the neighbors called on the telephone to complain about the noise. We thought that he will never give up. The puppy finally learned to sleep by himself, and the neighbors start speaking to us again.



MAULIDWI FATHAN LAZUARDHY
14116311
4KA07
SISTEM INFORMASI


Selasa, 18 Desember 2018

IMPLEMENTASI SISTEM PAKAR UNTUK MENDIAGNOSA PENYAKIT DALAM PADA MANUSIA MENGGUNAKAN METODE DEMPSTER SHAFER


IMPLEMENTASI SISTEM PAKAR UNTUK MENDIAGNOSA PENYAKIT DALAM PADA MANUSIA MENGGUNAKAN METODE DEMPSTER SHAFER

Penulis: Esthi Dyah Rikhiana (07018061), Abdul Fadlil (0510076701)
Judul jurnal: IMPLEMENTASI SISTEM PAKAR UNTUK MENDIAGNOSA PENYAKIT DALAM PADA MANUSIA MENGGUNAKAN METODE DEMPSTER SHAFER

= Latar belakang jurnal

Penyakit Dalam merupakan penyakit yang serius untuk ditangani karena penyakit dalam ini berkaitan dengan banyak organ vital dalam tubuh manusia. Penyakit mematikan di dunia banyak diantaranya merupakan penyakit dalam seperti penyakit jantung dan paru-paru. Kurangnya informasi dan pengetahuan tentang Penyakit Dalam membuat manusia mengabaikan penyakit dalam karena gejala awal dari penyakit dalam berawal dari suatu gejala yang ringan.  Kurangnya dokter spesialis penyakit dalam di Indonesia menjadi pemicu kendala dalam pemeranan pencegahan penyakit mematikan sejak dini sehingga diperlukan sebuah sistem yang mempunyai kemampuan seperti pakar dengan memberikan nilai kepastian dalam bentuk persentase dengan perhitungan Dempster Shafer.

Penelitian yang pertama dilakukan mengacu pada penelitian terdahulu yang dilakukan oleh Khooliq Ahmad Dani Mutaqien (2011) yang berjudul “Sistem Pakar Untuk Mendiagnosa Penyakit Dalam Dengan Obat Herbal Pada Klinik Sidi Aritjahja”. Sistem pakar tersebut menggunakan metode pelacakan Forward Chaining. Kelemahan pada sistem pakar tersebut belum dilengkapi dengan metode kepastian atau belum didukung oleh probabilitas hasil diagnosa yang diperoleh.  Kajian terdahulu yang kedua mengacu pada penelitian Agus Priyono (2011) dengan Judul ” Sistem Pakar Untuk Mendiagnosa Kerusakan Mesin Lokomotif Kereta Api Dengan Menggunakan  Metode Dempster-Shafer”. Dengan menggunakan metode Dempster-Shafer untuk menghitung nilai ketidakpastian. Metode tersebut digunakan berdasarkan pada evidence atau fakta gejala atau kerusakan awal yang terlihat pada mesin kereta api.

= Metode Penulisan Jurnal:
Metode Dempster Shafer



= Review singkat pembahasan jurnal

Ada berbagai macam penalaran dengan model yang lengkap dan sangat konsisten, tetapi pada kenyataannya banyak permasalahan yang  tidak dapat terselesaikan secara lengkap dan  konsisten. Ketidakkonsistenan tersebut adalah  akibat adanya penambahan fakta baru. Penalaran yang seperti itu disebut dengan penalaran non monotonis. Untuk mengatasi ketidakkonsistenan tersebut maka dapat menggunakan penalaran dengan teori Dempster-Shafer. Secara umum teori Dempster-Shafer ditulis dalam suatu interval:
[Belief,Plausibility]
Belief (Bel) adalah ukuran kekuatan evidence dalam mendukung suatu hipotesa, jika bernilai 0 maka mengindikasikan bahwa tidak ada evidence, dan jika bernilai 1 menunjukkan adanya kepastian atau Plausibility (Pl), yang dinotasikan sebagai]:
Pl(H) = 1 – Bel (⌐H)

Plausibility juga bernilai 0 sampai 1. Jika yakin akan ⌐H, maka dapat dikatakan bahwa  Bel(⌐H)=1, dan Pl(⌐H)=0.  Pada teori Dempster-Shafer dikenal adanya  frame of discrement yang dinotasikan dengan  θ. Frame ini merupakan semesta pembicaraan dari sekumpulan hipotesis. Tujuannya adalah mengaitkan ukuran kepercayaan elemenelemen  θ. Tidak semua evidence secara langsung mendukung tiap-tiap elemen. Untuk itu perlu adanya probabilitas fungsi densitas (m). Nilai m tidak hanya mendefinisikan elemen-elemen  θ saja, namun juga semua subsetnya. Sehingga jika θ berisi n elemen, maka subset θ adalah 2n . Jumlah semua m dalam subset θ sama dengan 1. Apabila tidak ada informasi apapun untuk memilih hipotesis, maka nilai :  m{θ} = 1,0 . Apabila diketahui X adalah subset dari  θ, dengan m1 sebagai fungsi densitasnya, dan Y juga merupakan subset dari θ dengan m2 sebagai fungsi densitasnya, maka dapat dibentuk fungsi kombinasi m1 dan m2 sebagai m3, dengan rumus seperti pada persamaan 2 berikut:

Dimana :  
m3(Z) = mass function dari evidence (Z)
 m1 (X) =  mass function dari evidence (X)
m2 (Y) = mass function dari evidence  (Y)
Zm1(X).m2(Y) = ada hasil irisan dari m1 dan m2 Ø Zm1(X).
m2(Y) = tidak ada hasil irisan (irisan kosong (Ø))
= Kelebihan dalam jurnal

1.      Perhitungan matematika yang sudah akurat dalam merancang suatu system nya
2.      System pakar yang dibuat sangat membantu dalam meminimalisir tingkat kesalahan, sehingga hasil yang di dapat bisa presisi
3.      Penggunaan metode ini sudah sesuai dengan pemilihan bahasan dalam jurnal ini.

= Saran

1.      Penambahan saran obat yang digunakan setelah hasil diagnose keluar
2.      Menggunakan metode lain selain yang dituliskan dalam jurnal ini
3.      Agar aplikasi system pakar yang dibuat lebih rapi lagi.

= kesimpulan

Berdasarkan hasil pengembangan dan pembahasan maka dapat disimpulkan :
1. Dari penelitian dihasilkan sebuah perangkat lunak baru yang mampu mendiagnosa penyakit dalam berdasarkan gejala yang dimasukkan dan dapat memberikan informasi tentang penyakit yang terdiagnosa
2. Perangkat lunak yang dihasilkan mampu mendiagnosa penyakit dalam dengan perhitungan probabilitasnya menggunakan metode Dempster Shafer, dengan menggunakan bahasa pemograman Visual Basic 6.0 yang dapat beraksi layaknya pakar internis. Sistem ini dapat digunakan sebagai media konsultasi.

Daftar pustaka:
[2]  Fathansyah. 2002. Basis Data Cetakan Keempat.Bandung:Penerbit Informatika.
[3] Gunawan. 2000. Kuliah Artificial Intelligence Pengantar ke Expert System. Surabaya.
[4] Hartati, Sri & Iswantai, Sari. 2008. Sistem Pakar dan Pengembangannya. Yogyakarta : Graha Ilmu.
[5] http://adjie501ers.wordpress.com/2011/04/30/daftar-10-penyakit-palingmematikan (penulis : Adjie , diakses  pada tanggal 06/05/2011 09:05)
[6] http://blogdokter.net/ (penulis : dr. I Made Cock Wirawan, S.Ked. , diakses pada tanggal 06/05/2011 21:30)
 [7] http://karolindip.blogspot.com/2010/02/ pemerintah-dan -kk i-harus-membukamata.html  diakses pada tanggal  06/05/2011 09:05
[9] http://majalahkesehatan.com/penyebab-gejala-dan-penanganan-sirosis-hati/ (penulis : dr.Salma, diakses  pada tanggal  05/06/2011 22:25)
[10] http://www.mediaindonesia.com/read/2011/06/09/232506/293/14/IndonesiaKekurangan-Dokter-Spesialis-Penyakit-Dalam (Penulis : Media Indonesia, diakses pada tanggal  08/11/2011)
[11] http://turunberatbadan.com/1203/penyebab-hipertensi/ (penulis : Yusri, diakses  pada tanggal  05/06/2011 22:38)
[12] http://www.infopenyakit.com/   (penulis : Khomsah, diakses pada tanggal 05/06/2011 21:30)
[13] Kusrini. 2006. Sistem Pakar Teori dan Aplikasi. Yogyakarta : Andi Offset.
[14] Kusumadewi, Sri. 2003. Artificial Intelligence (Teknik & Aplikasi). Yogyakarta : Graha Ilmu.
[15] Mutaqien, Kholiq A,D. 2011. Sistem Pakar Untuk Mendiagnosa Penyakit Dalam  Dengan Obat Herbal Pada Klinik  Sidi Aritjahja (Skripsi S-1). Yogyakarta : Unersitas Ahmad Dahlan.
[16] Priyono, Agus. 2011. Sistem Pakar Untuk Mendiagnosa Kerusakan Mesin Lokomotif  Kereta Api Dengan Menggunakan Metode Demspter-Shafer (Skripsi-S1). Yogyakarta : Universitas Ahmad Dahlan

Minggu, 04 November 2018

Minggu, 14 Oktober 2018

TUGAS SOFTSKILL TENTANG KECERDASAN BUATAN

INI ADALAH TUGAS TENTANG KECERDASAN BUATAN
MAULIDWI FATHAN LAZUARDHY
14116311
3KA07







Semoga Membantu Kalian Semua





Rabu, 02 Mei 2018

Sinkronasi dan Deadlock

Sinkronasi dan Deadlock

 

KELOMPOK 4 Sistem Operasi
Kelas 2KA07
Angga Trinugraha                               (10116850)
George Armando                                (12116997)
Maulidwi Fathan L                              (14116311)
Petrus C Jordy C                                  (15116764)
Yossi Jubel Agusto                             (17116812)



BAB 1
PENDAHULUAN

1.      Latar Belakang


Pada zaman sekarang ini telah terjadi banyak perkembangan pada berbagai macam bidang teknologi, seperti halnya komputer yang memiliki sebuah atau beberapa buah sistem operasi. Pada dasarnya sistem operasi memiliki peranan yang sangat penting dalam proses-proses yang terjadi di dalam komputer ,baik itu hubungan PC dengan prangkat input/output, PC dengan user. Pada sistem operasi terdapat beberapa masalah yang ditemukan antara lain seperti Mutual Exclusion, Deadlock,StarVation, Sinkronisasi. Mutual Exclusion adalah jaminan hanya satu proses yang mengaksessumber daya pada satu interval tertentu. Proses disebut deadlock jika prose menunggu suatu kejadian yang tak pernah terjadi. Proses dikatakan mengalami starvation jika proses­proses itu menunggu alokasi sumber daya sampai tak berhingga. sementara proses­proses laindapat  memperoleh alokasi sumber daya









BAB 2
ISI
A. Sinkronasi dan Deadlock
Suatu sistem operasi modern merupakan suatu sistem yang besar dan kompleks sehingga strukturnya harus dirancang dengan hati-hati dan saksama supaya dapat berfungsi seperti yang diinginkan serta dapat dimodifikasi dengan mudah
Struktur sistem operasi merupakan komponen-komponen sistem operasi yang dihubungkan dan dibentuk di dalam kernel
Ada beberapa struktur sistem operasi dan pernah dicoba, diantaranya sebagai berikut:

1.Masalah Critical Section

Pengertian Critical Section
critical section adalah dengan mendesain sebuah protokol di mana proses-proses dapat menggunakannya secara bersama-sama. Setiap proses harus ‘meminta izin’ untuk memasuki critical section-nya. Bagian dari kode yang mengimplementasikan izin ini disebut entry section. Akhir dari critical section itu disebut exit section. Bagian kode selanjutnya disebut remainder section.
Struktur umum dari proses Pi yang memiliki segmen critical section adalah :

do {
    entry section
    critical section
    exit section
    remainder section
} while (1);


Solusi dari masalah critical section harus memenuhi tiga syarat berikut:
1. Mutual Exclusion.
Jika suatu proses sedang menjalankan critical section-nya, maka proses-proses lain tidak dapat menjalankan critical section mereka. Dengan kata lain, tidak ada dua proses yang berada dicritical section pada saat yang bersamaan.
2. Terjadi kemajuan (progress).
Jika tidak ada proses yang sedang menjalankan critical section-nya dan ada proses-proses lain yang ingin masuk ke critical section, maka hanya proses-proses yang yang sedang berada dalamentry section saja yang dapat berkompetisi untuk mengerjakan critical section.
3. Ada batas waktu tunggu (bounded waiting).
Jika seandainya ada proses yang sedang menjalankan critical section, maka proses lain memiliki waktu tunggu yang ada batasnya untuk menjalankan critical section -nya, sehingga dapat dipastikan bahwa proses tersebut dapat mengakses critical section-nya (tidak mengalamistarvation: proses seolah-olah berhenti, menunggu request akses ke critical sectiondiperbolehkan).

Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama. Dengan kata lain kita memutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya.
Masalah menghindari race conditions dapat juga diformulasikan secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk melakukan perhitungan internal dan hal lain yang tidak menggiring ke kondisi race conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared berkas atau melakukan sesuatu yang kitis akan menggiring kepada race conditions. Bagian dari program dimana shaed memory diakses disebut Critical Section atau Critical Region.
Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik:
·Tidak ada dua proses secara bersamaan masuk ke dalam citical section.
·Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
·Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
·Tidak ada proses yang menunggu selamamya untuk masuk critical section.

 
3. Sinkronisasi Hardware
Seperti yang telah kita ketahui bahwa, sinkronisasi haruslah mutual exclusive/harus ada satu atau sekelompok instruksi yang tidak dapat diberhentikan pada waktu eksekusi (sifat mutual exclusive). Jadi, solusi untuk sinkronisasi dengan cara pendekatan hardware lebih menekankan kepada usaha-usaha untuk membuat suatu atau sekelompok instruksi menjadi mutual exclusive.
Pendekatan dari sisi hardware dapat dibagi menjadi dua:
1.      Processor Synchronous
2.      Memory Synchronous
Mutual exclusive = Jika proses Pi sedang mengeksekusi critical section maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.

4.Semaphores
Semafor adalah sistem sinyal yang digunakan untuk berkomunikasi secara visual. Dalam software, semafor adalah sebuah variabel bertipe integer yang selain saat inisialisasi, hanya dapat diakses melalui dua operasi standar, yaitu increment dan decrement. Semafor digunakan untuk menyelesaikan masalah sinkronisasi secara umum. Berdasarkan jenisnya, semafor hanya bisa memiliki nilai 1 atau 0, atau lebih dari sama dengan 0. Konsep semafor pertama kali diajukan idenya oleh Edsger Dijkstra pada tahun 1967.
Operasi standar pada semafor (dalam bahasa pemrograman C). Nama asli dari operasi tersebut sebenarnya adalah Proberen (test) dan Verhogen (increment). Fungsi wait dipanggil ketika thread akan memasuki critical section-nya atau ketika thread akan memakai resource yang tersedia. Jika sem_value kurang dari sama dengan 0, thread tersebut harus menunggu sampai thread lain memanggil fungsi buka. Fungsi buka dipanggil ketika thread meningggalkan critical section-nya atau ketika melepaskan resource yang telah digunakannya. Tentu saja kedua operasi tersebut harus bersifat atomik karena sem_value dapat diakses oleh beberapa proses (shared resource).
Semafor memiliki dua jenis, yaitu:
  1. Binary semaphore,
Semafor ini hanya memiliki nilai 1 atau 0. Sering juga disebut sebagai semafor primitif
  1. Counting semaphore
Semafor ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem operasi yang tidak secara langsung mengimplementasikan semafor ini, tetapi dengan memanfaatkan binary semaphore
Fungsi Semaphore
–        Mutual exclusion
Sesuai dengan prinsip mutual exclusion, jika suatu thread sedang berada dalam critical section-nya, thread lain harus menunggu thread tersebut keluar dari critical section-nya sebelum dapat memasuki critical section-nya sendiri. Di sinilah semafor digunakan, thread yang akan memasuki critical section-nya akan memanggil fungsi kunci terlebih dahulu. Jika tidak ada thread lain yang sedang berada dalam critical section, thread ini akan memasuki critical section-nya. Jika terdapat thread lain yang sedang berada dalam critical section-nya, thread ini harus menunggu.Setelah thread keluar dari critical section-nya, thread tersebut akan memanggil fungsi buka sehingga sem_value akan naik menjadi lebih dari 0, dan satu (dari beberapa) thread yang sedang menunggu akan mendapatkan giliran untuk memasuki critical section-nya.
–        Sebagai contoh, misalnya terdapat dua buah thread yang sedang berjalan bersamaan:
Thread A: thread B: count = count + 1; count = count + 1; Thread A dan B mengakses variabel yang sama, yaitu count sehingga thread A dan B harus berjalan satu-satu. Untuk itu digunakan semafor mutex yang berupa binary semaphore dengan nilai awal 1.
–        Resource controller
Contoh: bayangkan sebuah restoran yang setiap malamnya ramai dikunjungi pelanggan. Kapasitas restoran terbatas, tetapi pemilik restoran memiliki kebijakan bahwa semua pengunjung yang datang akan mendapatkan kesempatan untuk makan, dengan konsekuensi yaitu pelanggan harus sabar menunggu gilirannya. Oleh karena itu, dikerahkanlah pegawai restoran untuk menahan tamu di luar jika restoran penuh lalu mempersilahkan tamu masuk jika tempat telah tersedia. Dari analogi di atas, pelanggan adalah thread, kapasitas restoran adalah resource, dan pegawai restoran adalah semafor. Semafor menyimpan banyaknya resource yang tersedia. Saat thread ingin memakai resource ia akan memanggil fungsi kunci. Jika resource masih tersedia, thread bisa langsung menggunakannya, sebaliknya jika semua resource sedang dipakai, thread tersebut harus menunggu. Setelah resource selesai dipakai thread akan memanggil fungsi buka sehingga resource yang bebas bertambah.
–        Sinkronisasi antar-proses
Ada kalanya suatu thread memerlukan resource yang dihasilkan oleh thread lainnya. Oleh karena itu dibutuhkan suatu mekanisme untuk mengatur urutan eksekusi thread. Mekanisme ini dilakukan dengan memanfaatkan semafor.
–        Sebagai contoh, misalnya terdapat dua buah thread yang sedang berjalan bersamaan:
Thread A: thread B: count = count + 1; count = count * 2; Nilai awal dari variabel count adalah 5, nilai akhir yang diinginkan adalah 12, oleh karena itu thread A harus dieksekusi sebelum thread B. Agar hal ini dapat terjadi dibutuhkan suatu semafor mutex yang merupakan sebuah binary semaphore dengan nilai awal 0.
Thread A: thread B: count = count + 1; kunci(mutex); buka(mutex); count = count * 2; Thread B akan menunggu sampai eksekusi thread A selesai sebelum melanjutkan.
Implementasi Semaphore
–        Windows
Fungsi yg dipakai adalah CreateSemaphore biasanya digunakan untuk membatasi jumlah thread yang memakai suatu resource secara bersamaan
–        Java
Semafor di Java bersifat transparan oleh
–        Programmer
Java™ menyembunyikan Semafor dibalik konsep

5.Masalah Klasik Sinkronisasi

Masalah Klasik Sinkronisasi dapat dibedakan menjadi 3 :
1.Bounded – Buffer Problem
2.Readers and Writers Problem
3.Dining Philosophers Problem

1.Pengertian Bounded –Buffer Problem
  Bounded buffer merupakan suatu struktur data yang mampu untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika diperlukan . Jika dianalogikan bounded buffer ini akan mirip dengan sebuah tumpukan piring. Kita menaruh piring dan menaruh lagi sebuah piring, ketika ingin mengambil piring maka tumpukan yang paling atas yang akan terambil.Jadi piring terakhir yang dimasukan akan pertama kali diambil.
Contoh Kasus Bounded - Buffer
  Pada bagian ini akan dicontohkan suatu produser konsumer. produser akan menghasilkan suatu barang dan konsumer akan mengkonsumsi barang yang dihasilkan oleh produser. produser dan konsumer ini akan mengakses bounded buffer yang sama. produser setelah menghasilkan suatu barang dia akan menaruh barang itu di bounded buffer sebaliknya konsumer ketika membutuhkan suatu barang, dia akan mengambilkannya dari bounded buffer.

Solusi Bounded – Buffer Problem
Solusi Shared Memory untuk Bounded – Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu waktu tertentu.


2.Pengertian Readers and Writers Problem
 Readers and Writers Problem adalah problem yang memodelkan proses yang mengakses database. Masalah ini timbul ketika ada dua proses atau lebih berbagi data yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek dari suatu program

Solusi Readers and Writers Problem

a.Pembaca di prioritaskan
b.Penulis di prioritaskan
c.Kedua jenis proses mempunyai prioritas yang sama.


Solusi Pembaca di Prioritaskan
 Reader tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada writer yang sedang menunggu. Dengan kata lain, Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Writer akan ditunda pengerjaannya.

Solusi Penulis di Prioritaskan
Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.

Solusi Kedua Jenis Punya Prioritas Sama
 Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses.

3.Sejarah Dining Philosophers Prolem
Masalah ini pertama ini pertama kali ditulis dan diselesaikan oleh Djikstra pada tahun 1965.Masalah ini memodelkan masalah enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf ada sebuah piring berisi mie dan di antara dua piring yang bersebelahan terdapat sebuah sumpit.


Solusi Dining Philosophers Problem
Solusi Dining – Philosophers Problem ada dua, yakni :
a.Solusi Waiter
Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai,orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.
b.Solusi Hierarki Resource

Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.
6.Deadlock
6.1  MODEL SISTEM
Pada sistem terdapat beberapa sumber daya (resource) yang digunakan untuk proses-proses untuk menyelesaikan task.  Sumber daya yang pada sistem  terdiri dari tipe resource CPU cycle, ruang memori, perangkat I/O yang disebut dengan tipe sumber daya R1, R2, . . ., Rm.  Setiap tipe sumber daya Ri mempunyai beberapa anggota Wi.  Setiap proses yang menggunakan sumber daya menjalankan urutan operasi sebagai berikut :
• meminta (request)  :  meminta sumber daya
 • memakai (use)  :  memakai sumber daya
• melepaskan (release) :  melepaskan sumber daya

6.2  KARAKTERISTIK DEADLOCK

6.2.1 Kondisi yang Diperlukan Deadlock terjadi bila terdapat empat kondisi berikut ini secara simultan. a. Mutual Exclusion : hanya satu proses pada satu waktu yang dapat menggunakan sumber daya. b. Genggam dan Tunggu (Hold and Wait) : suatu proses membawa sedikitnya satu sumber daya menunggu mendapatkan tambahan sumber daya baru yang dibawa oleh proses

6.2.2 Resource Allocation Graph Deadlock dapat digambarkan lebih presisi dengan menggunakan graph berarah yang disebut resource allocation graph. 

6.3 METODE MENANGANI DEADLOCK
Terdapat tiga metode untuk menangani permasalahan deadlock yaitu : • Menggunakan protocol untuk menjamin bahwa sistem tidak pernah memasuki status deadlock • Mengijinkan sistem memasuki status deadlock dan kemudian memperbaikinya. • Mengabaikan permasalahan dan seakan-akan deadlock tidak pernah terjadi pada sistem.  Model ini yang banyak digunakan pada sistem operasi termasuk UNIX.


6.4 MENCEGAH DEADLOCK
Metode ini berkaitan dengan pengkondisian sistem agar menghilangkan kemungkinan terjadinya deadlock.  Pencegahan merupakan solusi yang bersih dipandang dari sudut tercegahnya deadlock.  Metode ini sering menghasilkan utilisasi sumber daya yang buruk.  Pencegahan deadlock merupakan metode yang banyak dipakai. Untuk mencegah deadlock dilakukan dengan meniadakan salah satu dari syarat perlu sebagai berikut : • Mencegah Mutual Exclusion Mutual exclusion benar-benar tak dapat dihindari.  Hal ini dikarenakan tidak ada sumber daya yang dapat digunakan bersama-sama, jadi sistem harus membawa sumber daya yang tidak dapat digunakan bersama-sama.

• Mencegah Hold and Wait Untuk mencegah hold and wait, sistem harus menjamin bila suatu proses meminta sumber daya, maka proses tersebut tidak sedang memegang sumber daya yang lain.  Proses harus meminta dan dialokasikan semua sumber daya yang diperlukan sebelum proses memulai eksekusi atau mengijinkan proses meminta sumber daya hanya jika proses tidak membawa sumber daya lain.  Model ini mempunyai utilitas sumber daya yang rendah dan kemungkinan terjadi starvation jika proses membutuhkan sumber daya yang popular sehingga terjadi keadaan menunggu yang

tidak terbatas karena setidaknya satu dari sumber daya yang dibutuhkannya dialokasikan untuk proses yang lain.

• Mencegah Non Preemption Peniadaan non preemption mencegah proses-proses lain harus menunggu.  Seluruh proses menjadi preemption, sehingga tidak ada tunggu menunggu.  Cara mencegah kondisi non preemption : o Jika suatu proses yang membawa beberapa sumber daya meminta sumber daya lain yang tidak dapat segera dipenuhi untuk dialokasikan pada proses tersebut, maka semua sumber daya yang sedang dibawa proses tersebut harus dibebaskan.   o Proses yang sedang dalam keadaan menunggu, sumber daya yang dibawanya ditunda dan ditambahkan pada daftar sumber daya.   o Proses akan di restart hanya jika dapat memperoleh sumber daya yang lama dan sumber daya baru yang diminta.

• Mencegah Kondisi Menunggu Sirkular Sistem mempunyai total permintaan global untuk semua tipe sumber daya.  Proses dapat meminta proses kapanpun menginginkan, tapi permintaan harus dibuat terurut secara numerik.  Setiap proses yang membutuhkan sumber daya dan memintanya maka nomor urut akan dinaikkan.  Cara ini tidak akan menimbulkan siklus.  Masalah yang timbul adalah tidak ada cara pengurutan nomor sumber daya yang memuaskan semua pihak.

6.5 MENGHINDARI DEADLOCK
Metode alternatif untuk menghindari deadlock adalah digunakan informasi tambahan tentang bagaimana sumber daya diminta.  Misalnya pada sistem dengan satu tape drive dan satu printer, proses P pertama meminta tape drive dan kemudian printer sebelum melepaskan kedua sumber daya tersebut.  Sebaliknya proses Q pertama meminta printer kemudian tape drive.  Dengan mengetahui urutan permintaan dan

pelepasan sumber daya untuk setiap proses, dapat diputuskan bahwa untuk setiap permintaan apakah proses harus menunggu atau tidak.  Setiap permintaan ke sistem harus dipertimbangkan apakah sumber daya tersedia, sumber daya sedang dialokasikan untuk proses dan permintaan kemudian serta pelepasan oleh proses untuk menentukan apakah permintaan dapat dipenuhi atau harus menunggu untuk menghindari deadlock. Model yang sederhana dan sangat penting dibutuhkan adalah setiap proses menentukan jumlah maksimum sumber daya dari setiap tipe yang mungkin diperlukan.  Algoritma deadlock avoidance secara dinamis memeriksa status sumber daya yang dialokasikan untuk menjamin tidak pernah terjadi kondisi menunggu sirkular.  Status alokasi sumber daya ditentukan oleh jumlah sumber daya yang tersedia dan yang dialokasikan dan maksimum permintaan oleh proses-proses.

6.6 MENDETEKSI DEADLOCK
Jika sistem tidak menyediakan algoritma mencegah deadlock dan menghindari deadlock, maka terjadi deadlock.  Pada lingkungan ini sistem harus menyediakan : • Algoritma yang menguji state sistem untuk menentukan apakah deadlock telah terjadi. • Algoritma untuk memperbaiki dari deadlock.

6.6.1 Satu Anggota untuk Setiap Tipe Sumber Daya  Jika semua sumber daya hanya mempunyai satu anggota, kita dapat menentukan algoritma mendeteksi deadlock menggunakan bentuk resource allocation graph yang disebut wait-for graph.  
Garis dari Pi → Pj pada wait-for graph menandakan bahwa proses Pi menunggu Pj melepaskan sumber daya yang dibutuhkan Pi.  Garis Pi → Pj terdapat pada wait-for graph jika dan anya jika resource allocation graph berisi dua garis Pi → Rq dan Rq → Pj untuk beberapa sumber daya Rq seperti Gambar 6-7. Secara periodik sistem menggunakan algoritma yang mencari siklus pada graph.  Algoritma untuk mendeteksi siklus pada graph membutuhkan operasi n2 dimana n adalah jumlah titik pada graph.





6.6.2 Beberapa Anggota untuk Setiap Tipe Sumber Daya Untuk Tipe sumber daya yang mempunyai beberapa anggota digunakan algoritma yang sejenis dengan algoritma Banker dengan struktur daya  seperti di bawah ini : • Available :  vector panjang m menandakan jumlah sumber daya yang tersedia untuk setiap tipe sumber daya. • Allocation :  matrik n x m yang mendefinisikan jumlah sumber daya untuk setiap tipe sumber daya yang sedang dialokasikan untuk setiap proses. • Request :  matrik n x m yang mendefinisikan permintaan setiap proses.  Jika Request [I, j] = k, maka proses Pi meminta k anggota tipe sumber daya Rj.
Gambar

6.6.3 Penggunaan Algoritma Deteksi  Untuk menjawab kapan dan berapa sering menggunakan algoritma deteksi, hal ini tergantung pada : • Seberapa sering terjadi deadlock. • Berapa proses yang perlu dilakukan roll back. Jika algoritma deteksi digunakan, terdapat beberapa siklus pada graph, hal ini tidak dapat mengetahui berapa proses yang deadlock yang menyebabkan deadlock.

6.7 PERBAIKAN DARI DEADLOCK
Terdapat dua pilihan untuk membebaskan deadlock.  Satu solusi sederhana adalah dengan menghentikan satu atau beberapa proses untuk membebaskan kondisi menunggu sirkular.  Pilihan kedua adalah menunda beberapa sumber daya dari satu atau lebih proses yang deadlock.

6.7.1 Terminasi Proses Untuk memperbaiki deadlock dengan terminasi proses, dapat diguankan salah satu dari dua metode di bawah ini : • Menghentikan (abort) semua proses yang deadlock • Menghentikan satu proses setiap waktu sampai siklus deadlock hilang.
Untuk menentukan urutan proses yang harus dihentikan ada beberapa faktor yang harus diperhatikan : • Prioritas proses. • Berapa lama proses dijalankan dan berapa lama lagi selesai. • Sumber daya yang digunakan proses. • Sumber daya proses yang diperlukan untuk menyelesaikan task. • Berapa proses yang perlu diterminasi. • Apakah proses interaktif atau batch.

6.7.2 Menunda Sumber Daya Untuk menghilangkan deadlock dengan menunda sumber daya, sumber daya dari proses harus ditunda dan memberikan sumber daya tersebut ke proses lain sampai siklus deadlock hilang. Jika penundaan dibutuhkan untuk menghilangkan deadlock, terdapat tiga hal yang perlu diperhatikan : • Pilihlah korban (sumber daya) yang mempunyai biaya minimal. • Lakukan rollback yaitu memulai kembali (restart) proses pada state yang aman. • Harus dijamin starvation tidak akan terjadi karena kemungkinan beberapa proses selalu terpilih sebagai korban termasuk jumlah rollback sebagai faktor biaya.

6.8 METODE KOMBINASI MENANGANI DEADLOCK
Untuk menangani deadlock dilakukan kombinasi dari tiga algoritma dasar yaitu mencegah deadlock, menghindari deadlock dan mendeteksi deadlock.  Kombinasi ketiga algoritma ini memungkinkan penggunaan yang optimal untuk setiap sumber daya pada sistem.  



     



BAB 3
Penutup
KESIMPULAN
Sebenarnya mutual Exclusion sendiri merupakan salahsatu bagian dari pembahasan Deadlock, tepatnya Mutual Exclusion adalah salah satu dari empat kriteria penyebab terjadinya Deadlock. Selain Mutual Exclusion ada juga Hold and Wait, No Preemption, dan Circular Wait dan suatu kondisi di katakan Deadlock adalah apabila ke-empat karakteristik itu terpenuhi. Langsung saja ke pembahasan awal mengenai Deadlock

refrensi