Senin, 29 Maret 2010

PENALARAN DEDUKTIF

PENALARAN DEDUKTIF


Penalaran adalah proses berpikir yang bertolak dari pengamatan indera (observasi empirik) yang menghasilkan sejumlah konsep dan pengertian. Berdasarkan pengamatan yang sejenis juga akan terbentuk proposisi – proposisi yang sejenis, berdasarkan sejumlah proposisi yang diketahui atau dianggap benar, orang menyimpulkan sebuah proposisi baru yang sebelumnya tidak diketahui. Proses inilah yang disebut menalar.
Dalam penalaran, proposisi yang dijadikan dasar penyimpulan disebut dengan premis (antesedens) dan hasil kesimpulannya disebut dengan konklusi (consequence).
Hubungan antara premis dan konklusi disebut konsekuensi.
Metode berpikir deduktif adalah metode berpikir yang menerapkan hal-hal yang umum terlebih dahulu untuk seterusnya dihubungkan dalam bagian-bagiannya yang khusus.
Contoh: Masyarakat Indonesia konsumtif (umum) dikarenakan adanya perubahan arti sebuah kesuksesan (khusus) dan kegiatan imitasi (khusus) dari media-media hiburan yang menampilkan gaya hidup konsumtif sebagai prestasi sosial dan penanda status sosial.


Latar belakang

Penalaran deduktif dikembangkan oleh Aristoteles, Thales, Pythagoras, dan para filsuf Yunani lainnya dari Periode Klasik (600-300 SM.). Aristoteles, misalnya, menceritakan bagaimana Thales menggunakan kecakapannya untuk mendeduksikan bahwa musim panen zaitun pada musim berikutnya akan sangat berlimpah. Karena itu ia membeli semua alat penggiling zaitun dan memperoleh keuntungan besar ketika panen zaitun yang melimpah itu benar-benar terjadi.[2]
Penalaran deduktif tergantung pada premisnya. Artinya, premis yang salah mungkin akan membawa kita kepada hasil yang salah, dan premis yang tidak tepat juga akan menghasilkan kesimpulan yang tidak tepat.

Alternatif dari penalaran deduktif adalah penalaran induktif. Perbedaan dasar di antara keduanya dapat disimpulkan dari dinamika deduktif tengan progresi secara logis dari bukti-bukti umum kepada kebenaran atau kesimpulan yang khusus; sementara dengan induksi, dinamika logisnya justru sebaliknya. Penalaran induktif dimulai dengan pengamatan khusus yang diyakini sebagai model yang menunjukkan suatu kebenaran atau prinsip yang dianggap dapat berlaku secara umum.

Penalaran deduktif memberlakukan prinsip-prinsip umum untuk mencapai kesimpulan-kesimpulan yang spesifik, sementara penalaran induktif menguji informasi yang spesifik, yang mungkin berupa banyak potongan informasi yang spesifik, untuk menarik suatu kesimpulan umu. Dengan memikirakan fenomena bagaimana apel jatuh dan bagaimana planet-planet bergerak, Isaac Newton menyimpulkan teori daya tarik. Pada abad ke-19, Adams dan LeVerrier menerapkan teori Newton (prinsip umum) untuk mendeduksikan keberadaan, massa, posisi, dan orbit Neptunus (kesimpulan-kesimpulan khusus) tentang gangguan (perturbasi) dalam orbit Uranus yang diamati (data spesifik).

Logika deduktif

Penalaran deduktif didukung oleh logika deduktif.
Misalnya:

Apel adalah buah.

Semua buah tumbuh di pohon.

Karena itu semua apel tumbuh di pohon.

Atau

Apel adalah buah.

Sebagian apel berwarna merah.

Karena itu sebagian buah berwarna merah.

Premis yang pertama mungkin keliru, namun siapapun yang menerima premis ini dipaksa untuk menerima kesimpulannya.


Deduksi alamiah

Artikel utama untuk bagian ini adalah: Deduksi alamiah
Penalaran deduktif harus dibedakan dari konsep yang terkait yaitu deduksi alamiah, sebuah pendekatan kepada teori pembuktian bahwa upaya-upaya untuk memberikan sebuah model penalaran logis yang formal sebagaimana ia terjadi "secara alamiah".


PENALARAN DEDUKTIF

Jika setiap siswa di suatu kelas diminta membuat lingkaran lalu mereka
diminta membuat sudut pusat dan sudut keliling yang menghadap busur
yang sama, dan setelah itu mereka diminta mengukur besar kedua sudut
dengan tepat, maka akan didapat besar sudut pusat tersebut adalah dua
kali besar sudut kelilingnya. Pernyataan itu bernilai benar secara
induktif, karena kita telah membuat bentuk umum (general) dari
beberapa kasus khusus. Pertanyaan yang dapat diajukan adalah:

Yakinkah Anda dengan kesimpulan itu? Untuk meyakinkan kebenaran
teorema tersebut, penarikan kesimpulan berdasar penalaran induktif
saja tidaklah cukup. Matematikawan masih bertumpu pada penalaran
lainnya yang dikenal dengan penalaran deduktif, yang akan dijelaskan
pada bagian berikutnya di bawah ini.

Untuk membuktikan kebenaran pernyataan atau teorema tentang
hubungan sudut pusat dan sudut keliling secara deduktif, maka pada
lingkaran di bawah ini telah dibuat garis pertolongan yang melalui titik C
dan titik O yang memotong lingkarannya di titik D.
Langkah pertamanya adalah dengan memisalkan bahwa ÐDOB = x° dan
ÐDOA = y°. Perhatikan bahwa pemisalannya bersifat umum di mana x°
dan y° mewakili besar sudut yang mungkin dari ÐDOB dan ÐDOA.
Dengan demikian, didapat ÐCOB = (180 – x)° dan ÐAOC = (180 – y)°.
Segitiga OBC merupakan segitiga samakaki, karena OB = OC (jari-jari),
begitu juga dengan segitiga AOC merupakan segitiga samakaki juga,
sehingga dapat dibuktikan dengan menggunakan sifat-sifat pada segitiga
sama-kaki bahwa ÐDCB = ½ x° dan ÐDCA = ½ y°. Jadi, secara deduktif
terbukti bahwa sudut pusat besarnya adalah dua kali besar sudut
keliling jika menghadap busur yang sama. Nyatalah sekarang bahwa
untuk membuktikan kebenaran pernyataan di atas secara deduktif,
maka teorema itu telah dibuktikan dengan menggunakan teorema atau
sifat berikut: “Jika pada suatu segitiga samakaki ABC diketahui bahwa
AC = BC, maka kedua sudut alasnya sama besar (ÐA = ÐB).”

