Lompat ke konten Lompat ke sidebar Lompat ke footer

Karakteristik Set Intruksi


Karakteristik Set Intruksi
Karakteristik Set Intruksi

ELEMEN-ELEMEN INTRUKSI

CPU tidak akan melakukan operasi tertentu tanpa adanya sebuah instruksi sebagai nilai input yang  itunjukkan kepada CPU. Setiap proses kerja yang dilakukan oleh CPU berdasarkan perintah atau instruksi-instruksi yang diterimanya. Instruksi tersebut merupakan perintah atau kode dalam bahasa mesin atau lebih dikenal sebagai machine instructions.

Agar dapat dieksekusi, setiap instruksi harus berisi informasi yang diperlukan oleh CPU. Informasi itu dituangkan dalam elemen-elemen instruksi:

Operation Code/Kode Operasi: menspesifikasikan operasi yang akan dilakukan (misalnya, ADD).

  • Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode operasi, atau opcode.
  • Source Operand Reference/Referensi Operand Sumber: operasi dapat mencakup satu atau lebih sumber, operand merupakan input bagi operasi.
  • Result Operand Reference/Reference Operand Hasil: operasi dapat membuat hasil operasi.
  • Next Instruction Reference/Reference Operand Selanjutnya: elemen ini memberitahu CPU posisi instruksi berikutnya yang harus diambil setelah menyelesaikan eksekusi suatu instruksi.
Sumber dan hasil operand dapat berada di salah satu dari ketiga daerah di bawah ini:
  • Memori utama atau memori virtual: dengan referensi alamat berikutnya, maka alamat memori utama atau virtual harus diketahui. 
  • Register CPU: instruksi harus diberi nomor register yang dimaksud. 
  • Perangkat I/O: instruksi harus menspesifikasikan modul I/O yang diperlukan oleh operasi.

Representasi Instruksi

Dalam komputer, instruksi direpresentasikan oleh sekumpulan bit. Dalam penulisan format instruksi (instruction format) biasanya dibagi dalam beberapa kolom berkaitan dengan elemen-elemen yang akan mengisi instruksi.

Apa Itu Mnemonic? Adalah singkatan-singkatan yang mengindikasikan suatu operasi yang merupakan representasi dari opcode.

Contoh:

Mnemonic
ADD Add (penambahan)
SUB Substract (pengurangan)
LOAD Muatkan data dari memori
INC Increment (penambahan dengan satu)

Mnemonic  Operand
ADD            A
Artinya menambah secara langsung 8 bit data ke dalam isi akumulator dan menyimpan hasil di akumulator.

Operand juga dapat direpresentasikan secara simbolik.

Misalnya:

Mnemonic  Operand
ADD            R,Y

Artinya tambahkan nilai lokasi Y ke isi register R pemrogram dapat mendahului dengan definisi-definisi: X = 513,Y = 514, dst. Program akan mengkonversikan opcode dan referensi operand menjadi bentuk biner, akhirnya akan membentuk instruksi mesin biner.

TIPE atau JENIS-JENIS INTRUKSI

1. Data procecessing: Arithmetic dan Logic Instructions

Data processing adalah jenis pemrosesan yang dapat mengubah data menjadi informasi atau pengetahuan.Pemrosesan data ini sering menggunakan komputer sehingga bisa berjalan secara otomatis.Setelah diolah, data ini biasanya mempunyai nilai yang informatif jika dinyatakan dan dikemas secara terorganisir dan rapi, maka istilah pemrosesan data sering dikatakan sebagai sistem informasi.

Kedua istilah ini mempunyai arti yang hampir sama, pemrosesan data mengolah dan memanipulasi data mentah menjadi informasi (hasil pengolahan), sedangkan sistem informasi memakai data sebagai bahan masukan dan menghasilkan informasi sebagai produk keluaran.

2. Data Storage: Memory Instructions

