Minggu, 08 November 2009

Maksimalisasi kalkulator dengan listing program


Membuat kalkulator mini, memerlukan listing program, dan untuk itu listing programnya harus kita pahami dulu, untuk apa kode program itu dibuat, maka dari itu saya akan coba menjelaskan semampu saya dalam memahami listing program pada visual studio 2008, untuk memudahkan mengingat, yang pertama adalah :

Pada gambar disamping komponen yang diperlukan untuk membuat tampilan inteface seperti ini yang kita pakai adalah :

a. 19 belas button yang kita sudah ganti namanya, seperti button1 diganti namanya

menjadi tombolangka1, sampai button 19 menjadi tombolhasil yang bergamabar

=, button 17 dengan nama tombolback.

b. 1 buah textbox yang juga kita ganti namanya menjadi texthasil.

1. Variabel adalah tempat menampung data sementara, contoh variabel dapat anda lihat pada potongan program berikut :

Public class adalah area umum atau area luar yg bisa dipakai oleh smua komponen, juga sering disebut sebagai form.

Berikut ini adalah beberapa variabel yang dipakai untuk kode program kalkulator ini, dengan beberapa tipe data, tipe data sangat erat hubungannya dengan variabel, karena tipe data menentukan range data yang dilayaninya dan memori yang digunkannya.Dalam VS 2008 ada beberapa contoh tipe data diantaranya adalah :

Double Memory yang dipakai 8Byte

String Memory yang dipakai 1Byte per karakter

Integer Memory yang dipakai 2Byte

    a. Oldperintah adalah tempat menyimpan perintah sebelumnya misal 1 + 2 - 1 artinya hasil dari 1+2 itu disimpan pada tombol tambah dengan variabel old perintah.

    b. var1 untuk menampung angka pertama dalam bentuk double, dan var2 menmpung angka kedua juga dengan tipe data double.

    c. Variabel xFirst hanya menampung data true or false dengan tipe data boolean.

    d. Varabel xHasil akan menyimpan data dari hasil yang kita inginkan.

    e. Variabel perintah adalah tempat menyimpan apa saja yang ingin kita lakukan seperti memasukkan operator +, -, *, dan /.

    2. Berikutnya adalah keterangan untuk pemakaian private sub, artinya prosedur ini hanya dikenali pada skup text ini saja dengan diakhiri denga end sub.

    ByVal berfungsi sebagai untuk merubah nilai yang ada di dalam variabel xNilai

    sebagai string untuk mengurangi kesalahan

    Prosedur ini berfungsi untuk menampilkan ketika tombol yang kita klik ditombol kalkulator dan ditampilkan di textbox yang ada, dengan proses pencabangan if. Dimulai dengan if dan diakhiri dengan end if. Texthasil.focus() berarti kursor yang ada akan terfokus dan akan diam di textbox hasil. Karena kita membuat prosedur private sub maka kita juga akan mengakhiri dengan end sub.

    3. Setelah membuat prosedur tampil kita juga harus membuat prosedur proses yang berfungsi untuk memroses tindakan / action kita terhadap program kalkulator ini, dengan kode program seperti berikut :

    a. Dengan memakai proses pencabangan if dan case, yang diawali dengan if dan dilanjutkan dengan pencabangan select case, dan jangan lupa untuk memastikan sedah membuat end if dan end select. Case yang pertama adalah jika +, -, x, / bernilai true maka perintah tersebut akan disimpan pada variabel xperintah, lalu ditampilkan pada texthasil dengan perintah CDbl yang berarti convert to double, untuk menghasilkan angka yang kita inginkan.tapi jika oldperintah tidak sama dengan yang ditandai dengan <> maka dilanjutkan dengan if oldperintah jika +, -, x, / maka text hasil akan memroses var1 dan xhasil, jika mengklik tombol backspace maka akan menghapus 1 karakter kekiri.

    b. Perintah C adalah untuk mengosongkan textbox hasil.

    c. Dan untuk case “=” adalah untuk menhasilkan dari var1 dan var2.

    d. Jangan lupa menambahkan end sub untuk mengakhiri prosedur private proses yang

    kita buat.

    4. Setelah itu kita akan memanggil prosedur yang sudah kita buat tadi. Dengan cara mengetikkan nama prosedur yang kita buat dengan nama tampil.

    Untuk keterangan private sub dan selanjutnya memang default dari vs 2008 sudah menyediakannya, untuk mendapatkannya cukup dengan kembali ke desain formnya lalu klik 2x di button yang akan kita tampilkan, contoh diatas adalah menampilkan tombol angka 1. lakukan hal yang sama untuk tombol yang lain yaitu 2-000, dengan hanya menambahkan tampil(“2”), tampil(“3”), …tampil(“000”).

    5. Bukan hanya prosedur tampil yang akan kita panggil prosedur proses pun kita harus panggil dengan cara : mengetikkan nama prosedur proses.

    Hampir sama dengan prosedur tampil, yaitu hanya menambahkan kalimat proses (”+”) untuk proses penjumlahan, dan selanjutnya anda hanya tinggal menambahkan operator yang lain seperti -, x, dan /. Semua sudah dimudahkan di VS 2008 dengan mengklik tombol tambah, kurang, kali dan bagi, kita cukup mengetikkan perintah tadi didalam private sub yang sudah ada.

    Selain itu untuk tombol backspace (dalam program disingkay ’back’ saja), c, dan = perintah yang kita berikan sama denagn ke empat tombol operator itu, contohnya seperti ini :



    Demikanlah penjelasan singkat saya tentang memaksimalkan program kalkulator dengan listing program yang ada, saya harap penjelasan yang saya berikan dapat membantu anda, dan apabila ada kekurangan saya mohon maaf karna saya sudah mencoba memberikan yang terbaik.GBU


