Latest Post

Showing posts with label kuliah. Show all posts
Showing posts with label kuliah. Show all posts

tugas metode numerik

Written By sunardi on Thursday, January 27, 2011 | 11:49 AM


soal

1. (3867)10 = (………………..)8

2. (7463)8 = (……………..)2

3. 2x1 + 4x2 – x3 = 5

-x1 – 3x2 + 5x3 = 4

4x1 + 2x2 + 3x3 = 6

Dari persamaan –persamaan diatas cari nilai invers matriknya.

4. Jelaskan tentang Galat dan beri 1 contohnya.

jawaban : klik download di sini


Kumpulan Kata Mutiara Bung Karno Presiden RI

Written By sunardi on Saturday, January 22, 2011 | 5:25 AM




“Berikan aku 1000 orang tua, niscaya akan kucabut semeru dari akarnya, berikan aku 1 pemuda, niscaya akan kuguncangkan dunia” . (Bung Karno)

“Tidak seorang pun yang menghitung-hitung: berapa untung yang kudapat nanti dari Republik ini, jikalau aku berjuang dan berkorban untuk mempertahankannya”. (Pidato HUT Proklamasi 1956 Bung Karno)

“Jadikan deritaku ini sebagai kesaksian, bahwa kekuasaan seorang presiden sekalipun ada batasnya. Karena kekuasaan yang langgeng hanyalah kekuasaan rakyat. Dan diatas segalanya adalah kekuasaan Tuhan Yang Maha Esa.” (Soekarno)

“Apabila di dalam diri seseorang masih ada rasa malu dan takut untuk berbuat suatu kebaikan, maka jaminan bagi orang tersebut adalah tidak akan bertemunya ia dengan kemajuan selangkah pun”. (Bung Karno)

“Bangsa yang besar adalah bangsa yang menghormati jasa pahlawannya.” (Pidato Hari Pahlawan 10 Nop.1961)

“Perjuanganku lebih mudah karena mengusir penjajah, tapi perjuanganmu akan lebih sulit karena melawan bangsamu sendiri.” – Bung Karno

“Bangsa yang tidak percaya kepada kekuatan dirinya sebagai suatu bangsa, tidak dapat berdiri sebagai suatu bangsa yang merdeka.” (Pidato HUT Proklamasi 1963 Bung Karno)

“……….Bangunlah suatu dunia di mana semua bangsa hidup dalam damai dan persaudaraan……” (Bung Karno)

“Kita belum hidup dalam sinar bulan purnama, kita masih hidup di masa pancaroba, tetaplah bersemangat elang rajawali “. (Pidato HUT Proklamasi, 1949 Soekarno)

“Janganlah mengira kita semua sudah cukup berjasa dengan segi tiga warna. Selama masih ada ratap tangis di gubuk-gubuk pekerjaan kita selesai ! Berjuanglah terus dengan mengucurkan sebanyak-banyak keringat.” (Pidato HUT Proklamasi, 1950 Bung Karno)

“Firman Tuhan inilah gitaku, Firman Tuhan inilah harus menjadi Gitamu : “Innallahu la yu ghoiyiru ma bikaumin, hatta yu ghoiyiru ma biamfusihim”. ” Tuhan tidak merobah nasibnya sesuatu bangsa sebelum bangsa itu merobah nasibnya” (Pidato HUT Proklamasi, 1964 Bung Karno)

“Janganlah melihat ke masa depan dengan mata buta! Masa yang lampau adalah berguna sekali untuk menjadi kaca bengala dari pada masa yang akan datang.” (Pidato HUT Proklamasi 1966, Soekarno)

“Apakah Kelemahan kita: Kelemahan kita ialah, kita kurang percaya diri kita sebagai bangsa, sehingga kita menjadi bangsa penjiplak luar negeri, kurang mempercayai satu sama lain, padahal kita ini asalnya adalah Rakyat Gotong Royong” (Pidato HUT Proklamasi, 1966 Bung Karno)

“Aku Lebih suka lukisan Samodra yang bergelombangnya memukul, mengebu-gebu, dari pada lukisan sawah yang adem ayem tentrem, “Kadyo siniram wayu sewindu lawase” (Pidato HUT Proklamasi 1964 Bung Karno)

“Laki-laki dan perempuan adalah sebagai dua sayapnya seekor burung. Jika dua sayap sama kuatnya, maka terbanglah burung itu sampai ke puncak yang setinggi-tingginya; jika patah satu dari pada dua sayap itu, maka tak dapatlah terbang burung itu sama sekali.” ( Sarinah, hlm 17/18 Bung Karno)

operasi aritmatika Assembly dan implementasi programnya

Written By sunardi on Saturday, December 25, 2010 | 3:49 AM

OPERASI PERNAMBAHAN (ADD)
Untuk menambah dalam bahasa assembler digunakan perintah ADD dan ADC serta INC. Perintah ADD digunakan dengan syntax :
ADD Tujuan,Asal Perintah ADD ini akan menambahkan nilai pada Tujuan dan Asal. Hasil yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi Tujuan:=Tujuan + Asal. Sebagai contohnya :
MOV AH,15h ; AH:=15h
MOV AL,4 ; AL:=4
ADD AH,AL ; AH:=AH+AL, jadi AH=19h

Perlu anda perhatikan bahwa pada perintah ADD ini antara Tujuan dan Asal harus mempunyai daya tampung yang sama, misalnya register AH(8 bit) dan AL(8bit), AX(16 bit) dan BX(16 bit). Mungkin ada yang bertanya-tanya, apa yang akan terjadi bila Tujuan tempat hasil penjumlahan disimpan tidak mencukupi seperti pertambahan 1234h dengan F221h.
1234 h Biner --> 0001 0010 0011 0100
F221 h Biner --> 1111 0010 0010 0001
---------- + --------------------- +
10455 h 1 0000 0100 0101 0101
Pada pertambahan diatas dapat dilihat bahwa pertambahan bilangan 1234 dengan F221 akan menghasilkan nilai 10455. Supaya lebih jelas dapat anda lihat pada pertambahan binernya dihasilkan bit ke 17, padahal register terdiri atas 16 bit saja. Operasi pertambahan yang demikian akan menjadikan carry flag menjadi satu, Contoh :
MOV AX,1234h ; NIlai AX:=1234h dan carry=0
MOV BX,0F221h ; Nilai BX:=F221h dan carry=0
ADD AX,BX ; Nilai AX menjadi 0455h dan carry=1

ADC
Perintah ADC digunakan dengan cara yang sama pada perintah ADD, yaitu :
ADC Tujuan,Asal
Perbedaannya pada perintah ADC ini Tujuan tempat menampung hasil pertambahan Tujuan dan Asal ditambah lagi dengan carry flag (Tujuan:=Tujuan+Asal+Carry). Pertambahan yang demikian bisa memecahkan masalah seperti yang pernah kita kemukakan, seperti pertambahan pada bilangan
12345678h+9ABCDEF0h.
Seperti yang telah kita ketahui bahwa satu register hanya mampu menampung 16 bit, maka untuk pertambahan seperti yang diatas bisa anda gunakan perintah ADC untuk memecahkannya, Contoh:
MOV AX,1234h ; AX = 1234h CF = 0
MOV BX,9ABCh ; BX = 9ABCh CF = 0
MOV CX,5678h ; BX = 5678h CF = 0
MOV DX,0DEF0h ; DX = DEF0h CF = 0
ADD CX,DX ; CX = 3568h CF = 1
ADC AX,BX ; AX = AX+BX+CF = ACF1
Hasil penjumlahan akan ditampung pada register AX:CX yaitu ACF13568h. Adapun flag-flag yang terpengaruh oleh perintah ADD dan ADC ini adalah
CF,PF,AF,ZF,SF dan OF.
INC
Perintah INC(Increment) digunakan khusus untuk pertambahan dengan 1. Perintah INC hanya menggunakan 1 byte memory, sedangkan perintah ADD dan ADC menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi pertambahan dengan 1 gunakanlah perintah INC. Syntax pemakainya adalah :
INC Tujuan
Nilai pada tujuan akan ditambah dengan 1, seperti perintah. Tujuan:=Tujuan+1 dalam Turbo Pascal. Tujuan disini dapat berupa suatu register maupun memory. Contoh : perintah INC AL akan menambah nilai di register AL dengan 1. Adapun flag yang terpengaruh oleh perintah ini adalah OF,SF,ZF,AF dan PF.

PROGRAM PENAMBAHAN DAN DEBUG
Setelah apa yang telah kita pelajari, marilah sekarang kita menjadikannya sebuah program dengan semua contoh yang telah diberikan.
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; PROGRAM : TAMBAH.ASM ;
; FUNGSI : MELIHAT PENAMBAHAN ;
; YANG DILAKUKAN ;
; OLEH BERBAGAI ;
; PERINTAH ;
;===========================S’to=;
.MODEL SMALL
.CODE
ORG 100h
Proses :
MOV AH,15h ; AH:=15h
MOV AL,4 ; AL:=4
ADD AH,AL ; AH:=AH+AL, jadi AH=19h
MOV AX,1234h ; NIlai AX:=1234h dan carry=0
MOV BX,0F221h ; Nilai BX:=F221h dan carry=0
ADD AX,BX ; AX:=AX+BX, jadi nilai AX=0455h
MOV AX,1234h ; AX = 1234h CF = 0
MOV BX,9ABCh ; BX = 9ABCh CF = 0
MOV CX,5678h ; BX = 5678h CF = 0
MOV DX,0DEF0h ; DX = DEF0h CF = 0
ADD CX,DX ; CX = 3568h CF = 1
ADC AX,BX ; AX = AX+BX+CF = ACF1
INC AL ; AL:=AL+1, nilai pada AL ditambah 1
INT 20h
END Proses
Operasi penambahan

