Bismillah...

Jadi ada
- 2 buat textbox (username dan passowrd)
- 1 combo untuk statusnya isi optionnya staff (value=2),dosen (value=3),mahasiswa (value=1)
- tombol submit

Nah login actionnya

<?php
session_start();
$level=$_POST['level'];
$user=trim($_POST['username']);
$pass=trim($_POST['pass']);
if($level==1) $table='mahasiswa';
if($level==2) $table='staff';
if($level==3) $table='dosen';
$sql="select id,username from $table where username='$user' and password=md5($pass)";
//jika login berhasil
$_SESSION['level']=$level;
$_SESSION['user']=$res['username'];
header("location:main.php");
?>

Bahasa Pemrograman

Bahasa pemrograman adalah bahasa yang menjadi sarana manusia untuk berkomunikasi dengan komputer.

Penggolongan bahasa pemrograman berdasarkan tingkat ketergantungannya dengan mesin :

a.  Bahasa Mesin 
Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat diinterpretasikan langsung oleh mesin komputer. Bahasa mesin sering juga disebut native code (sangat tergantung pada mesin tertentu). Bahasa ini merupakan bahasa level terendah dan berupa kode biner 0 dan 1. Sekumpulan instruksi dalam bahasa mesin dapat membentuk microcode (semacam prosedur dalam bahasa mesin)
Keuntungan  : Eksekusi cepat
Kerugian  : Sangat sulit dipelajari manusia

b.  Bahasa Assembly (Mnemonic Code)
Merupakan bentuk simbolik dari bahasa mesin, dianggap sebagai bahasa pemrograman yang pertama kali berbentuk string dan lebih mudah dimengerti manusia. Setiap kode bahasa mesin memiliki simbol sendiri dalam bahasa assembly. 
Misalnya ADD untuk penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain. 
Sekumpulan kode  - kode bahasa assembly dapat membentuk makroinstruksi. Bahasa assembly juga memiliki program pendebug-nya, tidak seperti bahasa mesin

Kelebihan  : Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file hasil sangat kecil.
Kekurangan  :  Tetap sulit dipelajari, program sangat panjang.

c.  Bahasa Tingkat Tinggi (High Level Language) / user oriented 
Bahasa ini lebih dekat dengan bahasa manusia. Bahasa ini juga memberikan banyak sekali fasilitas kemudahan pembuatan program, misalnya: variabel, tipe data, konstanta, struktur kontrol, loop, fungsi, prosedur dan lain-lain. Contoh: Pascal, Basic, C++, dan Java. Mendukung information hiding, enkapsulasi, dan abstract data type.

d.  Bahasa yang berorientasi pada masalah spesifik (specific problem oriented).
Bahasa ini adalah bahasa yang digunakan langsung untuk memecahkan suatu masalah tertentu.
Contoh : SQL untuk aplikasi database, COGO untuk aplikasi teknik sipil, Regex untuk mencocokkan pola
pada string tertentu, MatLab untuk matematika, dll. 

Menggunakan C++

download Dev C++
instal di komputer
jalankan dev C++
pilih menu File – New – Source File
akan muncul layar kosong berwarna putih
tuliskan program (Coding)

Compiling & Debugging
test program yang di buat berhasil atau tidak,
tekan tombol F9 pada key board atau dengan memilih menu
Execute – Run

akan ditanya di mana akan menyimpan file source  (tipe file nya adalah CPP)
simpan di folder
di dalam folder ada 2 source file yaitu CPP dan file executeable (EXE)
jalankan exe

 contoh program

1.Hello World

#include <stdio.h>
#include <conio.h>

int main()
{
printf(“Hello world”);

getch();
}

2.Contoh looping

#include <stdio.h>
#include <conio.h>

int main()
{
int a=1;
  while (a<=10)
        {
          printf(“Hello\n”);
          a++;
}
    getch();
}


3.Bilangan genap

#include “stdio.h”
#include “conio.h”

int main()
{
int n,x, genap;

printf(“Berapa bilangan genap yang akan di tampilkan?”);
scanf(“%d”, &n);

x=1;
while (x<=n)
    {
        genap= 2*x;
        printf(“%d ”, genap);
        x++;
}
   getch();
}