Selasa, 26 Mei 2009

PENGERTIAN DEADLOCK

Deadlock secara harfiah adalah kebuntuan. Di dalam sistem operasi berarti suatu kondisi di mana sekumpulan proses tidak dapat berjalan kembali atau tidak adanya komunikasi antar proses. Definisi lainnya yaitu sekumpulan proses yang terblok yang tiap proses tersebut memegang sumber daya dan menunggu
untuk mendapatkan sumber daya yang dipegang oleh proses di dalam kumpulan tersebut.
IlustrasiDeadlock
Penyebab utama terjadinya deadlock adalah terbatasnya sumber daya yang akan digunakan oleh proses-proses. Tiap proses berkompetisi untuk memperebutkan sumber daya yang ada. Jadi deadlock berhubungan erat dengan tersedianya sumber daya dari komputer.
Penyebab utama terjadinya deadlock
adalah terbatasnya sumber daya yang akan digunakan oleh proses-proses. Tiap proses berkompetisi untuk memperebutkan sumber daya yang ada. Jadideadlock berhubungan erat dengan tersedianya sumber daya dari
komputer.
Karakteristik Deadlock
Menurut Coffman(1971) ada empat kondisi yang dapat menyebabkan terjadinya deadloock. Keempat kondisi tersebut tidak dapat berdiri sendiri, saling mendukung.
1. Mutual Eksklusif: hanya ada satu proses yang bisa menggunakan sumber daya tersebut. Jika ada proses lain yang meminta sumber daya tersebut, maka proses itu harus menunggu sampai sumber daya dilepaskan.
2. Memegang dan Menunggu: proses yang meminta sumber daya sudah memegang sumber daya lainnya(meminta sumber daya tambahan).
3. Tidak ada Preemption: sumber daya yang sudah dialokasikan untuk sebuah proses tidak bisa diminta oleh proses lain. Sumber daya hanya bisa dilepaskan secara sukarela atau setelah proses tersebut selesai menggunakannya.
4. Circular Wait(menunggu berputar): kondisi seperti rantai yaitu saling menunggu smber daya yang dipakai oleh proses yang menunggu sumber daya tersebut.
Method untuk Menangani Deadlock
Pada prinsipnya kita dapat menangani deadlock dengan beberapa cara:
1. Menggunakan protokol untuk pencegahan atau penghindaran deadlock, memastikan bahwa sistem tidak akan memasuki kondisi deadlock.
2. Kita bisa mendeteksi terjadinya deadlock lalu memperbaiki.
3. Kita juga bisa mengabaikan deadlock, hal ini dilakukan pada sistem operasi berbasis UNIX.