Sering disebut sebagai memori komputer, merujuk kepada komponen komputer, perangkat komputer, dan media perekaman yang mempertahankan data digital yang digunakan untuk beberapa interval waktu.Penyimpanan data komputer menyediakan salah satu tiga fungsi inti dari komputer modern, yakni mempertahankan informasi.Ia merupakan salah satu komponen fundamental yang terdapat di dalam semua komputer modern, dan memiliki keterkaitan dengan mikroprosesor, dan menjadi model komputer yang digunakan semenjak 1940-an.

Dalam penggunaan kontemporer, memori komputer merujuk kepada bentuk media penyimpanan berbahan semikonduktor, yang dikenal dengan sebutan Random Access Memory (RAM), dan kadang-kadang dalam bentuk lainnya yang lebih cepat tapi hanya dapat menyimpan data secara sementara. Akan tetapi, istilah "computer storage" sekarang secara umum merujuk kepada media penyimpanan massal, yang bisa berupa cakram optis, beberapa bentuk media penyimpanan magnetis (seperti halnya hard disk) dan tipe-tipe media penyimpanan lainnya yang lebih lambat ketimbang RAM, tapi memiliki sifat lebih permanen, seperti flash memory.

3. Data Movement: I/O Instructions

Proses data movement ini adalah memindahkan (dapat diakatakan membackup juga) data - data dari database yang berupa data, indeks, grand, schema, dan lain - lain ketempat baru. Tempat baru ini bisa ke dalam database baru atau memang untuk dibackup saja.

Data movement terdiri dari 2 bagian besar yaitu :
  • Load & Upload [difokuskan untuk memindahkan data yang berupa indeks atau data itu sendiri alias isi dari database tersebut]
  • Export & Import [memindahkan data secara lengkap, mulai dari grand, schema, dan seluruhnya]

Jika dilihat, load tersebut behubungan dengan import dan upload berhubungan dengan export Load berfungsi untuk memasukan data / transaksi ke sebuah table. Dapat dikatakan juga insert, replace, atau update. Sedangkan upload berfungsi untuk membuat dari data table ke fisik / file. Kelemahan load adalah dalam prosesnya bisa saja terjadi data yang tidak berpindah secara sempurna.

Upload Parameter
  • Limit [membatasi beberapa record]
  • Sample [mencari sample yang telah ditentukan]
  • When [berdasarkan kondisi]
Dan pada upload, hanya satu parameter saja yang dapat berjalan alias tak bisa berjalan bersamaan apabila parameternya lebih dari 1.

Bulk Data Movement (Software Pendukung)
  • ETL [Extrat Transform Load], software yang focus terhadap data warehouse
  • Replication and Propagation, software yang memonitoring source database dan target, dan yang dihasilkan oleh software ini adalah pencatatatn log.
Perlu diperhatikan juga hak akses dalam load & unload, import & export minimal adalah akses select

Distribution Database

Dalam distribution database terdapat 3 istilah yaitu :
  • Autonomi [idependent], untuk tabel umum akses yang diberikan berbeda dari setiap user.
  • Isolation [stand alone], untuk tabel khusus (privacy) itu terpisah dari user.
  • Transparancy [all user], akses tabel terpisah dari user tetapi user masih dapat mengaksesnya.
Lawan dari database terdistribusi adalah database terpusat. Server yang terpusat memang diuntungkan dalam sisi maintenance sedangkan server terdistribusi lebih rumit dalam proses integrasinya. Jika database terdistribusi paling tidak membutuhkan Sumber Daya Manusia [SDM] yang baik, network yang lebih baik karena permasalahan network itu sangat fatal dan biasanya permasalahannya tidak jauh - jauh dari permasalahan traffic network.Dan yang tidak boleh dilupakan adalah request dan respon.

4. Control: Test and Branch Instructions

Unit kendali (bahasa Inggris: Control Unit - CU) adalah salah satu bagian dari CPU yang bertugas untuk memberikan arahan/kendali/ kontrol terhadap operasi yang dilakukan di bagian ALU (Arithmetic Logical Unit) di dalam CPU tersebut. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut.