Contoh di atas menunjukkan bahwa pada penalaran deduktif; suatu
rumus atau dalil yang bersifat umum telah dibuktikan dengan
menggunakan atau melibatkan teorema maupun rumus matematika
sebelumnya yang bersifat umum juga dan sudah dibuktikan
kebenarannya secara deduktif. Selanjutnya, teori maupun rumus
matematika yang digunakan sebagai dasar pembuktian tadi telah
dibuktikan berdasar teori maupun rumus matematika yang sebelumnya
lagi. Begitu seterusnya. Pertanyaan yang dapat dimunculkan adalah:
Bukti paling awal didasarkan pada apa? Ternyata, pembuktiannya
didasarkan pada aksioma, yaitu pernyataan yang dianggap atau
diasumsikan benar.

Contoh lainnya adalah pengetahuan Aljabar yang berkait dengan
bilangan real a, b, dan c terhadap operasi penjumlahan (+) dan perkalian
(.) yang menurut Vance (19..) telah didasarkan pada enam aksioma atau
postulat berikut:

1) tertutup, a + b Î R dan a.b Î R.
2) asosiatif, a + (b + c) = (a + b) + c dan a .(b . c) = (a . b) . c
3) komutatif, a + b = b + a dan a.b = b.a
4) distributif, a.(b + c) = a.b + a.c dan (b + c).a = b.a + c.a
5) identitas, a + 0 = 0 + a = a dan a.1 = 1. a = a
6) invers, a + (−a) = (−a) + a = 0 dan a.

a = 1 untuk a ¹ 0.

Berdasar enam aksioma itu, teorema seperti −b + (a + b) = a dapat
dibuktikan sebagai berikut:
− b + (a + b) = − b + (b + a) Aksioma 3 I Komutatif
= (−b + b) + a Aksioma 2 I Asosiatif
= 0 + a Aksioma 6 I Invers
= a Aksioma 5 I Identitas

Dengan demikian jelaslah bahwa bangunan matematika telah disusun
dengan dasar pondasi berupa kumpulan pengertian pangkal (unsur
pangkal dan relasi pangkal) dan kumpulan sifat pangkal (aksioma).

Aksioma atau sifat pangkal adalah semacam dalil yang kebenarannya
tidak perlu dibuktikan namun sangat menentukan, karena sifat pangkal
inilah yang akan menjadi dasar untuk membuktikan dalil atau teorema
matematika selanjutnya. Dengan demikian, unsur utama pekerjaaan
matematika adalah penalaran deduktif yang bekerja atas dasar asumsi,
yaitu kebenaran suatu konsep atau pernyataan diperoleh sebagai akibat
logis dari kebenaran sebelumnya. Pengertian-pengertian matematika
secara berantai didefinisikan dari pengertian sebelumnya yang
bersumber pada pengertian pangkal. Sebagaimana aksioma yang tidak
perlu dibuktikan kebenarannya karena akan menjadi dasar pembuktian
dalil atau sifat berikutnya, maka pengertian pangkal tidak didefinisikan


karena pengertian pangkal akan menjadi dasar pendefinisian pengertianpengertian
atau konsep-konsep matematika berikutnya.

Karenanya, Jacobs (1982:32) menyatakan: “Deductive reasoning is a
method of drawing conclusions from facts that we accept as true by using
logic ”. Artinya, penalaran deduktif adalah suatu cara penarikan
kesimpulan dari pernyataan atau fakta-fakta yang dianggap benar
dengan menggunakan logika. Suatu hal yang sudah jelas benar pun
harus ditunjukkan atau dibuktikan kebenarannya dengan langkahlangkah
yang benar secara deduktif. Itulah sebabnya, bangunan
matematika dikenal sebagai mata pelajaran yang dikembangkan secara
deduktif-aksiomatis. Itulah sebabnya, pernyataan bahwa sudut pusat
besarnya adalah dua kali besar sudut keliling jika menghadap busur
yang sama terkategori bernilai benar secara deduktif, karena sesuai
dengan teori koherensi, pernyataan yang terkandung di dalam kalimat
itu bersifat koheren, konsisten, atau tidak bertentangan dengan
pernyataan-pernyataan sebelumnya yang dianggap benar. Suatu
bangunan matematika akan runtuh jika terdapat sifat, dalil, atau
teorema ada yang saling bertentangan (kontradiksi).

KESAHIHAN PENALARAN DEDUKTIF

Perhatikan contoh berikut:.

(1) Rumah Amin terletak di sebelah barat rumah Akbar.
(2) Rumah Akbar terletak di sebelah barat rumah Abdur
------------------------------------------------------------------------
Jadi, rumah Amin terletak di sebelah barat rumah Abdur (3)
Perhatikan pernyataan 1 dan 2 yang disebut premis dan menjadi dasar
penarikan kesimpulan (yaitu pernyataan 3). Apa yang menarik dari
pernyataan 1, 2, dan 3 di atas? Jika digambarkan, akan didapat diagram
berikut.

Tentunya Anda sendiri, para pembaca naskah ini, tidak akan
mengetahui apakah pernyataan tersebut bernilai benar atau tidak.
Mungkin juga Anda tidak akan mengenal dan tidak akan mengetahui
apakah ketiga orang tersebut benar-benar memiliki rumah. Tetapi Anda
dapat menyatakan bahwa jika premis-premisnya (yaitu pernyataan 1 dan
2) bernilai benar maka kesimpulannya (yaitu pernyataan 3) tidak akan
mungkin untuk bernilai salah. Sekali lagi, jika premis-premisnya bernilai
benar maka kesimpulannya tidak akan mungkin untuk bernilai salah.