Setelah anda selesai mengetikkan program jadikanlah program COM dengan tasm dan tlink/t.Setelah itu cobalah untuk melihat kebenaran dari apa yang sudah diberikan dengan menggunakan debug. Pertama-tama ketikkanlah :
C:\>debug Tambah.com
-r < tekan enter >
AX=0000 BX=0000 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0100 NV UP EI PL NZ NA PO NC
3597:0100 B415 MOV AH,15
-t < tekan enter >
Penekanan "r" pada saat pertama kali digunakan untuk melihat nilai pada semua register. Pada baris pertama dapat anda lihat register yang dinamakan sebagai general purpose(AX,BX,CX dan DX). Register SP yang digunakan pada operasi stack menunjukkan nilai FFFE(akhir dari Segment), jadi operasi stack nantinya akan ditaruh pada posisi tersebut. Pada baris kedua dapat anda lihat keempat register segment, yaitu DS,ES,SS dan CS. Keempat register segment menunjukkan nilai yang sama yaitu 3597(mungkin berbeda pada komputer anda). Hal ini dikarenakan program kita adalah program com yang hanya menggunakan 1 segment. Pada baris kedua dapat juga anda lihat register IP bernilai 100h. Register IP menunjukkan bahwa kita sekarang sedang berada pada offset ke 100h dari segment aktif(CS:IP atau 3597:100).
Pada baris ketiga dapat anda lihat 3597:0100, nilai ini menunjukkan pasangan dari CS:IP. Setelah itu dapat anda lihat nilai B415 yang menujukkan isi dari alamat 3597:0100 adalah B4 sedangkan isi dari alamat 3597:1001 adalah 15. Nilai B415 ini sebenarnya merupakan suatu bahasa mesin untuk instruksi MOV AH,15. Jadi bahasa mesin untuk perintah "MOV AH,nilai" adalah B4 disertai nilai tersebut. Dari nilai B415 ini dapat diketahui bahwa perintah MOV akan menggunakan 2 byte di memory.
Setelah itu tekanlah 't' untuk mengeksekusi intruksi yang terdapat pada alamat yang ditunjukkan CS:IP(MOV AH,15). Setelah anda menekan 't' maka akan ditampilkan hasil setelah intruksi "MOV AH,15" dieksekusi :
AX=1500 BX=0000 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0102 NV UP EI PL NZ NA PO NC
3597:0102 B004 MOV AL,04
-t < enter >

Terlihat bahwa nilai AX berubah dari 0000 menjadi 1500 setelah mendapat perintah MOV AH,15. Tekanlah 't' disertai enter untuk melihat perubahan nilai pada register-register yang bersangkutan.
AX=1504 BX=0000 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0104 NV UP EI PL NZ NA PO NC
3597:0104 02E0 ADD AH,AL
-t < enter >
AX=1904 BX=0000 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0106 NV UP EI PL NZ NA PO NC
3597:0106 B83412 MOV AX,1234
-t < enter >
AX=1234 BX=0000 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0109 NV UP EI PL NZ NA PO NC
3597:0109 BB21F2 MOV BX,F221
-t < enter >
AX=1234 BX=F221 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=010C NV UP EI PL NZ NA PO NC
3597:010C 03C3 ADD AX,BX
-t < enter >
AX=0455 BX=F221 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=010E NV UP EI PL NZ NA PE CY
3597:010E B83412 MOV AX,1234
-t < enter >
AX=1234 BX=F221 CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0111 NV UP EI PL NZ NA PE CY
3597:0111 BBBC9A MOV BX,9ABC
-t < enter >
AX=1234 BX=9ABC CX=0030 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0114 NV UP EI PL NZ NA PE CY
3597:0114 B97856 MOV CX,5678
-t < enter >
AX=1234 BX=9ABC CX=5678 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0117 NV UP EI PL NZ NA PE CY
3597:0117 BAF0DE MOV DX,DEF0
-t < enter >
AX=1234 BX=9ABC CX=5678 DX=DEF0 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=011A NV UP EI PL NZ NA PE CY
3597:011A 03CA ADD CX,DX
-t < enter >
AX=1234 BX=9ABC CX=3568 DX=DEF0 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=011C NV UP EI PL NZ NA PO CY
3597:011C 13C3 ADC AX,BX

-t < enter >
AX=ACF1 BX=9ABC CX=3568 DX=DEF0 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=011E NV UP EI NG NZ AC PO NC
3597:011E FEC0 INC AL
-t < enter >
AX=ACF2 BX=9ABC CX=3568 DX=DEF0 SP=FFFE BP=0000 SI=0000 DI=0000
DS=3597 ES=3597 SS=3597 CS=3597 IP=0120 NV UP EI NG NZ NA PO NC
3597:0120 CD20 INT 20
-Q < enter >
Pengetikan "Q" menandakan bahwa kita ingin keluar dari lingkungan debug
dan akan kembali ke a:\>.

OPERASI PENGURANGAN
SUB
Untuk Operasi pengurangan dapat digunakan perintah SUB dengan syntax:
SUB Tujuan,Asal
Perintah SUB akan mengurangkan nilai pada Tujuan dengan Asal. Hasil yang didapat akan ditaruh pada Tujuan, dalam bahasa pascal sama dengan instruksi
Tujuan:=Tujuan-Asal.
Contoh :
MOV AX,15 ; AX:=15
MOV BX,12 ; BX:=12
SUB AX,BX ; AX:=15-12=3
SUB AX,AX ; AX=0
Untuk menolkan suatu register bisa anda kurangkan dengan dirinya sendiri seperti SUB AX,AX.

SBB
Seperti pada operasi penambahan, maka pada operasi pengurangan dengan bilangan yang besar(lebih dari 16 bit), bisa anda gunakan perintah SUB disertai dengan SBB(Substract With Carry). Perintah SBB digunakan dengan syntax:
SBB Tujuan,Asal
Perintah SBB akan mengurangkan nilai Tujuan dengan Asal dengan cara yang sama seperti perintah SUB, kemudian hasil yang didapat dikurangi lagi dengan Carry Flag(Tujuan:=Tujuan-Asal-CF).

;================================;
; PROGRAM : KURANG.ASM ;
; AUTHOR : S’to ;
; FUNGSI : MENGURANGKAN ANGKA ;
; 122EFFF-0FEFFFF ;
; ;
;================================;
.MODEL SMALL
.CODE
ORG 100h
TData :
JMP Proses ; Lompat ke Proses
ALo EQU 0EFFFh
AHi EQU 122h
BLo EQU 0FFFFh
Bhi EQU 0FEh
HslLo DW ?
HslHi DW ?
Proses :
MOV AX,ALo ; AX=EFFFh
SUB AX,Blo ; Kurangkan EFFF-FFFF, jadi AX=F000
MOV HslLO,AX ; HslLo bernilai F000
MOV AX,Ahi ; AX=122h
SBB AX,BHi ; Kurangkan 122-FE-Carry, AX=0023
MOV HslHi,AX ; HslHi bernilai 0023
INT 20h ; Kembali ke DOS
END TData
Program 8.2. Mengurangkan angka yang menyebabkan Borrow

Disini dapat kita lihat begaimana caranya mendefinisikan suatu nilai constanta(nilai yang tidak dapat dirubah) dan variabel dengan :
ALo EQU 0EFFFh
AHi EQU 122h
BLo EQU 0FFFFh
Bhi EQU 0FEh
HslLo DW ?
HslHi DW ?
Perintah EQU digunakan untuk mendefisisikan suatu yang constan(Tetap), data yang telah didefinisikan dengan perintah EQU tidak dapat dirubah. Dengan perintah EQU kita mendefinisikan bahwa ALo = 0EFFF, AHi=122, BLo=FFFF dan BHi=0FE. Untuk menampung hasil dari pengurangan A-B(122EFFF-FEFFF) nantinya, kita definisikan suatu tempat untuk menyimpannya dengan nama HslLo dan HslHi.
Tanda '?' digunakan untuk menyatakan bahwa tempat yang kita pesan sebanyak sebanyak 1 word(DW) tidak diberikan data awal yang akan terdapat pada variabel tersebut(HslLo dan HslHi). Jadi data yang akan terdapat pada HslLo dan HslHi bisa apa saja dan kita tidak mengetahuinya. Tempat data program kita lompati dengan perintah JMP supaya komputer tidak mengeksekusi data program sebagai perintah.
MOV AX,ALo
SUB AX,Blo
MOV HslLO,AX
Untuk mengurangkan angka 122EFFF dengan 0FEFFFF kita dapat mengurangkan word rendah dari angka tersebut dahulu, yaitu EFFF- FFFF. Hal ini dikarenakan daya tampung register yang hanya 16 bit. Dapat anda lihat bahwa pengurangan EFFF-FFFF akan menyebabkan terjadinya peminjaman(Borrow), hasil word rendah(F000) yang didapatkan kemudian kita simpan pada variabel HslLo.
122 EFFF
FE FFFF
---------- -
023 F000
Sampai saat ini kita sudah selesai mendapatkan nilai pada word rendahnya, yang disimpan pada variabel HslLo.
MOV AX,AHi
SBB AX,BHi
MOV HslHi,AX
Langkah selanjutnya adalah menghitung word tingginya yaitu pengurangan 122-FE-Carry dengan menggunakan perintah SBB maka masalah tersebut dengan mudah terpecahkan. Akhirnya kita akan mendapatkan hasil pengurangan dari 122EFFF-0FEFFFF yaitu 23F000 yang tersimpan pada pasangan HslHi:HslLo(0023F000).

\DEC
Perintah DEC(Decrement) digunakan khusus untuk pengurangan dengan 1. Perintah DEC hanya menggunakan 1 byte memory, sedangkan perintah SUB dan SBB menggunakan 3 byte. Oleh sebab itu bila anda ingin melakukan operasi pengurangan dengan 1 gunakanlah perintah DEC. Syntax pemakaian perintah dec
ini adalah:

DEC Tujuan
Nilai pada tujuan akan dikurangi 1, seperti perintah Tujuan:=Tujuan-1 dalam Turbo Pascal. Tujuan disini dapat berupa suatu register maupun memory. Contoh perintah DEC AL akan mengurangi nilai di register AL dengan 1.

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; PROGRAM : CBA0.ASM ;
; FUNGSI : MENCETAK KARAKTER ;
; "Z".."A" DENGAN ;
; INT 21h SERVIS 02 ;
;==========================S’to=;
.MODEL SMALL
.CODE
ORG 100h
Proses :
MOV AH,02h ; Nilai servis
MOV DL,'Z' ; DL=5Ah
MOV CX,26 ; Banyaknya pengulangan yang akan
; dilakukan
Ulang:
INT 21h ; Cetak karakter !!
DEC DL ; Kurang DL dengan 1
LOOP Ulang ; Lompat ke Ulang