Pada awal-awal desain komputer, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain. Sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control store). Beberapa word dari microprogram dipilih oleh microsequencer dan bit yang datang dari word-word tersebut akan secara langsung mengontrol bagian-bagian berbeda dari perangkat tersebut, termasuk di antaranya adalah register, ALU, register instruksi, bus dan peralatan input/output di luar chip. Pada komputer modern, setiap subsistem ini telah memiliki kontrolernya masingmasing, dengan CU sebagai pemantaunya (supervisor).

TIPE-TIPE OPERAND

1. Pengertian Operand

Operand adalah sebuah objek yang ada pada operasi matematika yang dapat digunakan untuk melakukan operasi. Operand atau operator dalam bahasa C berbentuk simbol bukan berbentuk keyword atau kata yang biasa ada di bahasa pemrograman lain. Simbol yang digunakan bukan karakter yang ada dalam abjad tapi ada pada keyboard kita seperti = ,* dan sebagainya.

2. Tipe Operand

A. TIPE DATA
Tipe Data setiap data memiliki tipe data, apakah merupakan angka bulat (integer), angka biasa (real), atau berupa karakter (char), dan sebagainya.

Ada dua kategori dari tipe data yaitu tipe dasar dan tipe bentukan.

1. Tipe dasar adalah tipe data yang selalu tersedia pada setiap bahasa pemograman, antara lain :

Bilangan Bulat
  • Integer (-32768 s/d +32768) Bilangan atau angka yang tidak memiliki titik desimal atau pecahan seperti +10,-1024,+32767,+255. Tipe data ini dapat ditulisakan sebagai integer atau int. Operasi aritmatiknya terdiri dari : tambah +, kurang -, kali *, bagi /, sisa hasil bagi %. Operasi Pembandingan terdiri dari : lebih kecil <, lebih kecil atau sama , lebih besar atau sama >= .
  • Long (-16 juta s/d16 juta)
  • Byte (0 s/d 255)
Bilangan Pecahan
  • Double (3,7×10-308 s/d 3,7×10+308)
  • Float (3,4×10-38 s/d 3,4×10+38)
Karakter
Karakter adalah data tunggal yang mewakili semua huruf, simbol baca dan juga simbol angka yang tidak dapat dioperasikan secara sistematis.Tipe ini dapat dituliskan sebagai char.

2. Tipe bentukan adalah tipe data yang dibentuk dari kombanisasi tipe dasar, antara lain :
  • Array (larik)
Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan tipe data tertentu.
misalnya : int a1,a2,a3,a4,a5;

Deklarasi variabel diatas menggunakan menyimpan 5 data integer dimana masing-masing variabel diberi nama a1,a2,a3,a4,a5.

Jika kita memiliki 10 data integer atau mungkin 100 data integer bahkan mungkin kita tidak ketahui atau mungkin bersifat dinamis.Saat ini lah kita menggunakan tipe bentukan Array.

Array adalah tipe data bentukan yang merupakan wadah untuk menampung beberapa nilai data yang sejenis
  • String
String adalah tipe data bentukan yang merupakan deretan karakter yang membentuk satu kata atau satu kalimat, yang biasanya dapat dua tanda kutip.

B. VARIABEL

Variabel adalah nama yang mewakili sutau elemen data seperti : jenkel untuk jenis kelamin, t4lahir untuk tempat lahir, alamat unutk alamat dan sebagainya.

Ada aturan tertentu yang wajib diikuti dalam pemberian nama variabel, antara lain :

  1. Harus dimulai dengan abjad tidak boleh dengan angka atau simbol.
  2. Tidak boleh ada spasi diantaranya
  3. Jangan menggunakan simbol-simbol yang bisa membingungkan seperti titik dua, titik koma, kima, dan sebagainya.
  4. Sebaiknya memiliki arti yang sesuai dengan elemen data. Sebaiknya tidak terlalu panjang
Contoh Variabel yang bernar : Nama, Alamat, Nilai_Ujian
Contoh Variabel yang salah : 4XYZ,IP rata, Var :+xy,458;

C. OPERATOR DAN OPERAND