Untuk memastikan sistem tidak memasuki deadlock, sistem dapat menggunakan pencegahan deadlock atau penghindaran deadlock. Penghindaran deadlock membutuhkan informasi tentang sumber daya yang mana yang akan suatu proses meminta dan berapa lama akan digunakan. Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau tidak. Hal ini disebabkan oleh keberadaan sumber daya, apakah ia sedang digunakan oleh proses lain atau tidak. Jika sebuah sistem tidak memastikan deadlock akan terjadi, dan juga tidak didukung dengan pendeteksian deadlock serta pencegahannya, maka kita akan sampai pada kondisi deadlock yang dapat berpengaruh terhadap performance system karena sumber daya
tidak dapat digunakan oleh proses sehingga proses-proses yang lain juga terganggu. Akhirnya sistem akan berhenti dan harus direstart.

Pencegahan Deadlock
Pencegahannya sebagai berikut:
1. Masalah Mutual Eksklusif
Kondisi ini tidak dapat dilarang, jika aksesnya perlu bersifat spesial untuk satu proses,maka hal ini harus didukung oleh kemampuan sistem operasi. Jadi diusahakan agar tidak menggunakan kondisi spesial tersebut sehingga sedapat mungkin deadlock dapat dihindari.
2. Masalah Kondisi Menunggu dan Memegang Penanggulangan deadlock dari kondisi ini lebih baik dan
menjanjikan, asalkan kita dapat memegang sumber daya untuk menunggu sumber daya lain, kita dapat mencegah deadlock. Caranya ialah dengan meminta semua sumber daya yang ia butuhkan sebelum
proses berjalan. Tetapi masalahnya sebagian proses tidak mengetahui keperluannya sebelum ia berjalan. Jadi untuk mengatasi hal ini, kita dapat menggunakan algoritma bankir. Sistem operasi atau sebuah protokol mengatur hal ini. Hasil yang dapat terjadi adalah sumber daya lebih harus dispesifikasikan dan kelaparan sumber daya, atau proses yang membutuhkan sumber daya yang banyak harus menunggu sekian lama untuk mendapatkan sumber daya yang ia butuhkan.
3. Masalah tidak preemption
Hal ketiga ialah jangan sampai ada preemption pada sumberv daya yang telah dialokasikan. Untuk memastikan hal ini, kita dapat menggunakan protocol. Jadi jika sebuah proses meminta sumber daya yang tidak dapat ia penuhi saat itu juga, maka proses mengalami preempted. Dengan kata lain ada sumber daya
dilepaskan dan diberikan ke proses yang menunggu, dan proses itu akan menunggu sampai kebutuhan sumber dayanya dipenuhi. Cara lain yaitu dengan mengecek apakah sumber daya yang dicari proses tersedia atau tidak. Jika ada maka langsung dialokasikan tetapi jika tidak maka kita cek apakah ada proses lain yang sedang menunggu sumber daya juga. Jika ya maka kita ambil sumber daya dari proses yang sedang menunggu tersebut dan memberikan kepada proses yang meminta sumber daya tersebut. Jika tidak tersedia juga maka proses tersebut harus menunggu. Dalam menunggu beberapa dari sumber dayanya dapat saja dipreempted jika ada proses yang memintanya. Cara ini efektif untuk proses yang menyimpan dalam memory atau register.
4. Masalah lingkaran tunggu
Masalah ini dapat ditangani oleh sebuah protocol yang menjaga agar sebuah proses tidak membuat lingkaran sikus yang dapat mengakibatkan deadlock dengan cara memberikan penomoran kepada sumber daya, dan bila suatu proses meminta sumber daya lagi maka ia hanya dapat meminta sumber daya yang nomornya lebih tinggi dari yang ia minta sebelumnya.