INT 20h
END Proses
Mencetak karakter "Z".."A"

Program bila dijalankan akan mencetak karakter "Z" sampai "A" sebagai berikut :
ZYXWVUTSRQPONMLKJIHGFEDCBA






OPERASI PERKALIAN
Untuk perkalian bisa digunakan perintah MUL dengan syntax:
MUL Sumber
Sumber disini dapat berupa suatu register 8 bit(Mis:BL,BH,..), register 16 bit(Mis: BX,DX,..) atau suatu varibel. Ada 2 kemungkinan yang akan terjadi pada perintah MUL ini sesuai dengan jenis perkalian 8 bit atau 16 bit.
Bila Sumber merupakan 8 bit seperti MUL BH maka komputer akan mengambil nilai yang terdapat pada BH dan nilai pada AL untuk dikalikan. Hasil yang didapat akan selalu disimpan pada register AX. Bila sumber merupakan 16 bit
seperti MUL BX maka komputer akan mengambil nilai yang terdapat pada BX dan nilai pada AX untuk dikalikan. Hasil yang didapat akan disimpan pada register DX dan AX(DX:AX), jadi register DX menyimpan Word tingginya dan AX menyimpan Word rendahnya.
;================================;
; PROGRAM : KALI.ASM ;
; AUTHOR : S’to ;
; FUNGSI : MENGALIKAN BILANGAN;
; 16 BIT, HASIL ;
; PADA DX:AX ;
;================================;
.MODEL SMALL
.CODE
ORG 100h
TData :
JMP Proses ; Lompat ke Proses
A DW 01EFh
B DW 02FEh
HslLo DW ?
HslHi DW ?
Proses:
MOV AX,A ; AX=1EF
MUL B ; Kalikan 1FH*2FE
MOV HslLo,AX ; AX bernilai C922 sehingga HslLo=C922
MOV HslHi,DX ; DX bernilai 0005 sehingga HslHi=0005
INT 20h ; Kembali ke DOS
END TData
Program Proses perkalian dengan MUL
Pada program kita mendefinisikan angka untuk variabel 'A'=1EF dan 'B'=2FE dengan DW. Karena tidak digunakan EQU, maka varibel 'A' dan 'B' dapat dirubah bila diinginkan.

PEMBAGIAN
Operasi pada pembagian pada dasarnya sama dengan perkalian. Untuk operasi pembagian digunakan perintah DIV dengan syntax:
DIV Sumber
Bila sumber merupakan operand 8 bit seperti DIV BH, maka komputer akan mengambil nilai pada register AX dan membaginya dengan nilai BH. Hasil pembagian 8 bit ini akan disimpan pada register AL dan sisa dari pembagian akan disimpan pada register AH.
Bila sumber merupakan operand 16 bit seperti DIV BX, maka komputer akan mengambil nilai yang terdapat pada register DX:AX dan membaginya dengan nilai BX. Hasil pembagian 16 bit ini akan disimpan pada register AX dan sisa dari
pembagian akan disimpan pada register DX.
;================================;
; PROGRAM : BAGI.ASM ;
; AUTHOR : S’to ;
; FUNGSI : MEMBAGI BILANGAN ;
; 16 BIT, HASIL ;
; PADA DX:AX ;
;================================;
.MODEL SMALL
.CODE
ORG 100h
TData :
JMP Proses ; Lompat ke Proses
A DW 01EFh
B DW 2
Hsl DW ?
Sisa DW ?
Proses:
SUB DX,DX ; Jadikan DX=0
MOV AX,A ; AX=1EF
DIV B ; Bagi 1EF:2
MOV Hsl,AX ; AX bernilai 00F7 sehingga Hsl=00F7
MOV Sisa,DX ; DX berisi 0001 sehingga Sisa=0001
INT 20h ; Kembali ke DOS
END Tdata
Program 8.5. Proses pembagian bilangan 16 bit

Cobalah anda trace dengan debug untuk melihat hasil yang didapat pada register AX dan DX.

http://aqwamrosadi.staff.gunadarma.ac.id/Donloads/files/12686/OPERASI+ARITMATIKA.doc

interupsi

Written By sunardi on Tuesday, July 6, 2010 | 8:58 AM

Unit M/K terdiri dari dua komponen yaitu:
Komponen Mekanis. Komponen Mekanis adalah perangkat M/K itu sendiri seperti mouse, monitor, dll.
Komponen Elektronis. Komponen Elektronis disebut juga dengan controller perangkat. Perangkat tidak berhubungan langsung dengan prosesor, controller -lah yang berhubungan dengan prosesor
Cara Perangkat Terhubung Ke Komputer

Perangkat M/K berkomunikasi dengan sistem komputer melalui sinyal yang dikirimkan melalui kabel maupun udara (wireless).

Perangkat M/K berhubungan dengan mesin melalui suatu titik yang bernama port.
Port M/K terdiri dari 4 register, yaitu:
- Data in register
- Data out register
- Status
- Control
Data-in register
Register ini yang akan dibaca CPU untuk mendapatkan input.

Data-out register
CPU menulis bit disini sebagai output data.
. Status.
CPU akan membaca register ini untuk mengetahui status perangkat. Status perangkat bisa menandakan apakah tersedia input di data-in register, perangkat selesai melaksanakan tugasnya dengan baik atau terjadi error di perangkat. Komponen M/K (I/O)


Control
Register ini ditulis oleh CPU untuk memulai perintah atau untuk mengganti modus perangkat.
Struktur bus pada PC



PCI (Peripheral Component Interconnect) bus adalah bus berkecepatan tinggi yang menghubungkan subsistem memori-prosesor ke perangkat berkecepatan tinggi dan ke Expansion bus yang berhubungan dengan perangkat yang lebih lambat.

SCSI atau Small Computer System Interface adalah bus yang menghubungkan beberapa disk ke SCSI controller.
Komunikasi Perangkat Dengan Prosesor

Ada dua pendekatan:

Instruksi M/K langsung
Setiap perangkat diberi nomor port M/K sepanjang 8/16 bit . Pada transfer data antara register perangkat dan register CPU digunakan instruksi M/K khusus. Instruksi M/K ini berbeda dari sekedar instruksi memori biasa karena alamat port M/K tidak menggunakan lokasi yang sama dengan alamat memori.
Memory mapped
Pendekatan ini menggunakan pemetaan alamat M/K ke memori. Register data dan buffer data dipetakan ke ruang alamat yang digunakan CPU.
Keunggulan memory mapped adalah:

Prosesor akan memiliki jumlah instruksi yang lebih sedikit.

Akses ke memori dilakukan dengan instruksi memori biasa,

Sistem operasi dapat mengontrol akses ke perangkat M/K
Bila prosesor ingin mengakses perangkat, salah satu pendekatannya adalah dengan berinteraksi dengan controller melalui protokol yang rumit tetapi dasar-nya cukup sederhana yaitu:
• CPU terus menerus membaca bit status sampai bit tersebut menandakan perangkat siap menerima perintah CPU.
CPU mengaktifkan bit-write di register perintah sebagai awal pertanda CPU memberikan perintah dan menulis sebuah byte di data-out.
• CPU mengaktifkan command-ready bit, artinya perintah tersedia untuk dijalankan controller.
• Controller melihat command ready bit di-set sehingga bit kerja di-set.
• Controller membaca register perintah dan melihat perintah write maka data-out dibaca dan menyuruh perangkat M/K melakukan apa yang diperintah CPU.
• Controller menghapus command ready bit, bit error di status dan bit kerja.
Langkah 1 disebut polling atau busy waiting. Prosesor terus-menerus membaca bit status, berharap suatu saat bit tersebut menandakan perangkat siap menerima perintahnya.
Sedangkan untuk mengetahui apakah perangkatnya sudah siap menerima perintah lagi atau belum, digunakanlah interupsi.
Interupsi

Interupsi terjadi bila suatu perangkat M/K ingin memberitahu prosesor bahwa ia siap menerima perintah, output sudah dihasilkan, atau terjadi error.
Penanganan Interupsi
Ada beberapa tahapan dalam penanganan interupsi:
• Controller mengirimkan sinyal interupsi melalui interrupt-request-line
• Sinyal dideteksi oleh prosesor
• Prosesor akan terlebih dahulu menyimpan informasi tentang keadaan state-nya (informasi tentang proses yang sedang dikerjakan)
• Prosesor mengidentifikasi penyebab interupsi dan mengakses tabel vektor interupsi untuk menentukan interrupt handler
• Transfer kontrol ke interrupt handler
• Setelah interupsi berhasil diatasi, prosesor akan kembali ke keadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang tadi sempat tertunda.
Interrupt Request Line
Pada kebanyakan CPU, ada dua interrupt request line.

1. interupsi nonmaskable,
Interupsi ini biasanya berasal dari perangkat keras dan harus segera dilaksanakan, seperti terjadinya error pada memori.
2. interupsi maskable,
jenis interupsi ini bisa dilayani oleh prosesor atau bisa tidak dilayani.
Kalaupun dilayani, harus dilihat keadaan prosesor saat itu. Ada kemungkinan prosesor langsung menangani bila saat itu, prosesor preemptive. Bila nonpreemptive, maka harus menunggu proses yang sedang dikerjakan selesai.
Prioritas Interupsi

