Dan pada upload, hanya satu parameter saja yang dapat berjalan alias tak bisa berjalan bersamaan apabila parameternya lebih dari 1.
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).
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.
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 adalah tipe data bentukan yang merupakan deretan karakter yang membentuk satu kata atau satu kalimat, yang biasanya dapat dua tanda kutip.
Ada aturan tertentu yang wajib diikuti dalam pemberian nama variabel, antara lain :
- 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
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 :
- 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
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 :
- Menetapkan alamat memori.
- Menjalankan transformasi alamat memori virtual ke alamat memori aktual.
- 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 :
- ADD : penjumlahan
- SUBTRACT : pengurangan
- MULTIPLY : perkalian
- DIVIDE : pembagian
- ABSOLUTE
- NEGATIVE
- DECREMENT
- 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 |
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 |
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 |
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 |
Tinggalkan Komentar