Penghindaran Deadlock
Algoritma Bankir
Menurut Djikstra(1965) algoritma penjadwalan dapat menghindari deadlock dan algoritma penjadwalan tersebut dikenal dengan algoritma bankir. Algoritma ini dapat digambarkan, ada seorang bankir yang akan meminjamkan kepada peminjam-peminjamnya. Setiap peminjam memberikan batas pinjaman maksimum. Tentu saja bankir tahu bahwa peminjam tidak akan meminjam dana maksimum secara langsung melainkan bertahap. Bankir memprioritaskan kepada peminjam yang meminjam dana lebih banyak, sedangkan yang lain disuruh menunggu hingga peminjam yang lebih besar mengembalikan dananya, baru setelah itu ia
meminjamkan kepada peminjam yang lain. Jadi algoritma bankir disini mempertimbangkan apakah
permintaan proses sesuai dengan jumlah sumber daya yang ada dan sekaligus memperkirakan jumlah sumber daya yang mungkin diminta lagi. Jangan sampai ketika ada proses yang meminta sumber daya tetapi sumber dayanya habis atau tidak ada lagi jika tidak maka akan terjadi deadlock.
Secara umum algoritma bankir dibagi menjadi 4 struktur data:
1. Tersedia: jumlah sumber daya yang tersedia
2. Alokasi: jumlah sumber daya yang dialokasikan untuk setiap proses
3. Maksimum: jumlah permintaan sumber daya oleh proses
4. Kebutuhan: maksimum-alokasi(sisa sumber daya yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan)

Pemulihan Deadlock
1. Terminasi Proses
Abort semua proses yang deadlock
Metode ini akan mematahkan deadlock cycle, tetapi bisa saja proses-proses yang deadlock telah dikomputasi dalam waktu yang lama dan hasil-hasil komputasi parsial harus dibuang, sehingga ada kemungkinan harus dikomputasi ulang. Abort satu proses pada satu waktu sampai deadlock tereliminir.
Metode ini sangat mungkin mendatangkan overhead, setelah setiap proses di-abort, algoritma pendeteksian deadlock harus diminta kembali untuk menentukan apakah masih ada proses-proses yang deadlock. Jika terminasi parsial digunakan, kita harus menentukan proses-proses deadlock yang mana yang harus diterminasi. Penentuan ini pada dasarnya berkaitan dengan ekonomi. Kita harus abort proses-proses yang terminasinya minimum cost. Sayangnya, minimum cost tidak ditentukan satu hal. Banyak faktor yang
mempengaruhi pemilihan proses, mencakup:
- Apa prioritas dari proses
- Berapa lama proses telah mengkomputasi dan berapa lama lagi proses akan mengkomputasi sebelum menyelesaikan tugasnya
- Berapa banyak dan apa tipe dari sumber daya yang digunakan oleh proses
- Berapa sumber daya lagi yang dibutuhkan proses supaya selesai
- Berapa banyak proses yang perlu diterminasi
- Apakah proses interactive atau batch
2. Preempt Sumber Daya
Mengeliminasi deadlock menggunakan preempt sumber daya berarti kita berturut-turut preempt beberapa sumber daya dari suatu proses dan memberikan sumber daya ini ke proses lain sampai deadlock cycle patah.
Pada preempt sumber daya, tiga isu perlu dibicarakan:
- Memilih korban
Seperti pada terminasi proses, kita harus menentukan sumber daya dan proses mana yang akan dipreempt dengan minimum cost. Faktor cost mencakup parameter-parameter seperti jumlah dari sumber daya yang ditahan proses-proses yang deadlock dan jumlah waktu dari proses yang telah digunakan selama eksekusinya.
- Rollback
Jika kita preempt sebuah sumber daya dari sebuah proses, proses tidak dapat berlanjut dengan eksekusi normal karena proses kehilangan beberapa sumber daya yang diperlukan. Kita harus rollback proses ke beberapa safe state dan restart dari state tersebut. Secara umum, sulit untuk menentukan safe state.
Solusi termudah adalah dengan total rollback, abort proses, dan restart.
- Starvation
Dalam sebuah sistem di mana pemilihan korban berdasar primer pada faktor cost, dapat terjadi suatu proses tidak pernah menyelesaikan tugasnya karena suatu sumber daya selalu di-preempt pada proses yang sama. Kita harus memastikan bahwa sebuah proses dapat dipilih sebagai korban hanya dengan batasan waktu tertentu. Solusi pada umumnya adalah dengan menambahkan jumlah rollback ke dalam faktor cost.