Rumah Akbar Rumah Abdur

Rumah Amin

Penarikan kesimpulan seperti ini disebut dengan penarikan kesimpulan
yang sah, sahih, valid, absah, atau correct. Hal ini sesuai dengan
pernyataan Giere (84:39) berikut: “Any argument in which the truth of the
premises makes it impossible that the conclusion could be false is called a
deductively valid argument." Yang artinya, setiap argumen di mana
kebenaran dari premis-premisnya tidak memungkinkan bagi
kesimpulannya untuk salah disebut dengan argumen yang sah atau
valid. Penarikan kesimpulan di atas dikenal dengan nama sylogisme dan
bentuk umumnya adalah:
p q
q r
------------
\ p r
Perhatikan contoh lain dari penarikan kesimpulan atau argumen
deduktif beserta bentuk umumnya berikut ini:
Semua manusia Indonesia jago logika p q
Amin manusia Indonesia p
-------------------------------- ----------
Jadi, Amin jago logika q
Jika x = −3 maka x2 = 9 p q
x2 = 9 q
-------------------------------- ----------
Jadi x = −3 p
Contoh penarikan kesimpulan pertama di atas dikenal dengan modus
ponens dan merupakan penarikan kesimpulan yang sahih, sedangkan
contoh kedua merupakan penarikan kesimpulan yang tidak sahih.
Perhatikan contoh pertama di atas sekali lagi. Jika premis argumen
tersebut bernilai benar, maka tidak mungkin kesimpulannya bernilai
salah. Contoh kedua merupakan penarikan kesimpulan yang tidak
sahih, karena jika premis argumen tersebut bernilai benar, maka
kesimpulannya masih mungkin bernilai salah, yaitu untuk nilai x = 3.
Giere (1984) mencontohkan juga bahwa dari suatu premis-premis yang
bernilai salah akan dapat dihasilkan suatu kesimpulan yang bernilai
salah maupun yang bernilai benar melalui suatu proses penarikan
kesimpulan yang valid berikut ini.
Babi adalah binatang bersayap. (Salah)
Semua binatang bersayap tidak dapat terbang. (Salah)
--------------------------------------------------------------------------
Jadi, babi tidak dapat terbang (Benar)
6
Bulan lebih besar daripada bumi. (Salah)
Bumi lebih besar daripada matahari. (Salah)
--------------------------------------------------------------------------
Jadi, bulan lebih besar daripada matahari (Salah)
KELEBIHAN PENALARAN DEDUKTIF
Pada proses induksi atau penalaran induktif akan didapatkan suatu
pernyataan baru yang bersifat umum (general) yang melebihi kasuskasus
khususnya (knowledge expanding), dan inilah yang diidentifikasi
sebagai suatu kelebihan dari induksi jika dibandingkan dengan deduksi.
Hal ini pulalah yang menjadi kelemahan deduksi. Pada penalaran
deduktif, kesimpulannya tidak pernah melebihi premisnya. Inilah yang
ditengarai menjadi kekurangan deduksi.
Perhatikan sekali lagi contoh induksi berikut:
Mangga manalagi yang masih muda kecut rasanya.
Mangga harum manis yang masih muda kecut rasanya.
Mangga udang yang masih muda kecut rasanya.
Mangga .... yang masih muda kecut rasanya.
------------------------------------------------------------------------
Jadi, semua mangga yang masih muda kecut rasanya.
Kesimpulan di atas bernilai benar karena sampai saat ini belum ada
mangga yang masih muda yang tidak kecut rasanya. Pernyataan itu
akan bernilai salah jika sudah ada ilmuwan yang menghasilkan mangga
yang tidak kecut rasanya meskipun masih muda. Dengan demikian,
hasil yang didapat dari induksi tersebut masih berpeluang untuk
menjadi salah. Sedangkan pada deduksi yang valid atau sahih,
kesimpulan yang didapat diklaim tidak akan pernah salah jika premispremisnya
bernilai benar (truth preserving), sebagaimana ditunjukkan
tadi. Inilah yang diidentifikasi sebagai kelebihan dari deduksi jika
dibandingkan dengan hasil pada proses induksi.

Sampai saat ini, para filsuf sedang memimpikan suatu bentuk argumen
atau penalaran yang dapat menghasilkan pernyataan baru yang bersifat
umum yang melebihi kasus-kasus khususnya (knowledge expanding);
dan hasilnya tidak akan salah jika premis-premisnya bernilai benar
(truth preserving). Menurut Giere (1984:45), impian para filsuf tersebut
tidak akan terlaksana dan manusia dituntut untuk memilih salah satu
sesuai dengan kebutuhannya sebagaimana pernyataannya: “The
philosophers’ dream of finding a form of argument that would be both truth
preserving and knowledge expanding is an impossible dream. You must
choose one or the other. You cannot both.” Pernyataan Giere ini telah
menunjukkan bahwa kedua penalaran itu memiliki kelemahan dan


kekuatannya sendiri-sendiri. Sebagai penutup dapat disimpulkan bahwa
pada penalaran deduktif yang valid, jika premisnya bernilai benar maka
kesimpulannya tidak akan pernah bernilai salah. Namun jika premisnya
bernilai salah maka kesimpulannya bisa bernilai salah dan bisa juga
bernilai salah.

Rabu, 24 Februari 2010

interupsi

INTERUPSI

Kelompok : Muhammad Muchlis
Pitriantoro Apriadi
Muchamad ikbal
Putut R
Januar adi
Muhammad sobirin
Fangky B.





