650 likes | 1.11k Views
Dasar Pemrograman Komputer. Pengantar Bahasa C. Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin Teknik Informatika - UB. Bahasa Mesin. Setiap komputer memahami bahasa mesinnya sendiri Bahasa mesin adalah ‘bahasa natural’ dari tiap mesin Umumnya terdiri dari sederatan angka
E N D
Dasar Pemrograman Komputer Pengantar Bahasa C Sutrisno Ismiarta Aknuranda Issa Arwani Adharul Muttaqin Teknik Informatika - UB
Bahasa Mesin • Setiap komputer memahami bahasa mesinnya sendiri • Bahasa mesin adalah ‘bahasa natural’ dari tiap mesin • Umumnya terdiri dari sederatan angka • Akan diterjemahkan menjadi bahasa biner, terdiri dari 1 dan 0 • Machine-dependent, sebuah bahasa mesin hanya bisa digunakan pada satu tipe komputer Pengantar Bahasa C - TIF UB 2010
Bahasa Mesin • Jauh dari bahasa manusia • Contoh: +1300042774 +1400593419 +1200274027 Menambahkan gaji lembur ke gaji pokok dan menyimpan hasilnya ke gaji kotor Pengantar Bahasa C - TIF UB 2010
Bahasa Assembly • Bahasa mesin terlalu sulit dan lama untuk memrogram • Ketika komputer semakin populer, muncul bahasa assembly • Bahasa assembly menggunakan kata-kata atau singkatan berbahasa Inggris • Kode dalam bahasa assembly dikonversi menjadi bahasa mesin melalui assembler Pengantar Bahasa C - TIF UB 2010
Bahasa Assembly • Contoh: LOAD GAJIPOKOK ADD GAJILEMBUR STORE GAJIKOTOR Menambahkan gaji lembur ke gaji pokok dan menyimpan hasilnya ke gaji kotor Pengantar Bahasa C - TIF UB 2010
Bahasa Tingkat Tinggi (High-level Languages) • Bahasa assembly masih butuh banyak instruksi untuk menyelesaikan suatu tugas sederhana • Bahasa level tinggi dikembangkan untuk mengatasi kesulitan ini • Bahasa level tinggi menggunakan instruksi dengan bahasa Inggris dan notasi umum matematika • Kode dalam bahasa level tinggi dengan compiler atau interpreter • C/C++ termasuk bahasa level tinggi Pengantar Bahasa C - TIF UB 2010
Bahasa Tingkat Tinggi • Contoh: gajiKotor = gajiPokok + gajiLembur Menambahkan gaji lembur ke gaji pokok dan menyimpan hasilnya ke gaji kotor Pengantar Bahasa C - TIF UB 2010
Sejarah C • Dirancang oleh Denis M. Ritchie & diimplementasikan pertama kali tahun 1972 di Bell Labs. • Pengembangan dari bahasa BCPL(Martin Richard, 1967) dan bahasa B (Ken Thompson, 1970) • Dibantu Brian W. Kernighan, Ritchie menulis buku The C Programming Language (1978). Dikenal dengan nama K&R C atau “C klasik” atau “traditional C” • Versi C yang lebih baru ANSI C, 1989, untuk menyediakan definisi yang tidak ambigu dan independen terhadap mesin. C89. (ANSI: American National Standards Institute) Pengantar Bahasa C - TIF UB 2010
Mengapa C? • Bahasa tingkat tinggi yang mendekati bahasa tingkat rendah namun masih mudah dimengerti. • Dipakai mulai dari komputer mikro sampai superkomputer • Bahasa yang banyak digunakan dalam ilmu komputer untuk membuat sistem operasi dan program aplikasi. (e.g. berbagai varian UNIX (C), Windows (C/C++), berbagai varian Linux (C/C++), MySql (C++), etc) • Didukung oleh banyak pustaka (libraries) Pengantar Bahasa C - TIF UB 2010
Pustaka Standar C(C Standard Library) • http://www.utas.edu.au/infosys/info/documentation/C/CStdLib.html • http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ • http://www.csse.uwa.edu.au/programming/ansic-library.html • http://en.wikibooks.org/wiki/C_Programming/Standard_libraries Pengantar Bahasa C - TIF UB 2010
Struktur program • Bahasa C adalah salah satu bahasa pemrograman yang terstruktur • Bahasa C juga bersifat prosedural, terdiri dari fungsi-fungsi • Setiap program C mempunyai satu fungsi dengan nama “main” (program utama) • Program akan dieksekusi dimulai dari pernyataan (statement) pertama pada fungsi “main” itu • Huruf besar dengan huruf kecil diartikan berbeda (case-sensitive) • Setiap pernyataan (statement) sederhana diakhiri dengan titik koma (semi-colon (;)) Pengantar Bahasa C - TIF UB 2010
Struktur program Pengantar Bahasa C - TIF UB 2010
Struktur program • Contoh “Salam Super” /*---------------------------------- Program Pertama ----------------------------------*/ //Program mencetak tulisan Salam Super #include <stdio.h> int main() { printf(“Salam Super!\n”); return 0; } Pengantar Bahasa C - TIF UB 2010
Struktur program • Format penulisan fungsi main main() { statements; } main() { statements; return (0); } 1. 3. 2. 4. int main() { statements; return (0); } void main() { statements; } Pengantar Bahasa C - TIF UB 2010
Struktur program • Sering dijumpai beberapa format penulisan fungsi main seperti contoh diatas, tetapi tidak semua compiler mengenalnya. • Contoh: • dengan menggunakan compiler Turbo C 2.0 (DOS) dan Microsoft Visual C++ (Windows), (2), (3) dan (4) => Success, tetapi (1) warning • dengan menggunakan compiler Dev-C (windows), dan gcc (linux) (1), (3) dan (4) => Success, tetapi (2) warning • return (0); menyatakan program exit secara normal. • Penulisan return0; sama artinya dengan return (0);
Elemen-elemen dalam source code • Characters (karakter) • Identifiers (nama) • Keywords (kata kunci) • Data types (tipe data) • Variables (variabel) • Constants (symbolic and literal) (konstanta simbolik dan konstanta literal) Pengantar Bahasa C - TIF UB 2010
Elemen-elemen dalam source code • Expressions (Ekspresi) • Statements(Pernyaatan) • Comments or non-extecutable statements (Komentar) • Functions (Fungsi) • Pre-processor commands/directives (Perintah/pengarah pre-processor) Pengantar Bahasa C - TIF UB 2010
Characters • Program C ditulis menggunakan subset karakter ASCII yaitu: • Huruf besar A .. Z • Huruf kecil a .. z • Digit 0 .. 9 • Karakter khusus seperti ‘!’ , ‘&’, ‘+’, ‘\’, ‘_’ dan sebagainya. • ASCII: American Standards Committee for Information Interchange Pengantar Bahasa C - TIF UB 2010
Extended ASCII Codes Pengantar Bahasa C - TIF UB 2010
Identifiers • Namaberbagaielemen program sepertinamavariabel, fungsi, konstanta, 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.) • Contohidentifier : name, x1, _total, cubic • Contohidentifier yang salah: 1kali, int Pengantar Bahasa C - TIF UB 2010
Keywords • Keywordsadalah kata-kata yang mempunyai arti khusus pada bahasa pemrograman komputer dan tidak dibolehkan dipakai untuk identifier lain. • Contoh: Pengantar Bahasa C - TIF UB 2010
Keywords • Beberapa compiler akan memberikan warna yang berbeda untuk keyword, seperti pada Dev-C atau Visual C++, dibawah ini. Pada Visual C++ keyword dicetak dengan warna biru Pada Dev-C keyword dicetak BOLD Pengantar Bahasa C - TIF UB 2010
Variables • Variabel (variable) : sesuatu yang memiliki alamat memori tertentu(di RAM) untuk menyimpan nilai data. • Setiap variabel memiliki nama/identifier, alamat, tipe, size (rentang nilai) dan data. • Nilai data atau isi variabel dapat diubah saat run time • Format deklarasi variabel: <tipe> <nama [, ...]>; <tipe> <nama = nilai_awal [, ...]>; • Contoh: int a, b, c, jumlah; float gaji, bonus; int jml_mhs = 20; Pengantar Bahasa C - TIF UB 2010
Variables Pengantar Bahasa C - TIF UB 2010
Variables • Deklarasi Variabel: • Variabel dapat dideklarasikan disetiap awal block statement. • Block statement disebut juga “compound statement” adalah statement-statement yang berada diantara { dan }. • Contoh deklarasi variabel: • int x; • int y; • int z; • atau bisa ditulis : • int x, y, z; • atau bisa juga ditulis : • int x; int y; int z; Pengantar Bahasa C - TIF UB 2010
Data types • Pada dasarnya tipe data primitif (primitive data types) pada bahasa pemrograman C berjumlah 5: • Kemudiantipeprimitifinibertambahdenganadanya 4 modifiers. Pengantar Bahasa C - TIF UB 2010
Data types • Empat modifiers: • signed • unsigned • long • short • Tipe data dalam bahasa C merupakan kombinasi antara tipe data primitif yang dasar dengan modifier di atas. • Contoh : signed char, unsigned int, long int, dll. Pengantar Bahasa C - TIF UB 2010
Data types Contoh tipe data dan rentang nilai pada Turbo C dan Borland C++ untuk tipe data 16-bit Pengantar Bahasa C - TIF UB 2010
Data types • Default-nya signed (bilangan bertanda), sehingga penulisan int sama artinya dgn signed int • Contoh : • int x; sama artinya dgn signed int x; • short int x; sama artinya dgn signed short int x; • Rentang Nilai (range) dari tipe data dalam bahasa C tergantung dari compiler dan sistem operasi. • Contoh : • Tipe integer pada Turbo C 2.0 (DOS), rentang nilainya 2 byte (-32768 s/d 32767) • Tipe integer pada Dev-C (Windows), rentang nilainya 4 byte (-2147483648 s/d 2147483647) • Borland C++ 5.02 menyediakan tipe integer untuk 2 byte dan 4 byte Pengantar Bahasa C - TIF UB 2010
Data types • Mengapa tipe char rentang nilainya dari -128 s/d 127 ? • 1 Byte = 8-bit 00000000 s/d 01111111 (msb =0 untukbil positif) 10000000 s/d 11111111 (msb = 1 untukbil negatif) msb = most significant bit; bit yg paling kiri -128 -128 32 8 4 2 1 16 64 Jika dijumlahkan hasilnya = -128 Jika dijumlahkan hasilnya = -1 Pengantar Bahasa C - TIF UB 2010
Data types Rentangnilaitipe data signed char Pengantar Bahasa C - TIF UB 2010
Data types Rentangnilaitipe data unsigned char Pengantar Bahasa C - TIF UB 2010
Data types • Contoh char c=127; int i =127; c=c+1; i = i +1; Berapa nilai cdan i ? Pengantar Bahasa C - TIF UB 2010
Data types • Contoh char c=127; int i =127; c=c+1; i = i +1; Berapa nilai cdan i ? Jawaban : c bernilai -128 bukan 128 dan i bernilai 128 Pengantar Bahasa C - TIF UB 2010
Data types • Keywordvoid disamping digunakan dalam fungsi yang tidak mengembalikan nilai, juga digunakan sebagai tipe data. • Tipe data void : adalah tipe data yang bisa diubah menjadi tipe apa saja (akan dibahas lebih lanjut pada saat membahas pointer) Pengantar Bahasa C - TIF UB 2010
Constants • Konstanta adalah nilai yang tidak berubah selama proses dalam program • Konstanta bisa berupa konstanta literal atau berupa konstanta simbolik • Konstanta literal adalah nilai yang ditulis pada kode program. Contoh: panjang = 5; // 5 adalah konstanta literal printf(“x = %c”, ‘A’); // ‘A’ adalah konstanta literal Pengantar Bahasa C - TIF UB 2010
Constants • Konstanta simbolik dibuat untuk memberi nama pada suatu nilai literal. • Konstanta simbolik bisa dibuat dengan 2 cara: • Dengan preprocessor directive #define. Contoh: #define UKURAN 25 • Dengan kata kunci const. Contoh: const int X = 50; Pengantar Bahasa C - TIF UB 2010
Symbolic constants int main(){ const floatPi=3.14; Pi=3.1475; //Error return 0; } #define Pi 3.14 int main(){ Pi=3.1475;//Error return 0; } #define Pi 3.14 int main(){ float PHI=3.14; PHI = 3.1475; //OK Pi=3.1475; //Error return 0; }
Literal constants Jenis-jenis konstanta literal: • Integer constants -5 • Floating-point constants 3.14 • Character constants 'C''1''$‘ • Escape sequence \n \t \'' • String constants ‘‘Universitas Brawijaya‘‘
sizeof • sizeof adalah sebuah operator untuk mengetahui jumlah memori (byte) yang diperlukan oleh suatu tipe data pada bahasa C • Sintaknya : sizeof(expression) • Contoh : sizeof(int)//bernilai 4 pada Dev-C++ (Windows) sizeof(int)//bernilai 2 pada Turbo C versi 2.0 (DOS)
Cast • Castadalah proses untuk mengkonversi tipe data pada bahasa C • Sintaksis: (type) • Contoh : int x; float fx = 3.134; x = (int)fx; Cast
Suffix • Untuk konstanta literal bilangan floating point,bahasa C menyediakan suffix (akhiran) berikut: • F atau f untuk tipe data float • L atau l untuk tipe data long double • Tipedefault (jika tanpa suffix ) untuk konstanta literal bilangan floating point adalah double. • Contoh: • 3.14 => (double) • 3.14f => (float) • 3.14L => (long double)
Suffix • Untuk konstanta literal bilangan integer,bahasa C menyediakan suffix (akhiran) berikut: • U atau u untuk tipe unsigned integer • L atau l untuk tipe long integer • UL atau ul atau LU atau lu untuk tipe bilangan unsigned long integer • Tipedefault (jika tanpa suffix) untuk konstanta literal bilangan integer adalah integer. • Contoh: • 174 => (integer) • 174u => (unsigned integer) • 174L => (long integer) • 174ul => (unsigned long integer)
Suffix • Beberapacompiler(mis. pada Visual C++) akanmemberikanperingatan terhadap operasi “lintas tipe data” seperti berikut: float x; x = 3.14; warning : truncation from 'const double' to 'float’ • Cara menghindari peringatan: float x; x = (float)3.14;//menggunakancast atau x = 3.14f; //menggunakan suffix
Suffix #include <stdio.h> #include <conio.h> int main() { char ch; printf("Sizeof floatingpointconstants:\n"); printf(" – with suffix f = %d\n",sizeof(3.14f)); printf(" - withoutsuffix = %d\n",sizeof(3.14)); printf(" - withsuffix L = %d\n",sizeof(3.14L)); ch=getch(); return 0; } Sizeof floating point constants : - with suffix f = 4 - without suffix = 8 - with suffix L = 12 Output :
Comments • Menggunakan pasangan /* dan */ atau // • Digunakan agar program lebih mudah dibaca dan dimengerti • Diabaikan oleh compiler • Untuk komentar 1 (satu) baris cukup menggunakan tanda // diawal baris • Contoh comments dalam program C sederhana: /*---------------------------------- Program Pertama ----------------------------------*/ //Program mencetak tulisan Helloworld #include <stdio.h> void main() { printf(“Hello World \n”); } Pengantar Bahasa C - TIF UB 2010
Pre-processor directives Jika di kompilasi dengan Dev-C++ program ini akan error, dgn Error Message: ‘printf’ undeclared. • Contoh: void main() { printf(”Hello World”); } #include adalah sebuah directive/arahan untuk memberitahu compiler bahwa function prototype untuk fungsi printf ada pada header file stdio.h #include <stdio.h> void main() { printf(”Hello World”); } Pengantar Bahasa C - TIF UB 2010
Preprocessor directives • #include <stdio.h> • File stdio.h akan dicari mulai dari directory tempat header file tersebut di-install. Jika tidak ditemukan, file inidicari dicurrent / working directory. • Contoh, pada Turbo C 2.0, stdio.h diinstalasikan pada directory … \ INCLUDE sedangkan pada Dev-C++ di directory ...\Dev-Cpp\include
Preprocessor directives • #include ”stdio.h” • File stdio.h akan dicari mulai dari current / working directory, dan jika tidak ditemukan akan dicari di directory tempat header file tersebut disimpan pada saat compiler-nya diinstalasi. • Directive #include umumnya ditulis di awal program