Sistem ini memungkinkan interupsi berprioritas tinggi menyela eksekusi interupsi berprioritas rendah.
Sistem ini juga memungkinkan perangkat M/K yang membutuhkan pelayanan secepatnya didahulukan daripada perangkat lainnya yang prioritasnya lebih rendah.
Pengaturan prioritas dan penanganan perangkat berdasarkan prioritasnya diatur oleh prosesor dan controller interupsi.
Rangkuman
• Port adalah titik koneksi antara perangkat M/K dengan komputer.
• Data mengalir keluar masuk peralatan melalui bus.
• Komputer berkomunikasi dengan peralatan melalui device controller.
• Dua pendekatan dasar komunikasi perangkat dengan komputer: instruksi M/K langsung dan memory-mapped.
• Status suatu perangkat terlihat dari bit memory-mapped-nya, 1 berarti sibuk, 0 berarti siap. CPU akan memeriksa keadaan bit ini berulang kali untuk melihat apakah perangkat siap, hal ini dinamakan polling.
• Interupsi bisa terjadi karena input di perangkat telah siap, output komplit atau terjadi error.
• Sinyal Interupsi akan disampaikan melalui interrupt request line (IRL) yang akan diterima CPU dan mengalihkannya ke interrupt handler.
• Dua jenis interupsi yaitu maskable (bisa ditunda/ diabaikan) dan nonmaskable interrupt. Interrupt vector berisi alamat awal dari interrupt handler.

STRUKTUR DATA TUMPUKAN (STACK)

Written By sunardi on Thursday, June 17, 2010 | 5:49 AM

ASTRUKTUR DATA TUMPUKAN (STACK)adalah kumpulan elemen-elemen data yang disimpan dalam satu lajur linier, kumpulan elemen-elemen data hanya boleh diakses pada satu lokasi saja yaitu pada posisi ATAS (TOP) tumpukan.

Operasi-operasi dasar pada STACK (tumpukan)
a. CREATESTACK(S) : Membuat tumpukan baru S, dengan jumlah elemen kosong.
b. MAKENULL(S) : Mengosongkan tumpukan S, jika ada elemen maka semua elemen akan dihapus.
c. EMPTY : Tumpukan kosong? – menguji apakah tumpukan kosong.
d. PUSH(x,S) : Memasukan elemen baru x kedalam Tumpukan S.
e. POP(S) : Mengeluarkan elemen posisi atas pada Tumpukan S.
Ilustrasi operasi POP dan PUSH terhadap stack (Tumpukan)

No. OPERASI ISI TUMPUKAN NILAI TOP
1 CREATESTACK(S) 0
2 PUSH(‘a’,S) a 1
3 PUSH(‘b’,S) a b 2
4 PUSH(‘c’,S) a b c 3
5 POP(S) a b 2
6 PUSH(‘d’,S) a b d 3
7 PUSH(‘e’,S) a b d e 4
8 POP(S) a b d 3
9 POP(S) a b 2
10 POP(S) a 1
Apa yang terjadi bila dilakukan POP(S) sebanyak dua kali lagi? UNDERFLOW

Algoritma PUSH : PUSH(S, TOP, MAKSTUM, ELEMEN)
1. [Periksa kandungan tumpukan, apakah penuh?]
Jika TOP=MAKSTUM; Cetakan ‘OVERFLOW’
2. [Tambahkan TOP dengan 1]
TOP := TOP+1
3. [Masukan ELEMEN kedalam lokasi TOP yang baru]
S[TOP] := ELEMEN;
4. Return

Algoritma POP : POP(S, TOP, ELEMEN)
1. [Periksa kandungan Tumpukan, apakah kosong ?]
Jika TOP = 0 ; Cetakan ‘UNDERFLOW’
2. [Simpan nilai teratas pada ELEMEN]
ELEMEN := S[TOP]
3. [Kurangkan TOP dengan 1]
TOP := TOP-1
4. Return

NOTASI ARITMETIK (INFIX, PREFIX, DAN POSTFIX)
Notasi aritmetik biasa ditulis dalam notasi Infix, missal A+B-C. Notasi infix mudah dimengerti oleh manusia, hanya saja dalam notasi infix perlu diperhatikan prioritas pengerjaan karena berhubungan dengan hirarki operator pada computer. Prioritas pengerjaannya adalah :
1. Tanda kurung : ( …. )
2. Eksponensial atau pangkat : ^
3. Perkalian, pembagian : * , /
4. Penjumlahan, Pengurangan : +, -

Contoh : (A-B) * (C+D)
Prioritas pengerjaan soal diatas adalah sebagai berikut :
a. Dalam kurung yang paling kiri : (A-B)
b. Dalam kurung yang kedua : (C-D)
c. Perkalian hasil pengurangan dengan hasil penjumlahan.

Notasi Prefix dan Notasi Postfix lebih mudah dikerjakan oleh computer.

PREFIX adalah keadaan dimana symbol operator diletakan sebelum dua operand.
POSTFIX adalah keadaan dimana symbol operator diletakan sesudah dua operand.

Aturan notasi infix, prefix dan postfix :

- Notasi Infix : operand operator operand A + B
- Notasi Prefix : operator operand operand + A B (disebut juga Poslish Notation – PN)
- Notasi Postfix : Operand operand operator (disebut juga Reveser Polish Notation – RPN)

Contoh ke-1 : INFIX ke PREFIX (A+B) – (C*D)
Cara pengerjaan :
a. Pengerjaan dalam kurung ke-1 : (A+B), prefixnya adalah +AB
b. Pengerjaan dalam kurung ke-2 : (C*D), prefixnya adalah *CD
c. Terakhir adalah operator - , +AB - *CD, prefix nya adalah -+AB * CD

Contoh ke-2 : INFIX ke POSTFIX (A+B) – (C*D)
Cara pengerjaan :
a. Pengerjaan dalam kurung ke-1 : (A+B), postfixnya adalah AB+
b. Pengerjaan dalam kurung ke-2 : (C*D), postfixnya adalah CD*
c. Terakhir adalah operator - , AB+ - CD*, postfix nya adalah AB+ CD*-

Contoh ke-3 : PREFIX ke INFIX: +/*ABCD
Cara pengerjaan : mencari operator dimulai dari operand terkanan.
a. Cari operator ke-1 : *, ambil dua operand sebelumnya A dan B, sehingga infixnya adalah (A*B)
b. Cari operator ke-2 : /, ambil dua operand sebelumnya (A*B) dan C, sehingga infixnya adalah ((A*B)/C)
c. Cari operator ke-3 : +, ambil dua operand sebelumnya ((A*B)/C) dan D, sehingga infixnya adalah ((A*B)/C)+D


Contoh ke-4 : PREFIX ke POSTFIX: +/*ABCD
Cara pengerjaan : mencari operator dimulai dari operand terkanan.
a. Cari operator ke-1 : *, ambil dua operand sebelumnya A dan B, sehingga postfixnya adalah AB*
b. Cari operator ke-2 : /, ambil dua operand sebelumnya AB* dan C, sehingga postfixnya adalah AB* C/
c. Cari operator ke-3 : +, ambil dua operand sebelumnya AB* C/ dan D, sehingga postfixnya adalah AB* C/ D+


Contoh ke-5 : POSTFIX ke INFIX : ABCD*/-
Cara pengerjaan : mencari operator dimulai dari operand terkiri.
a. Cari operator ke-1 : *, ambil dua operand sebelumnya C dan D, sehingga infixnya adalah (C*D)
b. Cari operator ke-2 : /, ambil dua operand sebelumnya B dan (C*D), sehingga infixnya adalah (B/(C* D))
c. Cari operator ke-3 : -, ambil dua operand sebelumnya A dan (B/(C* D)), sehingga infixnya adalah A- (B/(C* D)).

Contoh ke-6 : POSTFIX ke PREFIX : ABCD*/-
Cara pengerjaan : mencari operator dimulai dari operand terkiri.
a. Cari operator ke-1 : *, ambil dua operand sebelumnya C dan D, sehingga prefixnya adalah *CD
b. Cari operator ke-2 : /, ambil dua operand sebelumnya B dan *CD, sehingga prefixnya adalah /B *CD
c. Cari operator ke-3 : - , ambil dua operand sebelumnya A dan /B *CD, sehingga prefixnya adalah –A /B *C

Sumber : Teddy Markus Zakaria, Agus Prijono.2005.Konsep dan Implementasi Struktur Data. Bandung : Penerbit Informatika

Materi Struktur Data

Written By sunardi on Wednesday, June 16, 2010 | 1:43 PM

Materi Struktur Data bisa di download disini :
Pertemuan 1 : Kontrak Kuliah & Pendahuluan
Pertemuan 2 : Pengantar Struktur Data, ADT dan Struct
Pertemuan 3 : Searching Array
Pertemuan 4 : Sorting Array
Pertemuan 5 : Array Stack & Queue
Pertemuan 6 : Pointer dan Function
Pertemuan 7 : Single Linked List Non Circular
Pertemuan 8 : Single Linked List Circular
Pertemuan 9 : Double Linked List Non Circular
Pertemuan 10: Double Linked List Circular
Pertemuan 11 : Recursif Function
Pertemuan 12 : Tree manipulation
Pertemuan 13 : Struktur Graf
data ini di ambil dari :
http://artika84.blogspot.com/2010/03/blog-post_12.html

Prinsip Pascal

Sebagaimana telah kita pelajari pada pokok bahasan Tekanan pada Fluida, setiap fluida selalu memberikan tekanan pada semua benda yang bersentuhan dengannya. Air yang kita masukan ke dalam gelas akan memberikan tekanan pada dinding gelas. Demikian juga apabila kita mandi dalam kolam renang atau air laut, air kolam atau air laut tersebut juga memberikan tekanan pada seluruh tubuh kita. Nah, tekanan total air pada kedalaman tertentu, misalnya tekanan air laut pada kedalaman 200 meter merupakan jumlah tekanan atmosfir yang menekan permukaan air laut dan “tekanan terukur” pada kedalaman 200 meter. Jadi selain lapisan bagian atas air menekan lapisan air yang ada di bawahnya, terdapat juga atmosfir alias udara yang menekan permukaan air laut tersebut.

Tekanan yang ditimbulkan oleh lapisan fluida yang ada di atas bisa kita katakan “tekanan dalam” karena tekanan itu sendiri berasal dari dalam fluida sedangkan tekanan atmosfir bisa kita katakan “tekanan luar” karena atmosfir terpisah dari fluida. Tekanan atmosfir yang dalam kasus ini merupakan tekanan luar, bekerja pada seluruh permukaan fluida dan tekanan tersebut disalurkan pada seluruh bagian fluida. Karenanya tekanan total fluida pada kedalaman tertentu selain disebabkan oleh tekanan lapisan fluida pada bagian atas, juga dipengaruhi oleh tekanan luar (untuk kasus di atas adalah tekanan atmosfir).

