560 likes | 1.37k Views
Pengantar Bahasa C. Pertemuan 0 2. Dasar Pemrograman Komputer [TKL-4002] 2010. Learning Outcomes. Pada akhir pertemuan , diharapkan mahasiswa mampu : Menjelaskan elemen dan struktur pemrograman C atau C++. Outline Materi. Pengantar Bahasa C Sejarah Bahasa C
E N D
PengantarBahasa C Pertemuan 02 Dasar Pemrograman Komputer [TKL-4002] 2010
Learning Outcomes Padaakhirpertemuan, diharapkanmahasiswa mampu: • MenjelaskanelemendanstrukturpemrogramanC atau C++
Outline Materi PengantarBahasa C • SejarahBahasa C • Karakter, Identifier, Keyword • Tipe Data, Konstanta, Variabel • Struktur Program danKomentar
SejarahBahasa C Dirancangoleh Denis M. Ritchie tahun 1972 di Bell Labs. PengembangandaribahasaBCPL (Martin Richard, 1967) danbahasaB (Ken Thompson, 1970) Dibantu Brian W. Kernighan, Ritchie menulisbukuThe C Programming Language (1978). DikenaldengannamaK-R CatauC klasik. Versi C yang lebihbaruAnsi C 1989, iso C 99.
Mengapa C? Flexibility : mendekati low level language namunmudahdimengerti. Portability : dipakaimulaidarikomputermikrosampaisuperkomputer Bahasa yang banyakdigunakandalamilmukomputeruntukmembuat O/S dan program aplikasi, dll. Didukungolehbanyakpustaka (libraries)
Struktur Program Bahasa C adalahsalahsatubahasapemrograman yang terstruktur Bahasa C terdiridarifungsi-fungsi Tidakadaperbedaanantaraprosedurdenganfungsi Setiap program C mempunyaisatufungsidengannama “main” (program utama). Program akandieksekusidimulaidari statement pertamapadafungsi “main” tsb. Hurufbesardenganhurufkecildiartikanberbeda (case-sensitive). Setiap statement diakhiridengan semi-colon (titikkoma (;)).
Struktur Program main() { statements; } main() { statements; return (0); } 1. 3. void main() { statements; } int main() { statements; return (0); } 2. 4. Format penulisanfungsi main
Struktur Program • Seringdijumpaibeberapa format penulisanfungsi main seperticontohdiatas, tetapitidaksemua compiler mengenalnya. • Penulisanfungsi main yang standard seperticontoh No. 3 atau 4 diatas. • return (0), menyatakan program exit secara normal. • Fungsi main danjugafungsiyglainnyajikatidakdiberikantipemakadefaultnya integer (int). Padacontohdiatas No. 3 dan 4 artinyasama. • Contoh: • denganmenggunakan compiler Turbo C 2.0 (DOS) dan Microsoft Visual C++ (windows), (2), (3) dan (4) => Success, tetapi (1) warning • denganmenggunakan compiler Dev-C (windows), dangcc (linux) (1), (3) dan (4) => Success, tetapi (2) warning
Struktur Program int main() { printf(”SelamatdatangdiFT-UB\n”); return (0); } JikadikompilasidenganDev-C++ program iniakan error, dgn Error Message: ‘printf’ undeclared. #include adalahsebuah directive/arahanuntukmemberitahu compiler bahwa function prototype untukfungsiprintfadapada header file stdio.h #include <stdio.h> int main() { printf(”SelamatdatangdiFT-UB\n”); return (0); } Contoh:
Struktur Program • Penulisanreturn 0;samaartinyadenganreturn (0); • #include <stdio.h> • File stdio.hakandicarimulaidari directory tempat header file tersebutdi-install. Jikatdkadaakandilanjutkanmencarinyake current / working directory. • Contoh pd Turbo C 2.0, header file di install pada directory … \ INCLUDE sedangkan pada Dev-C++ tdp di directory ...\Dev-Cpp\include
Struktur Program #include <stdio.h> int main() {printf(“Selamatdatang\n”); return (0); } #include <stdio.h> int main() { printf(“Selamatdatang\n”); return (0); } Sama • #include ”stdio.h” • File stdio.hakandicarimulaidari current / working directory, danjikatdkadaakandilanjutkanmencarinyake directory tempat header file tersebutdisimpanpadasaatmenginstall compiler-nya. • Directive#include umumnyaditulisdiawal program • Style penulisan (tergantungkesenangan programmer):
Komentar /*---------------------------------- Program Pertama ----------------------------------*/ #include<stdio.h> void main() { printf(“Helloworld \n”); return (0); }//Program mencetaktulisanHelloworld Menggunakanpasangan/*dan*/ Digunakan agar program lebihmudahdibacadandimengerti Diabaikanolehcompiler Untukkomentar 1 (satu) bariscukupmenggunakantanda//diawalbaris Contoh program C sederhana:
Escape Sequences • \a bell, alert, system beep • \b back space • \t horizontal tab • \n new line, line eed • \v vertical tab • \r carriage return • \’ single quote • \” double quote • \\ backslash • \xddnotasi hexadecimal • \dddnotasi octal
Karakter • Program C ditulismenggunakansubsetkarakter ASCII yaitu: • Hurufbesar A .. Z • Hurufkecil a .. z • Digit 0 .. 9 • Karakterkhususseperti ‘!’ , ‘&’, ‘+’, ‘\’, ‘_’ dansebagainya. • ASCII = American Standards Committee for Information Interchange
Identifier Namaberbagaielemen program sepertinamavariabel, fungsi, konstanta, keyword dsb Diawalidenganhurufataugarisbawah(underscore) _ dandiikutidenganhuruf, digit atau _ Hurufbesardianggapberbedadenganhurufkecil (case sensitive) Panjangmaksimum Identifier tergantungdari compiler sebagaicontoh Turbo C 2.0 (DOS), max 32 karakter Tidakbolehmenggunakankeyword(misalfor,while, dll.) Contoh identifier : name, x1, _total, cubic Contoh identifier yang salah: 1kali, int
Keyword • Keywordsadalah kata-kata/identifier yang mempunyai arti khusus pada bahasa pemrograman komputer dan tidak dibolehkan dipakai untuk identifier lain. • Contoh Keyword
Keyword Pada Visual C++ keyword dicetakdenganwarnabiru Pada Dev-C keyword dicetak BOLD Beberapa compiler akanmemberikanwarna yang berbedauntuk keyword, sepertipada dev-C atau Visual C++, dibawahini.
Variabel • Variabel : Identifier yang memiliki alamat memori tertentu(di RAM) untukmenyimpan nilai data. • Setiapvariabelmemilikinama/identifier, alamat (L-Value), tipe, size(rentangnilai) dan data (R-Value). • Nilai dataatauisivariabeldapat diubah-ubahpadasaat Run time • Format deklarasivariabel: <tipe> <nama [, ...]>; <tipe> <nama= nilai_awal [, ...]>; • Contoh: int a, b, c, jumlah; float gaji, bonus; intjml_mhs = 20;
Variabel • int x; • int y; • int z; • ataubisaditulis : • int x, y, z; • ataubisajugaditulis : • int x; int y; int z; • DeklarasiVariabel: • Variabeldptdideklarasikandisetiapawalblok statement. • Blok statement disebutjuga “compound statement” adalah statement-statement yang beradadiantara { dan }. • Contohdeklarasivariabel:
Tipe Data Padadasarnyatipe data primitif padabahasapemrograman C ada 5, danditambah 4 tipe Modifier yaitu:
Tipe Data • Empattipe Modifier adalahsbb : • signed • unsigned • long • short • Tipe data dalambahasa C merupakankombinasiantara Basic Data Types dengan Modifier. • Contoh : signed char, unsigned int, long int, dll.
Tipe Data dIBahasa C CONTOH : TIPE DATA DAN RENTANG NILAI PADA TURBO C 2.0 (DOS)
Tipe Data dalamBahasa C • Defaultnyasigned (bilanganbertanda), sehinggapenulisanintsamaartinyadgnsigned int • Contoh : int x; samaartinyadgnsigned intx; • short int x; samaartinyadgnsigned short intx; • RentangNilai (range) daritipe data padabahasa C tergantungdari compiler danSistemOperasi. • Contoh : • Tipe integer pada Turbo C 2.0 (DOS), rentangnilainya 2 byte (-32768 s/d 32767) • Tipe integer pada Dev-C (Windows), rentangnilainya 4 byte (-2147483648 s/d 2147483647)
Tipe Data dalamBahasa C MSB = Bit yg paling kiri -128 -128 32 8 4 2 1 16 64 Jikadijumlahkanhasilnya = -128 Jikadijumlahkanhasilnya = -1 • Mengapatipe char rentangnilainyadari -128 s/d 127 ? • 1 Byte = 8-bit 00000000 s/d 01111111 (MSB=>0 = BilPositip) 10000000 s/d 11111111 (MSB=>1 = BilNegatip)
Tipe Data dalamBahasa C RentangNilaiTipe data signed char
Tipe Data dalamBahasa C RentangNilaiTipe data unsigned char
Tipe Data dalamBahasa C • Contoh char ch=127; ch=ch+1; Berapanilaich ? Jawaban : -128 bukan 128 • Contoh intch=127; ch=ch+1; Berapanilaich ? Jawaban : 128
Tipe Data dalamBahasa C Keyword void disampingdigunakandalamfungsiuntuktidakmengembalikannilai, jugadigunakansebagaitipe data. Tipe data void : adalahtipe data yang bisadirubahmenjaditipeapasaja(akandibahaslebihlanjutpadasaatmembahas pointer)
Cast Cast • Cast : untukmengkonversitipe data padabahasa C • Sintak : (type) • Contoh : intx; float f = 3.134; x = (int) f;
Symbolic Constant • Symbolic Constant adalah Identifier yang hanyamemilikinilai (R-Value), dannilai-nyatidakbisadirubah-rubahpadasaat run time. • Symbolic Constant tidakmemilikialamat (L-Value) • Padabahasa C deklarasi symbolic constant tidakmembutuhkanalokasimemori • Untukmendeklarasikan symbolic constant padabahasa C bisadilakukandengan pre-processor directive #defineataudengan keyword const. • Contoh: const float Pi=3.14; #define Pi 3.14
Symbolic Constant int main() { const float Pi=3.14; Pi=3.1475; //Error return 0; } #define Pi 3.14 int main() { float PHI=3.14; PHI = 3.1475; //OK (variable) Pi=3.1475; //Error return 0; } #define Pi 3.14 int main() { Pi=3.1475; //Error return 0; }
Konstanta Konstanta / symbolic constant tidak memiliki alamat (hanya nilai) dan nilainya tdk bisa dirubah saat run time. Jenis-jenis Nilai konstanta: Integer constant -5 Floating-point constant 3.14 Character constant 'C''1''$' Escape sequence \n \t \'' String constant '‘TIF FT-UB'' • Symbolic constant #define PHI 3.14 const float PHI=3.14; 'H' adalah sebuah nilai character constant ''H''adalah sebuah nilai string constant 1 adalahsebuah nilai integer constant '1' adalah sebuah nilai character constant const float Pi= 3.1415926; Pi adalahsebuah symbolic constant
Contoh Program /* Program Tambah */ /*komentar */ intx,y,z; /*DeklarasiVariabel global*/ int main() { /*Program utamamulai*/ x = 20; /*Statement 1*/ y = 30; /*Statement 2*/ z = x + y; /*Statement 3*/ return 0; /*Statmenet 4*/ } /*Program utamaselesai*/ • Penambahanduabuahbilangan Data telahberadadimemori (variabel), hasilpenjumlahandisimpandimemori (variabel).
Contoh Program /*---------------------------------- Program Luas_Lingkaran ----------------------------------*/ #include <stdio.h> const float Pi = 3.14; /*DeklarasiKonstanta*/ int main() /*Program utamamulai*/ { float jejari; /*Deklarasi local Variabel*/ float luas; scanf(“%f”,&jejari); /*Masukkandari keyboard*/ luas = Pi * jejari * jejari; printf(“Luas = %5.2f”, luas); /*Mencetakkelayar*/ return (0); } /*Program utamaselesai*/ • Program menghitungluaslingkaran Data jejaridibacadari keyboard, kemudianhasilperhitunganditayangkandilayar monitor.
Sizeof • sizeofadalahsebuah operator untukmengetahuijumlahmemori (byte) yang diperlukanolehsuatutipe data padabahasa C • Sintaknya :sizeofexpression • Contoh : sizeof(int) = 4 => pada Dev-V (Windows) sizeof(int) = 2 => pada Turbo C versi 2.0 (DOS)
Suffix • Bahasa C menyediakan Suffix (akhiran) untukbilangan floating point konstansbb: • F atau f untuktipe float • L atau l untuktipe long double • Default tipenya double • Contoh: • 3.14 => (double) • 3.14f => (float) • 3.14L => (long double)
Suffix • Bahasa C menyediakan Suffix (akhiran) untukbilangan integer konstansbb: • U atau u untuktipe unsigned integer • L atau l untuktipe long integer • UL atauulatau LU atauluuntuktipebilangan unsigned long integer • Default tipenya integer • Contoh: • 174 => (integer) • 174u => (unsigned integer) • 174L => (long integer) • 174ul => (unsigned long integer)
Suffix • Beberapa compiler akanmemberikan warning karenaperbedaantipe data seperti compiler pada Visual C++ sbb: • Contoh: float x; x = 3.14; warning : truncation from 'const double' to 'float’ • Cara mengatasisbb: float x; x = (float)3.14; //menggunakan cast atau x = 3.14f; //menggunakan suffix
Suffix Sizeof Floating Point Constan : - dgn suffix f = 4 - tanpa suffix = 8 - dgn suffix L = 12 Output : #include <stdio.h> #include <conio.h> int main() { char ch; printf("SizeofFloating Point Constan :\n"); printf(" - dgn suffix f = %d\n",sizeof(3.14f)); printf(" - tanpa suffix = %d\n",sizeof(3.14)); printf(" - dgn suffix L = %d\n",sizeof(3.14L)); ch=getch(); return 0; }
Latihan 1.Apakah yang dimaksuddenganfungsi library dalambahasapemrogramanC ? 2. Jelaskanapa yang dimaksuddengan identifier padabahasapemrograman C 3. Berapakah data terbesar yang bisaditampungolehvariabel x yang bertipe integer denganukuran 20-bit ? 4. Sebutkantipe data (bolehlebihdarisatu) yang tepatuntukmengolah data umur ! 5. Sebutkantipe data yang tepatuntukmenampung data NimMahasiswa ! 6. Sebutkantipe data yang tepatuntukmenampung data saldorekening !
Latihan • Kapansebaiknyamenggunakan directive: • #include <header.h> atau • #include ”header.h” • #include ”header.h” • Jikatipeintegerukurannyahanya 3 byte, berapakahrentangnilainya (range) ? • Jikatipeunsigned integer ukurannyahanya 3 byte, berapakahrentangnilainya (range) ? • ApakahbedaVariabeldenganKonstanta ? • Jika x variabelbertipe integer danukurannya 2 byte, jika x=32767 makaberapakahnilai x jikanilai x ditambah 1 ?
Latihan • Diketahuibilanganbiner 10-bit sbb: • 1010110011 • Jikabilanganbinertersebutadalahbilangan signed berapanilaidesimalnya ? • Jikabilanganbinertersebutadalahbilangan unsigned berapanilaidesimalnya • Jelaskantentangsistembilangan • Desimal • Biner • Oktal • Heksadesimal • Jelaskanbagaimanacaramengkonversisistembilangandesimalkebiner, oktaldanHeksadesimal, dansebaliknya
Latihan • Jelaskantentangsistembilangan two’s complement, one’s complement. • #define PHI 3.142857 Apakeuntungankitamenggunakankonstanta PHI sptdiatas? Mengapatdklangsungsajamenggunakanangka 3.142857