4.Bilangan ganjil

#include “stdio.h”
#include “conio.h”

int main()
{
int n,x, ganjil;

printf(“Berapa bilangan ganjil yang akan di tampilkan? ”);
scanf(“%d”, &n);

x=1;
while (x<=n)
    {
        ganjil= 2*x -1;
        printf(“%d ”, ganjil);
        x++;
}
   getch();
}


5.Bilangan prima

#include "stdio.h"
#include "conio.h"

int main()
{
int prima, i,j, bil,n;
printf("Masukkan batasan : ");
scanf("%d",&n);
for (i=2; i<=n; i++)
    {
     prima=i;
    for(j=2; j<i; j++)
        {
        bil= i%j;
        if(bil==0)
           {
           prima=0;
           break;
           }
         
        }
    if(prima!=0)
      {
      printf("%d ",prima);
      }
    }
   getch();
}

6.Multi Looping

#include "stdio.h"
#include <conio.h>

int main()
{
int x,y,n;
printf("masukkan jumlah baris : ");
scanf("%d", &n);

for(x=1; x<=n; x++)
{
for (y=1; y<=x; y++)
    {
    printf("%d ",y);
    }
printf("\n");
}

getch();
}

7.Multilooping

#include "stdio.h"
#include <conio.h>

int main()
{
int x,y,n;
printf("masukkan jumlah baris : ");
scanf("%d", &n);

for(x=1; x<=n; x++)
{
y=1;
do
   {
    printf("%d ",y);
    y++;
   } while (y<=x);
 
printf("\n");
}

getch();
}

Translator


Translator (penerjemah) melakukan pengubahan source code / source program (program sumber) ke dalam target code / object code / object program (program objek). 
Source code ditulis dalam bahasa sumber, object code berupa bahasa pemrograman lain / bahasa mesin pada suatu komputer. 
Jadi penerjemah membaca suatu program yang ditulis dalam bahasa sumber dan menerjemahkan bahasa sumber ke dalam suatu bahasa lain. 
Saat melakukan proses penerjemahan, penerjemah akan melaporkan adanya  keanehan/kesalahan yang mungkin diketemukan. 

macam translator

a.  Assembler 
Source code adalah bahasa assembly, object code adalah bahasa mesin 
contoh : Turbo Assembler, Macro Assembler 



b.  Interpreter 
Input berupa source code yaitu bahasa scripting seperti PHP, Basic, Perl, Javascript, ASP, Java bytecode, Basic, Matlab, Matematica, Ruby.
 Interpreter tidak menghasilkan object code.  Hanya menghasilkan translasi internal. Input dapat berasal dari source code maupun dari inputan program dari user.  Source code dan inputan data user diproses pada saat yang bersamaan.
 Pada interpreter, program tidak harus dianalisis seluruhnya dulu, tapi bersamaan dengan jalannya
program.
Keuntungan  : mudah bagi user, debuging cepat
Kekurangan  : eksekusi program lambat, tidak langsung menjadi program  executable. 

c.  Kompilator (Compiler) 
Istilah compiler muncul karena dulu ada program yang menggunakan subrutin-subrutin atau pustaka-pustaka untuk keperluan yang sangat khusus yang dikumpulkan menjadi satu sehingga diistilahkan compiled.
 Input berupa source code program seperti Pascal, C, C++. Object code adalah bahasa assembly.
Source code dan data input diproses pada saat yang berbeda.
Compile time  adalah saat pengubahan dari source code menjadi object code.  Runtime  adalah saat eksekusi object code dan mungkin menerima input data dari user. Output : bahasa assembly. Kemudian oleh linker dihasilkan file EXE.
Kekurangan  : debugging lebih lambat
Keuntungan  : eksekusi program lebih cepat, menghasilkan file executable yang berdiri sendiri.

Register

Register

Register adalah sekumpulan sel biner yang dipakai untuk menyimpan informasi yang disajikan dalam kode-kode biner.

Jenis-jenis register dan fungsinya :
1.    General purpose register yang terbagi atas empat register dan dalam register general purpose terbagi atas high dan low yang masing-masing menangani register 8 bit. Dengan penjelasannya sebagai berikut :

