UTS

TUGAS MANDIRI VI - ORGANISASI DAN SISTEM KOMPUTER KAMPUS MILENIAL ITBI

NAMA        : FAZASOKHI GIAWA

KELAS       : MALAM

JURUSAN  : TEKNIK INFORMATIKA


Soal

A. Jelaskan pengertian Set Instruksi dalam ilmu komputer

B. Sebutkan operasi set instruksi untuk arithmetic beserta fungsinya

C. Selesaikan operasi arimetika berikut menggunakan format instruksi 3 alamat assembly dan hitung jumlah operasinya







D. Jelaskan Perbedaan translator compiler dan translator interpreter

E. Jelaskan fase-fase dari sebuah proses compilasi

JAWAB :

A.  Set  Instruksi 

    Set Instruksi merupakan  sebagai suatu  aspek dalam  arsitektur komputer  yang  dapat  dilihat  oleh  para  pemrogram.  Set  instruksi  (instruction  set)  adalah sekumpulan lengkap instruksi yang dapat di mengerti oleh sebuah CPU. Set instruksi sering juga disebut  sebagai bahasa  mesin  (machine  code),  karna aslinya  juga berbentuk  biner  kemudian dimengerti sebagai bahasa assembly. Untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti oleh manusia.

B. Operasi set instruksi untuk arithmetic beserta fungsinya

1). ADD : Penjumlahan, berfungsi  menghitung jumlah dari dua operand
2). SUBTRACT : Pengurangan , berfungsi menghitung selisih dua bilangan
3). MULTIPLY : Perkalian , Berfungsi  menghitung hasil kali dari dua operand
4). DIVIDE : Pembagian , berfungsi menghitung hasil bagi dan sisa pembagian dari dua bilangan
5). ABSOLUTE : absolutberfungsi  Mengambil nilai absolut
6. NEGATIVE : negatifberfungsi mengganti tanda operand
7. DECREMENT : Menambah,  berfungsi menambahkan 1 pada operand
8. INCREMENT  : Mengurangi, berfungsi mengurangkan  1 dari operand

C.Gunakan register alamat : A,B,C,D,E. Register yang menyimpan hasil : T,Y

1) (A × D)/(B – C)+E
·         Y = (A × D) /(B – C)+E
MPY Y, A, D Y := A × D (1)
SUB T, B, C T := B × C (2)
DIV Y, Y, T Y := Y/T (3)
ADD Y, Y, E Y := Y + E (4)
Memerlukan 4 kali operasi
 
2) A / B – D/ E + C
·         Y = A / B – D / E + C
DIV Y, A, B Y := A / B (1)
DIV Y, D, E Y := D / E (2)
SUB T, Y, Y T := Y – Y (3)
ADD Y, T, C Y := T + C (4)
Memerlukan 4 kali operasi
 
3) A / (B – D)+C
·         Y = A / (B – D) + C
SUB T, B, D T := B – D (1)
DIV Y, A, T Y := A / T (2)
ADD Y, Y, C Y := Y + C (3)
Memerlukan 3 kali operasi
 
4) A / (B – D + C)
·         Y = A / (B – D + C)
SUB T, B, D T := B – D (1)
ADD Y, T, C Y := T + C (2)
DIV Y, A, Y Y := A / Y (3)
Memerlukan 3 kali operasi
 
5) A + B / (C + D) × E
·         Y = A + B / (C + D) × E
ADD Y, C, D Y := C + D (1)
DIV Y, B, Y Y := B / Y (2)
ADD Y, A, Y Y := A + Y (3)
MPY Y, Y, E Y := Y × E (4)
Memerlukan 4 kali operasi

D. Perbedaan Translator Compiler dan Translator Interpreter

1). Translator Compiler

Compiler atau Kompilator merupakan sebuah program komputer yang berfungsi untuk menerjemahkan program komputer yang ditulis dalam bahasa pemrograman tertentu menjadi program yang di tulis dalam bahasa pemrogrman lain salah satunya adalah C++, atau Compiler atau Kompilator adalah perangkat lunak yang digunakan untuk mengubah source code / kode pemrograman menjadi bahasa mesin agar dapat dijalankan oleh komputer.

