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