a)    Register AX (accumulator register)
register AX adalah biasanya berfungsi sebagai register yang menangani proses aritmatik atau proses pertambahan, pengurangan, perkalian, dan pembagian. Tapi bisa menyimpan data sementara maupun sebagai tempat transit data. Register AX terbagi atas high dan low yaitu :
 -    register AH (8bit) sebagai register high sering dipakai sebagai service number pada interrupt
 -    register AL (8bit) sebagai register low merupakan tempat transit data.

b)    Register BX (base register)
register BX biasanya berfungsi sebagai register basis untuk mereferensikan lokasi memori atau lebih tepatnya menunjukan lokasi memori. Yang dapat pula mengambil atau menulis langsung dari atau ke memori. Register BX terbagi atas high dan low yaitu :
 -    registerBH (8bit) sebagai register high
 -   register BL (8bit) sebagai register low

c)    Register CX (counter register)
register CX biasanya berfungsi sebagai counter atau digunakan jika nanti ada melakukan berapa banyak kita melakukan looping atau pengulangan. Atau lebih tepatnya menentukan banyaknya looping atau pengulangan. CX terbagi atas high dan low yaitu :
 -     register CH (8bit) sebagai register high
 -     register CL (8bit) sebagai register low
d)    Register DX (data register)
register DX biasanya berfungsi sebagai penampung isi hasil pembagian 16 bit. Merupakan pula register offset dari DS. Register DX juga menunjukkan nomor port pada operasi port. Register ini juga merupakan register offset atau menyimpan alamat data. Register DX juga terbagi atas high dan low yaitu :
 - register DH (8bit) sebagai register high
 - register DL (8bit) sebagai register low
2.    Segment register adalah suatu register yang menunjukan alamat segment-segment yang mempunyai kekhususan, yang terbagi atas empat register juga yaitu :
a)    Register CS (code segment register)
register CS fungsinya untuk menunjukkan segment suatu program berada. Pasangan dari register CS adalah register IP
b)    Register Ds (data segment register)
register DS fungsinya menunjukkan segment data dimana data-data program disimpan. Sedangkan pasangan dari register ds adalah register DX.
c)    Register SS (stack segment register)
register SS fungsinya adalah menunjukkan segment stack dimana letak dari address stack. Yang berpasangan dengan register SP.
d)    Register ES (extra segment register)
register ES tidak mempunyai tugas khusus, tapi register ini berguna untuk pemrograman untuk melakukan operasi ke segment lain yang tak terletak diregister CS, SS dan DS.
3.    Pointer register adalah rergister yang mempunyai tugas khusus untuk menunjukan alamat offset, yang terbagi atas tiga register yaitu :
a)    Register IP (instruction pointer)
register IP fungsinya menunjukkan offset dari alamat program. Yang berpasangan dengan register CS
b)    Register SP (stack pointer)
register SP fungsinya mencatat alamat stack dan menunjukkan offset dari alamat stack, yang berpasangan dengan register SS
c)    Register BP (base pointer)
fungsi dari register BP adalah untuk membaca dan menulis dengan segment SS (stack pointer)
4.    Index register yang terbagi atas dua register yaitu :
a)    Register SI (source index register)
register SI merupakan register yang mencatat alamat memori yang isi memorinya akan digunakan. Register SI sebagai sumber pembacaan memori.
b)    Register DI (destination index register)
register DI seperti SI juga membaca alamat memori untuk tempat tujuan penulisan data di memori.
5.    Flag register merupakan suatu pemberi tanda setiap operasi contohnya jika kita sedang menjalankan interupt maka IF akan hidup atau jika sedang menjalankan debugger maka IF akan hidup. Macam-macam dari flag register adalah OF (oferflow flag), DF (direction flag), IF (intterupt flag), TF (trap flag), SF (sign flag), ZF (zero flag), dan CF (carry flag).

GENERASI BAHASA PEMROGRAMAN


