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!