Operand adalah data, tetapan, perubah atau hasil dari suatu fungsi sedangkan Operator merupakan simbol-simbol yang memiliki fungsi untuk menghubungkan operand sehingga menjadi tranformasi.
Jenis-jenis operator adalah sebagai berikut :
  1. Operator Aritmetika : Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).
  2. Operator relational : Operator untuk menyatakan relasi atau perbandingan antara dua operand, seperti > (lebih besr), =(lebih besar atau sama), <= (lebih kecil atau sama), == (sama), != (tidak sama).
  3. Operator Logik : Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).

TIPE-TIPE OPERASI DATA

TRANSFER DATA
  • Menetapkan lokasi operand sumber dan operand tujuan.
  • Lokasi-lokasi tersebut dapat berupa memori, register atau bagian paling atas daripada stack.
  • Menetapkan panjang data yang dipindahkan.
  • Menetapkan mode pengalamatan.
Tindakan CPU untuk melakukan transfer data adalah :
  • Memindahkan data dari satu lokasi ke lokasi lain.
  • Apabila memori dilibatkan :
  1. Menetapkan alamat memori.
  2. Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
  3. Mengawali pembacaan / penulisan memori.
Operasi set instruksi untuk transfer data :
  • MOVE : memindahkan word atau blok dari sumber ke tujuan
  • STORE : memindahkan word dari prosesor ke memori.
  • LOAD : memindahkan word dari memori ke prosesor.
  • EXCHANGE : menukar isi sumber ke tujuan.
  • CLEAR / RESET : memindahkan word 0 ke tujuan.
  • SET : memindahkan word 1 ke tujuan.
  • PUSH : memindahkan word dari sumber ke bagian paling atas stack.
  • POP : memindahkan word dari bagian paling atas sumber
ARITHMETIC
Tindakan CPU untuk melakukan operasi arithmetic :
  • Transfer data sebelum atau sesudah.
  • Melakukan fungsi dalam ALU.
  • Menset kode-kode kondisi dan flag.
Operasi set instruksi untuk arithmetic :
  1. ADD : penjumlahan
  2. SUBTRACT : pengurangan
  3. MULTIPLY : perkalian
  4. DIVIDE : pembagian
  5. ABSOLUTE
  6. NEGATIVE
  7. DECREMENT
  8. INCREMENT
Nomor 5 sampai 8 merupakan instruksi operand tunggal. 

LOGICAL
Tindakan CPU sama dengan arithmetic.
Operasi set instruksi untuk operasi logical :
  • AND, OR, NOT, EXOR
  • COMPARE : melakukan perbandingan logika.
  • TEST : menguji kondisi tertentu.
  • SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada
  • ujung bit.
  • ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
CONVERSI
Tindakan CPU sama dengan arithmetic dan logical. Instruksi yang mengubah format instruksi yang beroperasi terhadap format data. Misalnya pengubahan bilangan desimal menjadi bilangan biner.

Operasi set instruksi untuk conversi :
  • TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel korespodensi.
  • CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
INPUT / OUPUT
Tindakan CPU untuk melakukan INPUT /OUTPUT :
  • Apabila memory mapped I/O maka menentukan alamat memory mapped
  • Mengawali perintah ke modul I/O
Operasi set instruksi Input / Ouput :
  • INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
  • OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
  • START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
  • TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
TRANSFER CONTROL
Tindakan CPU untuk transfer control :
  • Mengupdate program counter untuk subrutin , call / return.
Operasi set instruksi untuk transfer control :
  • JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
  • JUMP BERSYARAT : menguji persyaratan tertentu danmemuat PC dengan alamat tertentu atau tidak melakukan apa tergantung dari persyaratan.
  • JUMP SUBRUTIN : melompat ke alamat tertentu.
  • RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
  • EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi
  • SKIP : menambah PC sehingga melompati instruksi berikutnya.
  • SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
  • HALT : menghentikan eksekusi program.
  • WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
  • NO OPERATION : tidak ada operasi yang dilakukan.
CONTROL SYSTEM
Hanya dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya digunakan dalam sistem operasi.

Contoh : membaca atau mengubah register kontrol.

INTRUKSI PERCABANGAN

