Jumat, 20 Desember 2013

Dasar pemprograman


                                                              

 Dasar pemprograman berdisiplin

P
enyelesaian persoalan memakai komputer memerlukan perngkat keras dan perangkat lunak. Perangkat  keras berisi komponen komponen fisik seperti CPU (central procesing unit), memori dan perangkat masukan/keluaran pembentuk sistem. Perngakat lunak mengacu ke program yang mengendalikan operasi operasi perangkat keras untuk menyelesaikan masalah.
7.1 Perangkat lunak : Seni, Sains dan Rekayasa
                             Pengembangan perangkat lunak merupakan proses yang kompleks, gabungan seni dan sains. Proses ini merupakan seni dalam arti memerlukan imajinasi, kreativitas dan kecerdikan untuk menghasilkan perangkat lunak yang mengesankan. Juga merupkan sains karena menggunakan teknik, kakasdan metodologi sistematik yang memenuhi kaidah dan aturan sains serta rekayasa. Rekayasa perangkat lunak (softwareengineering) merupakan disiplin yang mempelajari teknik, metodologi, dan manajemen untuk menghasilkan perangkat lunak berkualitas.
                             Tahap tahap yang di lalui pengembangan perangkat lunak berfariasi sesuai sifat aplikasi/sistem. Berikut adalah tahap tahap generik pengembangan perangkat lunak. Urutan dan jenis aktivitas aktivitasyang benar benar di lakukan sesuai model proses dan metodologi yang di pilih.
1.   Analisis dan spesifikasi masalah
2.   Perancangan sistem
3.   Pengkodean atau pemprograman, serta integrasi
4.   Verifikasi dan validasi
5.   Pemeliharaan sistem
Analisis dan Spesifikasi Masalah
                             Mula mula program harus di analisis dan di rumuskan dengan spesifikasi lengkap, presisi, jelas dan tidak teranbigu. Kitadapat merumuskan dengan kurang formal namun ampuh meski tidak seampuh cara formal spesifikasi kurang formal misalnyadengan spesifikasi melalui prakondisi (precondition), poskondisi (postcondition), dan invarian.
Perancangn Sistem
                             Begitu spesifikasi di hasilkan di aktivitas analisis, perancangn sistem di lakukan untuk memenuhi spesifikasi. Perancangan mengikuti kaidah kaidah perancangan seperti modularitas, kejelasan(claricity), guna ulang (reusability), keterbacaan (readibility) dan sebagainya. Kriteria kriteria yang bertentangan harus di kompromikan sehingga memperoleh kualitas sistem yang optimal berdasar waktu, biaya dan usaha.
Pengkodean atau pemprograman, serta integrasi


Berikut adalah praktek praktek pemprograman yang baik
1.   Rencanakan perancangn program
2.   Pengapsulan terhadap modul modul
3.   Gunakan bagian bagian program yang telah ada
4.   Jadilah pembuat perkakas bantu di mana potongan program melakukan suatu kerja tertentu, atau memberi manfaat tertentu dengan sangat baik sehinggadapat di gunakan secara umum. Misalnya membuat pengurutan maka di usahakan potongn program dapat di gunakan di program lain.
                             Proses persiapan program tidak hanya menguntungkan secara ekonomi dan ilmiah tapi juga merupakan pengalaman estetika yang mengasikan seperti seorang komposer menyusun music atau penyair mengarang puisi.
Verifikasi dan Validasi
                             Program telah di hasilkan harus di periksa terhadap pemenuhan spesifikasi. Untuk melakukan ini maka program perlu di uji secara black-box maupun white box. Pengujian di tunjukan untuk menemukan cacat di program.
Pemeliharaan Sistem
                             Program akan selalu di kelola agar dapat berevolusi mengikuti perubahan lingkungan.
                             Petunjuk pembangunan perangkat lunak berdisiplin dan menyeluruh mengikuti kaidah rekayasa perangkat lunak.
7.2 Bahasa pemprograman adalah kakas  
                             Pemprograman mengharuskan pemahaman. Bahasa pemprograman merupakan kakas perancangan dan pemprograman. Hanya denagn memahami gagasan keberadaan fasilitas di bahasa yang memungkinkan program menjadi mahir menggunakan bahsasa. Pemprogram adalah aktivitasi mplementasi.
                             Pada bahsa orientasi objek, program di organisasisebagai koleksi entitas (objek) ADT. Koleksi entitas berinteraksi, bekerja sama, masing masing mempresentasi instan ADT. Definisi mengarah ke bahasa yang mendukung entitas entitas indhependen, di sebut objek. Perilaku entitas (objek) harus di definisi tipe yang dapat di definisikan oleh pemprogram.
                             Bahasa orientasi dapat meningkatkan peluang kekeliruan pemprogram yang sembrono. Pemprogram yang baik memerlukan disiplin yangmenjalankan prinsip prinsip gaya pemprograman yang baik. Penulisan program tidak sekedar mengetahui bentukan bentukan bahasa dalam merakitnya menjadi program. Pemprogram yang baik mengikuti suatu disiplin. Pemprogram yang mengikuti rancangan yang baik cenderung menjadi mudah diguna ulang, di perluas dan di lakukan debugging.
