Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
P-3 Bab 2 : Pengantar Pemrograman C
2.1 Tujuan Mahasiswa dapat mengetahui dan memahami sejarah bahasa C, struktur program C dan alur eksekusi program C
2.2 Materi 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Sejarah C Interprenter dan Compiler Proses Kompilasi dan Eksekusi Program C Algoritma Ke C Struktur Program C Analisis Program C Fungsi Preprocessor Komentar di C Lingkup Pemrograman C
2.3 Sejarah C • •
• • •
•
Bahasa C dirancang oleh Dennis M. Ritchie pada tahun 1972 di laboratorium Bell. Bahasa C merupakan perkembangan dari BCPL (Basic Combined Prrogramming Language) yang dibuat oleh Dr. Martin Richard, yang kemudian dikembangkan oleh Ken Thompson dan dinamai dengan bahasa B. Dari ketertarikan Dennis M. Ritchie terhadap interpreter bahasa B, kemudian dikembangkan menjadi compiler yang disebut C. Bahasa C banyak digunakan untuk pengembangan perangkat lunak dan sistem operasi. Seperti sistem operasi Unix dan Linux yang menggunakan bahasa pemrograman C. Dalam perkembangannya dari bahasa pemrograman C kemudian dikembangkan bahasa pemrograman C++ oleh Bjarne Stroustrup, dengan alasan bahasa C masih bersifat sangat prosedural murni (untuk membentuk suatu object harus di lakukan banyak sekali penulisan code). Kelebihan Bahasa C : SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 1
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
•
1. Bahasa C tersedia hampir disemua jenis komputer, 2. Kode bahasa C sifatnya flexibel dan portabel untuk semua jenis komputer, 3. Bahasa C menyediakan hanya sedikit kata kunci sekitar 32 kata kunci, 4. Proses executable bahasa C lebih cepat, 5. Dukungan pustaka yang banyak, 6. Bahasa C merupakan bahasa yang terstruktur. Kekurangan Bahasa C : 1. Bahasa C masih bersifat sangat prosedural murni, 2. Banyak sekali operator yang terkadang membingungkan pemakai.
2.4 Interpreter & Compiler •
•
•
Sebelum code yang ditulis dengan bahasa pemrograman dapat dibaca dan dieksekusi oleh komputer, maka code yang ditulis tersebut harus diterjemaahkan ke dalam bahasa mesin (0 dan 1) dengan menggunakan Interpreter dan Compiler. Interpreter ◦ Menerjemahkan bahasa pemrograman per baris perintah. ◦ Kelebihan : • Penyusunan program relatif lebih cepat. ◦ Kelemahan : • Proses eksekusi sangat lambat, • Saat program dieksekusi maka interpreter harus berada di memori, • Program yang menggunakan interpreter source code-nya tidak dapat disembunyikan. Compiler ◦ Menerjemahkan seluruh instruksi bahasa pemrograman sekaligus. ◦ Kelebihan : • Proses dapat dijalankan dengan cepat, • Source code dapat disembunyikan. ◦ Kelemahan : • Penyusunan program relatif lebih lama, • Program hanya dapat di eksekusi jika program tersebut tanpa kesalahan (Syntax Error).
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 2
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
2.5 Proses Kompilasi dan Eksekusi Program C •
Sebelum belajar lebih banyak tentang bahasa C, ada baiknya mengetahui proses kompilasi dan eksekusi program C :
◦ Keterangan : Source Code
Merupakan file yang akan dieksekusi yang ditulis dengan ekstensi C (*.C). Penulisan program dapat dilakukan dengan bantuan editor text seperti : Editor Vi, Gedit, Geany.
Prepocessor
Ditandai dengan “#”
Compiler
Menterjemaahkan source code ke dalam bahasa assembly (mesin = 0 & 1)
Assembler
Menerima keluaran dari compiler C dan akan membuat sebuah kode objek, jika tidak ada fungsi library lain, akan langsung dijadikan file EXE.
Link Editor
Dikerjakan jika source code tidak menggunakan fungsi library lain, akan mengkombinasikan kode object dan library yang ada menjadi file EXE. SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 3
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
2.6 Algoritma ke C •
Beberapa contoh perubahan dari suatu Algoritma ke bahasa C : Algoritma
C
←
=
=
==
Not
!
*
*
+
+
-
-
/
/
mod
%
2.7 Struktur Program C • • •
Bahasa C merupakan bahasa yang terstruktur. Struktur merupakan bentuk/susunan dari program yang dibuat. Sebelum membuat program dalam bahasa C, perlu diketahui beberapa hal penting berikut : ◦ Bahasa C merupakan salah satu bahasa pemrograman yang bersifat Case Sensitive. Dalam hal ini bahasa C sangat memperhatikan dan membedakan penggunaan huruf besar dan kecil. ◦ Contoh : • “Q” tidak sama dengan “q” • “saya” tidak sama dengan “SAYA / SaYa / Saya “ • “#incude” tidak sama dengan “#Include”
•
Struktur dari program C dapat ditulis : main() {
>> Nama Fungsi >> Awal dari fungsi Body Fungsi
}
>> Akhir dari fungsi
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 4
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
•
Contoh :
/* * * *
---------------------Program C pertama author : SidiQ - UMBY ---------------------*/
#include <stdio.h> main() { /* Menampilkan string */ printf ("Welcome To Universitas Mercu Buana Yogyakarta"); printf ("\n"); }
SQ – http://sidiq.mercubuana-yogya.ac.id –
[email protected] - 5
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
2.8 Preprocessor Directive • •
Directive merupakan instruksi khusus yang digunakan untuk mengakses prepocessor. Prepocessor directive digunakan untuk mengakses variabel atau fungsi yang terdapat di dalam librari standar (standard library).
3.8.1 #include ◦ #include merupakan salah satu jenis pengarah preprocessor directive. ▪ Digunakan untuk memberitahu kompiler agar dalam proses linking membaca file yang dinamakan file judul (header file), yaitu file yang diantaranya berisi deklarasi fungsi dan definisi konstanta. ◦ Bahasa C menyediakan beberapa header file yang ditandai dengan ekstensi *.h. ◦ Deklarasi : #include
Atau
Bentuk
#include “Nama_File.h”
Keterangan
#include Mengisyaratkan
bahwa pencarian file dilakukan pada direkstori khusus (directory file include), yang merupakan default directory header file yang disediakan oleh bahasa pemrograman.
#include “Nama_File.h” Menyatakan bahwa pencerian file dilakukan pertama kali
pada directory aktif tempat program sumber, dan seandainya tidak ditemukan pencarian akan dilanjutkan pada directory lainnya sesuai dengan perintah pada sistem operasi (yaitu PATH). ◦ Contoh : #include <stdio.h>
Keterangan : ▪ Menyatakan pada kompiler agar membaca file bernama stdio.h saat melakukan kompilasi. ▪ Kebanyakan program melibatkan file stdio.h, yaitu header file I/O standar yang disediakan dalam C, yang diperlukan untuk program-program yang menggunakan pustaka fungsi I/O standar seperti fungsi printf(), scanf().
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 6
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
3.8.1 #define ◦ ◦
Dalam bahasa C, konstanta dideklarasikan dengan #define. Deklarasi : #define Nama_Variabel Nilai
◦
Contoh : #define Phi 3.14 #define Max 11 #define nim “10111089”
▪ ▪ ▪
2.9 Fungsi 2.9.1 main() ◦ Pada program C, main() merupakan fungsi yang istimewa, ▪ karena fungsi main() harus selalu ada dalam program, karena fungsi inilah yang menjadi titik awal dan titik akhir eksekusi program. ◦ Tanda : ▪ “{“ → di awal fungsi Meyatakan awal tubuh fungsi dan sekaligus awal program, ▪ “}” → di akhir fungsi Merupakan akhir tubuh fungsi dan sekaligus akhir eksekusi program. ◦ Jika program terdiri lebih dari satu fungsi, fungsi main() biasa ditempatkan pada posisi yang paling atas dalam pendefinisian fungsi, untuk memudahkan pencarian program utama.
2.9.2 printf() ◦ Fungsi printf() merupakan fungsi yang umum digunakan untuk menampilkan output (hasil keluaran program) di layar (monitor). Format
Fungsi untuk menampilkan
%d
Integer (Bilangan bulat )
%ld
Long integer
%u
Unsigned integer
%x
Hexadesimal integer
%f
Float (Bilangan pecahan)
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 7
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
%lf
Double Float
%e
Float tipe exponen menggunakan e
%c
Karakter
%s
String
◦ Contoh
2.10 Komentar Di C • • •
Merupakan suatu pernyataan yang tidak berpengaruh terhadap suatu proses. Merupakan catatan yang ditulis pada kode dengan tujuan sebagai bahan dokumentasi. Teks tersebut bukan bagian dari program dan tidak mempengaruhi jalannya program. Simbol : /* Komentar */
•
→ /* = awal komentar dan */ = akhir komentar
Contoh :
/* Saya ingin mempelajari bahasa C - kataku dalam hati
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 8
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
2.11 Analisis Program C •
Contoh program sederhana yang menggunakan bahasa C : /* * * *
---------------------Program C pertama author : SidiQ - UMBY ---------------------*/
#include <stdio.h> main() { /* Menampilkan string */ printf ("Welcome To Universitas Mercu Buana Yogyakarta"); printf ("\n"); }
•
Analisis Program : Code /* * * *
---------------------Program C pertama author : SidiQ - UMBY ---------------------*/
Keterangan Menandakan komentar
#include<stdio.h>
Prepocessor yang menyatakan membaca dari pustaka stdio.h
main()
Fungsi main
{
Awal blok fungsi
agar
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 9
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
/* Menampilkan string */
Menandakan komentar
Printf ("Welcome To Universitas Menampilkan Mercu Buana Yogyakarta");
string “Welcome Universitas Mercu Buana Yogyakarta”
printf ("\n");
Perintah ganti baris
}
Akhir blok dari fungsi
To
Keterangan : • Bahasa C bersifat sangat Case Sensitive, yaitu penggunaan huruf besar dan huruf kecil sangat dibedakan. • Space seperti karakter spasi, tab, pindah baris dan karakter lainnya yang berfungsi untuk memformat tampilan, tidak berpengaruh dalam bahasa C sehingga dapat digunakan untuk memudahkan membaca code yang ditulis. • Program C yang dibuat harus selalu diakhiri dengan ekstensi file *.c. • Komentar sebisa mungkin ditambahkan, sehingga mempermudah mengetahui alur program.
2.12 Lingkup Pemrograman C •
•
Dalam contoh ini, sebenarnya dapat digunakan Text Editor dan Console, tetapi jika menggunakan Text Editor (Default = Gedit) dan Console maka harus membuka 2 window sekaligus. Sehingga untuk memudahkan penggunaan, di sini digunakan Geany (Text Editor + Console). langkah-langkah yang harus dilakukan antara lain : 1.
Membuka Editor Text Untuk memulai menggunakan editor Geany : ▪ Buka menu Applications >> Programming >> Geany ▪ untuk membuka terminal di Geany, klik tab Terminal pada jendela bagian bawah Geany.
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 10
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
2.
Menuliskan Listing Program C Selanjutnya tuliskan listing program C pada bagian “Program C pertama” di atas.
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 11
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
3.
Menyimpan Program C Selanjutnya simpan listing proram C yang telah ditulis tadi di directory /home/dnd/Program/C dengan nama “Welcome.c”. Kemudian untuk menyimpannya : ▪ Buka dialog Save, buka menu File >> Save As ▪ Kemudian masuk ke directory /home/dnd/ ▪ Buat directory dengan nama “Program” dengan klik button Create Folder dan beri nama “Program”. Masuk ke directory Program dan buat directory C. ▪ Pada text box Name tulis nama file “Welcome.c”. ▪ Klik button Save.
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 12
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
4.
Melakukan Kompilasi Program C Selanjutnya lakukan kompilasi program C, dengan : ▪ Klik tab Terminal pada bagian bawah Geany. ▪ Masuk ke directory /home/dnd/Program/C dengan menggunakan perintah “cd”. ▪ Periksa keberadaan file Welcome.c dengan menggunakan perintah “ls”. ▪ Lakukan kompilasi proram C dengan menggunakan perintah : gcc -c [File *.c]
contoh : gcc -c Welcome.c
▪
Selanjutnya jika proses kompilasi program C maka dalam directory /home/dnd/Program/C terdapat file hasil kompilasi dengan ekstensi *.o yaitu Welcome.o. Untuk memeriksa keberadaan file ini gunakan perintah “ls”.
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 13
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
▪
Selanjutnya lakukan linking agar menjadi file *.EXE dengan menggunakan perintah : gcc -o [File File.c] ,
contoh : gcc -o Welcome Welcome.c
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 14
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
5.
Eksekusi Program C ▪ Selanjutnya jika kompilasi program C berhasil maka dalam directory /home/dnd/Program/C terdapat file hasil kompilasi dengan ekstensi *.EXE yaitu Welcome. Untuk memeriksa keberadaan file ini gunakan perintah “ls”. ▪ Untuk mengeksekusi program C tersebut, gunakan perintah : ./[Nama File Tanpa Ekstensi]
Contoh : ./Welcome
▪
Selanjutnya akan terlihat string “Welcome To Universitas Mercu Buana Yogyakarta”.
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 15
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
2.13 Contoh Permasalahan Definisi Permasalahan : • •
Masalah harus terdefinisi dengan baik untuk mendapatkan Input dan Output. Contoh : ◦ Buatlah sebuah program untuk menampilkan luas dari suatu Segitiga.
Analisa Permasalahan : • •
Umumnya dibagi menjadi beberapa bagian kecil dan ringkas. Contoh : ◦ Masalah : Mencari luas segitiga ◦ Input : alas, tinggi ◦ Output : luas segitiga
Desain Algoritma dan Representasi : •
Bahasa Natural 1. Masukkan nilai alas 2. Masukkan nilai tinggi 3. Menghitung luas segitiga dengan mengalikan Alas dan Tinggi kemudian dibagi 2 4. Menampilkan hasil 5. Selesai
•
Psuedocode Algoritma perhitungan luas segitiga Input : Alas, Tinggi Output : Luas segitiga Alas dibaca a Tinggi dibaca t Luas (Alas X Tinggi)/2 Tampilkan Luas
•
Flowchart (bagan alir)
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 16
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
Penyelesaian : /* * * *
---------------------------------Program menghitung luas segitiga author : SidiQ - UMBY ---------------------------------*/
/* preposesor yang menyatakan agar membaca dan pustaka stdio.h */ #include <stdio.h> int main() /* fungsi main */ { /* awal blok fungsi */ int a, t, luas; /* deklarasi object */ a = 5; /* pemberian nilai terhadap object */ t = 4; luas = (a*t)/2; /* proses menghitung luas segitiga */ printf ("Luas segitiga = %d cm \n", luas); /* cetak luas */ return 0; /* memberikan nilai balik 0 */ } /* akhir blok fungsi */
Hasil akhir :
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 17
Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Mercu Buana Yogyakarta
Kampus II, Jl. Jembatan Merah, Nomor 84.C. Gejayan, Yogyakarta 55283, Telp: (0274) 6647444, Fax (0274) 550703
2.14 Evaluasi •
Berdasarkan algoritma yang telah dibuat pada pembahasan sebelumnya, buatlah program untuk : 1. Mencari luas persegi 2. Mencari luas lingkaran 3. Mencari luas persegi panjang
•
Ketentuan : ◦ File name : P3_Elr_23_Algo_NIM.docx (Ex : P3_Elr_23_Algo_10111071.docx) ◦ Kirimkan dengan subject P3_Elr_23_Algo_NIM (Ex : P3_Elr_23_Algo_10111071) ◦ Ke email : [email protected]
SQ – http://sidiq.mercubuana-yogya.ac.id – [email protected] - 18