• Tidak ada hasil yang ditemukan

LATIHAN SOAL

Dalam dokumen BAB 14 OPERATOR OVERLOADING (Halaman 64-68)

Kata kunci (keyword) adalah suatu kata yang telah tersedia dalam kompiler. Kita tidak dapat menggunakannya sebagai nama variabel, konstanta, fungsi maupun nama kelas di dalam kode program yang kita tulis. Adapun beberapa kata kunci yang terdapat dalam C + + adalah seperti terlihat di bawah ini.

auto break case catch char class const continue default delete do double else enum extern

float for friend goto if int long mutable new operator private protected public register return

short signed sizeof static struct switch template this throw typedef union unsigned virtual void volatile while

B. Bilangan Biner dan Heksadesimal

C++ mengizinkan kita untuk melakukan penulisan kode assembly ke dalam program yang ditulis dengan bahasa C + + , ini dinamakan dengan inline assembly, yang dapat dilihat pada lampiran C dalam buku ini. Sedangkan dasar-dasar untuk mengetahui pengkodean dalam bahasa assembly, kita perlu mengetahui konsep konversi

Lampiran

bilangan dalam basis-basis tertentu. Di sini kita akan membahas mengenai cara melakukan konversi antar basis tersebut.

1. Basis

Basis adalah suatu ilmu yang tentu pernah Anda dapatkan sebelumnya dalam pelajaran matematika di bangku sekolah.

Namun, sebagai penyegaran di sini akan dibahas kembali dengan tujuan agar Anda dapat benar-benar memahami konsep yang terdapat di dalamnya.

Adapun istilah untuk penamaan basis adalah sebagai beikut:

Bilangan dalam basis 2 akan disebut dengan bilangan biner Bilangan dalam basis 8 akan disebut dengan bilangan oktal Bilangan dalam basis 10 akan disebut dengan bilangan desimal

Bilangan dalam basis 16 akan disebut dengan bilangan heksadesimal

Apabila kita mempunyai bilangan 15 dalam basis 10 (bisa ditulis dengan 1510), maka dalam basis 8 kita akan menuliskan bilangan tersebut dengan 178. Sebenarnya jika kita amati mengapa dalam basis 10 dituliskan 15 untuk merepresentasikan nilai lima belas. Ini artinya bahwa dalam bilangan lima belas terdapat 1 puluhan dan 5 satuan, maka dituliskan 15. Begitu juga dalam basis 8, dalam nilai lima belas terdapat 1 delapan-an dan 7 satuan sehingga ditulis 178. Apabila nilai tersebut kita konversi ke dalam basis 9, maka akan ditulis 169. Sedangkan dalam basis 7 akan ditulis 217. Mungkin Anda bingung, kenapa 21? Bukan 18. Alasannya adalah dalam bilangan lima belas terdapat 2 bilangan tujuh-an dan 1 satuan sehingga akan ditulis 21.

2. Bilangan Biner

Bilangan biner adalah bilangan yang dituliskan dalam basis 2.

Terdapat dua buah bilangan yang digunakan dalam merepresentasikan nilai untuk tiap bit di dalam basis 2, yaitu 0 dan 1. Istilah 'bit' akan dijelaskan pada bagian selanjutnya dalam lampiran ini. Berikut ini tabel yang menunjukkan nilai yang terdapat pada basis 2 (untuk 8 bit).

Bilangan Biner (Basis 2)

T

Bilangan Desimal (Basis 10)

0

Sebagai contoh, jika kita ingin melakukan konversi bilangan 88 (basis 10) ke dalam bentuk biner (basis 2), maka langkah-langkah yang harus dilakukan adalah :

a Ketahui terlebih dahulu kolom dan nilai yang ada pada basis 2, seperti berikut:

Nomor Kolom

Selanjutnya kita lihat bahwa tidak terdapat 128-an pada bilangan 88, maka kolom ke-8 kita isikan 0.

Terdapat satu 64-an pada bilangan 88 sehingga kolom ke-7 kita isikan 1. Sisa bilangan yang ada adalah 24 (berasal dari 88-64).