Interupsi
Seperti namanya, interupsi adalah suatu kejadian yang akan menghentikan sementara jalan program saat itu. Dengan interupsi, suatu alur program dapat dihentikan sementara untuk menjalankan suatu subrutin, dan kemudian melanjutkan aliran program secara normal seperti tidak pernah ada interupsi. Subrutin ini yang disebut dengan interrupt handler, dan hanya dijalankan jika terjadi suatu kejadian khusus (event). Kejadian ini bisa berupa timer yang mengalami overflow, penerimaan karakter melalui port serial, mengirimkan karakter melalui port serial, atau salah satu dari dua kejadian eksternal. Mikrokontroler 89C51 bisa dikonfigurasi untuk menangani interupsi yang disebabkan oleh salah satu dari kejadian.
Dengan interupsi ini, dapat dengan mudah dimonitor kejadian-kejadian yang diinginkan. Tanpa interupsi maka proses monitor ini dilakukan manual dengan pengecekan berulang. Proses pengecekan manual ini akan membuat program menjadi panjang dan lebih rumit.
Interupsi dalam teknologi informasi merujuk kepada sebuah permintaan terhadap layanan dari CPU yang dibuat baik secara eksternal oleh sebuah perangkat keras (sebagai contoh: oleh disk drive, atau port I/O) atau secara internal oleh CPU itu sendiri. Interupsi perangkat keras eksternal digunakan untuk beberapa situasi seperti halnya ketika sebuah karakter telah diterima dari sebuah port I/O tertentu dan harus diproses oleh CPU, disk drive yang telah siap untuk mentransfer sekumpulan data, atau system timer yang berdetak. Sementara itu, interupsi perangkat keras internal terjadi ketika sebuah program mencoba sesuatu yang tidak mungkin, seperti halnya mencoba untuk mengakses alamat memori yang tidak ada atau membagi sebuah bilangan dengan angka nol. Interupsi perangkat keras umumnya diberi tingkatannya yang disusun berdasarkan prioritasnya dan tingkat kepentingannya. Tingkatan interupsi tertinggi diberikan kepada sebuah jenis interupsi yang disebut sebagi Non-Maskable Interrupt (NMI), yang mengindikasikan kesalahan yang serius, seperti halnya kerusakan/kegagalan memori atau perangkat lain yang harus dilayani secara langsung oleh prosesor.

Kejadian-kejadian yang Membangkitkan Interupsi
Dalam keluarga 8051, ada beberapa kejadian yang dapat membangkitkan interupsi, yaitu:
1. Timer 0 overflow
2. Timer 1 overflow
3. Penerimaan / Pengiriman data secara serial
4. Kejadian eksternal 0
5. Kejadian eksternal 1
Dengan demikian, perlu dibedakan interupsi yang terjadi karena kejadian-kejadian yang berbeda. Hal ini bisa diwujudkan dengan adanya alamat pasti bagi sebuah rutin interupsi untuk masing-masing interupsi.


Daftar Alamat Rutin Interupsi
Interupsi Flag Alamat Rutin
Eksternal 0 IE0 0003h
Timer 0 TF0 000Bh
Eksternal 1 IE1 0013h
Timer 1 TF1 001Bh
Serial R1/T1 0023h
Dengan referensi tabel di atas, dapat dilihat bahwa jika TIMER0 mengalami overflow (bit TF0 logika 1), maka program utama akan ditunda sementara dan kontrol program akan melompat ke alamat 0003h.
Menyeting Interupsi
Pada saat awal dihidupkan (power on), semua interupsi dimatikan. Jadi, meskipun bit TF0 diset (interupsi timer 0 diaktifkan), mikrokontroler 89C51 tidak akan menjalankan rutin interupsi. Sebuah program harus dibuat dan dijalankan untuk mengaktifkan dan menspesifikasikan interupsi mana yang diinginkan. Hal ini dapat dilakukan dengan mengkonfigurasi SFR IE (Interrupt Enable) yang berada di alamat A8h. Konfigurasi bit-bit SFR IE yang mengatur enable dari konfigurasi interupsi tercantum pada tabel di bawah ini.
Konfigurasi Bit-bit SFR IE
Bit Nama Alamat Fungsi
7 EA AFh Global enable/disable interupsi
6 - AEh Tidak didefinisikan
5 - ADh Tidak didefinisikan
4 ES ACh Enable interupsi serial
3 ET1 ABh Enable interupsi timer 1
2 EX1 AAh Enable interupsi eksternal 1
1 ET0 A9h Enable interupsi timer 0
0 EX0 A8 Enable interupsi eksternal 0
Sebelum semua interupsi dijalankan, bit 7 dari SFR IE harus diset terlebih dahulu. Global enable/disable interupsi ini menyebabkan semua interupsi enable atau disable. Jika bit 7 IE ini dinolkan, tidak akan ada satu interupsi pun yang terjadi. Prosedur yang benar adalah dengan mengeset jenis interupsi yang diinginkan dan kemudian mengeset bit 7 IE, barulah interupsi akan berjalan dengan baik.
Prioritas Interupsi
Mikrokontroler 89C51 menawarkan dua macam prioritas interupsi, yaitu prioritas tinggi dan prioritas rendah. Dengan demikian, dapat ditentukan suatu interupsi memiliki prioritas pengerjaan lebih dahulu daripada interupsi-interupsi yang lain yang bekerja saat itu. Sebagai contoh, interupsi timer 1 diaktifkan untuk secara otomatis memanggil sebuah rutin saat timer 1 mengalami kondisi overflow. Di samping itu, interupsi serial juga diaktifkan untuk memanggil suatu rutin saat ada sebuah karakter diterima dalam port serial. Dalam kasus ini diinginkan bahwa penerimaan karakter dari port serial lebih penting daripada interupsi timer. Jadi seandainya interupsi timer 1 sedang bekerja dan terjadi penerimaan karakter, maka rutin interupsi timer 1 tersebut akan diinterupsi oleh interupsi port serial dan akan ditunda sementara untuk mengerjakan rutin interupsi port serial ini. Setelah pengerjaan rutin interupsi serial selesai, maka kontrol program akan kembali ke rutin interupsi timer 1. Yang dikerjakan di sini adalah mengeset prioritas interupsi serial lebih tinggi daripada prioritas interupsi timer. Prioritas interupsi ini dikontrol oleh SFR IP dengan alamat B8h yang memiliki konfigurasi bit-bit sebagaimana tercantum dalam tabel di bawah ini.
Konfigurasi Bit-bit SFR IP
Bit Nama Alamat Fungsi
7 - Tidak terdefinisi
6 - Tidak terdefinisi
5 - Tidak terdefinisi
4 PS BCh Prioritas interupsi serial
3 PT1 BBh Prioritas interupsi timer 1
2 PX1 BAh Prioritas interupsi eksternal 1
1 PT0 B9h Prioritas interupsi timer 0
0 PX0 B8h Prioritas interupsi eksternal 0
Pemakaian prioritas interupsi di atas memiliki beberapa peraturan yang tercantum di bawah ini:
1. Tidak ada interupsi yang meninterupsi interupsi prioritas tinggi.
2. Interupsi prioritas tinggi boleh menginterupsi interupsi prioritas rendah.
3. Interupsi prioritas rendah boleh terjadi jika tidak ada interupsi lain yang sedang dijalankan.
4. Jika dua interupsi terjadi pada waktu bersamaan, interupsi yang memiliki prioritas lebih tinggi akan dikerjakan terlebih dahulu. Jika keduanya memiliki prioritas sama, maka interupsi yang berada pada urutan polling akan dikerjakan terlebih dahulu.
Mikrokontroler 89C51 secara otomatis akan menguji apakah sebuah interupsi bisa terjadi setelah setiap instruksi dikerjakan. Pengecekan ini mengikuti suatu alur yang disebut dengan Polling Sequence dengan urutan:
1. Interupsi Eksternal 0
2. Interupsi Timer 0
3. Interupsi Eksternal 1
4. Interupsi Timer 1
5. Interupsi serial
Ini berarti jika sebuah interupsi serial terjadi pada waktu bersamaan dengan interupsi eksternal 0, maka interupsi eksternal 0 akan dikerjakan terlebih dahulu dan interupsi serial baru akan dikerjakan setelah pengerjaan rutin interupsi eksternal 0 selesai dilakukan.