Istilah Compiler biasah digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam bahasa pemrograman tingkat tinggi (Contoh bahasa C++, Pascal, FORTRAN, Visual C#, COBOL, Visual Basic, Java, atau xBase) diterjemahkan menjadi bahasa mesin, biasanya menggunakan bahasa Assembly sebagai perantara. salah satu contoh Compiler dalam Bahasa C++ adalah Visual C++, GNU Compiler Collection (GCC) dan Borland C++.

2). Translator Interpreter

Interpreter adalah Perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut. Perintah-perintah yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil mengikuti logika yang terdapat di dalam kode tersebut.

Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.

E. Fase-fase sebuah Proses Compilasi


a). Lexical Analyzer 
    Lexical Analyzer atau Penganalisa leksikal berfungsi Membaca program sumber, karakter demi karakter. Sederetan (satu atau lebih) karakter dikelompokkan menjadi satu kesatuan mengacu kepada pola kesatuan kelompok karakter (token) yang ditentukan dalam bahasa sumber. Kelompok karakter yang membentuk sebuah token dinamakan lexeme untuk token tersebut. Setiap token yang dihasilkan disimpan di dalam tabel simbol. Sederetan karakter yang tidak mengikuti pola token akan dilaporkan sebagai token tak dikenal (unidentified token).

Contoh : Misalnya pola token untuk identifier I adalah : I = huruf(huruf½angka)*. Lexeme ab2c dikenali sebagai token sementara lexeme 2abc atau abC tidak dikenal.

b). Syntax Analyzer 
    Syntax Analyzer atau penganalisa sintaks berfungsi memeriksa kesesuaian pola deretan token dengan aturan sintaks yang ditentukan dalam bahasa sumber. Sederetan token yang tidak mengikuti aturan sintaks akan dilaporkan sebagai kesalahan sintaks (sintax error). Secara logika deretan token yang bersesuaian dengan sintaks tertentu akan dinyatakan sebagai pohon parsing (parse tree).

Contoh : Misalnya sintaks untuk ekspresi if-then E adalah : E ® if  L  then, L ® IOA, I = huruf(huruf½angka)*,  O ® <½=½>½<=½>=,  A ® 0½1½…½9.  Ekspresi if a2 < 9 then adalah ekspresi sesuai sintaks; sementara ekspresi if a2 < 9 do atau if then a2B < 9 tidak sesuai. Perhatikan bahwa contoh ekspresi terakhir juga mengandung token yang tidak dikenal.

c). Semantic Analyzer
    Semantic Analyzer atau Penganalisa Semantik berfungsi memeriksa token dan ekspresi dari batasan-batasan yang ditetapkan. Batasan-batasan tersebut misalnya :

  • Panjang maksimum token identifier adalah 8 karakter,
  • Panjang maksimum ekspresi tunggal adalah 80 karakter,
  • Nilai bilangan bulat adalah -32768 s/d 32767,
  •  Operasi aritmatika harus melibatkan operan-operan yang bertipe sama.

Analisis Semantik menghasilkan suatu kode objek yang dapat dieksekusi dalam translasi sederhana, tetapi biasanya bentuk dari kode objek yang dapat dieksekusi ini merupakan bentuk internal dari final program eksekusi, yang kemudian dimanipulasi oleh tahap optimisasi dari translator sebelum akhirnya kode eksekusi benar-benar dihasilkan.

d). Intermediate Code Generator 
    Intermediate Code Generator ialah  kode antara (intermediate code) berdasar-kan pohon parsing. Pohon parse selanjutnya diterjemahkan oleh suatu penerjemah yang dinamakan penerjemah berdasarkan sintak (syntax-directed translator). Hasil penerjemahan ini biasanya merupakan perintah tiga alamat (three-address code) yang merupakan representasi program untuk suatu mesin abstrak. Perintah tiga alamat bisa berbentuk quadruples (op, arg1, arg2, result), tripels (op, arg1, arg2). Ekspresi dengan satu argumen dinyatakan dengan menetapkan arg2 dengan – (strip, dash)

e). Code Optimizer 
    Code Optimizer atau Pengoptimal kode berfungsi  melakukan optimasi (penghematan space dan waktu komputasi), jika mungkin, terhadap intermediate code. Dilakukan juga pendeteksian suatu ekspresi yang sering terjadi, sehingga pengulangan tidak perlu terjadi dan lain sebagainya.

f). Code Generator 

    Code Generator atau Pembangkit Kode berfungsi membangkitkan kode dalam bahasa target tertentu (misalnya bahasa mesin).