• Tidak ada hasil yang ditemukan

III. Dasar Pemrograman

N/A
N/A
Protected

Academic year: 2021

Membagikan "III. Dasar Pemrograman"

Copied!
17
0
0

Teks penuh

(1)

III. Dasar Pemrograman

III.1 Pengenal

• Pengenal (identifier) merupakan nama yang biasa digunakan untuk suatu peubah (variable), konstanta, fungsi, atau obyek lain yang didefinisikan oleh pemrogram.

• Aturan yang berlaku bagi suatu pengenal adalah:

o Pengenal harus diawali dengan huruf (A .. Z, a .. z) atau karakter garis bawah ( _ ).

o Selanjutnya dapat berupa huruf, angka (0 .. 9), karakter garis bawah, atau tanda dolar ($).

o Panjang pengenal boleh terdiri lebih dari 32 karakter, akan tetapi hanya 32 karakter pertama yang dianggap berarti.

o Contoh: Jumlah

• jumlah

• nilai2

• total_per_bulan

• harga_jual$

- Karakter garis-bawah biasa digunakan untuk memudahkan pembacaan terhadap suatu pengenal, terutama yang terdiri lebih dari satu kata, karena nama suatu pengenal tidak boleh dipisahkan spasi.. - Untuk menghindari kesalahan, pengenal tidak boleh menggunakan

nama yang tergolong sebagai kata kunci (seperti main), dan sebaiknya tidak menggunakan pengenal yang digunakan untuk nama fungsi, konstanta, variabel atau obyek lain yang digunakan oleh pustaka Turbo C,

- Tabel 3.1 berisi daftar kata-kunci yang terdapat pada Bahasa Turbo C++.

(2)

Tabel 3.1 Daftar Kata-kunci pada Turbo C++. asm auto break case catch cdecl char class const continue _cs default delete do double _ds else enum _es _export extern far float for friend goto huge if inline int interrupt _loadds long near new operator pascal private protected public register _regparam return _saveregs _seg short signed sizeof _ss static struct switch template this typedef union unsigned virtual void volatile while

III.2 Tipe Data Dasar

- Pengertian data menyitratkan suatu nilai yang dapat dinyatakan dalam bentuk konstanta atau variabel.

- Konstanta menyatakan nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah selama eksekusi berlangsung.

- Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan sebagai tipe data dasar, yaitu:

Bilangan bulat (integer)

Bilangan pecahan (float/real) presisi-tunggal Bilangan pecahan (float/real) presisi-ganda Karakter, dan

Tak bertipe.

Tabel 3.2 Daftar tipe data dasar.

Tipe Jml bit Rentang data Keterangan

Char Int Float Double void 8 16 32 64 0 -128 .. 127 -32768 .. 32767 3.4e-38 .. 3.4e+38 1.7e-308 .. 1.7e+3.8 - Karakter Bilangan bulat

Bilangan pecahan presisi-tunggal Bilangan pecahan presisi-ganda Tak bertipe

(3)

III.3 Peubah (Variable)

Peubah atau variabel dalam program digunakan untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat diubah-ubah selama

eksekusi program berlangsung.

III.3.1 Pendeklarasian Peubah

- Peubah yang akan digunakan dalam program harus dideklarasikan terlebih dahulu.

- Pengertian deklarasi disini berarti memesan memoi dan menentukan jenis data yang dapat disimpan di dalamnya.

- Bentuk umum pendeklarasian suatu peubah adalah:

tipe daftar-peubah;

- Pada pendeklarasian peubah, daftar-peubah dapat berupa sebuah peubah atau beberapa peubah yang dipisahkan dengan tanda koma. - Contoh:

int jumlah;

float harga_per_satuan, total_harga;

tanda koma sebagai pemisah

- Pernyataan deklarasi yang pertama menyatakan bahwa jumlah adalah peubah bertipe int (integer = digunakan untuk menyimpan bilangan bulat), sedangkan pernyataan kedua menyatakan bahwa

harga_per_satuan dan total_harga bertipe float (untuk menyimpan bilangan pecahan).

- Pendeklarasian peubah dalam C bersifat fleksibel, misalnya deklarasi peubah baris ke dua di atas dapat dideklarasikan:

float harga_per_satuan;

float total_harga;