Selasa, 16 Februari 2010

SAP (sistem waktu nyata)

Sistem Waktu – Nyata (Real - Time) :
Teori dan Implementasinya dalam Bahasa C dan Ada
Penulis : BAMBANG SRIDADI, Ir., MSc.
Penerbit : INFORMATIKA, Bandung, 2010.
Sistem waktu – nyata (real – time system) begitu pesat berkembang dan aplikasinya
telah meluas di berbagai bidang. Mesin ATM (Automatic Teller Machine) bank, sistem
informasi saham, pemesanan tiket pesawat terbang, beberapa mobil berteknologi EFI
(Electronic Fuel Injection) dan VVT-i (Variable Valve Timing with Intelligence), sistem
jajak pendapat pemilu capres / cawapres merupakan beberapa contoh praktis sistem waktu -
nyata yang kita jumpai setiap hari. Pengalaman penulis dengan sistem waktu - nyata
dimulai pada tahun 1988 ketika mulai mengenal dan belajar bahasa komputer Ada,
kemudian berlanjut dengan ikut serta dalam pengembangan simulasi flight control fly - by -
wire (FbW) pesawat terbang N250 menggunakan sistem operasi RTU (Real – Time UNIX)
(1995), simulasi olah yudha (war game) (2000), simulasi helikopter Sikorsky UH60 Black
Hawk (2003), dan simulasi pesawat terbang CN235 pada sistem operasi waktu – nyata
VxWorks (2004), serta simulasi pesawat tempur Bae Mk128 Hawk yang ditulis dalam
bahasa komputer Ada (2007).
Untuk mengenali dan mempelajari sistem waktu - nyata, pembaca bisa membaca buku
ini. Buku ini ditulis dengan maksud agar dapat digunakan oleh siapa saja, dengan harapan
dapat membantu mempermudah pembaca dalam memahami sistem waktu - nyata yang
memiliki lingkup sangat luas. Bermacam – macam topik tentang sistem waktu - nyata
beserta aplikasinya dibahas dalam buku ini. Selain itu, materi sistem waktu - nyata juga
dilengkapi dengan contoh implementasi program menggunakan bahasa komputer C / C++
dan Ada yang kiranya akan banyak menolong pembaca dalam memahami materi. Disini
penulis menggunakan berbagai kompiler seperti Microsoft Visual C++, Borland Turbo
C++ dan GNAT (GNU Ada Compiler).
Di Indonesia, materi sistem waktu – nyata diberikan di program studi Teknik
Informatika, Teknik Komputer, Teknik Elektro, Teknik Fisika, dan lain – lain. Sebagai
prasyarat untuk mempelajari sistem waktu - nyata, pembaca disarankan sudah memahami
organisasi dan arsitektur komputer, sistem operasi, rekayasa perangkat - lunak, bahasa
pemrograman C / C++ dan Ada. Penulis memilih implementasi dengan menggunakan
bahasa pemrograman C / C++ dan Ada, karena disamping bahasa C dan C++ serta Ada
mendukung prinsip sumber terbuka (open source), juga pembaca dapat mempelajari lebih
dalam bahkan dapat mengembangkan penelitian sendiri algoritma – algoritma dan prosedur
- prosedur yang ada dalam implementasi sistem waktu - nyata.



Disebut juga dengan Sistem waktu nyata. Sistem yang harus menghasilkan respon yang tepat dalam batas waktu yang telah ditentukan. Jika respon komputer melewati batas waktu tersebut, maka terjadi degradasi performansi atau kegagalan sistem. Sebuah Real time system adalah sistem yang kebenarannya secara logis didasarkan pada kebenaran hasil-hasil keluaran sistem dan ketepatan waktu hasil-hasil tersebut dikeluarkan. Aplikasi penggunaan sistem seperti ini adalah untuk memantau dan mengontrol peralatan seperti motor, assembly line, teleskop, atau instrumen lainnya. Peralatan telekomunikasi dan jaringan komputer biasanya juga membutuhkan pengendalian secara Real time.
Berdasarkan batasan waktu yang dimilikinya, Real time system ini dibagi atas:
1.Hard Real time
2. Soft Real time
3. Firm Real time
Komponen dari Real time system ini adalah:
1. Perangkat keras,
2. Sistem Operasi Real time,
3. Bahasa Pemrograman Real time,
4. Sistem Komunikasi.




