Rangkuman
Deadlock adalah suatu kondisi dimana sekumpulan proses tidak dapat berjalan kembali akibat kompetisi memperebutkan sumber daya.

Kamis, 30 April 2009

Round Robin

Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat jatah sebesar time quantum. Jika time quantum-nya habis atau proses sudah selesai, CPU akan dialokasikan ke proses berikutnya. Tentu proses ini cukup adil karena tak ada proses yang diprioritaskan, semua proses mendapat jatah waktu yang sama dari CPU yaitu (1/n), dan tak akan menunggu lebih lama dari (n-1)q dengan q adalah lama 1 quantum.

Algoritma ini sepenuhnya bergantung besarnya time quantum. Jika terlalu besar, algoritma ini akan sama saja dengan algoritma first come first served. Jika terlalu kecil, akan semakin banyak peralihan proses sehingga banyak waktu terbuang.

Permasalahan utama pada Round Robin adalah menentukan besarnya time quantum. Jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1 quantum. Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (disebut dengan context switches time). Sebaliknya, jika time quantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma first come first served. Time quantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time yang lebih kecil dari 1 time quantum.


Disingkat dengan RR. Model Penjadwalan. Penjadwalan ini merupakan :
1. Penjadwalan preemptive, bukan di-preempt oleh proses lain, tapi terutama oleh penjadwal berdasarkan lama waktu berjalannya proses, disebut preempt by time.
2. Penjadwal tanpa prioritas.

Semua proses dianggap penting dan diberi sejumlah waktu proses yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Ketentuan algoritma round robin adlah sebagai berikut:
1. Jika kwanta dan proses belum selesai maka proses menjadi runnable dan pemroses dialihkan ke proses lain.
2. Jika kwanta belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan pemroses dialihkan ke proses lain.
3. Jika kwanta belum habis tapi proses telah selesai, maka proses diakhiri dan pemroses dialihkan ke proses lain. Algoritma penjadwalan ini dapat diimplementasi sebagai berikut:
- Mengelola senarai proses read (runnable) sesuai urutan kedatangan.
- Ambil proses yang berada di ujing depan antrian menjadi running.
- Bila kwanta belum habis dan proses selesai maka ambil proses di ujung depan antrian proses ready.
- Jika kwanta habis dan proses belum selesai maka tempatkan proses running ke ekor antrian proses ready dan ambil proses di ujung depatn antrian proses ready.

A. Round Robin (RR)
Merupakan :
þ Penjadwalan yang paling tua, sederhana, adil,banyak digunakan algoritmanya
dan mudah diimplementasikan.
þ Penjadwalan ini bukan dipreempt oleh proses lain tetapi oleh penjadwal
berdasarkan lama waktu berjalannya proses (preempt by time).
þ Penjadwalan tanpa prioritas.
þ Berasumsi bahwa semua proses memiliki kepentingan yang sama, sehingga
tidak ada prioritas tertentu.
Semua proses dianggap penting sehingga diberi sejumlah waktu oleh pemroses
yang disebut kwanta (quantum) atau time slice dimana proses itu berjalan. Jika
proses masih running sampai akhir quantum, maka CPU akan mempreempt proses
itu dan memberikannya ke proses lain.
Penjadwal membutuhkannya dengan memelihara daftar proses dari runnable.
Ketika quantum habis untuk satu proses tertentu, maka proses tersebut akan
diletakkan diakhir daftar (list), seperti nampak dalam gambar berikut ini :

Minggu, 12 April 2009

Pengertian Program Counter