Struktur Branching (Percabangan)

1. IF
Instruksi IF digunakan untuk memeriksa suatu kondisi dan melaksanakan instruksi lain jika kondisi tersebut terpenuhi atau bernilai true. Statement pada sintaks if boleh berupa satu instruksi tunggal atau beberapa instruksi (block statement) yang ditulis dalam {}. Jika evaluasi terhadap kondisi memberikan nilai true makastatement dikerjakan.Jika bernilai false maka statement tidak dikerjakan.Alur logika Instruksi IF dapat anda lihat pada gambar dibawah ini:
Alur Intruksi IF
Alur Intruksi IF
Umumnya kondisi berupa sebuah ekspresi yang bernilai Boolean seperti a= 5 atau b > 10. Kondisi yang diuji dapat berupa kondisi tunggal atau kondisi gabungan.

Contoh pemakaian istruksi IF.
Dengan kondisi tunggal if (nilai > 60) printf ("lulus") ;
Jika nilai lebih besar dari pada 60 maka ditampilkan lulus
Dengan kondisi gabungan
if (( grade == 'D') ││ (grade == E' ))
printf ("tidak lulus") ;
Jika grade berisi huruf D atau E maka ditampilkan tidak lulus

2. If Else
Adakalanya kita harus melaksanakan proses yang berbeda untuk kondisi yang berbeda, misalnya menampilkan kata lulus untuk nilai yang sama dengan atau lebih besar daripada 60 dan menampilkan kata tidak lulus untuk nilai yang kurang dari 60, selain dengan menggunakan dua instruksi if yang terpisah seperti berikut:

if (nilai >= 60) printf ("lulus") ;
if ( nilai < 60 ) printf ("tidak lulus") ;

bahasa C menyediakan klausa else untuk digunakan bersama dengan instruksi if. Secara umum pola dari if else yaitu:

if (kondisi) statement1 ; else statement2;

Apabila evaluasi terhadap kondisi memberikan nilai true maka statement dikerjakan, sebaliknya jika false maka statement 2 dikerjakan. Jadi yang dikerjakan selalu salah satu dari kedua statement. Statement dapat berupa instruksi kosong, instruksi tunggal atau beberapa instruksi yang dilingkup dengan { }. Tidak diperbolehkan ada klausa else tanpa instruksi if.

Alur logika instruksi if else dapat andalihat pada gambar dibawah ini:
Alur Intruksi IF ELSE
Alur Intruksi IF ELSE
Contoh pemakaian instruksi if else
If (nilai >= 60) printf ("lulus") ;
Else printf ("tidak lulus")

Jika nilai lebih bessar sama dengan 60 maka tampilkan lulus, selain dari itu maka tampilkan tidak lulus.

If ((bil % 2) == 0) printf ("bilangan genap") ;
Else printf ("bilangan ganjil")

Jika bilangan habis dibagi 2 maka tampilkan genap, selain dari itu maka tampilkan bilangan ganjil

If ((grade == `D`) ││ (grade == 'E'))
Printf ("tidak lulus")
Else printf ("lulus")

Jika grade berisi "D" atau "E" maka tampilkan tidak lulus, selain dari itu tampilkan lulus.

3. Nested If (Struktur If bersarang)

Pada suatu instruksi if, statement yang dikerjakan apabila kondisi bernilai true dapat berupa instruksi if yanglain. Strukstur instruksi seperti ini disebut nested if (if bersarang). Hal yang sama juga berlaku untuk statement yang dikerjakan pada bagian klausa else. Berikut ini salah satu bentuk konfigurasi nested if beserta cara penulisannya :
Konfigurasi Nested If
Konfigurasi Nested If 

Berikut ini cara membaca dari flowchart Nested if diatas :

if (kondisi1)
if (kondisi2) {}

Contoh soal
Terdapat tiga bilangan bulat yang berbeda. Tulis program untuk menampilkan bilangan bulat terbesar diantara bilangan bulat tersebut.
Contoh soal Nested If
Contoh soal Nested If

Posting Komentar untuk "Karakteristik Set Intruksi"