III.3.2 Pemberian Nilai ke Peubah

Untuk memberikan nilai ke suatu peubah yang telah dideklarasikan, bentuk pernyataan yang digunakan adalah sebagai berikut:

(4)

Contoh berikut memberikan nilai 50 ke peubah jumlah dan 15,7 ke peubah harga_per_satuan.

jumlah = 50;

harga_per_satuan = 15.7;

total_harga = jumlah * harga_per_satuan;

Contoh program 3-1 berikut menggambarkan penggunaan peubah. /* --- */

/* File program : Peubah.c */ /* Contoh pendeklarasian peubah */ /* --- */ #include <stdio.h>

main( ) {

int jumlah;

float harga_per_satuan, harga_total; jumlah = 50;

harga_per_satuan = 15.7;

harga_total = jumlah * harga_per_satuan; printf(“harga total = \%n”, harga_total); }

contoh hasil eksekusi: C> Peubah

Harga total = 785.000000 Program 3-1

- Dalam penugasan suatu peubah, kadang-kadang diinginkan untuk menaikkan nilainya dengan satu (terutama dalam iterasi), yang dapat dinyatakan sebagai berikut:

(5)

III.3.3 Inisialisasi Peubah

- Dalam penulisan program dimungkinkan untuk melakukan inisialisasi atau memberi nilai awal pada suatu peubah segera setelah dideklarasikan.

- Pernyataan berikut contoh pendeklarasian dan pemberian nilai awal suatu peubah.

int jumlah; jumlah = 29;

- Pernyataan di atas dapat disingkat melalui pendeklarasian yang disertai dengan penugasan nilai, sebagai berikut:

int jumlah = 29;

III.3.4 Peubah bertipe Float dan Double

- Perbedaan antara tipe float dan double dapat dilihat pada Tabel 3.2 di atas.

- Tipe double mempunyai kawasan nilai yang lebih besar dibanding dengan tipe float.

- Perbedaan lain adalah pada tingkat ketelitiannya, tipe float hanya mempunyai tingkat ketelitian kira-kira sampai dengan 7 digit, sedangkan tipe double mempunyai ketelitian sekitar 16 digit.

- Perbedaan ketelitian dapat dilihat dengan mengeksekusi program 3-2 berikut.

/* --- */ /* File program : Presisi .c */ /* Contoh untuk menunjukkan ketelitian */ /* antara peubah float dan double */ /* --- */ #include <stdio.h> main( ) { int float x; double y;

(6)

x = 56.0123456789123456789; y = 56.0123456789123456789; printf(“x = %20.16f\n”, x); printf(“y = %20.16lf\n”, y); }

contoh hasil eksekusi: C> Presisi

x = 56.0123443603515625 y = 56.0123456789123466 Program 3-2

- Meskipun nilai yang diberikan pada peubah x (bertipe float ) dan peubah y (bertipe double) sama, ternyata nilai pada kedua peubah tersebut berbeda:

x = 56.0123443603515625

hanya 7 digit yang benar y = 56.0123456789123466

16 digit yang benar

- Dari contoh di atas terlihat bahwa peubah y memiliki ketelitian yang lebih tinggi dibanding peubah x.

- Dalam C selain tipe double masih disediakan tipe long double yang memiliki ketelitian yang lebih tinggi dibanding double seperti yang diperlihatkan pada Tabel 3.3.

(7)

Tabel 3.3 Tipe Data, Ukuran, dan Rentangnya. Type Size

(bits)

Range Sample applications

unsigned char char enum unsigned int short int int unsigned long long float double long double near pointer far pointer 8 8 16 16 16 16 32 32 32 64 80 16 32 0 to 255 -128 to 127 -32,768 to 32,767 0 to 65,535 -32,768 to 32,767 -32,768 to 32,767 0 to 4,294,967,295 -2,147,483,648 to 2,147,483,647 3.4 ^ 10-38 to 3.4 ^ 1038 1.7 ^ 10-308 to 1.7 ^ 10308 3.4 ^ 10-4932 to 1.1 ^ 104932 Not applicable Not applicable

Small numbers and full PC character set

Very small numbers and ASCII characters

Ordered sets of values Larger numbers and loops Counting, small numbers, loop control

Counting, small numbers, loop control

Astronomical distances Large numbers, populations Scientific (7-digit precision) Scientific (15-digit precision) Financial (18-digit precision) Manipulating memory

addresses

Manipulating addresses outside current segment

s = sign bit (0 = positive, 1 = negative) 1 = integer bit of significand:

Stored in long double

implicit (always 1) in float, double

Exponent bias (normalized values): float : 127 (7FH) double: 1023(3FFH) long double: 16,383 (3FFFH) s magnitude 0 16 int (2's complement) s magnitude 0

long int (2's complement)

31 s exponentBiased 22 31 float significant 0 s exponentBiased 51 double significant 0 63 s exponentBiased 64

long double significant

0 79

1

63

(8)

III.4 Pemodifikasi Tipe

- Terdapat beberapa pemodifikasi tipe (type modifier) yang dapat dikenakan di awal tipe data dasar (kecuali void). Pemodifikasi tipe tersebut adalah :

signed unsigned long short

- Misalnya, pemodifikasi tipe unsigned jika diterapkan pada tipe int, akan menjadi unsigned int.

- Tabel 3.4 memperlihatkan kemungkinan penerapan pemodifikasi tipe pada tipe data dasar.

Tabel 3.4 Kemungkinan pemakaian pemodifikasi tipe. Tipe Jumlah

Bit Rentang Nilai

unsigned char signed char unsigned int signed int short int unsigned short int

signed short int long int

signed long int unsigned long int long double 8 8 16 16 16 16 32 32 32 80 0 .. 255 -128 .. 127 -32768 .. 32767 -32768 .. 32767 0 .. 65535 -32768 .. 32767 -2147483648 .. 2147483647 -2147483648 .. 2147483647 0 .. 4294967295 3.4E-4932 .. 1.1E+4932

- Dari tabel diatas, dapat dilihat bahwa tipe char sama dengan unsigned char, sedangkan signed int, short int, signed short int, dan int

sebenarnya adalah sama.

- Perbedaan signed dan unsigned terletak pada perlakuan bit tertinggi. - Jika dinyatakan dengan signed, maka bit tertinggi digunakan sebagai

bit tanda untuk menyatakan apakah bilangannya positif atau negatif. - Hal yang perlu diingat pada proses pemodifikasian ini adalah tipe

data hasil minimum harus mempunyai panjang bit yang sama.

- Dalam penulisan program beberapa tipe data boleh tidak ditulis secara lengkap, misalnya:

Tipe short int cukup ditulis menjadi short. Tipe long int boleh ditulis menjadi long. Tipe signed int bisa ditulis menjadi signed.

(9)

/* --- */ /* File program : TANDA.C */ /* Contoh untuk menunjukkan */ /* perbedaan antara signed dan unsigned */ /* --- */ #include <stdio.h>

main( ) {

signed i = -127; /* i integer bertanda */ unsigned j; /* j integer tak bertanda */ j = i;

printf(“i = %d, j = %u\n”, i, j); }

contoh hasil eksekusi: C> TANDA

i = -127, j = 65409 Program 3-3

III.5 Konstanta

- Konstanta menyatakan nilai numeris atau karakter yang tetap.

- Turbo C++ mendukung empat kelas konstanta, yaitu floating point, integer, enumeration, dan character.

- Penulisan konstanta mempunyai aturan tersendiri sesuai dengan tipe masing-masing.

- Konstanta integer ditulis dengan tanpa mengandung pemisah ribuan dan tidak mengandung bagian pecahan. Contoh –20 dan 2345.

- Konstanta karakter ditulis dengan diawali dan diakhiri tanda petik tunggl. Contoh ‘C’ dan ‘&’.

- Konstanta pecahan (float dan double) dapat mengandung nilai pecahan (dengan tanda berupa titik) dan dapat ditulis dalam bentuk pecahan desimal biasa maupun bentuk eksponensial (menggunakan tanda e). conth 35.6 dan 3.2e+5 (maksudnya 3,2 x 105).

- Konstanta pecahan selalu dinyatakan dalam double, kecuali jika diakhiri dengan F atau f (yang berarti menyatakan konstanta float). - Untuk konstanta long int, penulisannya diakhiri dengan tanda L atau

(10)

- Konstanta tak bertanda ditulis dengan diakhiri tanda U atau u. Jika nilainya melebihi 65535, secara otomatis akan diperlakukan sebagai

unsigned long int. Contoh 431000u.

III.5.1 Konstanta Oktal dan Heksadesimal

- Dalam sistem oktal, digit yang digunakan berkisar antara 0 sampai dengan 7, dan penulisannya diawali dengan 0 (angka 0)

- Pada sistem heksadesimal digit yang dapat dipakai berupa salah satu dari 16 simbol berikut: 0 1 2 3 4 5 6 7 8 9 A B C D E F.

- Penulisan konstanta heksadesimal diawali dengan 0x (nol dan x). /* ---*/

/* Program : Konstanta.c */ /* Penulisan konstanta oktal dan heksadesimal */ /* ---*/ #include <stdio.h> main() { int a, b; a = 010; /* 10 oktal */ b = 0x10; /* 10 heksadesimal */ printf("a= %d, b = %d\n",a ,b); } Hasil eksekusi: C>Konstanta a = 8, b = 16 Program 3-4.

III.5.2 Konstanta Karakter Rangkaian Escape

- Konstanta karakter selalu ditulis dengan diawali dang diakhiri dengan tanda petik tunggal.

- Beberapa konstata karakter dapat ditulis dengan diawali tanda \ (penempatan tanda \ setelah tanda petik tunggal).

- Karakter yng berawalan tanda \ disebut rangkaian escape (escape sequence).

- Daftar karakter yang disebut sebagai rangkaian escape diperlihatkan pada tabel 3.5.

(11)

Tabel 3.5 Karakter Rangkaian Escape.

Rangkaian Nilai Karakter Maksud

\0 \a \b \f \n \r \t \v \\ \’ \” \? 0x00 0x07 0x08 0x0C 0x0A 0x0D 0x09 0x0B 0x5C 0x27 0x22 0x3F NULL BEL BS FF LF CR HT VT \ ‘ “ ? Karakter ber-ASCII = 0 Bunyi speaker

Backspace (mundur ke kiri) Formfeed (ganti halaman) Linefeed (ganti baris)

Carriege return (ke awal baris) Tab horisontal

Tab vertikal

Karakter miring kiri Karakter petik-tunggal Karakter petik-ganda Karakter tanda tanya

- Untuk menyatakan sembarang karakter ASCII, notasi yang dapat digunakan adalah:

\DDD dengan DDD = 1 sampai 3 digit oktal

\xHH dengan HH = 1 sampai 2 digit heksadesimal

- Contoh program berikut memberikan gambaran pemakaian konstanta karakter untuk menampilkan karakter grafik yaitu tanda integral, yang tersusun atas dua buah karakter ASCII F4h dan F5h.

/* ---*/ /* Program : Integral.c */ /* Menampilkan tanda integral */ /* ---*/

#include <stdio.h> main()

{

unsigned char kar1 = '\xf4'; unsigned char kar2 = '\xf5';

printf("%c\n%c",kar1 ,kar2); }

Program 3-5

III.5.2 Konstanta String

- Konstanta string merupakan deretan karakter yang diawali dan diakhiri dengan tanda petik-ganda ( “ ).

- Konstanta string yang berisi satu karakter berbeda dengan konstanta karakter, sebab konstanta karakter diawali dan diakhiri dengan tanda

(12)

petik-tunggal, sedangkan string diawali dan diakhiri dengan tanda petik-ganda. Jadi “c” tidak sama dengan ‘c’.

- Konstanta string dapat mengandung karakter yang menggunakan tanda \ (karakter rangkaian escape).

III.6 Operator

- Operator merupakan simbol atau kata yang dapat digunakan dalam program untuk melakukan suatu operasi atau manipulasi, seperti menjumlahkan dua buah nilai, memberikan nilai ke suatu peubah, membandingkan dua buah nilai, dan lain sebagainya.

- Sebagian operator C tergolong sebagai operator binary, yaitu operator yang dikenakan terhadap dua buah nilai (operand).

- Contoh :

a + b

- Simbol + merupakan operator untuk melakukan operasi penjumlahan dari kedua operand-nya (yaitu a dan b).

- Karena operasi penjumlahan melibatkan dua operand, maka operator ini tergolong sebagai operator binary.

III.6.1 Operator Aritmatika

Operator aritmatika yang tergolong sebagai operator binary

adalah: * / % + - Perkalian Pembagian Sisa pembagian Penjumlahan Pengurangan

- Operator yang tergolong sebagai operator unary, adalah: + - ++ -- Tanda plus Tanda minus

Prefix: preincrement; Postfix: postincrement Prefix: predecrement; Postfix: postdecrement

(13)

/* ---*/ /* Program : Aritmatik.c */ /* Penggunaan operator aritmatika */ /* ---*/ #include <stdio.h>

main() {

float luas, pi, jari, keliling; pi = 3.1428;

jari= 12.0;

luas = pi*jari*jari;

printf("jari-jari = %f, luas = %f \n",jari ,luas); }

program 3-6

III.6.2 Prioritas Operator Aritmatika

Operator aritmatika pada C mempunyai urutan prioritas atau hirarki tertentu, seperti yang diperlihatkan pada Tabel 3.6.

Tabel 3.6 Hirarki operator aritmatika. Tertinggi Terendah ++ -- - (unary minus) * / % + -

- Operator yang mempunyai prioritas tinggi akan diutamakan dalah hal pengerjaan dibandingkan dengan operator yng memiliki prioritas lebih rendah.

- Jika operator mempunyai prioritas sama, maka operator yang terletak di sebelah kiri yang akan dikerjakan lebih dulu.

Latihan

Berapakah nilai x setelah pernyataan-pernyataan berikut ini dijalankan: a. x = (2+3) – 10 * 2;

b. x = (2 + 3) – (10 * 2); c. x = 10 % 2 + 1;

(14)

III.6.3 Operator Manipulasi Bit

Untuk keperluan memanipulasi data dalam bentuk bit, bahasa C menyediakan beberapa operator seperti yang diperlihatkan pada Tabel 3.7 di bawah ini.

Tabel 3.7 Operator Manipulasi Bit.

Operator Operasi << >> & ! ^ ~

Geser bit ke kiri Geser bit ke kanan Dan (AND)

Atau (OR) XOR

NOT (komplemen)

- Seluruh operator manipulasi bit hanya dapat dikenakan pada operand yang bertipe integer atau karakter.

- Tabel 3.8 berikut memberikan informasi tentang prioritas operator bit. Tabel 3.8 Prioritas operator manipulasi bit.

Tertinggi Terendah - >> << & ^ ! /* ---*/ /* Program : Geser.c */ /* Operator manipulasi bit */ /* ---*/ #include <stdio.h> main() { unsigned x = 93; printf("Nilai x semula = %d\n",x); x = x<<1; /* geser ke kiri 1 bit */

printf("Nilai x setelah geser kiri = %d\n",x); x = x>>2; /* geser ke kanan 2 bit */

printf("Nilai x setelah geser kanan = %d\n",x); }

(15)

Hasil eksekusi: C> Geser

Nilai x semula = 93

Nilai x setelah geser kiri = 186 Nilai x setelah geser kanan = 46 Program 3-7

III.7 Ungkapan (Ekspresi)

Ungkapan atau ekspresi dalam C dapat berupa: - pengenal

- konstanta

- peubah pseudo (seperti _AX, _AL yang menyatakan peubah register) - atau diantara kombinasi elemen di atas dengan operator.

Contoh ungkapan : 3 + 2 - 1

- Pada ungkapan di atas, 3, 2, dan 1 merupakan operan dan simbol + dan – adalah operator.

- Nilai ungkapan sendiri adalah hasil penjumlahan 3 dan 2, dikurangi 1.

III.8 Konversi Tipe dalam Ungkapan

- Dalam suatu ungkapan, jika tipe dari konstanta dan peubah berbeda, dengan sendirinya akan dikonversi terlebih dahulu menjadi tipe yang sama.

- Aturan yang berlaku dalam pengkonversian tipe aritmatika adalah: 1. Semua tipe char dan short int akan dikonversikan ke int. semua

float akan dikonversikan ke double. 2. Untuk setiap pasangan operand:

- Jika salah satu operand bertipe long doubel, maka operand pasangannya akan dikonversikan ke long doubel.

- Jika salah satu operand bertipe doubel, maka operand pasangannya akan dikonversikan ke doubel.

- Jika salah satu operand bertipe long, maka operand pasangannya akan dikonversikan ke long.

- Jika salah satu operand bertipe unsigned, maka operand pasangannya akan dikonversikan ke unsigned.

- Aturan di atas berlaku untuk operator aritmatika maupun manipulasi bit dan tidak berlaku untuk operator penugasan ( = ).

(16)

- Pada operator penugasan, nilai ungkapan yang terletak di kanan = secara otomatis akan dikonversikan sesuai dengan tipe peubah yang terletak di kiri =.

III.9 Penggunaan Type Cast

- Type cast merupakan cara untuk mengkonversikan suatu tipe menjadi tipe yang lain

- Misal jika x dideklarasikan bertipe int. Bila diinginkan agar ungkapan x/2 menghasilkan nilai pecahan, maka ungkapan x/2 perlu ditulis menjadi:

(float) x/2

- Perbedaan penggunaan type cast dan yang tidak menggunakan type cast dapat dilihat dari contoh program berikut.

/* ---*/ /* Program : typecast.c */ /* melihat efek type cast dalam */ /* konversi tipe */ /* ---*/ #include <stdio.h> main() { int x = 21; float y; y = x/2; printf("y = x/2 =%f\n",y); y = (float) x/2;

printf("y = (float) x/2 = %f\n",y); } Hasil eksekusi: C>typecast Y = x/2 = 10.000000 Y = (float) x/2 = 10.500000 Program 3-8

(17)

Pada operasi penugasan ke peubah, tipe ungkapan yang terletak di kanan operator penugasan ( = ) secara otomatis akan dikonversikan sesuai dengan tipe peubah yang terletak di kiri operator penugasan, seperti yang diperlihatkan pada contoh program 3-9 berikut ini.

/* ---*/ /* Program : konversi.c */ /* Contoh konversi pada penugasan*/ /* ke peubah */ /* ---*/ #include <stdio.h> main() { char c; int i; float x; x = 176.5; /* penugasan 1 */ i = x; /* penugasan 2 */ c = i; /* penugasan 3 */ printf("Nilai x =%f\n",x); printf("Nilai i =%d\n",i); printf("Nilai c =%c\n",c); } Hasil eksekusi: C>konversi Nilai x = 176.500000 Nilai I = 176 Nilai c = 0 Program 3-9

Gambar

Tabel 3.2 Daftar tipe data dasar.
Gambar 3.1 Penyajian internal dari tipe data.
Tabel 3.4 Kemungkinan pemakaian pemodifikasi tipe.  Tipe Jumlah
Tabel 3.5 Karakter Rangkaian Escape.
+2

Referensi

Dokumen terkait

Penulis melihat bahwa Blackpink dinilai kurang efektif sebagai brand ambassador Shopee, dilihat dari rendahnya tanggapan responden secara terhadap variabel power dalam hal

Dari hasil anamnesa ini gambaran lesi mirip mucocele dan hasil AJH dari dokter yang merujuk adalah benigna cystic lesion yang condong ke mucocele, namun dari hasil

Selain keunikan dan potensi ekonomi yang tinggi dari jenis-jenis cauliflora tersebut di atas beberapa jenis juga tennasuk kelompok tumbuhan terancam langka atau

Ayat 3 : Dana Desa sebagaimana dimaksud dalam Pasal 285 ayat (2) huruf a angka 4 dialokasikan oleh Pemerintah Pusat untuk mendanai penyelenggaraan pemerintahan, pelaksanaan

Model pendekatan kooperatif yang paling sederhana dalam pembelajaran kooperatif adalah model Student Team achievment Division (STAD). Berdasarkan observasi pada hari

6 Wawancara dengan Zulkifri, SH dilakukan pada hari senin, 20 oktober 2014.. motor digunakan karena bisa membantu untuk mengurai kemacetan ketika dijalan. Begini mas

kebersihan yang mengelola sampah tanpa menggunakan alat pelindung diri dengan menelan telur cacing tersebut yang melekat pada tangan yang tidak memakai

Kita semua, khususnya bagi warga usia lanjut, bila ingin tetap sehat dan bahagia, tenangkan hati dan pikiran dengan cara banyak senyum, nyanyi, dan tari, karena hal itu tidak