Program, atau PC (disebut juga pointer instruksi satu instruksi mendaftarkan alamat , atau hanya bagian dari instruksi sequencer di beberapa komputer adalah daftar prosesor yang menunjukkan tempat komputer ini dalam urutan instruksi . Tergantung pada rincian tertentu komputer, PC memegang baik alamat instruksi yang sedang dijalankan, atau alamat instruksi berikutnya yang akan dijalankan.
Dalam kebanyakan prosesor, yang merupakan instruksi pointer incremented secara otomatis setelah mengambil sebuah program pengajaran, sehingga petunjuk biasanya diambil dari memori secara berurutan, dengan instruksi tertentu, seperti kantor cabang, melompat dan subroutine panggilan dan kembali, interrupting urutan dengan menempatkan nilai baru dalam program counter.
Melompat seperti petunjuk membolehkan alamat baru yang akan dipilih sebagai awal dari sebelah bagian dari aliran instruksi dari memori.. Mereka membolehkan nilai baru yang akan diambil (tertulis) ke dalam program counter mendaftar. J subroutine panggilan yang dicapai cukup lama dengan membaca isi dari program counter, sebelum mereka ditimpa oleh nilai baru, dan disimpan di suatu tempat lain dalam memori atau mendaftar.. J subroutine kembali kemudian menulis dicapai oleh nilai yang disimpan kembali ke dalam program counter lagi.
Di pusat pengolahan unit (CPU) dari komputer yang sederhana berisi hardware (unit kontrol dan upacara ucapan alu) yang melaksanakan petunjuk tersebut, seperti yang diambil dari memori unit. Sebagian besar instruksi siklus terdiri dari CPU mengirim alamat pada bus alamat, ke memori unit, yang kemudian merespon dengan mengirimkan isi dari lokasi memori yang meliputi data, pada data bus. (Hal ini sangat sibuk dengan ide yang disimpan-program komputer yang dieksekusi dalam petunjuk disimpan di samping biasa data dalam memori unit, dan oleh itu sama dengan
PC hanyalah satu dari sekian banyak mendaftar di hardware dari CPU. Itu, seperti masing-masing register lainnya, terdiri dari bank dari biner latches (a binary memalangi juga dikenal sebagai tiba-tiba), dengan satu flip-flop bit per dalam integer yang akan disimpan (32 untuk 32-bit CPU, misalnya). Dalam hal PC, yang merupakan integer alamat dalam memori unit yang akan diambil berikutnya.
Setelah data (dengan instruksi) telah diterima pada data bus, PC adalah incremented. Dalam beberapa CPU ini dicapai dengan menambahkan 000 .. 001 ke isinya, dan hasilnya menjadi latching register harus isi yang baru, pada kebanyakan CPU, though, PC diimplementasikan sebagai register yang internal kabel sehingga dianggap sampai ke nilai berikutnya ketika sinyal tertentu akan diterapkan ke luar. Seperti mendaftar, dalam elektronik, yang disebut sebagai binary counter, dan dengan itu asal istilah program counter.
Keberadaan program counter dalam CPU telah mencapai jauh konsekuensi pada cara kita berpikir ketika kita program komputer, dan memang program counter (atau setara blok perangkat keras yang melayani tujuan yang sama sangat pusat ke arsitektur von Neumann.
Itu membebankan ketat sequencial memesan pada mengambil dari instruksi dari memori unit (yang aliran kontrol), bahkan di mana tidak ada sequenciality ini diterapkan oleh algoritma itu sendiri (yang von Neumann kemacetan). Hal ini mungkin mengapa penelitian menjadi model untuk komputasi paralel dianggap pada satu titik, tidak lain von Neumann atau dataflow model yang tidak menggunakan program counter. Misalnya, pemrograman fungsional bahasa yang berharap banyak pada tingkat tinggi, dengan combinatory logika di tingkat assembler. Bahkan kemudian, sebagian besar peneliti ini emulated di microcode konvensional komputer (karenanya masih melibatkan sebuah program counter dalam hardware), tetapi, sebenarnya, combinators sangat sederhana, mereka bisa, pada prinsipnya dilaksanakan secara langsung pada perangkat keras tanpa kembali ke microcode counter atau program sama sekali.
Hasil penelitian yang makan kembali, sebaliknya, menjadi cara untuk meningkatkan pelaksanaan kecepatan prosesor konvensional.Cara yang ditemukan untuk mengorganisir di luar aturan pelaksanaan, sehingga untuk mendapatkan informasi yang sequencing yang tersirat dalam data. . Selain itu, pipa dan sangat panjang instruksi kata organisasi diizinkan compiler untuk mengatur beberapa perhitungan yang akan berangkat bersama.Pada awal setiap instruksi pelaksanaan, tetapi, instruksi yang harus diambil dari memori, dan ini dimulai oleh sebuah instruksi fetch siklus yang picks alamat, satu per satu, dari program counter.
Bahkan bahasa pemrograman tingkat tinggi yang memiliki program-counter konsep berurat berakar mendalam dalam perilaku mereka. Anda hanya perlu untuk melihat bagaimana programmer debugs atau mengembangkan program komputer untuk melihat bukti ini, dengan pemrogram menggunakan jari untuk menunjuk ke baris berturut-turut dalam program untuk model langkah-langkah pelaksanaannya. Memang, sebuah bahasa pemrograman tingkat tinggi yang tidak kurang daripada assembler bahasa tinggi mesin virtual - sebuah komputer yang akan terlalu rumit untuk biaya-efektif untuk membangun secara langsung dalam perangkat keras, sehingga adalah melaksanakan, bukan menggunakan beberapa kerang dari pertandingan (dengan compiler atau interpreter menyediakan lebih tinggi, dan microcode menyediakan tingkat bawah)

Senin, 06 April 2009

Praying

Doa Bapa Kami

Syukur pada Tuhan bahwa kita sudah diberikan doa yang sungguh luar biasa. Tapi dalam keseharian doa ini biasanya diucapkan begitu saja, tanpa ada penghayatan. Sering merupakan hapalan semata. Mari kita coba renungkan kepantasan kita untuk mendoakan doa yang diajarkan Tuhan sendiri, jika tidak :

Jangan menyebut Bapa, kalau hidup kita tidak berlaku sebagai anak Allah. Jangan berkata kami, kalau hidup kita diselimuti ke-egoisan cinta diri.
Jangan berkata yang ada di surga, kalau hidup kita hanya memikirkan perkara-perkara duniawi semata. Jangan berkata dimuliakanlah namaMu, kalau hidup kita tidak bisa menghormati Allah dengan pantas. Jangan berkata datanglah kerajaanMu, kalau hidup kita lebih mencari kebanggaan duniawi. Jangan berkata jadilah kehendakMu diatas bumi seperti didalam surga, kalau kita menuruti kehendak sendiri dan tidak berani menyangkal diri. Jangan berkata berilah kami rejeki hari ini, kalau hidup kita tidak peduli pada sesama. Jangan berkata ampunilah kesalahan kami seperti kami pun mengampuni yang bersalah pada kami, kalau hidup kita dikuasai kebencuian dan dendam. Jangan berkata janganlah masukkan kami ke dalam percobaan, kalau hidup kita tidak berani sungguh-sungguh berbuat dosa. Jangan berkata bebaskanlah kami dari yang jahat, kalau hidup kita sendiri tidak tegas menolak segala kejahatan. Jangan berkata amin, kalau kita tidak serius menghayati dan mengamalkan Doa Bapa Kami.

Doa
Kita sering mengeluh ketika doa kita tidak dapat jawaban: “oh Tuhan dimanakah Engkau? kenapa Engkau tidak mau mengabulkan doaku?”
Di perkenankan berdoa saja sebetulnya kita sudah bersyukur. Kita sebenarnya tidak pantas untuk itu, Tuhan begitu kasih hingga Dia sendiri yang mengundang kita untuk berdoa. Terus apakah setiap doa akan dikabulkan? Semua doa didengarkan menurut aku, dan tentunya apakah kita juga sudah berdoa dengan benar?
1. Apakah kita sudah menyatukan hati dalam doa?
2. Hasrat yang kuat untuk melayani serta mencintai Tuhan melalui doa.
3. Bertekun dalam doa dan tidak cepat menyerah. Kita perlu terus-menerus berdoa setiap hari.
4. Berdoa dengan kerendahan hati
5. Penuh konsentrasi : Bagaimana mungkin kita mengharapkan Tuhan mendengarkan doa kita, jika kita sendiri tidak memusatkan perhatian kita dalam doa?
6. Iman yang tulus
7. Prioritas
Ketika kita berdoa kita harus menempatkan prioritas dengan benar, yaitu kehendak Tuhan lebih utama dari kehendak kita.
Adakalanya doa terasa hambar, kering dan sepertinya tidak didengar oleh Tuhan. Ini memang godaan. Iblis akan senang jika kita bisa terhanyut dalam situasi ini dan menjauhkan diri dari Allah. Just Keep praying!