Tidak terdapat 32-an pada bilangan 24, maka kolom ke-6 kita isikan 0.

Terdapat satu 16-an pada bilangan 24 sehingga kolom ke-5 kita isikan 1. Sisa bilangan yang ada adalah 8 (berasal dari 24-16).

Pemrograman C++ Lampiran

f. Terdapat satu 8-an pada bilangan 8 sehingga kolom ke-4 kita isikan 1. Sisa bilangan yang ada adalah 0. Hal ini berarti kolom-kolom selanjutnya juga kita isikan 0.

Dari langkah-langkah yang telah kita lakukan, kita menemukan bentuk biner dari bilangan 88 adalah 01011000.

Mungkin sekarang Anda akan bertanya, bagaimana cara melakukan konversi dari bilangan biner ke dalam bilangan desimal? Caranya sederhana sekali, karena kita hanya mengalikan bilangan tiap digit tersebut dengan nilai kolom yang ada. Sebagai contoh kita akan melakukan konversi bilangan 01011000 ke bentuk desimal, maka langkah yang harus dilakukan adalah sebagai berikut:

0 x!28

3. Bilangan Heksadesimal

Bilangan heksadesimal adalah bilangan yang dituliskan dalam basis 16. Dalam basis 16, terdapat 16 buah bilangan, yaitu seperti yang terlihat pada tabel berikut:

Heksadesimal

Sebagai contoh jika kita mempunyai bilangan biner 1000101101001111, dan kita ingin melakukan konversi bilangan tersebut ke dalam bentuk heksadesimal, maka langkah-langkah yang harus dilakukan adalah sebagai berikut:

a. 1000, bentuk desimalnya adalah 8, maka dalam bentuk heksadesimal adalah 8

Pemrograman O

b. 1011, bentuk desimalnya adalah 10, maka dalam bentuk heksadesimal adalah A

c. 0100, bentuk desimalnya adalah 4, maka aalam bentuk heksadesimal adalah 4

d. 1111, bentuk desimalnya adalah 15, maka dalam bentuk heksadesimal adalah F

Jadi hasil dari konversi bilangan biner 1000101101001111 ke dalam bilangan heksadesimal adalah 8A4F.

4. Bit, Byte dan Nybble

Bit adalah singkatan dari binary digit (digit biner) yang dapat kita representasikan dengan satu buah kotak yang digunakan untuk menempatkan nilai 1 atau 0. Sedangkan byte adalah satuan yang digunakan untuk data yang akan disimpan ke dalam memori, dimana 1 byte sama dengan 8 bit. Setengah dari 1 byte (1/2x8 bit

= 4 bit) disebut dengan istilah nybble.

5. Kilobyte dan MegaByte

Dalam dunia komputer, istilah 'kilo' bukan berarti 1000, melainkan 1024 desimal. Angka ini (1024) didapat dari 210. Begitu juga dengan istilah 'mega', artinya bukan 1000000, melainkan 1048576 yang berasal dari 220 (atau 210 x 210). Hal ini berarti bahwa 1 kilobyte (1 KB) sama dengan 1024 byte dan 1 megabyte (1 MB) sama dengan 1048576 byte.

C. Inline Assembly

Inline assembly adalah suatu kumpulan perintah yang ditulis dengan bahasa assembly dan dimasukkan ke dalam program C + + . Adapun proses kompilasi programnya pun tidak perlu menggunakan assembler lagi (misalnya TASM) karena C++ secara otomatis akan mengenali perintah-perintah tersebut. Sebenarnya, penjelasan mengenai inline assembly di sini lebih ditujukan bagi Anda yang sebelumnya banyak bekerja (memogram) dengan

Lampiran

bahasa assembly. Dengan adanya kemampuan seperti ini, maka para programmer assembly yang sebelumnya harus melakukan pengkodean (coding) yang cukup panjang, tentu dapat lebih menyingkat programnya karena mereka hanya akan memasukkan bagian-bagian tertentu saja ke dalam kode assembly, sisanya ditulis dalam bahasa C + +.

