Diberdayakan oleh Blogger.
Rabu, 28 November 2012

Makro dalam Bahasa Assembly


Pada pemrograman modular, sebuah program yang besar dibagi dalam modul-modul yang lebih kecil. Pembagian program ke dalam modul-modul membuat program lebih mudah untuk dianalisis, kesalahan lebih mudah diketahui dan pengembangan program lebih terorganisasi. Pada pemrograman assembly, program juga dapat dibuat dalam bentuk modular dengan membuat subrutin-subrutin di dalam program utama. Subrutin-subrutin tersebut berupa prosedur dan makro yang dapat dipanggil dari program utama jika diperlukan.
Makro (Macro)
Makro hampir sama dengan prosedur, untuk membuat program yang besar dalam bentuk modular. Dengan makro tidak perlu digunakan instruksi “Call” dan makro juga mengijinkan penggunaan parameter. Makro ditulis dalam program sekali tapi disimpan dalam memori sebanyak pemanggilan makro tersebut. Penggunaan makro tidak memperlambat program seperti prosedur tetapi makro lebih banyak menghabiskan penggunaan ruang memori.

Pada pemanggilan sebuah makro berarti instruksi-instruksi makro tersebut akan dibuat di memori. Jika pemanggilan lebih dari sekali, instruksi-instruksi makro akan dibuat di memori lebih dari sekali, sebanyak pemanggilan yang dilakukan. Hal ini menyebabkan penggunaan label pada makro akan menyebabkan “Error” karena adanya duplikasi label. Untuk menghindarinya digunakan direktif local pada label di dalam makro.
Contoh bentuk makro
            NamaM Macro [P1,P2..]
      Local Ulang
      ;
Ulang:
      ;
      ;
      EndM

Pemanggilan makro di dalam program menggunakan nama makro tanpa instruksi tambahan.

Struktur Register & Metode Pengalamatan


nRegister adalah sebagian kecil memory komputer yang dipakai untuk tempat penampungan data.
nData yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan register tersebut (8 atau 16 bit).

Penggolongan Register :
nGeneral Purpose Register
nSegment Register
nPointer Register
nIndex Register
nFlag Register

General Purpose Register:
nAccumulator Register AX (16 BIT)
  AX = AH (8 BIT) + AL (8 BIT)
nBase Register BX (16 BIT)
  BX = BH (8 BIT) + BL (8 BIT)
nCounter Register CX (16 BIT)
  CX = CH (8 BIT) + CL (8 BIT)
nData Register DX (16 BIT)
  DX = DH (8BIT) + DL (8 BIT)

Segment Register:
nCode Segment Register CS (16 bit)
nData Segment Register DS (16 bit)
nStack Segment Register SS (16 bit)
nExtra Segment Register ES (16 bit)

Pointer Register:
nInstructions Pointer Register IP (16 bit)
nStack Pointer SP (16 bit)
nBase Pointer BP (16 bit)

Index Register:
nSource Index Register SI (16 bit)
nDestination Index Register DI (16 bit)


Metode Pengalamatan Memori
nMetode Pengalamatan dengan Dua Register / Pengalamatan Relatif (untuk mendapatkan pengalamatan 220):
lSegment Register
lOffset Register







DATABASE


A.   PENGANTAR DASAR DATABASE
Dalam kehidupan sehari-hari kita sering membahas mengenai data dan informasi. Informasi berasal dari kumpulan data yang disimpan secara terstruktur pada sebuah sistem yang dikenal dengan basis data (database). Pada bab awal ini akan dibahas tentang definisi, komponen sistem basis data, sistem file, abstraksi data, bahasa basis data, database administrator dan struktur sistem
                                                                                                                                                                                                                               

DEFINISI
Basis data adalah penyimpanan kumpulan informasi secara sistematik dalam sebuah komputer sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sedangkan sistem adalah sebuah tatanan yang terdiri atas sejumlah komponen fungsional yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses pekerjaan. Sehingga bisa dikatakan bahwa sistem basis data adalah sistem yang terdiri atas kumpulan file-file yang saling berhubungan dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan atau program lain untuk mengakses dan memanipulasi data tersebut.                                                                                                                                                                                                                                                                                                                                                 Komponen Sistem Basis Data

Komponen-komponen pada sebuah sistem basis data antara lain:

·         Perangkat keras
·         Sistem operasi
·         Basis data
·         DBMS (Database Management System)
·         Pemakai
·         Aplikasi lain

Sistem Basis Data dan Sistem File

Pada sebuah institusi, data merupakan salah satu hal yang sangat penting. Setiap bagian/divisi dari institusi memiliki data sendiri-sendiri. Tapi setiap bagian pun membutuhkan sebagian data dari bagian yang lain. Hal ini yang biasa dikenal sebagai “shared data”. Setiap divisi memiliki aplikasi sendiri-sendiri dalam melakukan manipulasi dan pengambilan data tersebut. Setiap aplikasi memiliki file-file dalam sistem operasi yang digunakan untuk menyimpan data-data. Seiring dengan berkembangnya institusi, bertambahnya bagian/divisi, bertambah pula data dan aplikasi yang digunakan. Bertambahnya aplikasi, bertambah pula file-file yang dibuat.
Gaya sistem pemrosesan-file tersebut menyebabkan setiap data disimpan dalam bentuk record dalam berbagai macam file, dan diperlukan aplikasi yang berbeda dalam melakukan pengambilan record dari, dan penambahan record ke dalam file. Hal ini berlaku pada masa sebelum adanya Sistem Basis Data (DBMS).
Menyimpan data dalam bentuk file yang berbeda-beda, memiliki kekurangan-kekurangan:

·         Data redundancy dan inconsistency.

Dikarenakan programer yang berbeda membuat file dan aplikasi masing-masing, menyebabkan beragam format dan aplikasi yang dibuat. Bahkan, aplikasi pun dibuat menggunakan bahasa pemrograman yang berbeda-beda. Lebih jauh lagi, data atau informasi yang sama bisa terdapat dalam beberapa file yang berbeda. Ini yang disebut dengan redundancy. Redundancy data ini lama kelamaan akan menyebabkan inconsystency dari data.

·         Kesulitan dalam pengaksesan data.

Dikarenakan setiap aplikasi memiliki file tersendiri untuk penyimpanan dan pengambilan data, maka jika suatu bagian dari institusi membutuhkan data dari bagian lain, akan menemui kesulitan. Hal ini dikarenakan aplikasi yang dimiliki bagian tersebut, tidak dapat membaca file yang terdapat di bagian lain.

·         Isolasi data.

Dikarenakan data tersebar dalam berbagai macam file, dan file tersebut dalam beragam format, pembuatan aplikasi baru akan terasa sulit ketika harus membaca format dari masing-masing file tersebut.

·         Masalah integritas.

Data yang disimpan harus memenuhi hal yang dinamakan dengan consistency constraint. Jika sebuah constraint berubah, maka seluruh aplikasi yang digunakan harus mengakomodasinya. Masalah akan muncul, jika constraint melibatkan beberapa data dari file yang berbeda-beda.


·         Masalah keamanan.

Tidak semua pengguna dari basis data dapat mengakses semua data. Hal ini akan sulit dilakukan jika menggunakan gaya penyimpanan data dalam file.

·         Abstraksi Data
Tujuan utama dari sistem basis data adalah untuk menyediakan fasilitas untuk view data secara abstrak bagi penggunanya. Namun bagaimana sistem menyimpan dan mengelola data tersebut, hanya diketahui oleh sistem itu sendiri. Abstraksi data merupakan level dalam bagaimana melihat data dalam sebuah sistem basis data. Berikut ini tiga level abstraksi data:

1.      Level fisik

Merupakan level terendah pada abstraksi data yang menunjukkan bagaimana sesungguhnya data disimpan. Pada level ini pemakai melihat data sebagai gabungan dari struktur dan datanya sendiri.

2.      Level lojik

Merupakan level berikutnya pada abstraksi data, menggambarkan data apa yang disimpan pada basis data dan hubungan apa saja yang ada di antara data tersebut.

3.      Level view

Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Banyak user dalam sistem basis data tidak akan terlibat dengan semua data atau informasi yang ada atau yang disimpan. Para user umumnya hanya membutuhkan sebagian data atau informasi dalam basis data yang kemunculannya di mata user diatur oleh aplikasi end user.

1)      Database Administrator
Salah satu alasan dari pemanfaatan DBMS adalah untuk mendapatkan kontrol yang terpusat atas data dan program yang mengakses data tersebut. Orang yang memiliki kontrol atas sistem seperti yang telah disebutkan tersebut adalah database administrator (DBA).
Fungsi-fungsi DBA antara lain:

§  Definisi skema
§  Definisi struktur penyimpanan dan metode akses
§  Modifikasi skema dan organisasi fisik
§  Memberikan otorisasi untuk akese data
§  Spesifikasi integritas constraint

·        Struktur Sistem

Sebuah sistem basis data terbagi ke dalam beberapa modul yang masing-masing mempunyai tanggung jawab dalam membentuk struktur sistem secara keseluruhan. Beberapa fungsi dari sistem basis data mungkin telah diberikan oleh sistem operasi. Tetapi dalam sebagian besar kondisi, sistem operasi hanya menyediakan servis-servis dasar dan sistem basis data harus dibangun di atasnya.
Gambar 1-1 Struktur Sistem Basis Data

Komponen-komponen fungsional dari sebuah sistem basis data dibagi menjadi dua, yaitu komponen query processor dan komponen storage manager.

Query processor terdiri atas:

·         DML compiler, menerjemahkan perintah DML pada suatu query ke dalam instruksi level rendah yang dimengerti oleh mesin evaluasi query. Dengan kata lain, DML compiler berusaha mengubah suatu permintaan user menjadi bentuk yang ekivalen namun lebih efisien sekaligus juga menentukan sebuah strategi yang tepat untuk mengeksekusi query tersebut.

·         Embedded DML precompiler, mengkonversi perintah DML yang embed pada sebuah program aplikasi ke procedure call yang normal dalam bahasa host. Precompiler ini harus nerinteraksi dengan DML compiler untuk menghasilkjan kode yang sesuai.

·         DDL interpreter, menginterpretasikan perintah DDL dan mencatatnya dalam sekumpulan tabel yang mengandung metadata.

·         Query evaluation engine, mengeksekusi instruksi level rendah yang dihasilkan oleh DML compiler.

Komponen storage manager menyediakan antarmuka antara data level rendah yang tersimpan dalam basis data dan program aplikasi serta query yang diberikan ke sistem. Yang termasuk komponen ini adalah:

·         Manajer otorisasi dan integritas, menguji integritas dari constraint yang ada serta otoritas user untuk mengakses data.

·         Manajer transaksi, meyakinkan basis data tetap pada kondisi konsisten (benar) saat terjadi kegagalan sistem serta meyakinkan bahawa eksekusi dari transaksi yang konkuren (terjadi “bersamaan”) berlangsung tanpa adanya konflik.

·         Manajer file, mengelola alokasi ruang pada disk penyimpanan struktur data yang digunakan untuk mewakili informasi yang disimpan pada disk.

·         Manajer buffer, bertanggung jawab untuk mengambil data dari disk penyimpanan ke dalam memori utama serta menetukan data yang mana yang akan ditempatkan di memory

·        Bahasa Basis Data

Sebuah sistem basis data menyediakan dua macam bahasa yang berbeda. Pertama untuk menspesifikasikan skema basis data (DDL) dan yang kedua untuk melakukan perubahan dalam basis data (DML). Selain itu juga ada select statement (query) yang digunakan untuk mengambil data yang ada di dalam database.

     I.        Data Definition Language (DDL)

Data Definition Language ini Berfungsi untuk mendefinisikan struktrur sebuah tabel, tipe data setiap field dan constraint yang berlaku pada data yang tersimpan di dalam sebuah tabel. Hasil dari kompilasi DDL adalah kumpulan tabel yang tersimpan pada sebuah file khusus yang disebut dengan kamus data (data dictionary) atau data directory.
Kamus data merupakan sebuah file yang berupa metadata, yaitu data tentang data. Kamus data ini akan selalu diakses pada suatu operasi basis data sebelum suatu file data yang sesungguhnya diakses.
DDL terdiri dari CREATE, ALTER, dan DROP yang akan dijelaskan sebagai berikut :
Membuat tabel (CREATE TABLE)

Query untuk membuat tabel (create table) adalah :

CREATE TABLE nama_tabel
( nama_field_1 tipe_data,
nama_field_2 tipe_data,
………,
[ CONSTRAINT nama_constraint PRIMARY KEY
(nama_field)
]
[ CONSTRAINT nama_constraint FOREIGN KEY
(nama_field) REFERENCE nama_table (nama_field)
ON DELETE CASCADE
]
);

                                                                                                                                                                                                                                                                                                                                   