1. Generasi Pertama (Bahasa Mesin)
Disebut generasi pertama karena merupakan jenis yang paling awal dikembangkan pada tahun 1940-an dan awal 1950-an dan semua program harus dikodekan dalam bahasa mesin sebagai bahasa internal komputer yang mengeksekusi secara langsung tanpa terjemahan (translation). 
 -    Menggunakan kode-kode biner (0 dan 1), dengan basis dasar transistor, rumit, sukar dihafal, dan lama
 -    Dikembangkan dengan bilangan oktal dan heksadesimal
 -    Akan menyita waktu dan kondusif untuk membuat kesalahan
 -    Berbeda untuk setiap jenis komputer, sehingga bergantung pada komputer dan tidak standar Semua program harus ada dalam bahasa mesin agar dapat dieksekusi, sehingga bahasa lain yang ditulis programer perlu diterjemahkan oleh komputer ke bahasa mesin untuk eksekusi.

2. Generasi Kedua (Bahasa Assembly)
Penggunaan komputer secara komersial tahun 1950-an mengakibatkan dikembangkannya bahasa assembly  dengan ciri-ciri:
 -    Kode ditandai dengan nama yang mudah diingat seperti ADD, SUB, dan MULT
 -    Alamat penyimpanan (storage addresses) nyata di mana data ditempatkan dapat didefinisikan dengan nama-nama seperti  AMT1 dan AMT2 untuk memudahkan rujukan.

Bahasa assembly sangat menyerupai bahasa mesin, sehingga untuk menjadi programmer bahasa assembly yang cakap kita harus memahami arsitektur mesin, yakni bagaimana mesin itu secara fisik memproses data. Sama seperti bahasa mesin, bahasa assembly tergantung komputer (tidak portable)dan Untuk menerjemahkan kode-kode diperlukan program khusus yang disebut  ASSEMBLER.
Bahasa assembly masih digunakan karena begitu mirip dengan bahasa mesin dengan kode yang sangat efisien Untuk membuat system software lebih disukai menggunakan bahasa assembly karena sangat efisiean dalam penggunaan komputer (butuh memori yang kecil)
3. Generasi Ketiga (Bahasa Tingkat Tinggi / High Level Language)
Penggunaan komputer dalam bisnis berkembang sangat dramatis pada tahun 1950-an. Bahasa mesin dan assembly terlalu sulit, sehingga muncul third-generation languages (3GLs) yang lebih mudah untuk program dan portable. 
Disebut tingkat tinggi karena mudah dipelajari & program tingkat-tinggi memerlukan proses penerjemahan oleh komputer yang sangat rumit yang disebut  COMPILER atau INTERPRETER
Seperti generasi pendahulunya 1GL dan 2GL, 3GL disebut bahasa prosedural (4GL dan 5GL disebut  bahasa nonprosedural), yakni program harus menentukan kumpulan instruksi yang tepat yang dibutuhkan untuk menyelesaikan tugas yang diberikan Contoh bahasa tingkat-tinggi   : 
- FORTRAN (FORmula TRANslator)
- Cobol
- Pascal
- BASIC
- MODULA-2
- ADA
- Object-oriented programming language
Bahasa C disebut bahasa “tingkat-menengah” karena format instruksinya dengan bahasa tingkat-tinggi sekaligus bisa berinteraksi langsung dengan hardware

4. Generasi Keempat (Bahasa Deklaratif)
Bahasa pemrograman ini jauh lebih mudah ditulis karena instruksinya sudah sangat mendekati bahasa percakapan sehari-hari. misal : LIST NAMA, ALAMAT, NILAI FOR NILAI > 7
Ciri-ciri  :
- Mudah untuk dipelajari dan dipahami
- Tepat untuk pengaksesan database
- Memfokuskan pada memaksimalkan produktivitas manusia dari pada minimisasi waktu computer
- Nonprosedural
- Tersedia dalam software paket yang dapat digunakan untuk mengembangkan aplikasi yang diinginkan
Contoh: 
- Query language seperti SQL (structured query language), QBE (query-by-example) dan INTELLECT
- Report generator

5. Generasi Kelima  (Object-Oriented Language)
Sering digunakan untuk akses database atau membuat sistem pakar (expert system) atau knowledge-based system Dalam konsep, ditujukan untuk bahasa alami (natural languages) yang semirip mungkin dengan hubungan kemanusiaan
Contoh   : LISP dan Prolog
Sekarang ini banyak sistem pakar dikodekan baik dalam LISP  maupun Prolog, meski untuk hal yang sama bisa ditulis dalam C atau C++. Usaha yang sekarang dilakukan adalah memperbaiki bahasa AI (artificial intellegence) dengan mengkombinasikan kemampuan terbaik dari LISP dan Prolog