Untuk melakukan pembuatan inline assembly ini, C + + telah menyediakan sebuah kata kunci yang berfungsi untuk membuat scope dari kode-kode yang ditulis dalam bahasa assembly. Adapun kata kunci yang dimaksud adalah kata kunci asm. Terdapat dua cara yang perlu diperhatikan untuk menggunakan kata kunci ini, yaitu :

Kita dapat menuliskan inline assembly dimana setiap baris perintahnya diawali dengan kata kunci asm dan diakhiri dengan tanda semicolon / titik koma (';')• Bias any a cara ini digunakan untuk single statement.

2. Membuat inline assembly dengan cara seperti pembuatan fungsi di dalam C + + , yaitu dengan diawali oleh kata kunci asm yang diikuti tanda {, dan diakhiri dengan tanda }.

Namun perlu sekali untuk diperhatikan bahwa pada cara ini penulisan kata kunci asm dan tanda { harus berada pada baris yang sama.

Berikut ini contoh program C++ yang didalamnya terdapat inline assembly. Program di bawah ini akan ditulis dalam dua cara di atas.

Adapun contoh yang akan kita gunakan adalah membuat kode program dalam bahasa assembly yang berfungsi untuk memindahkan kursor ke posisi tertentu. Hal ini sama seperti halnya fungsi gotoxyQ yang terdapat di dalam C + + (dalam Turbo C + + ).

Sebenarnya hal ini tidak perlu dilakukan dalam bahasa assembly karena C + + telah menyediakan fungsi untuk kebutuhan ini, namun untuk membuktikan bahwa C++ mampu untuk mengenali instruksi yang ditulis dalam bahasa assembly, maka di sini kita akan menuliskannya ke dalam bahasa assembly.

Pada program pertama kita akan menggunakan cara penulisan yang pertama. Adapun sintaks programnya adalah seperti yang

#include <iostream.h>

// Membuat fungsi GOTOXY menggunakan bahasa assembly

Pemrograman C++

// Fungsi utama int main() {

/ Memanggil fungsi GOTOXY GOTOXY(12, 6);

c ou t«"Mengungkap Rahas i a C++

return 0;

Apabila dijalankan program di atas akan menampilkan teks 'Mengungkap Rahasia C+ + " pada posisi baris ke-6 dan kolom

Posisi ini tentunya akan ditentukan oleh nilai yang dilewatkan sebagai parameter pada saat pemanggilan fungsi GOTOXY ( ) tersebut.

Kita lihat bahwa pada program di atas terdapat kata kunci asm di setiap baris kode yang ditulis dalam bahasa assembly. Hal ini tentu tidak efisien apabila kode yang akan kita masukkan ternyata cukup Untuk mengatasi hal ini, maka kita akan menuliskan program di atas dengan inline assembly dengan cara yang kedua.

Adapun sintaks programnya adalah seperti yang tertulis di bawah ini.

#inlcude <iostream.h> ajj void GOTOXY(int X, int Y)

asm {

cout«"Mengungkap Rahasia C+

return 0;

Lampiran

D. C++ Bagi Programmer Java

Bagi Anda yang telah biasa melakukan pemrograman dengan bahasa Java tentu Anda tidak akan banyak mengalami kesulitan jika Anda mencoba untuk menulis program dengan bahasa C+ + . Hal ini dikarenakan Java adalah suatu bahasa turunan dari bahasa C++ sehingga Java banyak mengadopsi kata kunci yang terdapat dalam C+ + . Walaupun demikian, suatu bahasa pemrograman tentu akan mempunyai karakteristik tersendiri untuk melakukan manipulasi kode di dalamnya. Pada bagian ini akan dijelaskan beberapa persamaan dan perbedaan yang paling tampak antara C++ dan Java.

Dalam dokumen BAB 14 OPERATOR OVERLOADING (Halaman 64-68)

Dokumen terkait