Sistem Waktu Nyata
Pada sub bab ini, kami akan mencoba sedikit menggambarkan fasilitas penjadualan yang dibutuhkan untuk mendukung komputasi real-time dengan bantuan sistem komputer.
Suatu sistem komputasi dinamakan real-time jika sistem tersebut dapat mendukung eksekusi program/aplikasi dengan waktu yang memiliki batasan. Dengan kata lain, sistem real-time harus memenuhi kondisi berikut:
• Batasan waktu: memenuhi deadline, artinya bahwa aplikasi harus menyelesaikan tugasnya dalam waktu yang telah dibatasi.
• Dapat diprediksi: artinya bahwa sistem harus bereaksi terhadap semua kemungkinan kejadian selama kejadian tersebut dapat diprediksi.
• Proses bersamaan: artinya jika ada beberapa proses yang terjadi bersamaan, maka semua deadline nya harus terpenuhi.
Komputasi real-time ada dua jenis, yaitu sistem Hard Real-time dan sistem Soft Real-time.
Sistem Hard Real-Time
Sistem hard real-time dibutuhkan untuk menyelesaikan critical task dengan jaminan waktu tertentu. Jika kebutuhan waktu tidak terpenuhi, maka aplikasi akan gagal. Dalam definisi lain disebutkan bahwa kontrol sistem hard real-time dapat mentoleransi keterlambatan tidak lebih dari 100 mikro detik. Secara umum, sebuah proses di kirim dengan sebuah pernyataan jumlah waktu dimana dibutuhkan untuk menyelesaikan atau menjalankan I/O. Kemudian penjadual dapat menjamin proses untuk selesai atau menolak permintaan karena tidak mungkin dilakukan. Mekanisme ini dikenal dengan resource reservation. Oleh karena itu setiap operasi harus dijamin dengan waktu maksimum. Pemberian jaminan seperti ini tidak dapat dilakukan dalam sistem dengan secondary storage atau virtual memory, karena sistem seperti ini tidak dapat meramalkan waktu yang dibutuhkan untuk mengeksekusi suatu proses.
Contoh dalam kehidupan sehari-hari adalah pada sistem pengontrol pesawat terbang. Dalam hal ini, keterlambatan sama sekali tidak boleh terjadi, karena dapat berakibat tidak terkontrolnya pesawat terbang. Nyawa penumpang yang ada dalam pesawat tergantung dari sistem ini, karena jika sistem pengontrol tidak dapat merespon tepat waktu, maka dapat menyebabkan kecelakaan yang merenggut korban jiwa.
Sistem Soft Real-Time
Komputasi soft real-time memiliki sedikit kelonggaran. Dalam sistem ini, proses yang kritis menerima prioritas lebih daripada yang lain. Walaupun menambah fungsi soft real-time ke sistem time sharing mungkin akan mengakibatkan ketidakadilan pembagian sumber daya dan mengakibatkan delay yang lebih lama, atau mungkin menyebabkan starvation, hasilnya adalah tujuan secara umum sistem yang dapat mendukung multimedia, grafik berkecepatan tinggi, dan variasi tugas yang tidak dapat diterima di lingkungan yang tidak mendukunng komputasi soft real-time.
Contoh penerapan sistem ini dalam kehidupan sehari-hari adalah pada alat penjual/pelayan otomatis. Jika mesin yang menggunakan sistem ini telah lama digunakan, maka mesin tersebut dapat mengalami penurunan kualitas, misalnya waktu pelayanannya menjadi lebih lambat dibandingkan ketika masih baru. Keterlambatan pada sistem ini tidak menyebabkan kecelakaan atau akibat fatal lainnya, melainkan hanya menyebabkan kerugian keuangan saja. Jika pelayanan mesin menjadi lambat, maka para pengguna dapat saja merasa tidak puas dan akhirnya dapat menurunkan pendapatan pemilik mesin.
Untuk lebih memahami tentang perbedaan kedua sistem ini dapat diperhatikan dari diagram dibawah ini.
Gambar 3-25. Grafik Hard Real-Time

Sumber: http://www.ncst.ernet.in/education/pgdst/coosfac/slides/rtos.pdf per Desember 2003.
Gambar 3-26. Grafik Soft Real-Time