Keterangan :
nama_field1, nama_field2 adalah nama kolom (field) yang akan ada di dalam tabel.
tipe_data adalah tipe data yang bisa ditampung oleh field.
tipe_constraint adalah batasan yang menentukan suatu field.
Tanda [ ] menyatakan bahwa yang didalamnya boleh ada atau tidak.

Macam – macam tipe constraint yang mungkin adalah :

·         NULL atau NOT NULL

Constraint NOT NULL ini berfungsi untuk menjamin field harus diisi sedangkan constraint NULL memperbolehkan suatu field untuk dikosongi

·         UNIQUE

Constraint ini berfungsi untuk menjamin bahwa nilai pada setiap record di dalam sebuah tabel adalah unik

o   PRIMARY KEY

o   FOREIGN KEY

o   CHECK

Constraint ini berfungsi untuk menjamin bahwa nilai yang akan dimasukkan ke dalam sebuah field sudah sesuai dengan aturan yang dibuat

Contoh : pembuatan tabel mahasiswa dengan atribut nim bertipe char(9) dan nama bertipe varchar(20) yang tidak boleh kosong.

Sintaks : CREATE TABLE mahasiswa
(
Nim char(9),
Nama varchar(20) not null,
CONSTRAINT pk_mhs PRIMARY KEY (Nim)
);


·         Memanipulasi tabel (ALTER TABLE)

Sebuah struktur tabel yang sudah didefinisikan dapat dimodifikasi dengan menggunakan perintah ALTER TABLE.
Ada beberapa jenis modifikasi pada tabel :
1.    Menambahkan constraint baru untuk sebuah tabel
Query :
ALTER TABLE nama_tabel
ADD CONSTRAINT nama_constraint_baru
(definisi_constraint);

Contoh : (misal pada tabel mahasiswa belum ada primary key)

SQL > ALTER TABLE mahasiswa
ADD CONSTRAINT pk_mhs PRIMARY KEY (Nim);

2.    Menghapus sebuah constraint di dalam tabel.
Query :
ALTER TABLE nama_tabel
DROP CONSTRAINT nama_constraint;
Contoh :
SQL > ALTER TABLE mahasiswa
DROP CONSTRAINT pk_ mhs;

3.    Manambahkan field baru pada sebuah tabel.
Query :
ALTER TABLE nama_tabel
ADD(nama_field tipe_data [definisi_konstraint]);

Contoh :
SQL > ALTER TABLE mahasiswa
ADD(alamat varchar(50) NOT NULL);

4.    Mengubah definisi field yang telah ada pada sebuah tabel.
Query :
ALTER TABLE nama_tabel
MODIFY(nama_field tipe_field definisi_konstraint);

Contoh :
SQL > ALTER TABLE mahasiswa MODIFY(alamat varchar(25) not null);

·         Menghapus tabel (DROP TABLE)
Query untuk menghapus tabel (drop table) adalah :
DROP TABLE nama_table [CASCADE CONSTRAINT];
CASCADE CONSTRAINT :
akan menghapus semua constraint yang terhubung dengan tabel yang dihapus.

Contoh :
SQL > DROP TABLE buku;

   II.        Data Manipulation Language (DML)

Level abstraksi yang telah dibahas sebelumnya tidak hanya berlaku pada definisi atau struktur data tetapi juga pada manipulasi data. Manipulasi data itu sendiri dapat berupa:

Ø Pemasukan informasi baru ke dalam basis data (insert)
Ø  Penghapusan informasi dari basis data (delete)
Ø  Modifikasi informasi yang tersimpan pada basis data (update)

DML merupakan bahasa yang memungkinkan user untuk mengakses atau memanipulasi data sebagaimana telah direpresentasikan oleh model data. Terdapat dua macam DML, yaitu:

v  Prosedural, mengharuskan user untuk menentukan data apa yang dibutuhkan dan bagaimana untuk mendapatkan data tersebut.

v  Nonprosedural, mengharuskan pemakai untuk menentukan data apa yang dibutuhkan tanpa menyebutkan bagaimana mendapatkan data tersebut.
Sintaks-sintaks pada DML antara lain :

§  INSERT RECORD