Untuk semakin memahami penjelasan ini, mari kita tinjau zat cair yang berada dalam suatu wadah. Tekanan zat cair pada dasar wadah tentu saja lebih besar dari tekanan zat cair pada bagian di atasnya (ingat kembali pembahasan mengenai Tekanan Pada Fluida). Semakin ke bawah, semakin besar tekanan zat cair tersebut, sebaliknya semakin mendekati permukaan atas wadah, semakin kecil tekanan zat cair. Besarnya tekanan sebanding dengan pgh (p = massa jenis, g = percepatan gravitasi dan h = ketinggian/kedalaman). Pada setiap titik pada kedalaman yang sama, besarnya tekanan sama. Hal ini berlaku untuk semua zat cair dalam wadah apapun dan tidak bergantung pada bentuk wadah tersebut. Apabila kita tambahkan tekanan luar, misalnya dengan menekan permukaan zat cair tersebut, pertambahan tekanan dalam zat cair adalah sama di mana-mana. Jadi apabila diberikan tekanan luar, setiap bagian zat cair mendapat “jatah” tekanan yang sama. Karenanya besar tekanan selalu sama di setiap titik pada kedalaman yang sama. Ini merupakan Prinsip Pascal, dicetuskan dan dinamakan sesuai dengan nama pencetusnya, Om Blaise Pascal (1623-1662). Om Pascal merupakan filsuf dan ilmuwan Perancis, bukan Indonesia. Kapan neh dari Indonesia, dirimu-kah ? :)

Prinsip Pascal menyatakan bahwa tekanan yang diberikan pada cairan dalam suatu tempat tertutup akan diteruskan sama besar ke setiap bagian fluida dan dinding wadah

Secara matematis bisa ditulis sebagai berikut :



P = tekanan, F = Gaya dan A = Luas permukaan. Kata “masuk” mewakili “tekanan yang diberikan”, sedangkan kata “keluar” mewakili “tekanan yang diteruskan”.

Penerapan Prinsip Pascal

Berpedoman pada prinsip Om Pascal ini, manusia telah menghasilkan beberapa alat, baik yang sederhana maupun canggih untuk membantu mempermudah kehidupan. Beberapa di antaranya adalah Dongkrak Hidrolik, Lift Hidrolik, Rem Hidrolik dkk…

Dongkrak alias Lift Hidrolik

Cara kerja dongkrak alias lift hidrolik ditunjukkan pada gambar di bawah.

Silahkan amati gambar yang kusam ini dengan penuh semangat. Jangan dipelototin… hehe… Dongkrak hidrolik terdiri dari sebuah bejana yang memiliki dua permukaan. Pada kedua permukaan bejana terdapat penghisap (piston), di mana luas permukaan piston di sebelah kiri lebih kecil dari luas permukaan piston di sebelah kanan. Luas permukaan piston disesuaikan dengan luas permukaan bejana. Bejana diisi cairan, seperti pelumas (oli dkk).

Apabila piston yang luas permukaannya kecil ditekan ke bawah, maka setiap bagian cairan juga ikut tertekan. Besarnya tekanan yang diberikan oleh piston yang permukaannya kecil (gambar kiri) diteruskan ke seluruh bagian cairan. Akibatnya, cairan menekan piston yang luas permukaannya lebih besar (gambar kanan) hingga piston terdorong ke atas. Luas permukaan piston yang ditekan kecil, sehingga gaya yang diperlukan untuk menekan cairan juga kecil. Tapi karena tekanan (Tekanan = gaya / satuan luas) diteruskan seluruh bagian cairan, maka gaya yang kecil tadi berubah menjadi sangat besar ketika cairan menekan piston di sebelah kanan yang luas permukaannya besar. Jarang sekali orang memberikan gaya masuk pada piston yang luas permukaannya besar, karena tidak menguntungkan. Pada bagian atas piston yang luas permukaannya besar biasanya diletakan benda atau begian benda yang mau diangkat (misalnya mobil dkk)

Dirimu jangan heran jika mobil yang massanya sangat besar dengan mudah diangkat hanya dengan menekan salah satu piston. Ingat bahwa luas permukaan piston sangat kecil sehingga gaya yang kita berikan juga kecil. Walaupun demikian gaya masukan yang kecil tersebut bisa berubah menjadi gaya keluaran yang sangat besar bila luas permukaan keluaran sangat besar. Jika dongkrak hidrolik dirancang untuk mengangkat mobil yang massanya sangat berat maka perancang perlu memperhatikan besar gaya berat mobil tersebut dan besarnya gaya keluaran yang dihasilkan oleh dongkrak. Semakin besar gaya berat mobil yang diangkat maka semakin besar luas permukaan keluaran dari dongkrak hidrolik. Minimal gaya keluaran yang dihasilkan oleh dongkrak hidrolis lebih besar/sama dengan gaya berat benda yang diangkat.

Rem Hidrolik

Bersambung

Referensi :

Giancoli, Douglas C., 2001, Fisika Jilid I (terjemahan), Jakarta : Penerbit Erlangga

Halliday dan Resnick, 1991, Fisika Jilid I, Terjemahan, Jakarta : Penerbit Erlangga

Kanginan, Marthen, 2000, Fisika 2000, SMU kelas 1, Caturwulan 2, Jakarta : Penerbit Erlangga

Tipler, P.A.,1998, Fisika untuk Sains dan Teknik-Jilid I (terjemahan), Jakarta : Penebit Erlangga

Young, Hugh D. & Freedman, Roger A., 2002, Fisika Universitas (terjemahan), Jakarta : Penerbit Erlangga

Prinsip dan persamaan Bernoulli

Prinsip Bernoulli

Prinsip Bernoulli menyatakan bahwa di mana kecepatan aliran fluida tinggi, tekanan fluida tersebut menjadi rendah. Sebaliknya jika kecepatan aliran fluida rendah, tekanannya menjadi tinggi.

Ketika sepeda motor bergerak dengan cepat, maka kecepatan udara di bagian depan dan samping tubuhmu tinggi. Dengan demikian, tekanan udara menjadi rendah. Nah, bagian belakang tubuhmu terhalangi bagian depan tubuhmu, sehingga kecepatan udara di bagian belakang tubuhmu tidak berubah menjadi tinggi (tepat di bagian belakang tubuhmu). Akibatnya tekanan udara di bagian belakang tubuhmu menjadi lebih besar. Karena ada perbedaan tekanan udara, di mana tepat di bagian belakang tubuh tekanan udara lebih besar maka udara mendorong bajumu ke belakang sehingga bajumu kelihatan kembung ke belakang.

Bagaimana dengan daun pintu rumah yang menutup sendiri ketika angin bertiup kencang di luar rumah ? udara yang ada di luar rumah bergerak lebih cepat daripada udara yang ada di dalam rumah. Akibatnya, tekanan udara di luar rumah lebih kecil dari tekanan udara dalam rumah. Karena ada perbedaan tekanan, di mana tekanan udara di dalam rumah lebih besar, maka pintu didorong keluar. Dengan kata lain, daun pintu bergerak dari tempat yang tekanan udaranya besar menuju tempat yang tekanan udaranya kecil. Persamaan Bernoulli

Sebelumnya kita telah belajar mengenai prinsip Om Bernoulli. Nah, Om Bernoulli juga mengembangkan prinsipnya itu secara kuantitatif. Untuk menurunkan persamaan Bernoulli, kita anggap aliran fluida tunak & laminar, tak-termampatkan alias tidak bisa ditekan, viskositas alias kekentalannya juga kecil sehingga bisa diabaikan.

Pada pembahasan mengenai Persamaan Kontinuitas, kita sudah belajar bahwa laju aliran fluida juga dapat berubah-ubah tergantung luas penampang tabung alir. Berdasarkan prinsip om Bernoulli yang dijelaskan di atas, tekanan fluida juga bisa berubah-ubah tergantung laju aliran fluida tersebut. Selain itu, dalam pembahasan mengenai Tekanan Pada Fluida (Fluida Statis), kita juga belajar bahwa tekanan fluida juga bisa berubah-ubah tergantung pada ketinggian fluida tersebut. Nah, hubungan penting antara tekanan, laju aliran dan ketinggian aliran bisa kita peroleh dalam persamaan Bernoulli. Persamaan bernoulli ini sangat penting karena bisa digunakan untuk menganalisis penerbangan pesawat, pembangkit listrik tenaga air, sistem perpipaan dkk.

Agar persamaan Bernoulli yang akan kita turunkan berlaku secara umum, maka kita anggap fluida mengalir melalui tabung alir dengan luas penampang yang tidak sama dan ketinggiannya juga berbeda (lihat gambar di bawah). Untuk menurunkan persamaan Bernoulli, kita terapkan teorema usaha dan energi pada fluida dalam daerah tabung alir (ingat kembali pembahasan mengenai usaha dan energi). Selanjutnya, kita akan memperhitungkan banyaknya fluida dan usaha yang dilakukan untuk memindahkan fluida tersebut.



bernoulli-1Warna buram dalam tabung alir pada gambar menunjukkan aliran fluida sedangkan warna putih menunjukkan tidak ada fluida.

Fluida pada luas penampang 1 (bagian kiri) mengalir sejauh L1 dan memaksa fluida pada penampang 2 (bagian kanan) untuk berpindah sejauh L2. Karena luas penampang 2 di bagian kanan lebih kecil, maka laju aliran fluida pada bagian kanan tabung alir lebih besar (Ingat persamaan kontinuitas). Hal ini menyebabkan perbedaan tekanan antara penampang 2 (bagian kanan tabung alir) dan penampang 1 (bagian kiri tabung alir) – Ingat prinsip Bernoulli. Fluida yang berada di sebelah kiri penampang 1 memberikan tekanan P1 pada fluida di sebelah kanannya dan melakukan usaha sebesar :


