Pemrograman Dasar C

advertisement
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!
Download