7.3 Gaya Pemprograman
7.3.1 Guna ulang (Reusability)
                             Perangkat lunak dapat di guna ulang mereduksi ongkos perancangan, pengkodean dan pengujian. Reduksi kode juga menyederhanakan pemahaman. Guna ulang mungkin di lakukan di bahasa non orientasi objek, namun bahasa orientasi objek meningkatkanya.
Aturan aturan untuk guna ulang [RUM91]:
1.   Jaga agar operasi koheren. Operasi adalah koheren jika operasi melakukan satu fungsi tunggal atau sekelompok fungsi terhubung erat. Jika operasi melakukan dua hal atau lebih yang tidakberhubungan maka pecahmenjadi operasi operasi lebih kecil.

2.   Jaga agar operasi berurutan kecil. Jika operasi berukuran besar, pecahan menjadi operasi operasi lebih kecil. Operasi yang melebihi satu atau dua halaman adalah terlalu besar. Dengan memecah operasi menjadi bagian bagian lebih kecil, kita dapat mengguna ulang bebereapa bagian meski seluruh operasi tidak di guna ulang.
3.   Jaga agar operasi konsisten. Operasi operasi serupa seharusnya menggunakan nama,kondisi, urutan argumen, tipe data, nilai krim, dan kondisi kesalahan yang sama.
4.   Pemisahan kebijakan dan implementasi. Operasi kebijakan melakukan keputusan. Operasi kebijakan mengendali alih di antara operasi operasi implementasi. Operasi kebijkan harus memeriksa status dan kesalahan, tidak melakukan implementasi atau kalkulasi mentasi algoritma kompleks secarara langsung. Operasi kebijakan sangat bergantung aplikasi, sederhana dan mudah di pahami. Operasi implentasi melekukan operasi operasi rinci spesifik tanpa tahu kenapa melakukan. Jika operasi implementasi menemui kesalahan, operasi hanya melakukan setatus, tidak melakukan aksi kesalahan. Jangan menggabungkan operasi kebijakan dan  implementasi di satu operasi.
5.   Menyediakan cakupan yang seragam. Jika kondisi masukan dapat terjadi di beragam kombinasi, tulis operasi untuk seluruh kombinasi, tidak hanya untuk saat itu. Contoh jika kita ingin menulis operasi memperoleh elementerhair di list maka kitajuga menulis operasi memperoleh elemen pertama.
6.   Perlebar operasi sebesar mungkin. Coba untuk generalisasi tipe argumen, prekondisi dan konstrain, asumsi cara kerja operasi dan konteks operasi. Buat aksi berati untuk nilai kososng, nilai batas dan nilai di luar batas.
7.   Menghindari infor masi global. Meminimkan pengacuan eksternal.
7.3.2          Kemampuan Perluasan
Pengkapsulan Kelas  (ADT)
                     Kelas ADT di kapsulkan jika strutur internal tesembunyi dar ADT-ADT lain. Hanya metode metode di kelas ADT itu hanya mengakses implementasi.
Penyembunyian struktur data
                     Jangan mengeksport struktur data metode. Struktur data internal spesifik algoritma metode. Jika kita mengeksport, kita membatasi fleksibilitas untuk berubah bagi algoritma itu.
Pembedaan operasi publik dan privat
                     Kita harus membedakan operasi publik dan privat. Operasi publik tampak dari luar ADT dan antar muka di publikasikan. Sekali operasi publik di gunakan ADT lain maka sangat mahal untuk mengubah antarmuka. Operasi privat adalah internal ADT untuk membantu mengimplementasi operasi publik.
7.3.3          Ketangguhan
                     Kita memrogram dengan tujuan memperoleh efisiensi penulisan metode, namun tidak boleh mengorbankan ketangguhan. Metode disebut tegar jika tidak gagal meski menerima para meter tidak benar. Ketangguhan melawan bug dapat trade-of (bertentangan) denagan tujuan efisiensi. Ketangguhan terhadap kesalahan pemakai tidak boleh di korbankan hanya untuk memperoleh efisiensi.
Perlindungan dari kesalahan
                     Perangkat lunak seharusnya melindungi diri dari masukan tidak benar. Masukan tidak benar seharusnya tidak pernah membuat sistem menjadi crash. Sembarang metode yang menerima masukan harus melekukan validasi masukan sehingga dapat menghindari petaka yang di sebabkan masukan itu.
                     Perancangan metode harus mempedulikan dua macam kondisi kesalahan, yaitu :
1.   Kesalahan pemakai aplikasi, kesalahan ini di definisikan selama analisis dan laporan kondisi ini ada di domain masalah.
2.   Kesalahan sistem di level  rendah berkaitan dengan aspek pemprograman metode. Kesalahan ini antara lain di sebabkan kesalahan sistem operasi seperti kesalahan alokasi memori kesalahan masukan /keluaran file, dan kegagalan perangkat keras. Program harus memriksa kesalahan kesalahan ini dan mencoba mati dengan degradasi secara perlahan dan nyaman.
                             Bahasa pemrograman orientasi objek strongly-type menyediakan perlindungan lebih besar terhadap kesalahan tipe.
Optimasi dilakukan setelah program berjalan benar
                             Kita melakukan optimasi program setelah program berjalan berjalan. Jangan melakukan optimasi program sampai kita memperoleh program yang telah bekerja benar.
Validasi argumen
                             Operasi yang tersedia untuk pemakai harus memriksa argumen argumen untuk mencegah kegagalan. Metode internal dapat mengasumsi argumen di berikan secara absah untukalasan efisiensi.
Penghindaran batasan terdefinisi
                             Kita menghindari batasan terdefinisi lebih dulu. Bila mungkin gunakan alokasi memori diamis untuk mencipta struktur data yang tidak mempunyai batas. Selama perancangan, memprediksi kapasitas maksimum adalah halyang sulit.
Fasilitas debuging dan monitoring
                             Kita seharusnya melengkapi program dengan fasilitas debugging, statistik dan monotoring.
7.4 Petunjuk Pemprogram
                                 Pemprogram aplikasi yang besar dan kompleks memerlukan kerja tim yang kompak. Berikut inin adalah petunjuk bagus untuk pemprogram.
1.       Jangan memulai pemprogram bila belum siap. Adalah hal yang panting untuk melengkapi proses perancangan sebelum implementasisecara tuntas. Semua metodologi pengembangangan menekankan pentingnya perancangan memadahi lebih dulu, kemudian melakukan pengkodean.
2.       Jaga agar metode metode mudah di pahami. Metode mudah di pahami jika orang yang bukan pencipta metode dapat memahamikode yang di tulis. Menjaga metode berukuran kecil dan koheren membantu sasaran ini.
3.       Buat agar metode mudah di baca. Pemberian nama variabel yang memiliki arti membantu sasaran ini.
4.       Gunakan nama yang sama debgan yang di gunakan di model objek.
5.       Pilihlah nama identifier secara berhati hati.
6.       Gunakan petunjuk pemprogram yang telah di pakai tim.
7.       Lakaukan pemaketan ke modul. kelompokan fungsi fungsi serupamenjadi satu modul.
8.       Lakukan dokumentasi terhadap kelas (ADT) dan metode.
9.       Lakukan publikasi spesifikasi.
7.5 Pustaka dan “Don’t  Reinvent The Wheel”
                             Ketersediaan pustaka berarti banyak komponen tidak perlu di implementasi ulang oleh pemprogram. Struktur seperti set, dynamic array, list, queue, stack, dictionary, tree, dan sebagainya biasanya telah di sediakan paket kompilator. Ini biasa di sebut kelas wadah (container) yang berguna sebagai kerangka kerja untuk mengorganisasi koleksi.
                             Bashasa C++ memulai standirasi pustaka seperti STL (standart template library),. Selain itu lingkungan bahasa pemprograman seperti microsoft visual C++ menyediakan pustaka MFC (Microsoft foundation class), ATL (active template library), Borland C++ menyediakan OWL (object windows library), Delphi menyadiakan komponen, Java menyediakan JFC (Java foundation class).
                             Kita hendaklah memantfaatkan pustaka semaksimal mungkin. Bila tidak tersedia di pustaka standar, uahakan untuk dapat memperoleh pustaka pihak ketiga yang apat dihandalkan trutama yang terdapat kode sumber. Bila ternyaryata keperluan kita begitu spesifik maka buatlah pustaka sendiri berdasar analisis dan rancangan domain. Basis representasi adalah pustaka standart di bahasa yang di gunakan.
                             Jangan berusaha untuk menemukan roda pedati yang telah di temukan ber bentuk lingkaran. 

Jumat, 08 November 2013

Sejarah mesin komputasi


Sistem komputer
komputer adalah mesin yang melakukuan kalkulasi dan mengolah informasi.kompuer bekerja di bawah kendali program komputer. Program komputer adalah sekuen (Berturutan ) intruksi yang memberi tau komputer mengenai apayang perlu di lakukan.Perngkat keras adalah komponen elektronik dan mekanis. Perangkat lunak adalah program yang mengendalikan komputer. Komputer maksud umum (General purpose computer) dapat menyimpan banyak program berbeda di memorinya .
Komputer merupakan salah satu kemampuan otak yang di miliki manusia. Komputer di gunakan di banyakbidang militer, bisnis, industri, sains dan pendidikan. Implementasi istem berubah sepangjang masa, namun konsep mendasari serupa. Semua sistem komputer menpunyai komponen perangkat keras  dan perangkat lunak serupa yang menjalankan fungsi-fungsi serupa.
Sejarah mesin komputasi
Manusia mempunyai keterbatasan dalam komputasi , yaitu:
1.      Kecepatan perhitungan manusia terbatas
2.      Manusia sangat mudah membuat kesalahan
Secara garis besar terdapat dua  era teknologi perngkat bantu komputasi yaitu:
1.      Era mekanis
Yaitu komputer yang memanfaatkan gerakan benda masif, tidak sampai level elektron serta tidak memanfaatkan listrik sebagai pembangkit.
Komputer mekanis mempunyai tiga penyebab kelemahan, yaitu:
Ø  Kecepatan komputasi di batasi inersia bagian-bagian yang bergerak.
Ø  Transmisi informasi alat-alat mekanis tidak praktis susah di pakai serta handal.
Ø  Perangkat dapat menjadi aus.
Upaya pada era mekanis antara lain:
Ø  2500 sebelum masehi, manusia mulai mengembangkan alat bantu perhitungan, yaitu sempoa di Cina.
Ø  Tahun 1642, Blaise Pscal membangun penjumlah/pengurang mekanis.
Ø  Tahun 1827, Charles Babage memangun diference engine.
Ø  Tahun 1941, Konrad Zuse membangun binary mechanical decimal computer.
Ø  Tahun 1944, Howard Aiken membangun electromechanical decimal computer, IBM Howard Mark
        Sempoa (Abacus)
Sempoa berupa satu rangka persegi berisi sederet kancing. Kancig_kancing dapat di gerakan naik turun sepanjang sumbu. Posisi-posisi deret kancing menunjukan nilai nilai angka. Kancing-kancing ini mempersentasikan kancing kancing, keluaran data berisi observasi manusia atas posisi-posisi kancing di akhir komputasi. Kendali eksekusi algoritma berada di operator manusia. Sempoa adalah sistem penyimpanan data di kombinasi dengan manusia sebagai kendali membentuk satu mesin algoritma / komputasi lengkap. 

Penggunaan gir
        Penemu perngkat /mesin komputasi bidang yng menggunakan kemajuan di bidang mekanika adalah Blaise Pascal (1623-1662) dari Jerman, dan di persentasi denganposisi gir-gir di mana matadi masukan secara mekanis dengan menetapkan posisi gir-gir. Keluaran mesin Pascal dan Leibniz di peroleh dengan mengobservasi posisi akhir gir-gir sebagai mana spedometer motor.
Charles Babbage mempunyai visi lebih maju di mana mesin dapat mencetak nilai keluaran di kertas. Mesin Babbage juga di lengkapi kemampuan memogram langkah-langkah algoritma yang akan di lakukan mesin kartu-kartu kertas berlubang.
Mesin yang di impikan Charles Babbage gagal di wujudkan. Teorinya tidak dapat di implementasi menggunakan teknologi mekanika.
Gagasan memprogram algoritma (berati urutan langkah pengerjaan) menggunakan kertas berlubang berasal dari Joseph Marie Jacquard (1801) untuk mengendali mesin tenun . Langkah-langkah yang digunakan dalam penenunan ditentukan pola lubang-lubang dikartu kertas . Dengan cara ini, algoritma dilakukan mesin dapat secara mudah diganti untuk menghasilkan rancangan-rancangan tenun yang berbeda.

            Pada 1880, Herman Hollerith bekerja untuk Biro Sensus amerika Serikat mengembangkan teknik guna mempercepat pengolahan data sensus penduduk Amerika Serikat. Holerith mengusulkan data sensus di masukan melalui kartu-kartu berlubang dan secara otomatis di tabulasi dengan mesin komputasi  yang di rancang khusus. Dengan cara ini, pengolahan dta sensus selesai dalam waktu kurang dari 3 tahun, biasanya adalah 10 tahun. Pada 1890, Holerith meninggalkan Biro Sensus dan mendirikan Tabulating Machine Company Yang kemudian menjadi bagian perusahaan International Bisnis Machine (IBM).
Era peralihan : mekanik-elektronik
            Contoh mesinkomputasi di era ini adalah mesin elektromekanik George Stibiz(1940) di Bell Laboratories dan Mark I (1944) yang di rancang Universitas Harvardoleh Howard Aiken bersama IBM.
Mesin ini menggunakan relay-relay mekanis di kendalikan secara elektronoik. Mesin segera usang karena muncul penemuan tabung hampa ( vacuum tube ) untuk membangun komputer digital yan sepenuhnya elektronik . Mesin Bell oleh Stibiz membuktikan mesin mampu melkukan komputasi 24 jam sehari selama 7 hari per minggu dengan sedikit kesalahan dan sedikit waktu malfunction.
            Generasi ini merupakan awal pengembangan sistem komputasi elektronik, mengganti gagasan mesin  komputasi mekanis.
1.1.2                    Era Elektron
Pegerakan mekanik di ganti elektron berkecepatan cahaya yang tidak pernah aus sehinggameningkatkan kecepatan dan kehandalan. Mesin pada era ini dapat di anggap sebagai implementasi mesin komputasi Charles Babbage dengan teknologi elektronik yang tidak aus dan berkecepatan tinggi.
Mesin Atanasoff-Berry (1937-1941) di Iowa State College (atau Iowa State University) Oleh Jhon Atanasoff dan Clifford Berry. Atanasoff merumuskan prinsip kalkulator elektronik pertama. Mesin yang di rancang mampu menyelesaikan Persamaan simultan 29 variabel tidak di ketahui secara akurat. Prinsip penting yang di temukan adalah penggunaan sistem angka basis 2 atau biner bukan basis 10 atau dasimal serta prinsip memori dapat di gunakan kembali (machine-regenerative memori).
            Mesin ini adalah Colosus di Inggris untuk memecah sandi tentara Jerman selama akhir perang dunia II.
Mesin ENIAC ( elektronik numerical integrator and calculator )
Merupakan mesin fleksibelyang di bangun Jhon Mauchly dan J. Presper Ecket di moore School of Electrical Enginering, Universitas Pennsylvania.  John Von Neuman, konsultan proyek ENIAC mengusulkan konsep Stored proggram.

            Usulanya adalah menyimpan inststruksi-instruksi bersama data data di komputer. Konsep inimeningkatkan keluwesan (flexibility) komputer dengan dua cara :
1.      Instruksi-instruksi dapat di ubah tanpa mengkawat secara manual terhadap koneksi koneksi sehingga lebih cepat di lakukan.
2.      Karena instruksi-instruksi di simpan sebagai angka-angka, komputer dapat mengolah instruksi-instruksi sebagai mana data, akibatnya memungkinkan modifikasi otomatis terhadap instruksi instruksi dan pengubahan skuen-skuen instruksi.
Instruksi mesin adalah instruksi yang di kode kan sebagai pola bit secara langsung di kenali oleh pemproses.Bahasa mesin adalah himpunan semua instruksi yang di kenali oleh mesin. Terdapat dua pendekatan yaitu (1) Reduce Instruktion Set Computing (RISC) di mana instruksi-instruksi yang berjumlah sedikit, sederhana efisien dan cepat. Contoh RISC adalah Power PC dari Apple/IBM/Motorola. (2) Complex Instruktion Set Computing(CISC) yang brisi banyak instruksi yang nyaman dan ampuh. Contoh CISC adalah pentium dari Intel.
1.3 Skema dasar sistem komputer
            Pada abstraksi tingkat atas, sistem komputer terdiri empat komponen utama yang bekerja sama dan berintraksi untuk mencapai tujuan sistem komputer, yaitu komputasi.
Empat komponen pokok di sistem komputer adalah :
1.      Pemproses, befungsi mengolah data dan mengendali operasi komputer.
2.      Memori utama, berfungsi menyimpan data dan program. Program harus di simpan di memori utama sebelum dapat di eksekusi. Data harus di simpan di memori sebelum dapat dimanipulasi pemproses.Memori utama biasanya volatile, tidak dapat mempertahankan data dan programyang di simpan bila sumber daya energi (Listrik) dihentikan.
3.      Perangkat masukan dan keluaran, berfungsi memindah data antara komputer dan lingkungan eksternal.
4.      Interkoneksi antar komponen, struktur dan mekenisme menghubungkan ketiga komponen (pemproses, memori utama dan perangkat masukan/keluaran).
Saat ini komputer menikuti konsep program di simpan (stored program concept) Von Neumant, yaitu program (kumpulan instruksi) di simpan di suatu tempat (yaitu memori) di mana kemudian instruksi di ambil untuk di eksekusi.Konsep ini menghasilkan keluwesan (fleksibilitas) kegunaan komputer yang sangat luar biasa.
Perangkat masukan dan keluaran
Lingkungan eksternal dapat di antar muka  (interface) beragam perangkat Seperti : perangkat penyimpanan sekunder, perngakat komunikasi, terminal, dsbg. Perngkat ini berfungsi menghubungkan komputer dengan lingkungan luar sehingga komputer di pengaruhi dan mempengaruhi lingkungan.
Interkoneksi  antar komponen
Secara fisik interkoneksi antar komponen berupa perkawatan baik berupa perawatan logam atau cara koneksi fisik lain. Komponen interkoneksi sesungguhnya tidak hanya perkawatan tapi juga memerlukan tata cara aturan (atau protokol) komunikasi di antatra  elemen-elemen terhubung yang berkomunikasi agar tidak kacau sehingga mencapai yujuan. Terdapat banyak buss, ISA, VESA, dan PCI adalah yang popular.
            Bus membawa byte informasi antar komponen. Bus data bersifat dua arah (bidirectional) di mana data dapat di simpan dan di ambil dari memori utama, atau di kirim dan di ambil dari port masukan keluaran. Bus kendali bersifat dua arah. Bus ukendali untuk persinyalan yang mengatur komunikasi antara pemproses dengan memori utama dan port masukan/keluaran. Bus alamat bersifat satu arah (unidirectional) dimana alamat memori akan di kirim ke memori utama untuk menyatakan alamat memori yang dikehendaki pemproses untuk di ambil atau sebagai lokasi penyimpanan. Demikian juga pemproses pengirim alamat port yang hedak di ambil atau dikirimi data.
1.3.1 Pemroses
            Pemproses juga di sebut CPU (central procesing unit). Pemproses merupakan jantung kompter. Proses  pengendali operasi komputer dan mengolah data.Pemproses mengambil instruksi dari memori dan mengeksekusi instruksi yang di ambil.

            Eksekusi pemproses di tuntun clock. Clock bertugas mengsingkronasi seluruh elemen koputer. Clock membangkitkan pulsa/detak ke pemproses. Pada tiap pulsa/detak clock, pemproses melekukan kerja.
            Pemproses melakukan kerja dengan urutan langkah sebagai berikut :
·         Mengambil instruksi yang di kodekan secara biner dari memori utama.
·         Men-dekode instruksi menjadi aksi aksi sederhana.
·         Melaksanakan aksi aksi ini
Pemproses terdiri dari tiga komponen, yaitu :
1.      CU (Control unit), berfungsi mengendali operasi sistem komputer.
2.      ALU (Aritmatic logogical unit), berfungsi melakukan operasi aritmatika dan logika.
3.      Register-register, untuk membantu melaksanakan opersai pemproses.
.3.2 Memori
            Memori berfungsi untuk menyimpan data dan pemprograman. Terdapat beberapa tipe memori, mulai yang tercepat aksesnya sampai yang terlambat.
1.3.3 Perangkat Masukan/Keluaran
            Perangkat masukan /keluaran di pergunakan sistem komputer untuk berinteraksi dengan lingkungan luar, baik ke pemakai atau lingkungan secara umum.Perangkat masukan terdiri dari dua bagian yaitu :
1.      Komponen mekanis yaitu perngkat itu sendiri.
2.      Komponen elektronis yaitu pengendali perngkat brupa chip controller.
Perngkat masukan atau keluaran adalah perangkat nyata yang di kendalikan perangkat elektronis chip contrller di board sistem atau card. Controller di hubungkan dengan pemproses dan komponen-komponen lain lewat bus. Controller adalah berbeda mekanisme. Controller mempunyai regiter-register untuk memrintah atau mengendali serta untuk menetahui status . Control register di gunakan maksud kendali . Status register berisi status yang mendeskripsi kode kesalahan kerja perangkat masukan/keluaran.
      Register-register itu diacu sebagai port-port. Masing-masing register di alamat sebagai port tertentu. Masing-masing controler menjadi dapat di amati secara unik /individu oleh pemproses agar perangkat lunak device driver di sistem operasi dapat menulis ke regiter-register perangkat masukan/keluaran. Dengan demikian device driver mengendali perangkat masukan /keluaran. Identivikasi controler berdasar port-port yang memacu register-register milik controler.
1.3.4 Interkoneksi Antar Komponen
      Interkoneksi antar komponen di sebut bus. Interkoneksi berkaitan dengan cara hubungan antar komponen sistem komputer.
Bus terduri dari tiga macam, yaitu :
1.      Bus alamat (address bus)
2.      Bus data (data bus)
3.      Bus kendali (control bus)
Bus alamat
      Jalur bersifat satu arah. Bus alamat untuk memberi alamat memori atau port yang hendak di akses. CPU mengirim alamat lokasi memori atau port yang akan di tulis atau di baca bus ini. Bus alamat berisi 16,20,24 jalur sinyal pararel atau lebih. jumlah lokasi memori yang dapat di alamati di tentukan jumlah jalur alamat. jika pemproses mempunyai N jalur alamat maka pemproses dapat mengalamati 2 N (2N) lokasi memori dan/port.
Bus data
      Jalur ini bersifat dua arah. Jalur untuk CPU dapat membaca dan mengirim data dari/ke memori/port. Bus data berisi 8,16,32 jalur sinyal pararel atau lebih. Banyak perangkat yang di cantolkan ke bus data tapi hanya satu perangkat pada satu saat yang tepat memakai. Untuk itu, perangkat harus mempunyai tiga state (tristate) agar dapat di pasang pada bus data.
Bus kendali
      Jalur ini bersifat dua arah. Bus kendali berisi 4-10 jalur sinyal pararel. CPU mengirin sinyal sinyal pada bus kendali untuk memerintah memori atau port serta CPU memerima status dan sinyal balik memori atau  port.
Sinyal bus kendali antara lain
·         Memori read untuk memrintah membaca memori.
·         Memori write untuk memerintah menulis memori.
·         I/O read untuk memerintah membaca port.
·         I/O write untuk memerintah membaca port.
·         Dan sebagainya.
Mekanisme pembacaan
            Untukmembaca data suatu lokasi memori, CPU mengirim alamat memori di kehendaki  (di simpan di dalam MAR) melalui bus alamat kemudian mengirim sinyal memory read pada bus kendali. Sinyal memori read memerintahkan ke perngkat memori untuk mengeluarkan dat pada lokasi tersebut ke bus data agar di baca CPU.
            Inter koneksi antar komponen ini membentuk satu sistem sendiri. Sistem interkoneksi antar komponen yang poular antara lain ISA, VESA, dan PCI.
1.4 Eksekusi Instruksi 
            Fungsi utama komputer adalah mengaeksekusi program. Berdasrkan konsep program tersimpan, program (barisan instruksi) yang di eksekusi berada di memori. Pemproses melakukan tugasnya dengan mengeksekusi instruksi-instruksi di program.
Eksekusi program di kendalikan oleh dua register khusus yaitu :
1.      Program counter, register ini menunjuk alamat instruksi berikutnya yang akan di eksekusi.
2.      Instruction register, register berisi  instruksi yang saat itu di eksekusi.
Tahap pemprosesan instruksi berisi dua tahap, yaitu :
1.      Pemproses membaca instruksi dari memori (fecth).
2.      Pemproses mangeksekusi instruksi (execute)
Eksekusi program berisi pengulangan tahap  fecth dan execute. Eksekusi instruksi  (yaitu tahap execute) dapat melibatkan beberapa operasi lebih dasar dan bergantung sifat instruksi yang sedang di jalankan. Pemprosesan satu instruksi di sebut satu  siklus instruksi (instruction cycle).
Sistem bekerja secara terorganisasi dan stabil. Mekanisme kendali paling penting adalah pewaktuan. CPU menggunakan satu clock,yatu quart cristalseperti jam digital.Periode tetap untuk memandu sehingga semuanya berjalan secara singkron. Pada satu periode yang berisi, clock mengirim pulsa listrik ynag menyebabkan bit-bit bergerak dari satu tempat ke tempat di dalam atau grbang gerbang logicatau antara gerbang gerbang logic dan register. Satuinstruksi sederhana dapat berlangsung selama satu siklus clock. CPU yang bekerja pada 700 jutasiklus perdetik di sebut berfungsi pada 700 MHz (Mega Hertz untuk menghormati ilmuwan Jerman Gustav Hertz).
            Produktivitas CPU dapat di tingkatkan dengan meningkatkan kesepatan clock. Selain itu dapat di tempuh dangan strategi  melakukan lebih dari satu tugas selama masing masing siklus clock yang di sebut pipelining. Padapipelining satu bagian CPU mengambil instruksi baru, bagian lain menganalisis , bagian lain mengeksekusi, danbagian lain menyimpan menyimpan hasil di mana eksekusi di gambarkan sebagai empat tahap (fecth, analize, decode, execute, bukan hanya dua tahap fecth dan execute seperti penyederhanaan pada gambar1-2). CPU kompleks mempunyai banyak tahap pipeline, CPU Intel generasi keenam ( seperti pentium Pro, Pentiun III ) mempunyai 14 tahap pipeline. CPU intel Pentium hanyalima tahappipeline. CPU modern mengambil beberapa instruksi sekaligus, menempatkan pada tahap pertama pipeline yang panjang di sebut antrian prapengambilan ((perfect queue). Dengan cara ini menjamin pipeline selalu penuh sehingga lebih efisien. Pemproses dengan dengan kemampuan ini biasa di sebut superpipeline.
            Peningkatan berikutnya adalah tidak hanya satu pipeline melainkan beberapa ppeline. Pemproses ini bisa di sebut superscalar.
1.5 Kejadian Saat  Komputer Dihidupkan
            Berikut ini ringkasan apa yang terjadi saat komputer mulai dihidupkan. Awal menghidupkan komputer biasa di hidupkan dengan booting up atau booting.
            Begitu catu daya dinyalakan, arus listrik mengalir ke semua chip dan sekitarnya. ROM BIOS (read only memory, basic input/basic output, biasanya disebut BIOS) di rancang mulai memberi perintah begitu mnerima daya listrik . BIOS berisi barisan instruksi berikutnya dimana program di chip  ini mengelola proses booting.
            Awal mula proses booting  adalah memverifikasi semua komponen bekerja secara benar. Setelah ini selesai, BIOS mengalihkan kendalike CPU. Tidak seperti BIOS yang telah berisi instruksi, CPU tidak berisi instruksi. Instruksi terakhir BIOS ke CPU adalah untuk melompat ke lokasi spesifik untuk menemukan instruksi berikutnya. Instruksi di dalamnya brisi cara memulai proses memuat sistem operasi.
1.6 Interupsi
            Kita dapat mengendali pernagkat I/O secara singkron, yaitu mengirim permintaan satu operasi (misalnya menulis blok memori ke disk) lalu menunggu selesainya operasi. Metode ini sangat tidak efisien dan sistem operasi banyak menganggur, menunggu operasi selesai. Cara yang lebih baik dan efisien adalah begitu selesai membuat permintaan, segera pemproses mengerjakan lainya dan kemudian di intreupsi saat perangkat menyelesaikan permintaan. Dengan caraini dapat terjadi banyak permintaan ke perangkat berlangsung pada waktu yang sama.
            Untuk teknik ini harus terdapat dukungan perangkat keras sehingga perangakat dapat membuat interupsi saat CPU sedang bekerja. Kebanyakan general purpose processor menggunakan metode serup. Beberapa pin pemproses di kawati sehingga begitu voltase berubah, menyebabkan pemproses menghen-
tikan yang sedang di kerjakan danmemulai eksekusi kode khusus untuk menengani interupsi, yaitu interupsi.Salah satu pin di hubungkan interval timer dan menerima interupsi setiap satu selang waktu tertentu (dalam ukuran seper-seribu detik), dan pin lain dapat di hubungkan dengan perangkat lain di sistem seperti SCSI controller.
            Kemudian, sistem menggunakan interrup controller untuk menangani interupsi sebelum melewatkan sinyal ke pin interupsi di pemproses. Cara ini menghemat pin-pin interupsi di pemproses dan mempunyai maskregister mengaktifkan dan menonaktifkan interupsi. Register status mengirim interupsi yang aktivdi sistem.
            Beberapa interupsi di sistem di kawatkan secara perangkat keras, seperti interval timer RCT(real time clock) secara permanen di hubungkan ke pin 3 interrup controller.  Beberap pin yang di hubungkan dapat di tentikan controller card  Saat di cantol ke slot ISA atau PCI tertentu. Contoh  pin 4 di interrup controller  dapat di hubungkan ke slot PCI nomor 0, ethernet card atau SCSI controller  Lini bawah setiap  sistem mempunyai mekanisme routing interupsi sendiri. Sistem operasi harus cukup fleksibel untuk mengatasinya.
            Kebanyakan general purpose processor menangani interupsi dengan cara yang sama. Ketika interupsi perangkat keras terjadi, pemproses menghentikan instruksi yang sedang di eksekusi dan lompat ke lokasi di memori yang memuat kode penanganan instrupsi. Kode biasanya  beropersai di mode spesial (interrup mode). Biasanya tidak ada inerupsi yang terjadi di mode ini. Beberapa pemproses memringkat interupsi interupsi . Interupsi level lebih tinggi dapat  menginstrupsi interupsi level lebih rendah. Kode pengaman interupsi harus secara hati hati di simpan. Beberapapemproses mempunyai sekumpulan register  khusus yang hanya ada di interrup mode  dan kodeinterupsi dapat menggunakan register ini.
            Setelah penanganan interupsi di lakukan, state  CPUBdi kembalikan. Pemproses melanjutkan kerja sebelumdi interupsi. Pemprosesan melanjutkan kerja sebelum di interupsi. Pemprosesan interupsi efisien selama efisien operasi tidak block karena interupsi selalu sering atau terlalu lama.
            Sistem berbasis PCI sangat lebih dinamis di banding sistem berbasis ISA. Pin interupsi yaitu ISA device serinng menggunakan jumper di perangkat kerasdan bersifat tetap di devie driver. Perangkat PCI mempunyai interupsi yang di alokasikan PCI BIOS atau subsitem PCI saat PCI diinisialisai saatsistem boot. Tiap perangkat PCI dapat menggunakan salah satu pin interupsi, yaitu A, B, C, atau D, Ini bersifat tetap saat perangakat di bangun dan kebanyakan perangkat secara default  menginstrupsi pada pin A. Saluran interupsi PCI A, B, C dan D untuk tiap slot PCI di ruteke interrupt controller, pin B dari slot PCI di rute ke interrupt controller . Pin  A dari slot  PCI 4 dapat dirute ke pin 6 dari interupt controller . Pin B dari slot PCI 4 ke pin 7 dari interupt controller, dan harus terdapat satu kode yang memehami topologi routing interupsi PCI. Pada PC berbasis intel, ini terdapat di BIOS yang berjalan saat boot. Untuk sistem tanpa BIOS (seperti sistem berbasis Alpha AXP), Rernel sistem operasi melekukan setup ini.