Insert digunakan untuk menyisipkan sebuah record ke dalam sebuah tabel.
Query :


INSERT INTO nama_tabel [(nama_field1, nama_field2, ….)] VALUES (nilai1, nilai2, …);

 





Perlu diperhatikan bahwa nama_field1, nama_field2, … dapat dihilangkan. Hal ini dapat dilakukan bila nilai yang dimasukkan user, urutan sesuai dengan urutan field di dalam tabel tersebut, dan jumlah nilai yang dimasukkan juga harus sama dengan jumlah field pada tabel. Selain itu, proses penyisipan juga harus mematuhi aturan constraint yang telah didefinisikan pada sebuah tabel

Contoh :
insert into mahasiswa
values('30108001', 'paijo', 'skp');

atau

insert into mahasiswa (nim,nama,alamat)
values('30108001', 'paijo'

ARRAY (PHP)


Array adalah suatu variabel yang menyimpan banyak data dalam satu variabel. Data di array dapat diakses dengan memanggil nama variabel arraynya dan setiap elemen array mempunyai urutan indeks yang memudahkan untuk diakses.  Terdapat tiga jenis array yaitu:
1.      Array numeric.
2.      Array asosiatif.
3.      Array multidimensi.

2.1 Array Numerik
Array numerik menyimpan data setiap elemen array dengan nomor index. Ada dua cara untuk membuat array numerik. Cara pertama mendeklarasikan suatu variabel array dan langsung memberi nilai-nilai pada variabel tersebut. Contoh :

$cars=array("Saab","Volvo","BMW","Toyota");

Cara kedua dengan mendeklarasikan variabel array per index untuk dimuati suatu nilai/data. Contoh:
$cars[0]="Saab";
$cars[1]="Volvo";
$cars[2]="BMW";
$cars[3]="Toyota";



2.2 Array Asosiatif
Pada array asosiatif sebuah ID/kunci dihubungkan dengan suatu nilai data. Array ini digunakan bila array numeric tidak cukup mampu untuk menyimpan data khususnya yang berhubungan datanya.Contoh:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";

2.3 Array Multidimensi
Array multidimensi pada dasarnya adalah array dalam array. Setiap elemen array dapat mempunyai elemen-elemen array lagi yang disebut dengan sub array.
Contoh:
$families = array
  (
  "Griffin"=>array
  (
  "Peter",
  "Lois",
  "Megan"
  ),
  "Quagmire"=>array
  (
  "Glenn"
  ),
  "Brown"=>array
  (
  "Cleveland",
  "Loretta",
  "Junior"
  )
  );

Hasil dari array multidimesi di atas terlihat dalam tampilan berikut:
Array
(
[Griffin] => Array
  (
  [0] => Peter
  [1] => Lois
  [2] => Megan
  )
[Quagmire] => Array
  (
  [0] => Glenn
  )
[Brown] => Array
  (
  [0] => Cleveland
  [1] => Loretta
  [2] => Junior
  )
)

Central Processing Unit


Ø Pengertian CPU

Dalam kehidupan sehari-hari, istilah CPU ini lebih sering digunakan untuk menyatakan perangkat komputer yang berupa kotak (casing) yang di dalamnya terdapat beberapa perangkat keras (hardware), seperti motherboard, hardisk, memori (RAM card), VGA card, sound card, LAN card, modem, power suplay, dan perangkat-perangkat keras lainnya. Akan tetapi, yang dimaksud dengan CPU sebenarnya adalah perangkat keras yang terdapat di dalam casing komputer tersebut dan biasanya terdapat pada bagian motherboard.
Central processing unit atau disingkat dengan CPU merupakan bagian terpenting dari sebuah komputer. Karena di bagian inilah semua aktivitas kerja komputer dikendalikan. Apa yang disebut dengan kecerdasan komputer sebenarnya ada di bagian ini. Inilah otaknya komputer.
CPU adalah perangkat komputer yang menerima berbagai input dan kemudian menghasilkan output tertentu. Mayoritas komputer mampu melaksanakan beberapa perintah dalam satu waktu. Perlu diketahui bahwa kebanyakan komputer sekarang ini mampu melakukan perintah dalam kecepatan cahaya. CPU bisa melakukan perintah satu milyar per detik!
Setiap bagian-bagian CPU bekerja bersama-sama atau kolektif. Kecepatan dan keakuratan kerja CPU merupakan salah satu keunggulan dari sebuah komputer. Kecepatan kerja CPU dilambangkan dengan satuan hertz.

Chip CPU terdiri dari beberapa bagian atau fungsi. Bagian-bagian CPU antara lain adalah sebagai berikut.

1.      Control Unit (CU)

Unit kontrol mengarahkan aliran data dan instruksi di dalam komputer. Unit kontrol ini dapat digambarkan sebagai manajernya CPU. Ia mengawasi atau memantau seluruh fungsi atau sistem komputer yang diatur oleh program-program. Program ini terdiri dari sirkuit elektronik yang mengirimkan sinyal ke komponen lain dalam komputer. Tugas dari unit kendali ini adalah:
·         Mengatur dan mengendalikan alat-alat input dan output.
·         Mengambil instruksi-instruksi dari memori utama.
·         Mengambil data dari memori utama (jika diperlukan) untuk diproses.
·         Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja dari ALU.
·         Menyimpan hasil proses ke memori utama.

2.      Arithmetic Logical Unit (ALU)

Bagian CPU ini merupakan salah satu bagian yang terpenting. Unit aritmetik logika (ALU) terdiri dari sirkuit elektronik yang membuatnya mampu melaksanakan operasi aritmatika dan logika. Ia mengeksekusi instruksi dan melakukan perhitungan (tambah, kali, kurang, dan bagi) dan perbandingan.
ALU bekerja dengan register yang berbeda untuk menyimpan data atau informasi tentang tindakan terakhir yang dilakukan oleh unit logika. ALU mampu membandingkan huruf, angka, atau karakter khusus.



3.      Register

Bagian CPU berikutnya adalah register. Register merupakan perangkat memori sementara yang menyimpan data. Register membantu CPU dalam melaksanakan instruksi. Mereka dikelola oleh unit kontrol.
Register berfungsi untuk tempat penyimpanan yang berisi data dan informasi lainnya yang sering dibutuhkan ketika sebuah program sedang berjalan. Register dimaksudkan untuk dapat diakses dengan sangat cepat.
Yang termasuk register di antaranya adalah register uji dan instruksi. Register instruksi berisi instruksi CPU sedangkan register uji dimaksudkan untuk menyimpan hasil kerja yang dilakukan oleh CPU.

4.      CPU Interconnections

CPU Interconnec adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.

5.      Clock

Bagian CPU yang lain adalah sistem waktu. Sistem terbuat dari sirkuit waktu untuk mengukur tugas yang dilakukan oleh CPU. Kinerja prosesor umumnya diukur dalam "hertz."

Ø Cara Kerja CPU

Saat data dan/atau instruksi dimasukkan ke processing-devices, pertama sekali diletakkan di RAM (melalui Input-storage); apabila berbentuk instruksi ditampung oleh Control Unit di Program-storage, namun apabila berbentuk data ditampung di Working-storage).