II.    PERKEMBANGAN COMPAILER
Sejarah Compiler Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulaiditemukannya komputer pada awal 1950-an. Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan sangat pesat dan pembentukkansuatu kompilator dapat dilakukan makin mudah. Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang. Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, makasuatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan
Walaupun secara tradisional suatu kompilator dikaitkan denga suatu proses penerjemahan suatu bahasa sumber ke dalam suatu bahasa asembler atau bahasa mesin dari suatu komputer, tetapi ada beberapa proses lain yang secara langsung tidak terkait oleh kerja suatu kompilator, tetapi pengembangannya dapat dilakukan seperti pengembangan suatu kompilator. Berikut ini adalah beberapa proses yang pengembangannya dapat dilakukan sejalan dengan pengembangan suatu kompilator, tetapi penggunaannya bukan untuk penerjemahan dari suatu bahasa ke dalam bahasa lain:

a.    Pemformatan teks
Suatu pemforamt teks mempunyai masukan berupa aliran karakter, dimana sebagian besar dari karakter tersebut akan dicetak, tetapi bagian lainnya digunakan untuk perintah perintah cetakan seperti ganti bari, keterangan gambar, struktur matematika seperti index dan lain sebagainya.

b.Kompilator silikon
Kompilator ini pada dasarnya hanya mengolah sinyal logika (0 atau 1) atau kelompok sinyal dari suatu sirkuit, sedangkan keluarannya adalah suatu rancangan sirkuit yang didefinisikan oleh suatu bahasa tertentu.

c.Interpreter query
Dalam aplikasi basis data suatu bahasa query, yang merupakan suatu predikat yang mengandung operator boolean maupun relasi, diterjemahkan ke dalam suatu proses pencarian suatu record dalam basis data yang memenuhi predikat yang telah diberikan.

Sistim Bilangan

I.    Sistem Bilangan
Pada dasarnya dalam pengolahan teknologi digital menggunakan sistem bilangan biner, adanya sistem bilangan oktal dan heksa bertujuan agar pengolahan data lebih efektif dan efisien.
1.    Macam-macam sistem bilangan
a)    Bilangan biner adalah bilangan yang hanya terdiri atas 2 kemungkinan (Berbasis dua), yaitu 0 dan 1. Contoh bilangan biner adalah 1112 = (1 X 2²) + (1 X 2¹) + (1 X 2⁰) = 710.
b)    Bilangan desimal adalah bilangan yang terdiri atas 10 buah angka(Berbasis 10), yaitu angka 0-9. Dengan basis sepuluh ini maka suatu angka dapat dijabarkan dengan perpangkatan sepuluh. Contohnya : pada angka 12310 = (1 X 10²) + (2 X 10 ¹) + (3 X 100).
c)    Bilangan oktal adalah bilangan dengan basis 8, artinya  angka yang dipakai hanyalah antara 0-7. Contoh bilangan oktal adalah 128 = (1 X 8¹) + (2 X 80) = 1010.
d)    Bilangan heksadesimal merupakan bilangan yang berbasis 16. menggunakan 16  buah simbol, mulai dari 0 sampai 9, kemudian dilanjut dari A sampai F. Jadi, angka A sampai F merupakan simbol untuk 10 sampai 15. Karena berbasis 16, maka 1 angka pada heksadesimal akan menggunakan 4 bit. Contoh bilangan heksadesimal adalah C516.