Sumber: http://www.ncst.ernet.in/education/pgdst/coosfac/slides/rtos.pdf; per Desember 2003.
Setelah batas waktu yang diberikan telah habis, pada sistem hard real-time, aplikasi yang dijalankan langsung dihentikan. Akan tetapi, pada sistem soft real-time, aplikasi yang telah habis masa waktu pengerjaan tugasnya, dihentikan secara bertahap atau dengan kata lain masih diberikan toleransi waktu.
Mengimplementasikan fungsi soft real time membutuhkan design yang hati-hati dan aspek yang berkaitan dengan sistem operasi. Pertama, sistem harus punya prioritas penjadualan, dan proses real-time harus memiliki prioritas tertinggi, tidak melampaui waktu, walaupun prioritas non real time dapat terjadi. Kedua, dispatch latency harus lebih kecil. Semakin kecil latency, semakin cepat real time proses mengeksekusi.
Untuk menjaga dispatch tetap rendah, kita butuh agar system call untuk preemptible. Ada beberapa cara untuk mencapai tujuan ini. Pertama adalah dengan memasukkan preemption points di durasi system call yang lama, yang memeriksa apakah prioritas utama butuh untuk dieksekusi. Jika sudah, maka contex switch mengambil alih, ketika high priority proses selesai, proses yang diinterupsi meneruskan dengan system call. Points premption dapat diganti hanya di lokasi yang aman di kernel dimana kernel struktur tidak dapat dimodifikasi.
Metoda yang lain adalah dengan membuat semua kernel preemptible. Karena operasi yang benar dapat dijamin, semua struktur data kernel harus diproteksi dengan mekanisme sinkronisasi. Dengan metode ini, kernel dapat selalu di preemptible, karena setiap data kernel yang sedang di update diproteksi dengan pemberian prioritas yang tinggi. Jika ada proses dengan prioritas tinggi ingin membaca atau memodifikasi data kernel yang sedang dijalankan, prioritas yang tinggi harus menunggu sampai proses dengan prioritas rendah tersebut selesai. Situasi seperti ini dikenal dengan priority inversion. Kenyataanya, serangkaian proses dapat saja mengakses sumber daya yang sedang dibutuhkan oleh proses yang lebih tinggi prioritasnya. Masalah ini dapat diatasi dengan priority-inheritance protocol, yaitu semua proses yang sedang mengakses sumber daya mendapat prioritas tinggi sampai selesai menggunakan sumber daya. Setelah selesai, prioritas proses ini dikembalikan menjadi seperti semula.
Rangkuman
Proses
Sebuah proses adalah suatu program yang sedang dieksekusi. Proses lebih dari sebuah kode program tetapi juga mencakup program counter, stack, dan sebuah data section. Dalam pengeksekusiannya sebuah proses juga memiliki status yang mencerminkan keadaan dari proses tersebut. Status dari proses dapat berubah-ubah setiap saat sesuai dengan kondisinya. Status tersebut mungkin menjadi satu dari lima status berikut: new, ready, running, waiting, atau terminated. Setiap proses juga direpresentasikan oleh Proces Control Block (PCB) yang menyimpan segala informasi yang berkaitan dengan proses tersebut.
Sebuah proses, ketika sedang tidak dieksekusi, ditempatkan pada antrian yang sama. Disini ada dua kelas besar dari antrian dalam sebuah sistem operasi: permintaan antrian I/O dan ready queue. Ready queue memuat semua proses yang siap untuk dieksekusi dan yang sedang menunggu untuk dijalankan pada CPU. PCB dapat digunakan untuk mencatat sebuah ready queue. Penjadualan Long-term adalah pilihan dari proses-proses untuk diberi ijin menjalankan CPU. Normalnya, penjadualan long-term memiliki pengaruh yang sangat besar bagi penempatan sumber daya, terutama managemen memori. Penjadualan short-term adalah pilihan dari satu proses dari ready queue.
Proses-proses pada sistem dapat dieksekusi secara berkelanjutan. Disini ada beberapa alasan mengapa proses tersebut dapat dieksekusi secara berkelanjutan: pembagian informasi, penambahan kecepatan komputasi, modularitas, dan kenyamanan atau kemudahan. Eksekusi secara berkelanjutan menyediakan sebuah mekanisme bagi proses pembuatan dan penghapusan.
Pengeksekusian proses-proses pada sistem operasi mungkin dapat digolongkan menjadi proses yang mandiri dan kooperasi. Proses kooperasi harus memiliki beberapa alat untuk mendukung komunikasi antara satu dengan yang lainnya. Prinsipnya adalah ada dua rencana komplementer komunikasi: pembagian memori dan sistem pesan. Metode pembagian memori menyediakan proses komunikasi untuk berbagi beberapa variabel. Proses-proses tersebut diharapkan dapat saling melakukan tukar-menukar informasi seputar pengguna variabel yang terbagi ini. Pada sistem pembagian memori, tanggung jawab bagi penyedia komunikasi terjadi dengan programmer aplikasi; sistem operasi harus menyediakan hanya pembagian memori saja. Metode sistem pesan mengijinkan proses-proses untuk tukar-menukar pesan. Tanggung jawab bagi penyedia komunikasi ini terjadi dengan sistem operasi tersebut.
Thread
Threadadalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. Thread tingkat pengguna adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. Thread tingkat pengguna secara tipikal dikelola oleh sebuah library thread di ruang pengguna. Thread tingkat kernel didukung dan dikelola oleh kernel sistem operasi. Secara umum, thread tingkat pengguna lebih cepat dalam pembuatan dan pengelolaan dari pada kernel thread. Ada 3 perbedaan tipe dari model yang berhubungan dengan pengguna dan kernel thread yaitu one-to one model, many-to-one model, many-to-many model.
• Model many to one: memetakan beberapa pengguna level thread hanya ke satu buah kernel thread.
• Model one to one: memetakan setiap thread pengguna ke dalam satu kernel thread berakhir.
• Model many to many: mengijinkan pengembang untuk membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Thread cancellation adalah tugas untuk memberhentikan thread sebelum ia menyelesaikan tugasnya. Thread yang akan diberhentikan disebut target thread
Pemberhentian target thread dapat terjadi melalui 2 cara yang berbeda
• Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.
• Deffered cancellation: target thread secara periodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.
Thread Pools adalah cara kerja dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools.
Keuntungan Thread Pools
• Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat.
• Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread yang berjalan secara concurrent
Thread di Linux dianggap sebagai task. System call yang dipakai antara lain fork dan clone. Perbedaan antara keduanya adalah clone selain dapat membuat duplikat dari proses induknya seperti fork, juga dapat berbagi ruang alamat yang sama antara proses induk dengan proses anak. Seberapa besar kedua proses tersebut dapat berbagi tergantung banyaknya flag yang ditandai.
Java adalah unik karena telah mendukung thread didalam tingkatan bahasanya. Semua program Java sedikitnya terdiri dari kontrol sebuah thread tunggal dan mempermudah membuat kontrol untuk multiple thread dengan program yang sama. JAVA juga menyediakan library berupa API untuk membuat thread, termasuk method untuk suspend dan resume suatu thread, agar thread tidur untuk jangka waktu tertentu dan menghentikan thread yang berjalan. Sebuah java thread juga mempunyai 4 kemungkinan keadaan, diantaranya: New, Runnable, Blocked dan Dead. Perbedaan API untuk mengelola thread seringkali mengganti keadaan thread itu sendiri.
Penjadualan CPU
Penjadualan CPU adalah pemilihan proses dari antrian ready untuk dapat dieksekusi. Algoritma yang digunakan dalam penjadulan CPU ada bermacam-macam. Diantaranya adalah First Come Firsrt Serve (FCFS), merupakan algoritma sederhana dimana proses yang datang duluan maka dia yang dieksekusi pertama kalinya. Algoritma lainnya adalah Shorthest Job First (SJF), yaitu penjadulan CPU dimana proses yang paling pendek dieksekusi terlebih dahulu.
Kelemahan algoritma SJF adalah tidak dapat menghindari starvation. Untuk itu diciptakan algoritma Round Robin (RR). Penjadulan CPU dengan Round Robin adalah membagi proses berdasarkan waktu tertentu yaitu waktu quantum q. Setelah proses menjalankan eksekusi selama q satuan waktu maka akan digantikan oleh proses yang lain. Permasalahannya adalah bila waktu quantumnya besar sedang proses hanya membutuhkan waktu sedikit maka akan membuang waktu. Sedang bila waktu quantum kecil maka akan memakan waktu saat context-switch.
Penjadualan FCFS adalah nonpreemptive yaitu tidak dapat diinterupsi sebelum proses dieksekusi seluruhnya. Penjadualan RR adalah preemtive yaitu dapat dieksekusi saat prosesnya masih dieksekusi. Sedangkan penjadualan SJF dapat berupa nonpreemtive dan preemtive.

