P3 Pengantar Pemrograman C
A. Sidiq Purnomo Prodi Teknik Informatika & Prodi Sistem Informasi Universitas Mercu Buana Yogyakarta SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Tujuan • Mahasiswa dapat mengetahui dan memahami sejarah bahasa C, struktur program C dan alur eksekusi program C
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
2
Pembahasan • • • • • • • • • •
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
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
3
Sejarah C
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Sejarah C • Bahasa C Dirancang -> Dennis M. Ritchie th1972 di laboratorium Bell. • Perkembangan dari BCPL (Basic Combined Programming Language) yg dibuat Dr. Martin Richard, selanjutnya dikembangkan oleh Ken Thompson dan dinamai dengan bahasa B. • Dari ketertarikan Dennis M. Ritchie terhadap interpreter bahasa B, kemudian dikembangkan menjadi compiler yg disebut C. • Bahasa C banyak digunakan untuk pengembangan perangkat lunak dan sistem operasi. Seperti sistem operasi Unix dan Linux yg 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).
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
5
Kelebihan • Bahasa C tersedia hampir disemua jenis komputer, • Kode bahasa C sifatnya flexibel dan portabel untuk semua jenis komputer, • Bahasa C menyediakan hanya sedikit kata kunci sekitar 32 kata kunci, • Proses executable bahasa C lebih cepat, • Dukungan pustaka yang banyak, • Bahasa C merupakan bahasa yang terstruktur.
Kekurangan • Bahasa C masih bersifat sangat prosedural murni, • Banyak sekali operator yang terkadang membingungkan pemakai.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
6
Interpreter & Compiler
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Interpreter & Compiler • Sebelum code yg 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.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
8
Interpreter • Menerjemahkan bahasa pemrograman per baris perintah. • Kelebihan :
Compiler • Menerjemahkan seluruh instruksi bahasa pemrograman sekaligus. • Kelebihan :
– Penyusunan program relatif lebih cepat.
•
– Proses dapat dijalankan dengan cepat, – Source code dapat disembunyikan.
Kelemahan : – Proses eksekusi sangat lambat, – Saat program dieksekusi maka interpreter harus berada di memori, – Program yang menggunakan interpreter source code-nya tidak 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]
9
Kompilasi & Eksekusi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
10
Komponen
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]
11
Algoritma ke C
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Algoritma ke C Algoritma
C
<--
=
= Not
== !
* + / mod
* + / %
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
13
Struktur & Sifat Program C
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Struktur Program C • Bahasa C merupakan bahasa yang terstruktur. • Struktur merupakan bentuk/susunan dari program yang dibuat.
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
15
Sifat Sifat • 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” != “q” • “saya” != “SAYA / SaYa / Saya / 54y4“ • “#include” != “#Include”
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
16
Struktur main() { Body Fungsi }
>> Nama Fungsi >> Awal dari fungsi >> Akhir dari fungsi
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
17
Contoh /* * * *
---------------------Program C pertama author : SidiQ - UMBY ---------------------*/
#include <stdio.h> main() { /* Menampilkan string */ printf ("Welcome To Universitas Mercu Buana Yogyakarta"); printf ("\n"); }
18
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
19
Prepocessor Directive
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
Prepocessor Directive • Directive merupakan instruksi khusus yang digunakan untuk mengakses prepocessor. • Prepocessor directive digunakan untuk mengakses variabel atau fungsi yg terdapat di dalam librari standar (standard library).
SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
21
Prepocessor #include • #include merupakan salah satu jenis pengarah preprocessor directive. • Digunakan untuk memberitahu kompiler agar dalam proses linking membaca file yg dinamakan file judul (header file), yaitu file yg diantaranya berisi deklarasi fungsi dan definisi konstanta. • Bahasa C menyediakan beberapa header file yg ditandai dengan ekstensi *.h. SQ - http://sidiq.mercubuana-yogya.ac.id -
[email protected]
22
• Deklarasi : #include
Atau #include “Nama_File.h” Bentuk
Keterangan
#include
Mengisyaratkan bahwa pencarian file dilakukan pada direkstori khusus (directory file include), yg merupakan default directory header file yg 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).
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
23
Contoh : #include <stdio.h> Prepocessor
header file
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 yg disediakan dalam C, yg diperlukan untuk programprogram yg menggunakan pustaka fungsi I/O standar seperti fungsi printf(), scanf().
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
24
Prepocessor #Define • Dalam bahasa C, konstanta dideklarasikan dengan #define. • Deklarasi : #define Nama_Variabel Nilai • Contoh : – #define Phi 3.14 – #define Max 11 – #define nim “10111071” SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
25
Fungsi Main
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
Fungsi main() • Pada program C, main() merupakan fungsi yg 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.
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
27
Fingsi printf() • Fungsi printf() merupakan fungsi yg umum digunakan untuk menampilkan output (hasil keluaran program) di layar (monitor).
Fungsi
Keterangan
%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
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
28
Contoh Penggunaan Fungsi
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
29
Komentar
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
Komentar di C • Merupakan suatu pernyataan yg 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]
31
Contoh Penggunaan Komentar
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
32
Analisis Program
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
Analisis Program Algoritma Start Print Welcome To UMBY Print \n Finish
Contoh program sederhana C /* * * *
---------------------Program C pertama author : SidiQ - UMBY ---------------------*/
#include <stdio.h> main() { /* Menampilkan string */ printf ("Welcome To UMBY"); printf ("\n"); }
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
34
Analisis Source Code
Keterangan
/* * * *
Menandakan komentar
---------------------Program C pertama author : SidiQ - UMBY ---------------------*/
#include<stdio.h>
Prepocessor yang menyatakan agar membaca dari pustaka stdio.h
main()
Fungsi main
{
Awal blok fungsi
/* Menampilkan string */
Menandakan komentar
printf("Welcome to UMBY")
Menampilkan string “Welcome To UMBY”
printf("\n")
Perintah ganti baris
}
Akhir blok dari fungsi
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
35
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. SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
36
Lingkup Pemrograman C
Demo !
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
37
Contoh Permasalahan Masalah • Buatlah sebuah algoritma untuk mencari luas dari suatu Segitiga. Analisis Masalah • Problem : Mencari luas segitiga • Input : alas, tinggi • Output : luas segitiga
Algoritma
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
38
Penyelesaian
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
39
Hasil akhir
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
40
Tugas • Mohon dipelajari dengan seksama, selanjutnya : – Buatlah program untuk menampilkan nama dan nim (dengan implementasi bahasa C) – Source code ditulis tangan, hasil output program diprint.
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
41
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
42 42
Thanks … ! 4 Participating In My Class C U Next Week
SQ - http://sidiq.mercubuana-yogya.ac.id - [email protected]
43 43