III Dasar Pemrograman.pdf
-
Upload
suparno-cah-sragen -
Category
Documents
-
view
222 -
download
0
Transcript of III Dasar Pemrograman.pdf
-
8/16/2019 III Dasar Pemrograman.pdf
1/17
Dasar Pemrograman 27
III. Dasar Pemrograman
III.1 Pengenal
• Pengenal (identifier ) merupakan nama yang biasa digunakan untuksuatu peubah (variable), konstanta, fungsi, atau obyek lain yangdidefinisikan oleh pemrogram.
• Aturan yang berlaku bagi suatu pengenal adalah:
o Pengenal harus diawali dengan huruf (A .. Z, a .. z) ataukarakter 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, akantetapi 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 darisatu kata, karena nama suatu pengenal tidak boleh dipisahkan spasi..
- Untuk menghindari kesalahan, pengenal tidak boleh menggunakannama 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 pustakaTurbo C,
- Tabel 3.1 berisi daftar kata-kunci yang terdapat pada Bahasa TurboC++.
-
8/16/2019 III Dasar Pemrograman.pdf
2/17
Dasar Pemrograman 28
Tabel 3.1 Daftar Kata-kunci pada Turbo C++.
asmauto
break
casecatchcdeclcharclassconstcontinue
_cs
defaultdeletedodouble
_dselseenum
_es _exportexternfarfloatforfriendgoto
hugeifinlineint
interrupt _loaddslong
nearnewoperator
pascal private protected publicregister
_regparamreturn
_saveregs _seg
shortsignedsizeof
_ssstaticstructswitchtemplatethistypedefunion
unsignedvirtualvoidvolatilewhile
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, yangdinamakan 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
CharInt
FloatDouble
void
816
32640
-128 .. 127-32768 .. 32767
3.4e-38 .. 3.4e+381.7e-308 .. 1.7e+3.8
-
KarakterBilangan bulat
Bilangan pecahan presisi-tunggalBilangan pecahan presisi-gandaTak bertipe
-
8/16/2019 III Dasar Pemrograman.pdf
3/17
Dasar Pemrograman 29
III.3 Peubah (Variable)
Peubah atau variabel dalam program digunakan untuk menyimpan
suatu nilai, dan nilai yang ada padanya dapat diubah-ubah selamaeksekusi program berlangsung.
III.3.1 Pendeklarasian Peubah
- Peubah yang akan digunakan dalam program harus dideklarasikanterlebih 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 telahdideklarasikan, bentuk pernyataan yang digunakan adalah sebagai
berikut:
peubah = nilai;
-
8/16/2019 III Dasar Pemrograman.pdf
4/17
Dasar Pemrograman 30
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
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> PeubahHarga total = 785.000000
Program 3-1
- Dalam penugasan suatu peubah, kadang-kadang diinginkan untukmenaikkan nilainya dengan satu (terutama dalam iterasi), yang dapatdinyatakan sebagai berikut:
x = x + 1;
-
8/16/2019 III Dasar Pemrograman.pdf
5/17
Dasar Pemrograman 31
III.3.3 Inisialisasi Peubah
- Dalam penulisan program dimungkinkan untuk melakukan inisialisasi
atau memberi nilai awal pada suatu peubah segera setelahdideklarasikan.
- Pernyataan berikut contoh pendeklarasian dan pemberian nilai awalsuatu peubah.
int jumlah;
jumlah = 29;
- Pernyataan di atas dapat disingkat melalui pendeklarasian yangdisertai 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
main( ){
int float x;double y;
-
8/16/2019 III Dasar Pemrograman.pdf
6/17
Dasar Pemrograman 32
x = 56.0123456789123456789;y = 56.0123456789123456789;
printf(“x = %20.16f\n”, x);
printf(“y = %20.16lf\n”, y);}
contoh hasil eksekusi:
C> Presisix = 56.0123443603515625y = 56.0123456789123466
Program 3-2
- Meskipun nilai yang diberikan pada peubah x (bertipe float ) dan peubah y (bertipe double) sama, ternyata nilai pada kedua peubahtersebut 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 yanglebih tinggi dibanding peubah x.
- Dalam C selain tipe double masih disediakan tipe long double yangmemiliki ketelitian yang lebih tinggi dibanding double seperti yangdiperlihatkan pada Tabel 3.3.
-
8/16/2019 III Dasar Pemrograman.pdf
7/17
Dasar Pemrograman 33
Tabel 3.3 Tipe Data, Ukuran, dan Rentangnya.
Type Size(bits)
Range Sample applications
unsigned char
char
enumunsigned intshort int
int
unsigned longlongfloatdoublelong doublenear pointer
far pointer
8
8
161616
16
323232648016
32
0 to 255
-128 to 127
-32,768 to 32,7670 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,6473.4 ^ 10-38 to 3.4 ^ 10381.7 ^ 10-308 to 1.7 ^ 103083.4 ^ 10-4932 to 1.1 ^ 104932
Not applicable
Not applicable
Small numbers and full PC
character setVery small numbers andASCII charactersOrdered sets of valuesLarger numbers and loopsCounting, small numbers,loop controlCounting, small numbers,loop controlAstronomical distancesLarge numbers, populationsScientific (7-digit precision)Scientific (15-digit precision)Financial (18-digit precision)Manipulating memoryaddressesManipulating addressesoutside 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
016
int (2's complement)
s magnitude
0
long int (2's complement)
31
s Biased
exponent
2231
float significant
0
s Biased
exponent
51
double significant
063
s Biased
exponent
64
long double significant
079
1
63
Gambar 3.1 Penyajian internal dari tipe data.
-
8/16/2019 III Dasar Pemrograman.pdf
8/17
Dasar Pemrograman 34
III.4 Pemodifikasi Tipe
- Terdapat beberapa pemodifikasi tipe (type modifier ) yang dapatdikenakan di awal tipe data dasar (kecuali void ). Pemodifikasi tipe
tersebut adalah :signedunsigned longshort
- 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 JumlahBit
Rentang Nilai
unsigned charsigned charunsigned intsigned int
short intunsigned shortintsigned short intlong intsigned long intunsigned long intlong double
88
16
16161632323280
0 .. 255-128 .. 127
-32768 .. 32767
-32768 .. 327670 .. 65535-32768 .. 32767
-2147483648 .. 2147483647-2147483648 .. 2147483647
0 .. 42949672953.4E-4932 .. 1.1E+4932
- Dari tabel diatas, dapat dilihat bahwa tipe char sama dengan unsignedchar , 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 . Tipe unsigned int boleh ditulis dengan unsigned .
-
8/16/2019 III Dasar Pemrograman.pdf
9/17
Dasar Pemrograman 35
/* ---------------------------------------------- *//* File program : TANDA.C *//* Contoh untuk menunjukkan *//* perbedaan antara signed dan unsigned */
/* ----------------------------------------------- */
#include
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> TANDAi = -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 tipemasing-masing.
- Konstanta integer ditulis dengan tanpa mengandung pemisah ribuandan tidak mengandung bagian pecahan. Contoh –20 dan 2345.
- Konstanta karakter ditulis dengan diawali dan diakhiri tanda petiktunggl. 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 (menggunakantanda e). conth 35.6 dan 3.2e+5 (maksudnya 3,2 x 10
5).
- Konstanta pecahan selalu dinyatakan dalam double, kecuali jikadiakhiri dengan F atau f (yang berarti menyatakan konstanta float ).
- Untuk konstanta long int , penulisannya diakhiri dengan tanda L ataul. Contoh 346600L atau 325100l.
-
8/16/2019 III Dasar Pemrograman.pdf
10/17
Dasar Pemrograman 36
- Konstanta tak bertanda ditulis dengan diakhiri tanda U atau u. Jikanilainya melebihi 65535, secara otomatis akan diperlakukan sebagaiunsigned long int . Contoh 431000u.
III.5.1 Konstanta Oktal dan Heksadesimal
- Dalam sistem oktal, digit yang digunakan berkisar antara 0 sampaidengan 7, dan penulisannya diawali dengan 0 (angka 0)
- Pada sistem heksadesimal digit yang dapat dipakai berupa salah satudari 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
main(){
int a, b;
a = 010; /* 10 oktal */ b = 0x10; /* 10 heksadesimal */ printf("a= %d, b = %d\n",a ,b);
}
Hasil eksekusi:
C>Konstantaa = 8, b = 16
Program 3-4.
III.5.2 Konstanta Karakter Rangkaian Escape
- Konstanta karakter selalu ditulis dengan diawali dang diakhiri dengantanda petik tunggal.
- Beberapa konstata karakter dapat ditulis dengan diawali tanda \(penempatan tanda \ setelah tanda petik tunggal).
- Karakter yng berawalan tanda \ disebut rangkaian escape (escapesequence).
- Daftar karakter yang disebut sebagai rangkaian escape diperlihatkan pada tabel 3.5.
-
8/16/2019 III Dasar Pemrograman.pdf
11/17
Dasar Pemrograman 37
Tabel 3.5 Karakter Rangkaian Escape.
Rangkaian Nilai Karakter Maksud
\0\a
\b\f\n\r\t\v\\\’
\”\?
0x000x07
0x080x0C0x0A0x0D0x090x0B0x5C0x27
0x220x3F
NULLBEL
BSFFLFCRHTVT
\‘
“?
Karakter ber-ASCII = 0Bunyi speaker
Backspace (mundur ke kiri)Formfeed (ganti halaman)Linefeed (ganti baris)Carriege return (ke awal baris)Tab horisontalTab vertikalKarakter miring kiriKarakter petik-tunggal
Karakter petik-gandaKarakter tanda tanya
- Untuk menyatakan sembarang karakter ASCII, notasi yang dapatdigunakan 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, yangtersusun atas dua buah karakter ASCII F4h dan F5h.
/* ----------------------------*//* Program : Integral.c *//* Menampilkan tanda integral *//* ----------------------------*/
#include
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 dandiakhiri dengan tanda petik-ganda ( “ ).
- Konstanta string yang berisi satu karakter berbeda dengan konstantakarakter, sebab konstanta karakter diawali dan diakhiri dengan tanda
-
8/16/2019 III Dasar Pemrograman.pdf
12/17
Dasar Pemrograman 38
petik-tunggal, sedangkan string diawali dan diakhiri dengan tanda petik-ganda. Jadi “c” tidak sama dengan ‘c’.
- Konstanta string dapat mengandung karakter yang menggunakantanda \ (karakter rangkaian escape).
III.6 Operator
- Operator merupakan simbol atau kata yang dapat digunakan dalam program untuk melakukan suatu operasi atau manipulasi, sepertimenjumlahkan 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 binaryadalah:
*/%+-
PerkalianPembagianSisa pembagianPenjumlahanPengurangan
- Operator yang tergolong sebagai operator unary, adalah:
+-++--
Tanda plusTanda minusPrefix: preincrement; Postfix: postincrementPrefix: predecrement; Postfix: postdecrement
-
8/16/2019 III Dasar Pemrograman.pdf
13/17
Dasar Pemrograman 39
/* ---------------------------------------*//* Program : Aritmatik.c *//* Penggunaan operator aritmatika */
/* ----------------------------------------*/
#include
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 hirarkitertentu, 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 prioritaslebih rendah.
- Jika operator mempunyai prioritas sama, maka operator yang terletakdi 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;
-
8/16/2019 III Dasar Pemrograman.pdf
14/17
Dasar Pemrograman 40
III.6.3 Operator Manipulasi Bit
Untuk keperluan memanipulasi data dalam bentuk bit, bahasa Cmenyediakan beberapa operator seperti yang diperlihatkan pada Tabel
3.7 di bawah ini.
Tabel 3.7 Operator Manipulasi Bit.Operator Operasi
>&!
^~
Geser bit ke kiriGeser bit ke kananDan (AND)Atau (OR)
XOR NOT (komplemen)
- Seluruh operator manipulasi bit hanya dapat dikenakan pada operandyang bertipe integer atau karakter.
- Tabel 3.8 berikut memberikan informasi tentang prioritas operator bit.
Tabel 3.8 Prioritas operator manipulasi bit.
Tertinggi
Terendah
->>
-
8/16/2019 III Dasar Pemrograman.pdf
15/17
Dasar Pemrograman 41
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 yangsama.
- 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 pasangannyaakan 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 ( = ).
-
8/16/2019 III Dasar Pemrograman.pdf
16/17
Dasar Pemrograman 42
- Pada operator penugasan, nilai ungkapan yang terletak di kanan =secara otomatis akan dikonversikan sesuai dengan tipe peubah yangterletak di kiri =.
III.9 Penggunaan Type Cast
- Type cast merupakan cara untuk mengkonversikan suatu tipe menjaditipe yang lain
- Misal jika x dideklarasikan bertipe int . Bila diinginkan agar ungkapanx/2 menghasilkan nilai pecahan, maka ungkapan x/2 perlu ditulismenjadi:
(float) x/2
- Perbedaan penggunaan type cast dan yang tidak menggunakan typecast dapat dilihat dari contoh program berikut.
/* ------------------------------------*//* Program : typecast.c *//* melihat efek type cast dalam *//* konversi tipe *//* ------------------------------------*/
#include
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>typecastY = x/2 = 10.000000Y = (float) x/2 = 10.500000
Program 3-8
-
8/16/2019 III Dasar Pemrograman.pdf
17/17
Dasar Pemrograman 43
Pada operasi penugasan ke peubah, tipe ungkapan yang terletak di kananoperator penugasan ( = ) secara otomatis akan dikonversikan sesuaidengan tipe peubah yang terletak di kiri operator penugasan, sepertiyang diperlihatkan pada contoh program 3-9 berikut ini.
/* --------------------------------*//* Program : konversi.c *//* Contoh konversi pada penugasan*//* ke peubah *//* --------------------------------*/
#include
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