Jika register siap untuk menerima pengerjaan eksekusi, maka Control Unit akan mengambil instruksi dari Program-storage untuk ditampungkan ke Instruction Register, sedangkan alamat memori yang berisikan instruksi tersebut ditampung di Program Counter. Sedangkan data diambil oleh Control Unit dari Working-storage untuk ditampung di General-purpose register (dalam hal ini di Operand-register).

Jika berdasar instruksi pengerjaan yang dilakukan adalah arithmatika dan logika, maka ALU akan mengambil alih operasi untuk mengerjakan berdasar instruksi yang ditetapkan. Hasilnya ditampung di Accumulator. Apabila hasil pengolahan telah selesai, maka Control Unit akan mengambil hasil pengolahan di Accumulator untuk ditampung kembali ke Working-storage.

Jika pengerjaan keseluruhan telah selesai, maka Control Unit akan menjemput hasil pengolahan dari Working-storage untuk ditampung ke Output-storage. Lalu selanjutnya dari Output-storage, hasil pengolahan akan ditampilkan ke output-devices.

Sementara itu, untuk CPU atau prosesor yang lebih rumit dan canggih terdapat bagian yang disebut Cache Memory, yaitu bagian CPU yang dirancang untuk mempercepat akses data dari dan ke peralatan penyimpanan data luar (external data-storage device).

