Pemrograman Dasar C
Pemrograman Dasar C
Topik Bahasan
Topik Bahasan
Membuat program mudah ditulis dan dibaca
–
Konstan
–
Nama yang mudah diingat untuk data
Struktur pilihan berganda
–
Ketika if bersarang terlalu kompleks
Struktur loop berulang
–
Menentukan berapa kali untuk ‘loop’
Konstan dan #define
Konstan dan #define
Konstan (elemen penyimpanan nilai tetap)
const float PI = 3.1416;const float perm_0 = 4 * PI * 1e-7; B = perm_0 * H; /* kalkulasi fluks */
– Menambahkan kualifier ‘const’ membuat variable yang
dideklarasikan menjadi kuantitas tetap
– Konstan mempunyai tipe yang definitif (menentukan
jumlah memori yang digunakan)
– Catatan: anda bisa menggunakan ekspresi untuk
Konstan dan #define
Konstan dan #define
Define – memungkinkan perubahan global …
#define PI 3.141593#define MAX_STUDENTS 100
#define adalah direktif pre-prosesor (seperti #include) Hanya sebuah substitusi teks, jadi ketika
MAX_STUDENTS muncul, kompiler akan
menganggap seperti anda menulis ‘100’ disana. Secara umum, #define mempunyai identifier HURUF
Konstan dan #define
Konstan dan #define
Define lebih fleksibel tapi const lebih
disukai untuk konstan numerik karena
mempunyai ‘tipe’
Keduanya memungkinkan perubahan global
dengan mudah untuk keseluruhan program
– membantu membuat program lebih
Menggunakan #define untuk
Menggunakan #define untuk
Memudahkan Pembacaan
Memudahkan Pembacaan
#define APEL 1
#define PIR 2
#define PISANG 3
int berat, buah = APEL;
/* kode berikut mengambil harga dari buah */ printf(“harga = Rp. “);
if (buah = = PISANG)
printf(“%5.2f”, berat * 0.5); else if (buah = = APEL)
printf(“%5.2f”, berat * 0.6); else if (buah = = PIR)
printf(“%5.2f”, berat * 0.7); /* sisa program disini */
Tipe Enumerasi
Tipe Enumerasi
Metode dimana anda mempunya satu set dari ‘sesuatu’
yang dinyatakan dalam nama, menghindari terlalu banyak #define
Sintaks:
enum <nama_tipe> {<item1>, <item2>, …};
mendefinisikan tipe enumerasi dan …
enum <nama_tipe> <nama_variabel>;
mendefinisikan variabel untuk tipe tsb.
Tipenya pada dasarnya sama dengan tipe “int”, setiap
elemen (sebuah ‘konstan enumerasi’) mendapatkan nilai integer yang secara default dimulai dari 0, 1, 2, dll (dapat memilih sendiri dengan ‘<item1> = nilai’ dll)
Contoh Enumerasi
Contoh Enumerasi
enum buah_saya {Apel, Pir, Pisang}; enum buah_saya buah;
Contoh diatas bisa menggantikan contoh program
sebelumnya menggantikan #define
Dapat mengeset awal nilai enumerasi
Struktur Pilihan Berganda
Struktur Pilihan Berganda
Menentukan pilihan dengan opsi yang banyak membuat susunan if bersarang yang kompleks bulan Nov, Des, Jan,Feb? bulan Mar, Apr, Mei? bulan Jun, Jul, Agt? bulan Sep, Okt? Musim Dingin Musim Semi Musim Panas Musim Gugur yes yes yes yes No No No No
Statemen ‘switch’ atau ‘case
Statemen ‘switch’ atau ‘case
Sintaks dari statemen switch:
switch (ekspresi) {
case nilai 1 : statemen 1;
case nilai 2 : statemen 2;
…
default : statemen default; \*opsional *\
}
Statemen ‘switch’ atau ‘case
Statemen ‘switch’ atau ‘case
Ekspresi switch dievaluasi pertama dan harus terevaluasi sebagai
sebuah integer.
Setiap nilai case (harus ‘konstan’ – nilai tetap – tidak ada keraguan)
harus juga sebuah integer. Dapat dengan urutan yang bebas (konstan enumerasi juga bisa digunakan).
Nilai case yang banyak untuk satu statemen OK.
Setelah ekspresi dievaluasi, case yang sesuai dengan hasil evaluasi
akan dilaksanakan dan semua dibawahnya. Jika tidak atau sebuah statemen ‘break;’ muncul.
Jika tidak ada case yang cocok, ‘default’ akan dieksekusi (opsional –
sebaiknya mempunyai ini untuk menangkap error).
Contoh Case
Contoh Case
Sederhana
Sederhana
#include <stdio.h> int main (void)
{ /* bagian deklarasi */
int mode = 0;
/ * bagian program */
printf(“Pilih mode (1, 2, atau 3): “); scanf(“%d”, &mode); switch(mode) { case 1: printf(“\nMode 1 dipilih”); break; case 3: printf(“\nMode 3 dipilih”); break; case 2: printf(“\nMode 2 dipilih”); break; default:
printf(“\nPilihan yang buruk: %d\n”, mode); } /* akhir dari case */
/*bagian program yang lain ada disini */ return (0);
Contoh Case Menggunakan Enum
Contoh Case Menggunakan Enum
enum bulan {Jan = 1, Feb = 2, Mar = 3, Apr = 4, Mei = 5, Jun = 6, Jul = 7, Agt = 8, Sep = 9, Okt = 10, Nov = 11, Des = 12}
enum bulan my_bulan; / * bagian lain disini */ switch (my_bulan) {
case Jan: case Feb: case Nov: case Dec:
printf(“\nMusim Dingin!”); break;
case Mar: case Apr: case Mei:
printf(“\nMusim Semi!”); break; case Sep: case Okt:
printf(“\nMusim Gugur!”); break; case Jul: case Agt:
printf(“\nMusim Panas!”); break; default:
printf(“\nAnda memasukkan angka bulan yang salah!”); }
Repetisi: Loop
Repetisi: Loop
Do …While loop
bbrp operasi statemen Do loop bbrp operasi ingin mengulang loop? yes no loop ke-1 ke-2Do While Loop
Do While Loop
‘Do Sesuatu’ selalu dilakukan paling tidak
sekali.
Tes dilaksanakan pada akhir untuk melihat
apakah mengulang loop. Menggunakan tes
‘true’ dan ‘false’ biasa.
Jika tes selalu ‘true’ (misalnya 1 = = 1)
Do While Loop
Do While Loop
Sintaks:
do {
…
statemen(satu atau lebih)
…
} while (ekspresi tes);
statemen berikut;
Do While Loop
Do While Loop
Tidak perlu statemen compound jika hanya satu.
Contoh program untuk mengecek ingin
mengulang atau tidak:
char in_c; do {
/* statemen untuk program saya disini */ printf(“\nTekan Y untuk terus: “);
scanf(“ %c”, &in_c);
} while ((in_c = = ‘y’) || (in_c = = ‘Y’)); printf(“\nProgram berhenti…”);
Studi Kasus: Cek Kisaran #2
Studi Kasus: Cek Kisaran #2
Persyaratan:
–
Hanya membolehkan input dalam kisaran 0 –
100 volt.
Analisa:
–
Menggunakan statemen if dan do … while loop
Desain:
Studi
Studi
Kasus
Kasus
flow chart
minta voltase ambil input < 0 OR >100? Ouput Pesan Error < 0 OR >100? Yes No No Yes tes if do while loopStudi Kasus: Implementasi
Studi Kasus: Implementasi
/* start dari program dimulai disini */do { printf(“\nMasukkan voltase “); scanf(“%d”, &volts); if (volts <0 || volts>100) { printf(“\nInput diluar”); printf(“ kisaran 0 – 100v”); }
} while (volts<0 || volts>100);
Loop Repetisi yang Lain
Loop Repetisi yang Lain
While loop
bbrp operasi statemen Do Loop ingin mengeksekusi loop? yes no loop ke-1 ke-2 bag. lain programWhile Loop
While Loop
Tes dilaksanakan pada awal untuk melihat
apakah akan melaksanakan isi dari loop
(‘Do Sesuatu’ tidak harus dilakukan)
Jika tes gagal pertama kali, loop tidak
pernah dieksekusi! Ini mungkin yang
dikehendaki, jika tidak gunakan do .. while
loop.
While Loop
While Loop
Sintaks:
while (ekspresi tes) { …
statemen (satu atau lebih) …
}
statemen berikutnya;
Contoh Sederhana
Contoh Sederhana
int i = 10;
while ( i > 0)
printf(“\nT minus %2d dan menghitung”, i--);
printf(“\n\nTake off!”);
CATATAN: contoh diatas tidak menggunakan
statemen compound
Contoh lain While
Contoh lain While
Loop
Loop
#include <stdio.h> int main (void) {
const float target = 1.0e4 float inisial, bunga;
int tahun = 0;
printf(“\nMasukkan modal dalam $ “); scanf(“%f”, &inisial);
printf(“\nMasukkan suku bunga “); printf(“[0.05 untuk 5%%] – “); scanf(“%f”, &bunga);
while (inisial < target) {
inisial *= (bunga + 1.0); tahun++;
}
printf(“\nTotal %7.2f setelah %d tahun”, inisial, tahun);
return (0); }
Ringkasan
Ringkasan
Membuat program lebih mudah ditulis dan dibaca
– konstan tidak dapat diubah, untuk data tetap yang
bertipe.
– #define substitusi teks, membantu pengubahan proses
konstan enumerasi dengan nama
Sruktur pilihan berganda – konstruksi switch (atau
case)
– ekspresi switch harus sebuah integer – nilai case harus konstan
Ringkasan
Ringkasan
Struktur Loop Repetisi
–
while loop
do … while loop selalu berjalan sekali, tes ‘berlanjut?’ pada akhir dari setiap iterasi
while … tes dilaksanakan sebelum loop berjalan sehingga loop mungkin tidak pernah digunakan jika tes pertamanya terevaluasi ‘false’