Pemrograman Dasar C
Minggu 1:
Pengenalan C Programming
Sejarah Bahasa C
Pencipta: Dennis M. Ritchie dan Brian W.
Kernighan (awal 1970)
Pada awalnya berkembang di UNIX (90%
System Operasi UNIX dalam C)
Tahun 1986 dikembangkan superset C yang
berubah menjadi C++
Standard C
Definisi Kernighan & Ritchie (K&R)
ANSI-C – standard yang akan kita pakai
Definisi AT&T (superset C, C++)
Versi pada PC:
–
–
–
–
Lattice C
Microsoft C/Microsoft Quick C
Turbo C/Borland C++
Visual Studio
Aplikasi dalam Bahasa C
System Operasi dan Program-Program
System
Pemrograman Hardware
Pembuatan Tool Kit
Program Aplikasi (dBase, WordStar,
Lotus123)
Istilah
Blok: sekumpulan kalimat C yang ditulis di
antara { dan }
Definisi: memberitahukan sifat (property)
objek dan sekaligus mengalokasikan
memori untuk objek
Deklarasi: memberitahukan sifat (property)
objek (terutama berkaitan dengan tipe)
Inisialisasi: memberikan nilai objek
Istilah
Deklarasi Global: deklarasi yang berlaku
dalam satu unit translasi (file)
Deklarasi Lokal: deklarasi yang hanya
berlaku dalam blok tempat deklarasi
Objek: daerah memori yang bernama (sama
dengan variabel
Lvalue: ekspresi yang mereferensi suatu
objek (nilai sebelah kiri assignment)
Istilah
Prototype: deklarasi fungsi, menyatakan
nama, tipe return value, nama dan tipe
parameter formal (argumen)
Body: realisasi dari fungsi
Scope: daerah program tempat suatu nama
dikenal
Komputer dan Programnya
Komputer mengikuti sebuah alur dari instruksi
data yang tepat (‘program’) untuk memproses
informasi (‘data’) dan mengambil keputusan.
Komputer dan Programnya
Programming
– Merupakan urutan instruksi:
» Konsep
» Desain
» Implementasi
» Verifikasi
– Sebagian besar dari ini adalah kegiatan tanpa
menggunakan keyboard.
Programming Tingkat Rendah &
Tinggi
Tingkat terendah: Kode Mesin
– Dapat langsung diproses, bentuk bilangan Biner
– Contoh: 10001011 01100111 10011011 11000111
Tingkat rendah berikutnya: Assembler
– Istilah yang merepresentasikan kode mesin
mov al,90h
inc ax
jnz loop1
– Bisa dibaca, lambat untuk dibuat, cepat diproses,
spesifik untuk prosesor tertentu (Intel, Motorola dll)
Programming Tingkat Rendah &
Tinggi
Tingkat Tinggi: Pascal, C, Fortran, C++,
Java, C#
– Satu statement sama dengan banyak operasi
kode mesin
ans = a/(b*24)
– Dapat dipahami manusia, cepat menulisnya,
tidak efisien (?) dalam hal ukuran kode dan
kecepatan proses, dapat dipindahkan antar
prosessors.
Programming Tingkat Rendah &
Tinggi
Tingkat Lebih Tinggi: Logic Programming
(Prolog) dan Functional Programming
(Haskell)
–
–
–
Sangat ringkas
Sulit dipelajari, penekanan pada iterasi
Konsepnya sama sekali berbeda dengan
pemrograman lainnya
Kenapa C?
Pascal:
– Mempelajari bahasa, ketat, bersahabat untuk
pembaca.
Fortran:
– Tidak bersahabat, baik untuk bilangan
kompleks.
BASIC:
– Mudah dipelajari, dapat tidak efisien
Kenapa C?
C:
–
–
–
Cukup cepat dipelajari, tidak mudah dibaca.
Tidak seketat Pascal
Kompilernya tersedia untuk semua jenis komputer
C++, Java, C#:
–
–
–
Orientasi objek, konsep yang sulit untuk pemula
Tidak seluas C dalam penggunaan
Mudah dipelajari setelah belajar C
Perencanaan
Perencanaan yang baik dibutuhkan pada
program untuk:
– Benar-benar melakukan sesuatu yang
diinginkan.
– Mudah mencari kesalahan.
– Memudahkan orang lain untuk mengerti dan
mengubah.
– Waktu desain yang efisien juga untuk ukuran
dan waktu run.
5 Langkah Membuat Program
Analisis Persyaratan:
– Apa yang akan dilakukan program
– Apa yang dibutuhkan untuk melakukan hal tsb
Spesifikasi:
– Menulis dengan tepat apa yang harus dilakukan
program
Desain:
– Menentukan bagaimana melakukannya
5 Langkah Membuat Program
Implementasi (koding)
– Mengubah desain menjadi kode
– Didokumentasikan dengan baik / diberi
komentar dengan baik
Verifikasi:
– Apakah memenuhi persyaratan/spesifikasi?
Studi Kasus
Analisa Persyaratan:
– Menghitung tenaga listrik yang dihasilkan pada
sebuah beban listrik
– Mengambil voltase dan arus untuk
menghasilkan tenaga listrik
– Dilaksanakan menggunakan “ANSI C” pada
PC
Studi Kasus
Spesifikasi:
– Input:
» Voltase berkisar 0 sampai 1000 Volt
» Arus 0 sampai 10 Ampere
– Output:
» Power dalam Watts
– Algoritma:
» Power = Voltase X Arus
Studi Kasus
voltase
arus
Program Kita
P=VxI
power
Seperti Resep Memasak: sebuah daftar dari
bumbu dan metodanya
Studi Kasus
Desain: Metode Desain Top-Down
– Bagi dan Kuasai: dibagi-bagi dalam bagian-bagian
yang bisa diatur.
– Dimulai dari skala makro kebawah kearah skala mikro:
»
»
»
Mulai dari tugas keseluruhan
Bagi dalam bagian tugas (dekomposisi) – lebih detail
Dipartisi untuk independen (tugas yang berdiri sendiri dengan
interaksi sederhana dari luar)
» Ulangi sampai tugas tingkat rendah dapat dipahami dengan
mudah atau simpel
» Identifikasi bagian tugas yang diulang / sangat mirip: buatlah
satu tugas yang sifatnya lebih umum.
Studi Kasus
Desain: Metode Desain Top-Down (cont’d)
– Membuat pengaturan hirarki
Studi Kasus ini sederhana – bagi menjadi 3
bagian blok:
–
–
–
V
I
(1) Meminta input
(2) Menghitung power
(3) Menampilkan hasil
Minta Input
Hitung Power
Display Hasil
P
Studi Kasus
Struktur:
– Komputer pada umumnya
mesin pemrosesan yang
sekuential (berurutan)
» Berikan – Lakukan
– Pada tingkat kode mesin
operasinya berupa operasi
yang sekuensial linier
– Struktur dari desain kita
juga sekuensial linier
Meminta
Input
Hitung Power
Tampilkan
Output
Bahasa Logis
Setelah selesai, gambarkan operasi tiap modul dalam bahasa biasa:
– 1. Minta voltase terminal
– 2. Mengumpulkan input untuk voltase
– 3. Minta arus input
– 4. Mengumpulkan input untuk arus
– 5. Menghitung Power: V x I
– 6. Mengumumkan hasil akan datang
– 7. Menampilkan hasil
Tampilkan dalam bentuk flow chart atau kode pseudo
Melalui langkah ini adalah penting untuk produksi yang cepat dari
program yang handal dan akurat.
Implementasi
Pada intinya, kode dari bawah ke atas
Kodekan masing-masing sub-modul
terendah dulu baru keatas
Dapat dilihat dalam template berikut:
Implementasi
#include <stdio.h>
int main (void)
{
/* kode anda disini */
/* membaca voltase */
/* membaca arus */
/* menghitung power */
/* menampilkan hasil */
return (0);
}
Variabel
Elemen penyimpanan untuk menyimpan data yang
bisa diubah
Selalu mempunyai nama identifikasi dan tipe
Tipe adalah klasifikasi atau pengelompokan yang
mengidentifikasi tipe dari data yang dirancang
untuk disimpan. Objek yang diciptakan dalam
tipe ini didesain untuk menampung data yang
memenuhi peraturan spesifik dari tipe tsb.
Variabel
Jenis-jenis tipe:
Nama
int
char
short
long
unsigned char
unsigned short
unsigned int
unsigned long
Kisaran
+32767 ke –32767
+127 ke –128
+32767 ke –32767
+2147483647
ke –2147483648
0 ke +255
0 ke +65535
0 ke +65535
0 ke 4294967295
Identifier – Nama dari Sesuatu
Dapat terbuat dari:
– Huruf ‘a’ – ‘z’ & ‘A’ – ‘Z’ and angka ‘0’ – ‘9’
ditambah ‘_’ tapi tidak space atau karakter
lainnya
– C adalah Case Sensitive – ‘My_Name’ tidak
sama dengan ‘my_name’
– Harus dimulai dengan karakter alfabetik tidak
angka jadi “5my_name” ilegal!
– Sampai 32 karakter
– Hindari kata kunci yang khusus
Identifier – Nama dari Sesuatu
Mana yang ilegal?
–
–
–
–
‘results of my calculation’
‘2nd$voltage’
‘ToTal_CapaCitaNce’
‘Exam-Results’
Buatlah nama yang berarti (fungsinya) tapi tidak
terlalu panjang atau diketik berulang
Untuk studi kasus kita dipakai:
power
volts
Penggunaan seperti:
power = volts * current;
current
Deklarasi Variabel
Semua (termasuk variabel) harus
dideklarasikan sebelum dipakai, jika tidak
dikatakan ‘tidak diketahui’!
Variabel adalah penyimpan data yang
dapat kita ubah selama run dari program
Sintaks:
nama-tipe Identifier;
nama-tipe Identifier = n, Identifier = n
…;
Studi Kasus
Contoh untuk studi kasus:
int power;
int volts;
int current;
Atau:
int power, volts, current;
Atau:
int power, volts = 0, current = 9;
PERINGATAN: tipe sangat penting!!!
Kesimpulan
C kemungkinan bahasa yang paling banyak
digunakan oleh ahli teknik (engineers)
Perencanaan yang menyeluruh sebelum
implementasi
5 tahap desain program:
–
–
–
–
–
Analisa persyaratan
Spesifikasi
Desain
Implementasi
Verifikasi dan Testing
Kesimpulan
Desain secara Top-Down dan implementasi
“Bottom-Up”
Prosesing sekuensial – struktur linier
Tipe – klasifikasi
Identifier – nama dari sesuatu
Variabel – elemen penyimpan dengan sebuah tipe
yang terdefinisi terlebih dahulu dan sebuah
Identifier unik
INGAT: Ukuran Penting!