2.    Cara mengkonversi Bilangan
a)    Konversi bilangan desimal ke biner
Untuk mengkonversi bilangan desimal ke biner adalah dengan membagi bilangan tersebut dengan 2, maka diperoleh hasil pembagian dan sisa, kemudian hasil baginya dibagi dengan 2 dan diperoleh hasil pembagian dan sisa , Proses tersebut dilanjutkan sampai angka yang hendak dibagi adalah 0, kemudian nilai sisa diurutkan dari sisa terakhir
Contoh : Konversi dari 25 (2510) ke biner.
25 : 2 = 12    sisa 1.   
12 : 2 = 6     sisa 0. 
25 : 2 = 12     sisa 1.
12 : 2 = 6     sisa 0.
6 : 2 = 3     sisa 0.
3 : 2 = 1     sisa 1.
1 : 2 = 0     sisa 1.
0 : 2 = 0     sisa 0
hasil konversinya adalah urutan seluruh sisa-sisa perhitungan telah diperoleh, dimulai dari bawah ke atas, Angka 0 di awal tidak perlu ditulis, sehingga hasilnya menjadi 110012.

b)    Konversi bilangan desimal ke oktal.
Proses konversinya sama dengan proses konversi desimal ke biner, hanya saja kali ini pembaginya adalah 8.
Contoh : Konversi 33 (3310) ke oktal.
33 : 8 = 4     sisa 1.
4 : 8 = 0     sisa 4.
0 : 8 = 0     sisa 0
Hasilnya 418.

c)    Konversi desimal ke heksadesimal
Untuk menghitung proses konversinya, caranya sama saja dengan proses konversi desimal ke biner, namun angka pembaginya adalah 16.
Contoh : Konversi 234 (23410) ke heksa
243 : 16  = 15     sisa 3
15 : 16        = 0     sisa F  (15 diganti jadi F)
0 :  16     = 0     sisa 0
Hasil konversi  23410  adalah F316.

d)    Konversi bilangan biner ke desimal.
Proses konversi bilangan biner ke bilangan desimal adalah proses perkalian setiap bit pada bilangan biner dengan perpangkatan 2, dimana perpangkatan 2 tersebut berurut dari kanan ke kiri bit bernilai 20 sampai 2n.
Contoh  : Konversi 110012 ke desimal.
Kalikan setiap bit dengan perpangkatan 2 berurut mulai dari 20 sampai 2n, untuk setiap bit mulai dari kanan ke kiri.
1   =>    1 x 20     = 1
0   =>     0 x 21    = 0
0   =>    0 x 22     = 0
1   =>    1 x 23     = 8
1  =>    1 x 24     = 16
Hasilnya adalah 1 + 0 + 0 + 8 + 16 = 2510.

e)    Konversi bilangan biner ke oktal.
langkah yang dilakukan adalah mengelompokan bilangan biner tersebut masing-masing 3 bit, mulai dari kanan ke kiri, Konversikan masing-masing kelompok bit ke desimal, kemudian gabungkan.
Contoh : Konversi 1101112 ke oktal.
Kelompokan menjadi masing-masing 3 bit
110  dan 111
Konversi ke desimal 110 = 6  dan 111 = 7
maka 1101112 = 678

*) Untuk bila bilangan yang binernya tidak 3 bit atau tidak kelipatanya maka tambahkan angka 0 di sebelah kiri

f)    Konversi bilangan biner ke heksadesimal.
Proses konversinya dengan mengelompokan bit-bit bilangan menjadi maing-masing 4 bit. Pemilahan dimulai dari kanan ke kiri, Konversikan masing-masing kelompok bit ke decimal
Contoh : Konversi 111000102 ke bentuk heksadesimal
Kelompokan menjadi masing-masing 3 bit
    1110  dan 0010
Konversi ke desimal    1110     = 14  (E)  dan  0010 = 2
Hasil konversi  111000102  adalah E216.

*) Bila bilangan binernya tidak 4 bit atau kelipatanya  maka tambahkan angka 0 di sebelah kiri

g)    Konversi bilangan oktal ke desimal.
Untuk menkonversikan dengan mengalikan setiap bilangan dengan perpangkatan 8 dan menjumlahkanya.
Contoh : Konversi  718 ke desimal
1 x 80 = 1
7 x 81 = 56
Maka hasilnya adalah penjumlahan 1 + 56 = 5710.

h)    Konversi bilangan Oktal ke biner.
Proses konversinya yaitu dengan mengelompokan bilangan oktal tersebut menjadi masing-masing ke 3 bit bilangan biner. Kemudian konversikan ke biner
Contoh : Konversi 578  menjadi biner
5=1012
7=1112.
Gabungkan hasilnya, maka 578  = 1011112.

i)    Konversi oktal ke heksadesimal.
Untuk konversi oktal ke heksadesimal, dengan mengkonversi terlebih dahulu ke bilangan biner, kemudian konversikan nilai biner tersebut ke nilai heksadesimalnya.

j)    Konversi bilangan heksadesimal ke desimal.
Untuk proses konversi ini, caranya sama saja dengan proses konversi biner ke desimal, hanya saja kali ini perpangkatan yang digunakan adalah perpangkatan 16,
Contoh : Konversi C816 ke bilangan desimal
8 x 160 = 8
12 (C) x 161 = 192   
Maka diperolehlah hasil konversinya bernilai 8 + 192 = 20010.

k)    Konversi dari heksadesimal ke biner.
Dalam proses konversi heksadesimal ke biner, setiap simbol dalam heksadesimal mewakili 4 bit dari biner.
Contoh : Konversi B716  ke biner
11   (B)               7      
1011                0111 
Hasilnya disatukan, sehingga menjadi 101101112.

l)    Konversi heksadesimal ke oktal.
Untuk konversi heksadesimal ke oktal, dengan mengkonversi dahulu ke bilangan biner. kemudian konversikan nilai biner tersebut ke nilai oktalnya.

Memori dan Interupsi

I.    Memori pada sistem komputer

Sebuah sistem komputer memiliki berbagai jenis memori yang memiliki kinerja,kapasitas dan kecepatan berbeda-beda sesuai dengan tingkat hirarkinya. Memori yang memiliki hirarki paling atas,  memiliki tingkat kecepatan yang paling tinggi tetapi memiliki tingkat kapasitas (kemampuan penyimpanan data) paling rendah. Sesuai dengan tingkat hirarkinya, memori dalam sebuah komputer dapat dibedakan sebagai
berikut :
  
1.    Register
Register merupakan memori dengan hirarki yang paling tinggi. Berada dalam chip sebuah prosesor dan merupakan bagian integral dari prosesor itu sendiri. Register merupakan memori dengan kemampuan proses paling cepat, dimana proses baca dan tulis dilakukan dalam satu siklus detak.

2.    Cache Memory (Static RAM)
Cache Memory atau dalam bahasa Indonesia disebut memori cashe merupakan memori yang berada pada hirarki kedua setelah register. Cashe memiliki kapasitas kecil tetapi berkecepatan tinggi dan dipasang diantara prosesor dan memori utama. Memori ini dibuat dilatar belakangi oleh adanya  perbedaan kecepatan operasi antara prosesor dan memori utama bisa menjadi kendala bagi dicapainya efisiensi kerja sistem komputer.
Cashe memori juga disebut dengan nama static RAM. Disebut “static”, karena terbuat dari bahan yang sifatnya statis. Penggunaan bahan statis menyebabkan memori cashe dapat melakukan proses dengan sangat cepat, tetapi harganya mahal. Disamping itu Elektronis
Mekanis bahan statis merupakan bahan yang cepat panas sehingga tidak tepat jika digunakan dalam jumlah besar. 
Ditinjau dari lokasi pemasangannya, memori cashe terdiri dari dua jenis yaitu :

a.    Internal Cache (on-chip). Merupakan memori  cashe yang dipasang langsung dalam sebuah prosesor. Kapasitas umumnya sekitar 8 KB. Waktu yang diperlukan untuk mengakses data adalah beberapa siklus detak. 
b.    External Cache  (Memori Cashe level kedua). Memori ini  memiliki kapasitasnya lebih besar dari Internal Cache dan ditempatkan di luar chip prosesor. 

3.    Memori Utama (Dynamic RAM)
Jika memori cashe merupakan memori yang terbuat dari bahan statis, maka memori utama dibuat dari bahan yang bersifat dinamis sehingga juga disebut sebagai dynamic RAM. Bahan yang bersifat dinamic merupakan kebalikan dari bahan yang bersifat static. Harganya lebih murah, tidak cepat panas, tetapi proses yang dilakukannya tidak secepat memori statis. Orang mengenal memory utama dengan hanya menyebutnya sebagai RAM (Random Access Memory).
Memori ini disebut sebagai memori utama, karena memori ini langsung berhubungan dengan prosesor dalam menyediakan program dan data yang dibutuhkannya. Memori utama menghubungkan prosesor dengan memori sekunder untuk dapat melakukan tugas pengolahan data dengan baik. 
4.    Memori Sekunder 
Memori ini disebut secondary memory karena menyediakan media penyimpanan sekunder dalam jangka waktu lama untuk program dan data yang kadang-kadang dibutuhkan, tetapi tidak secara aktif. Biasanya terdiri dari unit disk yang terhubung secara elektronik ke sistem. Operasi I/O dibutuhkan disini untuk mengakses informasi yang tersimpan dalam memori sekunder ini. Contoh memori sekunder adalah hard disk,floppy disk, optical disk, dan lain sebagainya.
Magnetic Disk, Optical Disk ,  Magnetic Tape

II.    Interrupt

Interupsi adalah suatu permintaan khusus kepada mikroposesor untuk melakukan sesuatu. Bila terjadi interupsi, maka komputer akan menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi dan setelah selesai akan kembali ke program  utamanya, Ada dua jenis interupsi yaitu :
Interupsi hardware adalah interupsi yang ditimbulkan oleh perangkat keras lewat pin NMI dan INTR pada prosesor. Contoh interupsi harware adalah interupsi timer, keyboar, I/O dsb.
Interupsi software adalah lebih mirip sub rutin atau prosedur. Interupsi software lebih banyak dipakai dalam kode program assembly secara langsung.
Pada IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0 sampai 255. Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu IC didalam komputer yang mengatur operasi dasar komputer. Jadi bila terjadi interupsi dengan nomor 0-1Fh, maka secara default komputer akan beralih menuju ROM BIOS dan melaksanakan program yang terdapat disana. Program yang melayani suatu interupsi dinamakan Interrupt Handler.

Vector Interupsi
Setiap interrupt akan mengeksekusi interupt handlernya masing-masing berdasarkan nomornya. Sedangkan alamat dari masing- masing interupt handler tercatat di memori dalam bentuk array yang besar elemennya masing-masing 4 byte. Keempat byte ini dibagi lagi yaitu 2 byte pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode segmen dari alamat interupt handler yang bersangkutan. Jadi besarnya array itu adalah 256 elemen dengan ukuran elemen masing-masing 4 byte. Total keseluruhan memori yang dipakai adalah sebesar 1024 byte (256 x 4 = 1024) atau 1 KB dan disimpan dalam lokasi memori absolut 0000h sampai 3FFh. Array sebesar 1 KB ini disebut Interupt Vector Table (Table Vektor Interupsi). Nilai-nilai yang terkandung pada Interupt Vector Table ini tidak akan sama di satu komputer dengan yang lainnya. Untuk mencari alamat awal dari suatu nomor interupsi digunakan rumus :

Alamat Awal = 4 * Nomor-Interupsi

Sedangkan interupt yang berjumlah 256 buah ini dibagi lagi ke dalam 2 macam yaitu:

a.    Interupt 00h - 1Fh (0 - 31) adalah interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS atau bukan. Lokasi Interupt Vector Table-nya ada di alamat absolut 0000h-007Fh.
b.    Interupt 20h - FFh (32 - 255) adalah interrupt DOS. Interrupt ini hanya ada pada komputer yang menggunakan sistem operasi DOS dan Interupt Handler-nya di-load ke memori oleh DOS pada saat DOS digunakan. Lokasi Interupt Vector Table-nya ada di alamat absolut 07Fh-3FFh.



* Interrupt ini telah dipastikan kegunaannya oleh sistem untuk keperluan yang khusus , tidak boleh diubah oleh pemrogram seperti yang lainnya.

a.  DEVIDE BY ZERO : Jika terjadi pembagian dengan nol maka proses akan segera dihentikan.
b.  SINGLE STEP : Untuk melaksanakan / mengeksekusi intruksi satu persatu.
c.  NMI : Pelayanan terhadap NMI (Non Maskable Interrupt) yaitu interupsi yang tak dapat dicegah.
d.  BREAK POINT : Jika suatu program menyebabkan overflow flag menjadi 1 maka interrupt ini akan melayani pencegahannya dan memberi tanda error.