340 likes | 628 Views
Bagian 2 INTRODUCTION BORLAN C++. Awal Berkenalan. Sejarah C. Bahasa C hasil kreasi dari Dennis M. Ritchie (1972) di Bell Telephone Laboratory Inc., Murray Hill, New Jersey, USA (Sekarang dikenal dengan AT&T Bell Laboratory)
E N D
Awal Berkenalan Sejarah C • Bahasa C hasil kreasi dari Dennis M. Ritchie (1972) di Bell Telephone Laboratory Inc., Murray Hill, New Jersey, USA (Sekarang dikenal dengan AT&T Bell Laboratory) • Implementasi pertama pada OS UNIX, dan dijalankan di mesin DEC PDP-II • Merupakan pengembangan dari B (Ken Thomson) dan bahasa BCPL/Basic Command Programming Language (Martin Richards)
Mengapa mesti C ? • Bahasanya ringkas, hanya terdiri dari 32 keyword menurut standar ANSI • Tersedia secara komersial untuk segala jenis komputer dan sistem operasi • Terstruktur sekaligus fleksibel • Programnya bekerja lebih cepat dan lebih tangguh, karena akses dekat ke sistem • Kebanyakan pengembangan bahasa pemrograman ke depan meniru sintax C (C-LIKE = mirip C), seperti : Java, Javascript, C#, Php,…
Keyword C 32 keyword ANSI C Beberapa compiler juga menyediakan beberapa keyword seperti berikut ini : asm far huge pascal ada fortran near Catatan : Semua keyword pada kode program C ditulis dengan huruf kecil
Penyebut (Identifier) Penyebut pada C meliputi lebih dari 200 kata, masing-masing digunakan untuk memberikan nama function pada rutin pustaka pada C Library. Penyebut tersebut direkan pada file dengan ekor (extension) H dan disebut Header file atau file H sedangkan rutin pelaksana dihimpun pada file bereksensi LIB. Penggunaannya harus dideklarasikan menggunakan sintax: #include <nama_file.h> Sintax diatas ditulis pada bagian naskah program yang disebut bagian preprosesor
Nama-nama Function Identifier Routin untuk Klasifikasi karakter ASCII Terdapat di dalam file bernama : ctype.h isalnum isaldigit isapunc isalpha isgraph isaspace isascii islower isupper iscntrl isuprint isxdigit Routin untuk menggarap directory dan path name. Terdapat di dalam file bernama : dir.h chdir fnsplit mkdir setdisk findfirst getcurdir mktemp findnext getcwd rmdir fnmerge getdisk searchpath
Lajutan indentifier Routin untuk melihat waktu terdapat di dalam file: time.h asctime ctime difftime gmtime localtime tzst Routin untuk konversi type data terdapat di dalam file: stdlib.h atof atol fcvt itoa strtod ultoa atoi ecvt gcvt toa strtod Sedangkan funsi konfersi yang terdapat dalam file:ctype.h To ascii tolower _tolower toupper _toupper Routin untuk perhitungan matematika yang terdapat dalam file: math.h acos poly cos log sqrt asin atan cosh log10 tan exp atan2 floor _matherr tanh fabs atof fmod pow matherr cabs frexp pow10 modf ceil hypot sinh
Lanjutan identifier Routin matematika yang terdapat dalam file:stdlib.h abs fcvt itoa rand strtol atol atof labs srand ultoa ecvt atoi iloa strtod Routin untuk manipulasi string terdapat dalam file: string.h stpcpy strspn strlwr strnset strspn strcat strdup strncat strncat strpbrk strstr strchr strerror strncmp strrchr strupr strcmp stricmp strncpy strrev strcpy strlen strnicmp strset Routin untuk melihat waktu terdapat dalam file: dos.h dostounix getdate gettime setdate settime unixtodos Routin untuk akses ke BIOS terdapat dalam file: bios.h Bioscom bioskey biosprint biosdisk biosequip biosmemory biostime
Lanjutan indentifier Routin untuk lintas data (input/output) terdapat pada file: stdio.h fclose fputchar getchar remove vfscanf fcloseall fputs getche rename vsprintf fdopen fread getftime rewind vscanf feof freopen getpass scanf flushall ferror fscanf getw setbuf fopen fflush fseek gsignal setvbuf fprintf fgetc ftell perror sprintf putc filelength fwrite printf ascanf fileno getc puts strerror fputc getch Yang terdapat dalam file: conio.h cgets getch kbhit putch cputs getche ungetch cprintf Sedangkan yang terdapat dalam file: io.h accses close open lock sopen unlock _write creat tell eof dup dup2 isatty setmode _open _creat creatnew _close chmod settime lseak getftime
Karakteristik bahasa C • Semua modul dalam bentuk fungsi (Perbedaan fungsi dan prosedur ?) • Tidak mengenal space sebagai pemisah, kecuali antar instruksi yang berbeda. • Setiap statemen dipisahkan oleh semicolon (;). • Kode programnya bersifat case-sensitif(membedakan huruf kapital dan huruf kecil). Keyword dan perintah-perintah dituliskan dengan huruf kecil.
Struktur Dasar Program C Setiap Program C terdiri dari satu atau lebih fungsi (function). Salah satu dari fungsi tersebut harus bernama main Struktur Program [Deklarasi header/library] [ Deklarasi variabel/konstanta] [ Deklarasi fungsi] KODE utama […] =optional, adanya tergantung kebutuhan Bandingkan dengan Struktur Program Pascal : [Deklarasi nama program] [Deklarasi unit] [Deklarasi type] [Deklarasi variabel/konstanta] [Deklarasi fungsi] [Deklarasi Prosedur] Kode utama
Contoh deklarasi1 Format Penulisan deklarasi library/header File header pertama sekali akan dicari di directory aktif saat ini, dan jika tidak ketemu akan dicari ke directory include yang ditentukan pada konfigurasi #include <header_name> atau #include “header_name” Contoh : #include “stdio.h” atau #include “c:\tc3\include\stdio.h” atau #include <stdio.h> File header hanya akan dicari di directory yang langsung ditentukan File header hanya akan dicari di directory include yang ditentukan pada konfigurasi Bandingkan dengan pascal Uses crt; ? Perbandingan : Di pascal uses di C #include, di pascal unit di C header, di pascal unit merupakan file biner/terkompilasi (extention-nya *.tpu), di C header merupakan file ASCII (extention-nya *.h, dapat dibaca/dipelajari lebih lanjut)
Format Penulisan deklarasi variabel Contoh deklarasi2 Data_type variabel_name Contoh : int A; float B,C; char s; Bandingkan dengan pascal : Var A :integer; B,C : real; S : char;
Format Penulisan deklarasi fungsi return-type function_name([parameter]) { [deklarasi variabel lokal] Statement Return(value) } Contoh : Int jumlah(int A,int B) { Int C; C=A+B; Return C; } Bandingkan dengan pascal : Function jumlah(A,B:integer):integer; Var C :integer; begin C:=A+B; jumlah:= C; End;
Contoh deklarasi3 Contoh fungsi utamapada C : int main () { Int F,G; F=5;G=8; printf(“Hasil jumlahnya : %d \n”,jumlah(F,G)); return 0; } Bandingkan dengan pascal: var F,G :integer begin Int F,G; F=5;G=8; writeln(‘Hasil jumlahnya : ‘,jumlah(F,G)); end.
Tentang Prosedur Bahasa C secara khusus tidak memiliki prosedur, karena mudularisasi di C dilakukan dengan fungsi. Tetapi fungsi di C dapat di-akali untuk bekerja seperti prosedur. Contoh dari prosedure pascal berikut : Procedure cetak(x,y:integer;s:string); Begin gotoxy(x,y);textcolor(14); write(s); End; Di C ditulis dengan : void cetak(int x,int y, char *s) { gotoxy(x,y);textcolor(14); cprintf(“%s”,s); }
Nama file : Program1.C : Contoh program lengkap /*program utama*/ int main() { int F,G; clrscr(); F=5; G=3; printf("Hasil jumlah : %d\n",hitung(F,G)); cetak(1,3,“Saya sedang belajar pemrograman”); cetak(1,4,“bahasa C"); getchar(); return 0; } /* program1 */ #include <stdio.h> #include <conio.h> /*deklarasi fungsi hitung*/ int hitung(int A,int B) { int C; C=A+B; return C; } /*deklarasi prosedur cetak */ void cetak(int x, int y,char *s) { gotoxy(x,y); textcolor(14); cprintf("%s",s); }
Bandingkan jika di pascal : program program1; uses crt; {deklarasi fungsi hitung} function hitung(A,B:integer):integer; var C:integer; begin c:=a+b; jumlah:=C; end; {deklarasi procedure cetak} procedure cetak(x,y:integer;s:string); begin gotoxy(x,y); textcolor(14); write(s); end; {program utama} var F,G :integer; begin clrscr; F:=5; G:=6; write(‘Hasil jumlah :',hitung(f,g)); cetak (1,3,“Saya sedang belajar pemrograman”); cetak(1,4,“bahasa C"); readln; end.
Proses Pembuatan Program Aplikasi Run Make Mulai Static Library File (*.Lib) ASCII Editor Compiler Linker Source Code (*.c,*.cpp) Dynamic Library File (*.dll) Object Code (*.obj) Executable File (*.exe) Include File (*.h) Preprosessor Execution Output Selesai
Bagaimana Menjalankan C ? (Dengan aplikasi apa dan dimana program-program C bisa dijalankan ?) • Program C dapat dijalankan baik pada sistem operasi DOS, Windows maupun Linux, juga berbagai sistem operasi lainnya • Pada DOS kita dapat menggunakan Turbo C (Borland) ver 3 ke bawah atau Microsoft C (kurang popular) • Pada Windows kita dapat menggunakan Borland C versi 4.x atau ver 5.x (terakhir BCC ver 5.2), symantec C, dan Visual C • Pada Linux kita bisa gunakan GNU C Compiler (GCC) • Secara umum kode program C di semua jenis compiler C dan pada berbagai sistem operasi sama saja. Artinya tidak perlu dilakukan perubahan kode program yang berarti jika hendak menjalankan C melalui compiler yang berbeda-beda tadi (?). Setidaknya setiap compiler C umumnya mengacu ke ANSI C sebagai standarisasi C. • Tetapi beberapa compiler C ada yang memiliki kelengkapan library yang berbeda dengan compiler lain, sehingga perlu beberapa penyesuaian untuk transfer kode programnya. Contoh : GCC di Linux tidak memiliki library/header conio.h, sedangkan compiler C di DOS menggunakannya. • Umumnya compiler C menggunakan sistem pemberitaan kesalahan (error message) yang runtun yang berbeda dengan error message di bahasa lain. Hal ini perlu diperhatikan untuk efisiensi trouble-shoot kode program
Menjalankan program C dengan Borlan C++ ver 5.2 Memulai : Dari prompt DOS …\bin\bcw.exe {enter} Dari windowsClick Start – Programs - Borlan C ++ 5.02 - borlan c++ atau Clickfile bcw.exemelalui Window Explorer • Petunjuk Dasar : • Ketikkan kode program di tempat yang disediakan(text editor) • Menyimpan program : File – Save atau File – Save As atau CTRL+KS • Mengkompail program (menghasilkan file obj) : Project-Compile (Alt+F9) • Mengkompail sekaligus me-link file (menghasilkan file exe) : • Project – Make All (F9) • Menjalankan program : Debug – Run (Ctrl+F9) • Yang lain silahkan dicoba sendiri !
Tampilan TC3 Tampilan awal Borlan C++ 5.02 :
Menjalankan program C dengan Visual C++ Dalam hal ini yang dimaksud Visual C adalah fasilitas untuk menghasilkan program berbasis tex-nya (program DOS) yaitu : Win32 Console Application - nya • Memulai : • Jalankan Visual C dari icon-nya • Setelah tampil menu visual C : • Pilih : File – New • Dari dialog yang muncul click tab projects • Dari tab projects pilih icon : Win32 Console Application, beri Project name misal : Program1, lalu click OK • Muncul dialog lagi, pilih : An Empty Project,dan click tombol Finish, lalu OK • Pada tab bagian kiri pilih tab : FileView • Pada badan tab click : program1 files dan pilih : Source file • Click kanan dari source file, pilih : Add Files to Folder, beri nama misal : program1.c, pada dialog yang muncul pilih OK • Di dalam icon Source File, pilih : Program1.c, akan muncul layar tempat kita mengetikkan kode program • Ketikkan kode program pada layar tersebut, Compile dengan : Ctrl+F7 dan jalankan dengan Ctrl+F5 • Jika kode ada kesalahan pesan kesalahan akan muncul di bagian bawah menu
Tampilan VC Tampilan Visual C : Win32 Concole Application :
Cara menjalankan C dengan GCC di Linux • Langkah : • Ketikkan kode program C dengan salah satu editor ASCII di linux, seperti : vi, joe, emacs, pico,…. • Setelah selesai mengetik kode program, simpan dan beri nama dengan exstention C, misal : Program1.C • Jika hanya ingin meng-compile kode program lakukan dengan: • gcc –c program1 program1.c • Jika ingin meng-compile sekaligus me-Link kode program lakukan dengan perintah : • gcc program1.c –o program1 • atau • gcc –o program1 program1.c • Jika tidak ada kesalahan program dapat dijalankan dengan perintah : • ./program1
Error Messages(Pesan Kesalahan) • Kode program (source code) yang belum sesuai dengan aturan-aturan C, jika di-compile atau di-link akan memberikan pesan kesalahan tertentu sesuai dengan jenis kesalahannya • Jenis pesan kesalahan : • Warnings : A problem that can be overlooked. • Compile-time warnings • TLINK warnings • TLIB warnings • Errors : A problem that should be fixed such as a missing declaration or a type mismatch. • Compile-time errors • TLINK errors • TLIB errors • MAKE errors • Run-time errors
Fatal Errors : A problem of critical nature that prevents execution from continuing. • Compile-time fatal errors • TLINK fatal errors • MAKE fatal errors • Dari sisi lain jenis kesalahan juga dapat dibedakan seperti : • Compile-Time Error • Linking Error • Run-Time Error • Umumnya compiler C akan mendaftarkan semua runtunan kesalahan yang terjadi yang diakibatkan oleh setiap sebuah kesalahan. Pemberitaan kesalahan beruntun seperti ini harus diamati dengan cermat untuk dapat memperbaiki kesalahan tersebut dengan cepat.
Eksperimen Pertama Pemrograman C • Aktifkan editor pada Compiler C yang anda miliki (Klick menu file-new-editor text) : • { Harap perhatikan pengetikan huruf kecil dan huruf besar harus sama! } int A; int B,C; int main() { A=5;B=3; C=A+B; return(0); } • Simpan dengan nama file : hitung.c • Compile (Alt+F9) kode tersebut untuk menghasilkan file : hitung.obj, buktikan dengan melihatnya melalui prompt DOS/windows explorer • Link (Compile-Link) kode file objek tersebut untuk menghasilkan file : hitung.exe • Dari prompt DOS atau windows explorer catat besar file-file berikut : • Hitung.c : ……… bytes • Hitung.obj : ……… bytes • Hitung.exe : ……… bytes Bersambung…
Jalankan program dari prompt DOS dengan mengetikkan hitung.exe {enter} atau dari Borlan C++ dengan Ctrl+F9. • {Perhatikan bahwa program belum menghasilkan apa pun di layar} • Modifikasi kode program di atas menjadi seperti berikut : #include <stdio.h> int A; int B,C; int main() { A=5;B=3; C=A+B; printf(“Hasil jumlah =%d \n”,C); return(0); } • Compile dan Link kembali program (secara singkat lakukan langsung dengan Run-Run). Perhatikan jika anda melakukannya dari menu Borlan C++ hasil program tidak akan terlihat. Untuk itu tambahkan di akhir program dengan perintah : getchar()(sebelum return 0) • Hasil program akan tampak di layar : Hasil jumlah =8
Lanjutan Eksperimen • Program yang baru anda cobakan belum bersifat interaktif sebab input variabel A dan B langsung dimasukkan di dalam kode program. Untuk menjadikan program interaktif tambahkan perintah Scanf() sehingga kode program menjadi seperti berikut : #include <stdio.h> int A; int B,C; int main() { //A=5;B=3; printf("Masukkan nilai A :"); scanf("%d",&A); printf("Masukkan nilai B :"); scanf("%d",&B); C=A+B; printf(“Hasiljumlah =%d \n”,C); getchar(); return(0); }
Simpan kembali program, jalankan dan catat hasilnya ! • Tanda // digunakan sebagai komentar untuk C++ tetapi dikenal juga tanda komentar khusus C++ adalah : /* …….*/. • Untuk membersihkan layar setiap program dijalankan, tambahkan fungsi clrscr() di tempat yang sesuai. • Untuk menentukan posisi kursor gunakan fungsi gotoxy(), untuk memberikan efek warna gunakan fungsi textcolor() , textbackground() dengan pencetakan cprintf(). Fungsi-fungsi ini deklarasinya berada pada header conio.h • Statement Pengulangan pada C dapat menggunakan : • While (….) • { Statement yang diulang} • Untuk menghilangkan statemen return 0 dalam fungsi main type kembaliannya dganti dari int menjadi void : void main()
Selanjutnya lengkapi kode program tersebut menjadi seperti berikut : {Aktifkan fungsi fflush() jika getchar() tidak berfungsi ! } /* Nama File: hitung.c */ #include <stdio.h> #include <conio.h> void main() { int A,B,C; char k; k='y'; while(k=='y') { clrscr(); gotoxy(1,3); textcolor(14);cprintf("Masukkan nilai A : "); scanf("%d",&A); //fflush(stdin); gotoxy(1,4); textcolor(12);cprintf("Masukkan nilai B : "); scanf("%d",&B); //fflush(stdin); C=A+B; gotoxy(1,5); textcolor(9);printf("Hasil jumlah = %d \n",C); gotoxy(1,8); printf("Hitung lagi [yt] ? "); fflush(stdin); k=getchar(); } }
Latihan • Lengkapi kode program di atas untuk memberikan hasil pengurangan, perkalian, pembagian, dan pangkat ! • Buatlah program C untuk menghitung persamaan kuadrat dengan rumus ABC, dengan contoh kode programnya dalam pascal seperti berikut : • program rumus_abc; • uses crt; • var a,b,c :integer; • d,x1,x2 :real; • begin • clrscr; • write('Masukkan nilai koefisien a : ');readln(A); • write('Masukkan nilai koefisien b : ');readln(B); • write('Masukkan nilai koefisien c : ');readln(C); • d:=b*b-4*a; • if d>0 then • begin • x1:=(-b-d)/(2*a); • x2:=(-b+d)/(2*a); • writeln; • writeln('Penyelesaian '); • writeln('X1 = ',x1:4:2); • writeln('X2 = ',x2:4:2); • end • else if d=0 then • begin • x1:=-b/(2*a); • x2:=x1; • writeln('Penyelesaian '); • writeln('X1 = ',x1:4:2); • writeln('X2 = ',x2:4:2); • end • else • begin • writeln; • writeln('Penyelesaian akar imajiner'); • end; • readln; • end.
Cobakan program-program di atas (hitung.c dan rumusABC.c) menggunakan Gcc di linux dengan menghilangkan fungsi-fungsi dari header conio.h • Catat pesan-pesan kesalahan yang pernah muncul selama anda ber-eksprimen dan latihan, baik pada Turbo C mapupun pada Gcc Linux