Real Time Software
Posted by errissya rasywir on November 5, 2009
Program-program yang memonitor, menganalisis, mengontrol kejadian dunia nyatapada saat terjadinya dalam rentang waktu yang tetap melalui jangkauan I milidetik sampai 1 menit.
Elemen dari Real Time Software:
• Komponen pengumpulan data, yang mengumpulkan dan menformatinformasi dari lingkungan ekternal.
• Komponen analisa, yang mentransformasikan informasi yang diperlukan atau aplikasi tersebut.
• Komponen kontrol/output, yang memberikan respon terhadap lingkungan eksternal.
• Komponen monitoring, yang mengkoordinasi komponen-komponen lainnya ,sehingga bisa memberikan respon yang Real Time (biasanya antara 1 milidetik/1 menit)

Komponen Sistem Waktu-Nyata :
1. Perangkat keras
2. Sistem operasi waktu-nyata
3. Bahasa pemrograman waktu-nyata
4. Sistem komunikasi Perangkat keras komputer
Tiga karakteristik yang membedakan antara pengembangan perangkat lunak real-time dari kerja rekayasa perangkat lunak yang lain:
• Desain system real-time dibatasi oleh sumber daya, sumber utama dari real-time adalah waktu. Untuk tambahan, sumber daya system ysng lsin, seperti ukuran memori, dapat dipertukarkan dengan waktu untuk mencapai sasaran dari system.
• System real-time padat, tetapi kompleks. Sebenarnya system real-time yang memiliki persentase kode yang kecil inilah yang paling kompleks(dari suatu titik pandang algoritmik).
• System real-time sering bekerja tanpa kehadiran pemakai manusia. Sistem real-time harus dapat mendeteksi masalah-masalah yang menyebabkan kegagalan dan secara otomatis mengatasi masalah-masalah tersebut sebelum terjadi kerusakan.


SISTEM REAL-TIME
Sistem resl-time memunculkan beberapa aksi sebagai respon terhadap kejadian-kejadian eksternal. Unutk melakukan fungsi tersebut , sistem melakukan akuisisi data dengan kecepatan tinggi dan kontrol dibawah batasan waktu dan reliabilitas ysng ketat.
Kinerja real-time ditentukan terutama oleh :
1. waktu respon.
Waktu respon sistem adalah waktu dimana sebuah sistem harus mendeteksi sebuah kejadian eksternal atau internal dan merespon dengan sebuah aksi. Kejadian yang menentukan respon adalah pemrosesan informasi yang melibatkan algoritma yang kompleks.

1. Laju transfer
Laju transfer data menunjukkan seberapa cepat data serial atau paralel, dan data analog dan digital harus digerakkan masuk atau keluar dari sistem.

PENANGANAN INTERUPSI
Karakterisitik untuk membedakan sistem reak-time dari tipe yang lain adalah penanganan interupsi. Sistem real-time harus merespon ke stimulus eksternal – interupsi- denagn waktu yang telah ditentukan oleh dunia eksternal. Karena ada banyak stimulus(interupsi) maka prioritas dan interupsi prioritas harus dibangun. Jadi, tugas yang paling penting harus dilayani dalam batasan waktu yang telah ditentukan tanpa memperhatikan kejadian yang lain.


Karakteristik Sistem Waktu Nyata
Timeliness – sistem waktu nyata merupakan fungsi dari waktu. Berkaitan dengan data transfer rate dan throughput. Terdiri antara lain dari :
• waktu service – waktu netto yang dipergunakan untuk merespons satu masukan yang diberikan
• Waktu latency – interval antara waktu kemunculan input dengan waktu mulai diberikan service terhadap input tersebut.
• Dynamic internal structure – kebanyakan sistem waktu nyata dibutuhkan untuk memantau lingkungan yang tergantung pada waktu. Ini mengakibatkan komponen sistem waktu nyata
harus dapat melakukan-rekonfigurasi dinamis untuk menyesuaikan dengan kondisi ekstemal lingkungan (yang dinamis juga). Dengan keterbatasan-:sumber (kapasitas prosesor, memori) maka biasanya diperlukan pembentukan dan pemusnahani komponen-komponen perangkat lunak secara: dinamis pula (otomatis)
• Reactiveness – kondisi yang secara terus menerus dapat berespons terhadap kejadian yang beragam dimana urutan dan waktu kedatangannya tidak selalu dapat diprediksi
• Concurrency – pada setiap saat, multiple simultaneous kegiatan harus dapat dilaksanakan dalam sistem waktu nyata. Aspek synchronous , asynchronous ,communication, interrupt handling dan locking menjadi bagian penting dalam menyelesaikan masalah konkurensi ini.
• Distrbution – kondisi yang memungkinkan untuk melakukan multiple computing sites cooperatively untuk menyelesaikan satu fungsi yang umum

YANG MO INFO