View
227
Download
0
Category
Preview:
Citation preview
Pemrograman Dasar CPemrograman Dasar C
Minggu 1:Minggu 1:Pengenalan C ProgrammingPengenalan C Programming
Sejarah Bahasa CSejarah 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++berubah menjadi C++
Standard CStandard C
Definisi Kernighan & Ritchie (K&R)Definisi Kernighan & Ritchie (K&R) ANSI-C – ANSI-C – standard yang akan kita pakaistandard 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++– Visual StudioVisual Studio
Aplikasi dalam Bahasa CAplikasi dalam Bahasa C
System Operasi dan Program-Program System Operasi dan Program-Program SystemSystem
Pemrograman HardwarePemrograman Hardware Pembuatan Tool KitPembuatan Tool Kit Program Aplikasi (dBase, WordStar, Program Aplikasi (dBase, WordStar,
Lotus123)Lotus123)
IstilahIstilah
BlokBlok: sekumpulan kalimat C yang ditulis di : sekumpulan kalimat C yang ditulis di antara { dan }antara { dan }
DefinisiDefinisi: memberitahukan sifat (property) : memberitahukan sifat (property) objek dan sekaligus mengalokasikan objek dan sekaligus mengalokasikan memori untuk objekmemori untuk objek
DeklarasiDeklarasi: memberitahukan sifat (property) : memberitahukan sifat (property) objek (terutama berkaitan dengan tipe)objek (terutama berkaitan dengan tipe)
InisialisasiInisialisasi: memberikan nilai objek: memberikan nilai objek
IstilahIstilah
Deklarasi GlobalDeklarasi Global: deklarasi yang berlaku : deklarasi yang berlaku dalam satu unit translasi (file)dalam satu unit translasi (file)
Deklarasi LokalDeklarasi Lokal: deklarasi yang hanya : deklarasi yang hanya berlaku dalam blok tempat deklarasiberlaku dalam blok tempat deklarasi
ObjekObjek: daerah memori yang bernama (sama : daerah memori yang bernama (sama dengan variabeldengan variabel
LvalueLvalue: ekspresi yang mereferensi suatu : ekspresi yang mereferensi suatu objek (nilai sebelah kiri assignment)objek (nilai sebelah kiri assignment)
IstilahIstilah
PrototypePrototype: 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)
BodyBody: realisasi dari fungsi: realisasi dari fungsi ScopeScope: daerah program tempat suatu nama : daerah program tempat suatu nama
dikenaldikenal
Komputer dan ProgramnyaKomputer 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.informasi (‘data’) dan mengambil keputusan.
Komputer dan ProgramnyaKomputer dan Programnya
ProgrammingProgramming– 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.menggunakan keyboard.
Programming Tingkat Rendah & Programming Tingkat Rendah & TinggiTinggi
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,90hmov al,90hinc axinc axjnz loop1jnz loop1
– Bisa dibaca, lambat untuk dibuat, cepat diproses, Bisa dibaca, lambat untuk dibuat, cepat diproses, spesifik untuk prosesor tertentu (Intel, Motorola dll)spesifik untuk prosesor tertentu (Intel, Motorola dll)
Programming Tingkat Rendah & Programming Tingkat Rendah & TinggiTinggi
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 mesinkode mesinans = 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.prosessors.
Programming Tingkat Rendah & Programming Tingkat Rendah & TinggiTinggi
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 lainnyapemrograman 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:– Mudah dipelajari, dapat tidak efisienMudah dipelajari, dapat tidak efisien
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– Mudah dipelajari setelah belajar CMudah dipelajari setelah belajar C
PerencanaanPerencanaan
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.dan waktu run.
5 Langkah Membuat Program5 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
programprogram Desain:Desain:
– Menentukan bagaimana melakukannyaMenentukan bagaimana melakukannya
5 Langkah Membuat Program5 Langkah Membuat Program
Implementasi (koding)Implementasi (koding)– Mengubah desain menjadi kodeMengubah desain menjadi kode– Didokumentasikan dengan baik / diberi Didokumentasikan dengan baik / diberi
komentar dengan baikkomentar dengan baik Verifikasi:Verifikasi:
– Apakah memenuhi persyaratan/spesifikasi?Apakah memenuhi persyaratan/spesifikasi?
Studi KasusStudi Kasus
Analisa Persyaratan:Analisa Persyaratan:– Menghitung tenaga listrik yang dihasilkan pada Menghitung tenaga listrik yang dihasilkan pada
sebuah beban listriksebuah beban listrik– Mengambil voltase dan arus untuk Mengambil voltase dan arus untuk
menghasilkan tenaga listrikmenghasilkan tenaga listrik– Dilaksanakan menggunakan “ANSI C” pada Dilaksanakan menggunakan “ANSI C” pada
PCPC
Studi KasusStudi 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:» Power = Voltase X ArusPower = Voltase X Arus
Studi KasusStudi Kasus
Seperti Resep Memasak: sebuah daftar dari Seperti Resep Memasak: sebuah daftar dari bumbu dan metodanyabumbu dan metodanya
Program KitaP = V x I
voltase
aruspower
Studi KasusStudi 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 simpelmudah atau simpel» Identifikasi bagian tugas yang diulang / sangat mirip: buatlah Identifikasi bagian tugas yang diulang / sangat mirip: buatlah
satu tugas yang sifatnya lebih umum.satu tugas yang sifatnya lebih umum.
Studi KasusStudi 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 HasilVI P
Studi KasusStudi 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 linieryang sekuensial linier
– Struktur dari desain kita Struktur dari desain kita juga sekuensial linierjuga sekuensial linier
MemintaInput
Hitung Power
TampilkanOutput
Bahasa LogisBahasa 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.program yang handal dan akurat.
ImplementasiImplementasi
Pada intinya, kode dari bawah ke atasPada intinya, kode dari bawah ke atas Kodekan masing-masing sub-modul Kodekan masing-masing sub-modul
terendah dulu baru keatasterendah dulu baru keatas Dapat dilihat dalam template berikut:Dapat dilihat dalam template berikut:
ImplementasiImplementasi#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 */
return (0);return (0);}}
VariabelVariabel
Elemen penyimpanan untuk menyimpan data yang Elemen penyimpanan untuk menyimpan data yang bisa diubahbisa 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 tipetipe ini didesain untuk menampung data yang ini didesain untuk menampung data yang memenuhi peraturan spesifik dari tipe tsb.memenuhi peraturan spesifik dari tipe tsb.
VariabelVariabel Jenis-jenis tipe:Jenis-jenis tipe:
NamaNama KisaranKisaranintint +32767 ke –32767+32767 ke –32767charchar +127 ke –128+127 ke –128shortshort +32767 ke –32767+32767 ke –32767longlong +2147483647+2147483647
ke –2147483648ke –2147483648unsigned charunsigned char 0 ke +2550 ke +255unsigned shortunsigned short 0 ke +655350 ke +65535unsigned int unsigned int 0 ke +655350 ke +65535unsigned longunsigned long 0 ke 42949672950 ke 4294967295
Identifier – Nama dari SesuatuIdentifier – 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 lainnyalainnya
– 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– Hindari kata kunci yang khususHindari kata kunci yang khusus
Identifier – Nama dari SesuatuIdentifier – 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 berulangterlalu panjang atau diketik berulang
Untuk studi kasus kita dipakai:Untuk studi kasus kita dipakai:powerpower voltsvolts currentcurrent
Penggunaan seperti:Penggunaan seperti:power = volts * current;power = volts * current;
Deklarasi VariabelDeklarasi Variabel
Semua (termasuk variabel) Semua (termasuk variabel) harusharus dideklarasikan sebelum dipakai, jika tidak dideklarasikan sebelum dipakai, jika tidak dikatakan ‘tidak diketahui’!dikatakan ‘tidak diketahui’!
VariabelVariabel adalah penyimpan data yang adalah penyimpan data yang dapat kita ubah selama run dari programdapat 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 KasusStudi 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;
PERINGATANPERINGATAN: tipe sangat penting!!!: tipe sangat penting!!!
KesimpulanKesimpulan 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
implementasiimplementasi 5 tahap desain program:5 tahap desain program:
– Analisa persyaratanAnalisa persyaratan– SpesifikasiSpesifikasi– DesainDesain– ImplementasiImplementasi– Verifikasi dan TestingVerifikasi dan Testing
KesimpulanKesimpulan
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 unikIdentifier unik
INGAT: Ukuran Penting!INGAT: Ukuran Penting!
Recommended