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. Sejarah C2. Interprenter dan Compiler
3. Proses Kompilasi dan Eksekusi Program C 4. Algoritma Ke C 5. Struktur Program C 6. Analisis Program C 7. Fungsi 8. Preprocessor 9. Komentar di C 10. 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).
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).
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.
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
• Contoh :
/* * Program C pertama * author : SidiQ - UMBY * ---*/
#include <stdio.h> main()
{
/* Menampilkan string */
printf ("Welcome To Universitas Mercu Buana Yogyakarta"); printf ("\n");
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 <Nama_File.h> Atau #include “Nama_File.h”
Bentuk Keterangan
#include <Nama_File.h> 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().
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)
%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 :
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 Keterangan /* * Program C pertama * author : SidiQ - UMBY * ---*/
Menandakan komentar
#include<stdio.h> Prepocessor yang menyatakan agar
membaca dari pustaka stdio.h
main() Fungsi main
/* Menampilkan string */ Menandakan komentar Printf ("Welcome To Universitas
Mercu Buana Yogyakarta"); Menampilkan Universitas Mercu Buana Yogyakarta”string “Welcome To printf ("\n"); Perintah ganti baris
} Akhir blok dari fungsi
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 TextEditor (Default = Gedit) dan Console maka harus membuka 2 window sekaligus. Sehingga untuk memudahkan penggunaan, di sini digunakan Geany (TextEditor + 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.
2. Menuliskan Listing Program C
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 boxName tulis nama file “Welcome.c”.
4. Melakukan Kompilasi Program C
Selanjutnya lakukan kompilasi program C, dengan :
▪ Klik tabTerminal 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
▪ Selanjutnya lakukan linking agar menjadi file *.EXE dengan menggunakan
perintah :
gcc -o [File File.c],
contoh :
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
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
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 */
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 : dnd_07june07@live.com