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.
Karakteristik Set Intruksi 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.
- 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.
Operand juga dapat direpresentasikan secara simbolik.
Misalnya:
Mnemonic Operand
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.
- 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.
- 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
Tipe Data setiap data memiliki tipe data, apakah merupakan angka bulat (integer), angka biasa (real), atau berupa karakter (char), dan sebagainya.
- 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)
- Double (3,7×10-308 s/d 3,7×10+308)
- Float (3,4×10-38 s/d 3,4×10+38)
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.
- 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.
- Harus dimulai dengan abjad tidak boleh dengan angka atau simbol.
- Tidak boleh ada spasi diantaranya
- Jangan menggunakan simbol-simbol yang bisa membingungkan seperti titik dua, titik koma, kima, dan sebagainya.
- Sebaiknya memiliki arti yang sesuai dengan elemen data. Sebaiknya tidak terlalu panjang
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 :
- Operator Aritmetika : Operator untuk melakukan fungsi aritmetika seperti : +(penjumlahan), – (mengurangkan), * (mengalikan), / (membagi).
- 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).
- Operator Logik : Operator untuk merelasikan operand secara logis seperti && (and), || (or), !(not).
TIPE - TIPE OPERASI 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.
- Memindahkan data dari satu lokasi ke lokasi lain.
- Apabila memori dilibatkan :
- Menetapkan alamat memori.
- Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
- Mengawali pembacaan / penulisan memori.
- 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
- Transfer data sebelum atau sesudah.
- Melakukan fungsi dalam ALU.
- Menset kode-kode kondisi dan flag.
- ADD : penjumlahan
- SUBTRACT : pengurangan
- MULTIPLY : perkalian
- DIVIDE : pembagian
- ABSOLUTE
- NEGATIVE
- DECREMENT
- INCREMENT
- 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.
- TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan tabel korespodensi.
- CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
- Apabila memory mapped I/O maka menentukan alamat memory mapped
- Mengawali perintah ke modul I/O
- 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
- Mengupdate program counter untuk subrutin , call / return.
- 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.
INTRUKSI PERCABANGAN
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 |
Umumnya kondisi berupa sebuah ekspresi yang bernilai Boolean seperti a= 5 atau b > 10. Kondisi yang diuji dapat berupa kondisi tunggal atau kondisi gabungan.
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:
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 Intruksi IF ELSE |
Konfigurasi Nested If |
Contoh soal
Terdapat tiga bilangan bulat yang berbeda. Tulis program untuk menampilkan bilangan bulat terbesar diantara bilangan bulat tersebut.
Contoh soal Nested If |
Posting Komentar untuk "Karakteristik Set Intruksi"