Pada penampang 2 (bagian kanan tabung alir), usaha yang dilakukan pada fluida adalah :
W1 = – p2 A2 L2

Tanda negatif menunjukkan bahwa gaya yang diberikan berlawanan dengan arah gerak. Jadi fluida melakukan usaha di sebelah kanan penampang 2.

Di samping itu, gaya gravitasi juga melakukan usaha pada fluida. Pada kasus di atas, sejumlah massa fluida dipindahkan dari penampang 1 sejauh L1 ke penampang 2 sejauh L2, di mana volume fluida pada penampang 1 (A1L1) = volume fluida pada penampang 2 (A2L2). Usaha yang dilakukan oleh gravitasi adalah :

W3 = – mg (h2 – h1)

W3 = – mgh2 + mgh1

W3 = mgh1 – mgh2

Tanda negatif disebabkan karena fluida mengalir ke atas, berlawanan dengan arah gaya gravitasi. Dengan demikian, usaha total yang dilakukan pada fluida sesuai dengan gambar di atas adalah :

W = W1 + W2 + W3

W = P1A1L1 – P2A2L2 + mgh1 – mgh2

Sampai di sini tarik napas pendek 1000 kali dulu… Waduh pusink

Teorema usaha-energi menyatakan bahwa usaha total yang dilakukan pada suatu sistem sama dengan perubahan energi kinetiknya. Dengan demikian, kita bisa menggantikan Usaha (W) dengan perubahan energi kinetik (EK2 – EK1). Persamaan di atas bisa kita tulis lagi menjadi :

W = P1A1L1 – P2A2L2 + mgh1 – mgh2

EK2 - EK1 = P1A1L1 – P2A2L2 + mgh1 – mgh2

½ mv22 – ½ mv12 = P1A1L1 – P2A2L2 + mgh1 – mgh2

Ingat bahwa massa fluida yang mengalir sejauh L1 pada penampang A1 = massa fluida yang mengalir sejauh L2 (penampang A2). Sejumlah massa fluida itu, sebut saja m, mempunyai volume sebesar A1L1 dan A2L2, di mana A1L1 = A2L2 (L2 lebih panjang dari L1).


Sekarang kita subtitusikan alias kita gantikan m pada persamaan di atas :


Persamaan ini bisa juga ditulis dalam bentuk seperti ini :

Ini adalah persamaan Om Bernoulli. Persamaan om Bernoulli ini kita turunkan berdasarkan prinsip usaha-energi, sehingga merupakan suatu bentuk Hukum Kekekalan Energi

Keterangan :


Ruas kiri dan ruas kanan pada persamaan Bernoulli di atas bisa mengacu pada dua titik di mana saja sepanjang tabung aliran sehingga kita bisa menulis kembali persamaan di atas menjadi :

Persamaan ini menyatakan bahwa jumlah total antara besaran-besaran dalam persamaan mempunyai nilai yang sama sepanjang tabung alir.

Sekarang mari kita tinjau persamaan Bernoulli untuk beberapa kasus.

Persamaan Bernoulli pada Fluida Diam

Kasus khusus dari persamaan Bernoulli adalah untuk fluida yang diam (fluida statis). Ketika fluida diam alias tidak bergerak, fluida tersebut tentu saja tidak punya kecepatan. Dengan demikian, v1 = v2 = 0. Pada kasus fluida diam, persamaan Bernouli bisa kita rumuskan menjadi :

Persamaan Bernoulli pada Tabung Alir atau Pipa yang ketinggiannya sama

Jika ketinggian tabung alir atau pipa sama, maka persamaan Bernoulli bisa dioprek menjadi :

Referensi

Giancoli, Douglas C., 2001, Fisika Jilid I (terjemahan), Jakarta : Penerbit Erlangga

Halliday dan Resnick, 1991, Fisika Jilid I, Terjemahan, Jakarta : Penerbit Erlangga

Tipler, P.A.,1998, Fisika untuk Sains dan Teknik-Jilid I (terjemahan), Jakarta : Penebit Erlangga

Young, Hugh D. & Freedman, Roger A., 2002, Fisika Universitas (terjemahan), Jakarta : Penerbit Erlangga

materi GPI ( gerakan pembaharuan islam )

Written By sunardi on Friday, May 7, 2010 | 10:59 PM

MATERI TENTANG

Polymorphisme

Written By sunardi on Saturday, April 10, 2010 | 10:39 AM

Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.
Untuk menjelaskan polymorphism, mari kita bahas sebuah contoh.

Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya. Sebagai contoh,

public static main( String[] args ) {

Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //titik referensi Person kepada // sebuah object Student



misalnya, kita memiliki sebuah method getName dalam superclass Person. Dan kita meng-override method ini di kedua subclass yaitu Student dan Employee

public class Student {
public String getName(){
System.out.println(“Student Name:” + name);
return name;
}
}
public class Employee {
public String getName(){
System.out.println(“Employee Name:” + name);
return name;
}
}

Kembali ke method utama kita, ketika kita mencoba memanggil method getName dari referensi Person ref, method getName dari object Student akan dipanggil.
Sekarang, jika kita memberi ref kepada object Employee, maka method getName juga akan dipanggil
public static main( String[] args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //titik referensi Person kepada object Student
//getName dari class Student dipanggil
String temp=ref.getName();
System.out.println( temp );
ref = employeeObject; //titik referensi Person kepada object Employee

//getName dari class Employee dipanggil
String temp = ref.getName();
System.out.println( temp );
}

Contoh lain yang menggambarkan polymorphism adalah ketika kita mencoba untuk passing reference kepada method
jika kita memiliki sebuah method static printInformation yang menerima referensi Person sebagai parameter

public static printInformation( Person p ){
. . . .
}

Sebenarnya kita dapat passing reference dari Employee dan Student kepada method printInformation selama kedua class tersebut merupakan subclass dari Person

public static main( String[] args )
{
Student studentObject = new Student();
Employee employeeObject = new Employee();
printInformation( studentObject );
printInformation( employeeObject );

oleh
nama : sunardi
nim : 09530570

Enkapsulasi

Enkapsulasi adalah suatu cara untuk menyembunyikan informasi detail dari suatu class. Dua hal yang mendasar dalam enkapsulasi yakni :
• Information hiding.
• Interface to access data.
Information hiding
Sebelumnya kita dapat mengakses anggota class baik berupa atribut maupun method secara langsung dengan menggunakan objek yang telah kita buat. Hal ini dikarenakan akses kontrol yang diberikan kepada atribut maupun method yang ada di dalam class tersebut adalah 'public'. Kita dapat menyembunyikan informasi dari suatu class sehingga anggota class tersebut tidak dapat diakses dari luar, caranya adalah hanya dengan memberikan akses kontrol 'private' ketika mendeklarasikan atribut atau method. Proses ini disebut dengan information hiding.
Interface to access data
Jika kita telah melakukan information hiding terhadap suatu atribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap atribut yang kita sembunyikan tersebut, caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.


Implementasi UML
Berikut ini kita akan coba untuk lebih memahami penggunaan konsep enkapsulasi dengan mengimplementasikan UML berikut :



UML Vehicle class with no hiding
Vehicle class berisi atribut yang mempunyai modifier public(+), sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.
Listing program - Vehicle.java
public class Vehicle{
public double load, maxLoad;
public Vehicle (double maxLoad){
maxLoad = maxLoad + load;
}
public double getLoad(){
return load;
}
public double getMaxLoad(){
return maxLoad;
}
}
Listing program - TestVehicle.java
public class TestVehicle{
public static void main(String[] args){
System.out.println("Creating a vehicle with a 10,000kg maximum load.");
Vehicle vehicle = new Vehicle(10000.0);
System.out.println("Add box #1 (500kg)");
vehicle.load = vehicle.load + 500.0;
System.out.println("Add box #2 (250kg)");
vehicle.load = vehicle.load + 250.0;
System.out.println("Add box #3 (5000kg)");
vehicle.load = vehicle.load + 5000.0;
System.out.println("Add box #4 (4000kg)");
vehicle.load = vehicle.load + 4000.0;
System.out.println("Add box #4 (300kg)");
vehicle.load = vehicle.load + 300.0;
System.out.println("Vehicle load is = " +vehicle.getLoad() + "kg");
}
}
Compile Vehicle.java dan TestVehicle.java lalu jalankan TestVehicle.java. Seharusnya akan keluar tampilan sebagai berikut :


Analisa program
Kita lihat bahwa pada output program tersebut kita menginisialisasi batas maximum load 10,000 kg,
Vehicle vehicle = new Vehicle(10000.0);
akan tetapi dengan memberikan akses kontrol / modifier public pada atribut class Vehicle
public double load, maxLoad;
kita dapat mengakses langsung atribut class yang seharusnya perlu diberi pengecekan agar tidak sampai melebihi maxload
vehicle.load = vehicle.load + 500.0;
maka dapat mengakibatkan masalah(trouble) yakni batas maximum load yang kita buat tidak berpengaruh apapun sehingga terdapat penambahan boxes yang melebihi kapasitas(10050.0kg) dikaernakan tidak ada pengecekan kapasitas maksismum.


UML Vehicle class with hiding
Vehicle class berisi atribut yang mempunyai modi_er public, sehingga TestVehicle1 sebagai test program mempunyai akses langsung terhadap atribut pada Vehicle.
Listing program - Vehicle.java
public class Vehicle1{
private double load, maxLoad;
public Vehicle1 (double max){
this.maxLoad = max;
}
public double getLoad(){
return this.load;
}
public double getMaxLoad(){
return this.maxLoad;
}
public boolean addBox(double weight){
double temp = 0.0D;
temp = this.load + weight;
if(temp <= maxLoad){ this.load = this.load + weight; return true; } else{ return false; } } } Listing program - TestVehicle.java public class TestVehicle1{ public static void main(String[] args){ System.out.println("Creating a vehicle with a 10,000 kg maximum load."); Vehicle1 vehicle = new Vehicle1(10000); System.out.println("Add box #1 (500kg) : " + vehicle.addBox(500)); System.out.println("Add box #2 (250kg) : " + vehicle.addBox(250)); System.out.println("Add box #3 (5000kg) : " + vehicle.addBox(5000)); System.out.println("Add box #4 (4000kg) : " + vehicle.addBox(4000)); System.out.println("Add box #5 (300kg) : " + vehicle.addBox(300)); System.out.println("Vehicle load is " +vehicle.getLoad() + "kg"); } } Compile Vehicle1.java dan TestVehicle1.java lalu jalankan TestVehicle1.java. Maka akan keluar tampilan sebagai berikut :

oleh
nama : sunardi
nim : 09530570

Inheritance

Inheritance/pewarisan adalah membuat class baru yang masih mempunyai spesifikasi (state & behaviour)
yang sama dengan class yang sudah ada.

Class yang baru disebut class turunan/subclass sementara,
class yang sudah ada disebut dengan class induk/superclass.


umum
SuperClass | Polygon ( state: P & L & warna,
| | | behaviour: cetak info P & L & warna)
| | |
V | V
SubClass | segiempat ( state: P & L & warna,
| | | behaviour: cetak info P & L & warna, hitung luas segiempat)
| | |
V | V
Sub-Subclass | jajarangenjang ( state: P & L & warna,
V behaviour: cetak info P & L & warna, hitung luas empat,
khusus hitung luas segitiga, hitung luas jajarangenjang)


SubClass (class turunan) akan memiliki(mewarisi) semua ciri dan sifat dari SuperClass (class induk).
Keyword yang digunakan dalam pewarisan ini adalah "EXTENDS ".

program ex.: induk_anak.java
----------------------------
class induk {
int A, B;

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B);
}
}

