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
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
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 :
|
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 :
|
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";
$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";
$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"
)
);
(
"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
)
)
(
[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.
Langganan:
Komentar (Atom)