• Tidak ada hasil yang ditemukan

Pemrograman Dasar C. Minggu 4

N/A
N/A
Protected

Academic year: 2021

Membagikan "Pemrograman Dasar C. Minggu 4"

Copied!
27
0
0

Teks penuh

(1)

Pemrograman Dasar C

Pemrograman Dasar C

(2)

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’

(3)

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

(4)

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

(5)

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

(6)

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 */

(7)

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)

(8)

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

(9)

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

(10)

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 *\

}

(11)

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).

(12)

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);

(13)

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!”); }

(14)

Repetisi: Loop

Repetisi: Loop

Do …While loop

bbrp operasi statemen Do loop bbrp operasi ingin mengulang loop? yes no loop ke-1 ke-2

(15)

Do 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)

(16)

Do While Loop

Do While Loop

Sintaks:

do {

statemen(satu atau lebih)

} while (ekspresi tes);

statemen berikut;

(17)

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…”);

(18)

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:

(19)

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 loop

(20)

Studi 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);

(21)

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 program

(22)

While 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.

(23)

While Loop

While Loop

Sintaks:

while (ekspresi tes) { …

statemen (satu atau lebih) …

}

statemen berikutnya;

(24)

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

(25)

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); }

(26)

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 integernilai case harus konstan

(27)

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’

Referensi

Dokumen terkait

Dari tabel di atas variasi yang memberikan nilai rendemen yang tinggi dan penurunan bilangan kappa yang tinggi adalah pada variasi 80 – 20, yaitu 80% NaOH yang

Handout termaksud pada media ajar cetak (printed) yang meliputi bahan-bahan yang disediakan diatas kertas untuk pengajaran dan informasi belajar, biasanya diambil

Berdasarkan hasil uji hipotesis pada dimensi setiap aspek keterampilan psikologis yang ditinjau dari posisi dapat diketahui bahwa kesimpulan dari uji perbedaan setiap dimensi

Acara dihadiri oleh Dekan FKG UNAIR dan disaksikan oleh seluruh Civitas akademika, Dalam sambutannya Dekan menegaskan walau RSGM bersifat mandiri, namun FKG UNAIR akan

Untuk mendukung kinerja pembangunan Kementerian Pertanian pada renstra 2010-2014 dalam pencapaian 4 Target Utama Pembangunan pertanian ke depan yang meliputi :

Input adalah jumlah sisa perkara pidana tahun sebelumnya yang harus diselesaikan pada tahun tahun berjalan.. Output adalah jumlah sisa perkara pidana yang diselesaikan pada

Bahan atau material yang digunakan dalam beton ini tidak menggunakan agregat halus (pasir), sehingga menggunakan campuran antara semen, air dan agregat kasar dengan