class anak extends induk { //-----> membuat class "anak" yang diturunkan(inherite) dari class "induk"
int C;

void jumlah() {
// class "anak" juga mempunyai member (state) milik class "induk"
System.out.println("Jumlah : " + (A+B+C) );
}
}

class induk_anak {
public static void main(String[] args) {
induk hen_cock = new induk();
anak chicken = new anak();

System.out.println("Class Induk/SuperClass");
hen_cock.A = 1;
hen_cock.B = 2;
hen_cock.tampil();

System.out.println("Class Anak/SubClass");
chicken.A = 3;
chicken.B = 4;
chicken.tampil();

chicken.z = 5;
chicken.jumlah();
}
}
----------------------------

Hasil :
Class Induk/SuperClass
Nilai A : 1, B : 2
Class Anak/SubClass
Nilai A : 3, B : 4
Jumlah : 12
----------------------------


Pada Class turunan dapat ditambahkan state & behaviour yang baru,
yang merupakan/bersifat spesifik milik subclass itu sendiri.
Ex: var C dan method jumlah

Dimungkinkan juga untuk pendefinisian ulang state & behaviour
dari class induk di class turunan (overloading/overriding).
Contoh :

program ex.: induk_anak2.java
----------------------------
class induk {
int A, B;

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B);
}
}

class anak2 extends induk { //-----> membuat class "anak" yang diturunkan(inherite) dari class "induk"
int C;

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B + ", C : " + C);
}

void jumlah() {
// class "anak" juga mempunyai member (state) milik class "induk"
System.out.println("Jumlah : " + (A+B+C) );
}
}

class induk_anak {
public static void main(String[] args) {
induk hen_cock = new induk();
anak chicken = new anak();

System.out.println("Class Induk/SuperClass");
hen_cock.A = 1;
hen_cock.B = 2;
hen_cock.tampil();

System.out.println("Class Anak/SubClass");
chicken.A = 3;
chicken.B = 4;
chicken.tampil();

chicken.z = 5;
chicken.jumlah();
}
}
----------------------------

Hasil :
Class Induk/SuperClass
Nilai A : 1, B : 2
Class Anak/SubClass
Nilai A : 3, B : 4, C : 5
Jumlah : 12
----------------------------

Dengan adanya overriding method, object akan langsung menggunakan method
yang didefinifikan pada class tersebut.
Sehingga untuk mengakses method yang sama milik class induk dibutuhkan keyword "super".
ex:
super.A=3;
super.tampil();


Dimungkinkannya inheritance dan overriding method, class turunan dapat dipastikan juga
memiliki construktor dari class induk.
Untuk menggunakan construktor milik class induk anda cukup menggunakan keyword "super" seperti di atas.
Namun anda tidak perlu menuliskan nama construktor tersebut (ex: super.induk()).
Cukup gunakan keyword "super" ditambah dengan daftar parameter yang sama dengan cunstruktor milik induk.

program ex.: induk_anak3.java
----------------------------
class induk {
int A, B;

induk(int x, int y) {
A = x;
B = y;
}

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B);
}
}

class anak2 extends induk { //-----> membuat class "anak" yang diturunkan(inherite) dari class "induk"
int C;

induk(int x, int y, int z) {
super(x,y);
C = z;
}

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B + ", C : " + C);
}

void jumlah() {
// class "anak" juga mempunyai member (state) milik class "induk"
System.out.println("Jumlah : " + (A+B+C) );
}
}

class induk_anak {
public static void main(String[] args) {
induk hen_cock = new induk();
anak chicken = new anak();

System.out.println("Class Induk/SuperClass");
hen_cock.A = 1;
hen_cock.B = 2;
hen_cock.tampil();

System.out.println("Class Anak/SubClass");
chicken.A = 3;
chicken.B = 4;
chicken.tampil();

chicken.z = 5;
chicken.jumlah();
}
}
----------------------------


Di Java tidak diizinkan "multiple inheritance" seperti yang diizinkan di C++ .
ex: class jajarangenjang : public segiempat, public segitiga

Namun ada cara lain untuk menurunkan beberapa kelas dalam satu class,
yaitu "multilevel (inheritance) hierarchy".
Ex:

class induk{
......
......
}

class anak extends induk{
......
......
}

class cucu extends anak{
......
......
}


Dari program diatas, class cucu akan memiliki spesifikasi/sifat seperti yang dimiliki
class anak dan induk sekaligus.


Keuntungan :
1. Reusable code, tidak perlu mendefinisikan/membuat method lagi. Gunakan saja yang sudah ada.
2. Hemat waktu, biaya dan tenaga dalam pengembangan program.

oleh
nama : sunardi
nim : 09530570

Written By sunardi on Friday, April 9, 2010 | 9:11 AM

CPU (CENTRAL PROCESSING UNIT)
CPU merupakan tempat pemroses instruksi-instruksi program, yang pada komputer mikro disebut dengan micro-processor (pemroses mikro). Pemroses ini berupa chip yang terdiri dari ribuan hingga jutaan IC. Dalam dunia dagang, pemroses ini diberi nama sesuai dengan keinginan pembuatnya dan umumnya ditambah dengan nomor seri, misalnya dikenal pemroses Intel 80486 DX2-400 (buatan Intel dengan seri 80486 DX2-400 yang dikenal dengan komputer 486 DX2), Intel Pentium 100 (dikenal dengan komputer Pentium I), Intel Pentium II-350, Intel Pentium III-450, Intel Celeron 333, AMD K-II, dan sebagainya. Masing-masing produk ini mempunyai kelebihan dan kekurangan masing-masing.