Pada dasarnya, fungsi dari masing-masing bagian CPU tersebut didukung dan diatur oleh sejumlah perintah software yang masuk ke dalam memori komputer (RAM). Secara sederhana, alur kerja komputer yang melibatkan fungsi CPU dapat dijelaskan sebagai berikut.

·         Data masuk ke dalam komputer melalui perangkat masukan, seperti keyboard, mouse, dan lain-lain.
·         Data mengalir menuju ke memori komputer melalui CPU melalui kabel antarmuka (interface) dan kembali ke CPU.
·         Data yang kembali ke CPU dari RAM diterjemahkan oleh unit pengolahan yang disebut dekoder perintah yang kemudian diteruskan pada bagian ALU untuk mengalami proses selanjutnya dan disimpan dalam register.
·         Data yang telah diolah dalam ALU dapat dikirim kembali ke memori atau disimpan pada register yang lain untuk penggunaan tertentu, misalnya diakses melalui perangkat keluaran.

Ø Fungsi CPU

CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus.

CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam.

Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (RAM), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada RAM dengan menentukan alamat data yang dikehendaki. Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan RAM.

Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah.

ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.


Ø Percabangan instruksi

Pemrosesan instruksi dalam CPU dibagi atas dua tahap, Tahap-I disebut Instruction Fetch, sedangkan Tahap-II disebut Instruction Execute. Tahap-I berisikan pemrosesan CPU dimana Control Unit mengambil data dan/atau instruksi dari main-memory ke register, sedangkan Tahap-II berisikan pemrosesan CPU dimana Control Unit menghantarkan data dan/atau instruksi dari register ke main-memory untuk ditampung di RAM, setelah Instruction Fetch dilakukan.

Waktu pada tahap-I ditambah dengan waktu pada tahap-II disebut waktu siklus mesin (machine cycles time). Penghitung program dalam CPU umumnya bergerak secara berurutan. Walaupun demikian, beberapa instruksi dalam CPU, yang disebut dengan instruksi lompatan, mengizinkan CPU mengakses instruksi yang terletak bukan pada urutannya. Hal ini disebut juga percabangan instruksi (branching instruction).

Cabang-cabang instruksi tersebut dapat berupa cabang yang bersifat kondisional (memiliki syarat tertentu) atau non-kondisional. Sebuah cabang yang bersifat non-kondisional selalu berpindah ke sebuah instruksi baru yang berada di luar aliran instruksi, sementara sebuah cabang yang bersifat kondisional akan menguji terlebih dahulu hasil dari operasi sebelumnya untuk melihat apakah cabang instruksi tersebut akan dieksekusi atau tidak. Data yang diuji untuk percabangan instruksi disimpan pada lokasi yang disebut dengan flag.

Ø Bilangan yang dapat ditangani

Kebanyakan CPU dapat menangani dua jenis bilangan, yaitu fixed-point dan floating-point. Bilangan fixed-point memiliki nilai digit spesifik pada salah satu titik desimalnya. Hal ini memang membatasi jangkauan nilai yang mungkin untuk angka-angka tersebut, tetapi hal ini justru dapat dihitung oleh CPU secara lebih cepat.

Sementara itu, bilangan floating-point merupakan bilangan yang diekspresikan dalam notasi ilmiah, di mana sebuah angka direpresentasikan sebagai angka desimal yang dikalikan dengan pangkat 10 (seperti 3,14 x 1057). Notasi ilmiah seperti ini merupakan cara yang singkat untuk mengekspresikan bilangan yang sangat besar atau bilangan yang sangat kecil, dan juga mengizinkan jangkauan nilai yang sangat jauh sebelum dan sesudah titik desimalnya. Bilangan ini umumnya digunakan dalam merepresentasikan grafik dan kerja ilmiah, tetapi proses aritmatika terhadap bilangan floating-point jauh lebih rumit dan dapat diselesaikan dalam waktu yang lebih lama oleh CPU karena mungkin dapat menggunakan beberapa siklus detak CPU.

Beberapa komputer menggunakan sebuah prosesor sendiri untuk menghitung bilangan floating-point yang disebut dengan FPU (disebut juga math co-processor) yang dapat bekerja secara paralel dengan CPU untuk mempercepat penghitungan bilangan floating-point. FPU saat ini menjadi standar dalam banyak komputer karena kebanyakan aplikasi saat ini banyak beroperasi menggunakan bilangan floating-point.