CPU terdiri dari dua bagian utama yaitu unit kendali (control unit) dan unit aritmatika dan logika (ALU). Disamping itu, CPU mempunyai beberapa alat penyimpan yang berukuran kecil yang disebut dengan register.
CU (CONTROL UNIT) / UNIT KENDALI
Unit ini bertugas mengatur dan mengendalikan semua peralatan yang ada pada sistem komputer. Unit kendali akan mengatur kapan alat input menerima data dan kapan data diolah serta kapan ditampilkan pada alat output. Unit ini juga mengartikan instruksi-instruksi dari program komputer, membawa data dari alat input ke memori utama, dan mengambil data dari memori utama untuk diolah. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU. Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian 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.
ALU (ARITHMATIC AND LOGIC UNIT)
Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.
Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).
Register
Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan instruksi yang sedang diproses sementara data dan instruksi lainnya yang menunggu giliran untuk diproses masih disimpan di dalam memori utama. Secara analogi, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.
Program yang berisi kumpulan dari instruksi-instruksi dan data diletakkan di memori utama yang diibaratkan sebagai sebuah meja. Kita mengerjakan program tersebut dengan memproses satu per satu instruksi-instruksi yang ada di dalamnya, dimulai dari instruksi yang pertama dan berurutan hingga yang terakhir. Instruksi ini dibaca dan diingat (instruksi yang sedang diproses disimpan di register).
Misalnya instruksi berbunyi HITUNG C = A + B, maka kita membutuhkan data untuk nilai A dan B yang masih ada di meja (tersimpan di memori utama). Data ini dimaca dan masuk ingatan kita (data yang sedang diproses disimpan di register), yaitu misalnya A bernilai 2 dan B bernilai 3. Saat ini ingatan otak kita telah tersimpan suatu instruksi, nilai A, dan nilai B, sehingga nilai C dapat dihitung yaitu sebesar 5 (proses perhitungan ini dilakukan di ALU). Hasil dari perhitungan ini perlu dituliskan kembali ke meja (hasil pengolahan disimpan kembali ke memori utama). Setelah semua selesai, kemungkinan data, program, dan hasilnya disimpan secara permanen untuk keperluan di lain hari sehingga perlu disimpan di dalam lemari kabinet (penyimpanan sekunder).
Dengan demikian, ada tiga macam memori yang dipergunakan di dalam sistem komputer, yaitu:
1. Register, digunakan untuk menyimpan instruksi dan data yang sedang diproses.
2. Main memory, dipergunakan untuk menyimpan instruksi dan data yang akan diproses dan hasil pengolahan.
3. Secondary storage, dipergunakan untuk menyimpan program dan data secara permanen.
Ada banyak register yang terdapat pada CPU dan masing-masing sesuai dengan fungsinya. Di bawah ini akan diberikan penjelasan secara garis besar dari masing-masing register:
1. Instruction Register (IR) digunakan untuk menyimpan instruksi yang sedang diproses.
2. Program Counter (PC) adalah register yang digunakan untuk menyimpan alamat lokasi dari memori utama yang berisi instruksi yang sedang diproses. Selama pemrosesan instruksi oleh CPU, isi dari PC diubah menjadi alamat dari memori utama yang berisi instruksi berikutnya yang mendapat giliran akan diproses, sehingga bila pemrosesan sebuah instruksi selesai maka jejak instruksi selanjutnya di memori utama dapat dengan mudah didapatkan.
3. General purpose register, yaitu register yang mempunyai kegunaan umum yang berhubungan dengan data yang sedang diproses. Sebagai contoh, register jenis ini yang digunakan untuk menampung data yang sedang diolah disebut dengan operand register, sedang untuk menampung hasil pengolahan disebut accumulator.
4. Memory data register (MDR) digunakan untuk menampung data atau instruksi hasil pengiriman dari memori utama ke CPU atau menampung data yang akan direkam ke memori utama dari hasil pengolahan oleh CPU.
5. Memory address register (MAR) digunakan untuk menampung alamat data atau instruksi pada memori utama yang akan diambil atau yang akan diletakkan.
Sebagai tambahan dari register, beberapa CPU menggunakan suatu cache memory yang mempunyai kecepatan sangat tinggi dengan tujuan agar kerja dari CPU lebih efisien dan mengurangi waktu yang terbuang. Tanpa cache memory, CPU akan menunggu sampai data atau instruksi diterima dari memori utama, atau menunggu hasil pengolahan selesai dikirim ke memori utama baru proses selanjutnya bisa dilakukan. Padahal proses dari memori utama lebih lambat dibanding kecepatan register sehingga akan banyak waktu terbuang. Dengan adanya cache memory, sejumlah blok informasi pada memori utama dipindahkan ke cache memory dan selanjutnya CPU akan selalu berhubungan dengan cache memory.
Array Processor
Bila sejumlah besar dari perhitungan harus dilakukan, maka untuk mempercepat proses biasanya dipergunakan unit tambahan yang disebut dengan array processor atau co-processor. Unit ini terpisah dari unit lainnya yang dapat ditambahkan pada pemroses utamanya. Dengan perkembangan teknologi sekarang, unit pemroses tambahan ini sudah tidak diperlukan lagi karena pemroses mikro yang ada sudah mampu menangani perhitungan dengan kemampuan dan kecepatan yang sangat tinggi. Teknologi pemroses tambahan ini diperlukan untuk komputer-komputer mikro lama, misalnya yang masih menggunakan pemroses utama seri 8088 hingga 80486.
MEMORI
CPU hanya dapat menyimpan data dan instruksi di register yang berukuran kecil sehingga tidak dapat menyimpan semua informasi yang dibutuhkan untuk keseluruhan proses program. Untuk mengatasi hal ini, maka CPU harus dilengkapi dengan alat penyimpan yang berkapasitas lebih besar yaitu memori utama. Unit ini dapat dibayangkan sebagai sekumpulan kotak-kotak yang masing-masing dapat menyimpan sepenggal informasi baik berupa data maupun instruksi. Tiap-tiap lokasi dari kotak ditunjukkan oleh suatu alamat (address), yaitu berupa nomor yang menunjukkan lokasi tertentu dari kotak memori.
Ukuran memori ditunjukkan oleh satuan byte, misalnya 1 Mb, 4 Mb, 8 Mb, atau bahkan adayang sampai 256 Mb. Pada umumnya 1 byte memori terdiri dari 8 - 32 bit (binary digit), yaitu banyaknya digit biner (0 atau 1) yang mampu disimpan dalam satu kotak memori.
Random Access Memory (RAM)
Semua data dan program yang dimasukkan melalui alat input akan disimpan terlebih dahulu di memori utama, khususnya RAM, yang dapat diakses secara acak (dapat diisi/ditulis, diambil, atau dihapus isinya) oleh pemrogram. Struktur RAM terbagi menjadi empat bagian utama, yaitu:
1. Input storage, digunakan untuk menampung input yang dimasukkan melalui alat input.
2. Program storage, digunakan untuk menyimpan semua instruksi-instruksi program yang akan diakses.
3. Working storage, digunakan untuk menyimpan data yang akan diolah dan hasil pengolahan.
4. Output storage, digunakan untuk menampung hasil akhir dari pengolahan data yang akan ditampilkan ke alat output.
Input yang dimasukkan melalui alat input akan ditampung terlebih dahulu di input storage. Bila input tersebut berupa program maka akan dipindahkan ke program storage, dan bila berbentuk data maka akan dipindahkan ke working storage. Hasil dari pengolahan juga ditampung terlebih dahulu di working storage dan bila akan ditampilkan ke alat output maka hasil tersebut dipindahkan ke output storage.
Read Only Memory (ROM)
Dari namanya, ROM hanya dapat dibaca sehingga pemrogram tidak bisa mengisi sesuatu ke dalam ROM. ROM sudah diisi oleh pabrik pembuatnya berupa sistem operasi yang terdiri dari program-program pokok yang diperlukan oleh sistem komputer, seperti misalnya program untuk mengatur penampilan karakter di layar, pengisian tombol kunci papan ketik untuk keperluan kontrol tertentu, dan bootstrap program. Program bootstrap diperlukan pada saat pertama kali sistem komputer diaktifkan. Proses mengaktifkan komputer pertama kali ini disebut dengan booting, yang dapat berupa cold booting atau warm booting.
Cold booting merupakan proses mengaktifkan sistem komputer pertama kali untuk mengambil program bootstrap dari keadaan listrik komputer mati (off) menjadi hidup (on). Sedangkan warm booting merupakan proses pengulangan pengambilan program bootstrap pada saat komputer masih hidup dengan cara menekan tiga tombol tombol pada papan ketik sekaligus, yaitu Ctrl, Alt, dan Del. Proses ini biasanya dilakukan bila sistem komputer macet, daripada harus mematikan aliran listrik komputer dan menghidupkannya kembali.
Instruksi-instruksi yang tersimpan di ROM disebut dengan microinstruction atau firmware karena hardware dan software dijadikan satu oleh pabrik pembuatnya. Isi dari ROM ini tidak boleh hilang atau rusak karena bila terjadi demikian, maka sistem komputer tidak akan bisa berfungsi. Oleh karena itu, untuk mencegahnya maka pabrik pembuatnya merancang ROM sedemikian rupa sehingga hanya bisa dibaca, tidak dapat diubah-ubah isinya oleh orang lain. Selain itu, ROM bersifat non volatile supaya isinya tidak hilang bila listrik komputer dimatikan.
Pada kasus yang lain memungkinkan untuk merubah isi ROM, yaitu dengan cara memprogram kembali instruksi-instruksi yang ada di dalamnya. ROM jenis ini berbentuk chip yang ditempatkan pada rumahnya yang mempunyai jendela di atasnya. ROM yang dapat diprogram kembali adalah PROM (Programmable Read Only Memory), yang hanya dapat diprogram satu kali dan selanjutnya tidak dapat diubah kembali. Jenis lain adalah EPROM (Erasable Programmable Read Only Memory) yang dapat dihapus dengan sinar ultraviolet serta dapat diprogram kembali berulang-ulang. Disamping itu, ada juga EEPROM (Electrically Erasable Programmable Read Only Memory) yang dapat dihapus secara elektronik dan dapat diprogram kembali.
BUS
Hubungan antara CPU dengan memori utama ataupun dengan alat-alat input/output (I/O) dilakukan melalui suatu jalur yang disebut dengan bus. Hubungan antara CPU dengan memori utama melalui jalur bus yang dilekatkan pada MDR, MAR, dan unit kendali dalam CPU. Sedangkan bus yang menghubungkan CPU dengan alat-alat I/O tidak dilekatkan langsung ke alat-alat I/O, tetapi dapat dilakukan melalui suatu alat I/O port atau DMA controller atau I/O channel.
Bus merupakan suatu sirkuit yang merupakan jalur transportasi informasi antara dua atau alat-alat dalam sistem komputer. Bus yang menghubungkan antara CPU dengan memori utama disebut dengan internal bus, sedang yang menghubungkan CPU dengan alat-alat I/O disebut external bus. Di dalam internal bus, hubungan antara CPU dengan memori utama dilakukan melalui data bus yang dihubungkan dengan MDR, dan melalui address bus yang dihubungkan dengan MAR, serta melalui control bus yang dihubungkan dengan control unit.
PEMROSESAN INSTRUKSI
Jika pemrogram menginginkan CPU untuk mengerjakan sesuatu, maka harus ditulis suatu instruksi yang dapat dipahami oleh CPU. Kumpulan dari instruksi inilah yang disebut dengan program.
Program yang akan diproses dan data yang akan diolah oleh CPU harus diletakkan terlebih dahulu di memori utama. Proses ini yang biasa kita lakukan dengan mengetikkan nama program pada prompt DOS, atau meng-klik ikon pada sistem operasi Windows. Instruksi-instruksi yang dapat diproses oleh CPU adalah instruksi-instruksi yang sudah dalam bentuk bahasa mesin.
Tahap pertama dari pemrosesan suatu instruksi oleh CPU disebut dengan instruction fetch, yaitu proses CPU mengambil atau membawa instruksi dari memori utama ke CPU. Tahap selanjutnya (kedua) disebut instruction execute, yaitu proses dari CPU untuk mengerjakan instruksi yang sudah diambil dari memori utama dan sudah berada di IR register.
Waktu yang dibutuhkan untuk menyelesaikan tahap pertama disebut waktu instruksi (instruction time), dan waktu yang dibutuhkan untuk menyelesaikan tahap kedua disebut waktu eksekusi (execution time). Sedangkan total waktu yang dibutuhkan untuk kedua tahap tersebut dinamakan waktu siklus (cycle time).
Beberapa pabrik komputer mengukur kecepatan CPU berdasarkan lamanya melakukan satu siklus mesin yang diukur dengan satuan megahertz (Mhz), dimana satu Mhz berarti dapat diselesaikan satu juta siklus per detiknya. Suatu pengukur waktu yang disebut dengan clock akan berdetak untuk tiap-tiap siklus yang dilakukan. Misalnya suatu pemroses 16 Mhz berarti clock akan berdetak sebanyak 16 juta kali tiap detiknya.
 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. sisuncute - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger