pemrogramanpc07
TRANSCRIPT
-
Pertemuan 7Pemrograman Procedural
T. Informatika, PT_7 1
Pemrograman Procedural
Tipe Data Sederhana
-
Tujuan
Memberikan pemahaman mengenai berbagai tipe data sederhana yang disediakan oleh C, sehingga mahasiswa mampu memilih tipe data yang sesuai
T. Informatika, PT_7 2
mampu memilih tipe data yang sesuai untuk menyelesaikan persoalan pemrograman.
-
Format Data
Format internal tipe int dan tipe double :
Bilangan Biner Mantissa Eksponen
T. Informatika, PT_7 3
Format int Format double
Bilangan real = mantissa x 10 eksponen
-
Range Tipe Data
Tipe Rangeshort -32.767 . 32.767
unsigned short 0 . 65.535
int -32.767 . 32.767
unsigned int 0 . 65.535
T. Informatika, PT_7 4
unsigned int 0 . 65.535
long -2.147.483.647 .
2.147.483.647
unsigned long 0 . 4.294.967.295
float 10-37 . 1038
double 10-307 . 10308
long double 10-4931 . 104932
-
Ketidakakuratan secara Numerik
Representational error : kesalahan yang berkaitan dengan pengkodean bilangan real menggunakan jumlah digit biner yang terbatas.
Untuk variabel yang mengontrol perulangan sebaiknya digunakan variabel integer, tidak
T. Informatika, PT_7 5
sebaiknya digunakan variabel integer, tidak variabel real.
Cancellation error : kesalahan sebagai akibat operasi aritmetika pada operan-operan dengan magnitude yang berbeda; sehingga pengaruh dari operand yang nilainya kecil hilang.
-
Ketidakakuratan secara Numerik
Arithmetic underflow : kesalahan yang disebabkan karena hasil komputasi yang nilainya sangat kecil dinyatakan sebagai nol.
T. Informatika, PT_7 6
nol.
Arithmetic overflow : kesalahan yang disebabkan karena kita berusaha menyatakan hasil komputasi yang terlalu besar.
-
Konversi Tipe Data
Konversi tipe data secara otomatis :int k=5, m=4, n;
double x=1.5, y=2.1, z;
z=k+5;
T. Informatika, PT_7 7
z=k+5;
z=k/m;
n=x*y;
Konversi tipe data secara eksplisit :z=(double) k/ (double) m;
-
Konversi Tipe Data
#include #define START_CHAR #define END_CHAR Zint main(void) {
int char_code;
T. Informatika, PT_7 8
int char_code;for (char_code=(int) START_CHAR; char_code
-
Tipe Enumerasi
Tipe enumerasi adalah tipe data yang nilai-nilainya ditentukan oleh programer pada saat deklarasi tipe.
Konstanta enumerasi : suatu identifier yang merupakan salah satu nilai
T. Informatika, PT_7 9
suatu identifier yang merupakan salah satu nilai dalam tipe enumerasi
Harus berupa identifier
Tidak bole numerik, karakter atau string
Secara default, nilainya diawali dengan integer 0.
Suatu identifier tidak boleh muncul lebih dari sekali dalam definisi tipe enumerasi.
-
Tipe Enumerasi
#include typedef enum {entertainment, rent, utilities, food,clothing, automobile, insurance, miscellaneous}expense_t;void print_expense(expense_t expense_kind);int main(void) {
T. Informatika, PT_7 10
int main(void) {expense_t expense_kind;scanf(%d, & expense_kind);printf(Expense code represent );printf_expense(expense_kind);printf(\n);return(0);
}
-
Tipe Enumerasivoid print_expense(expense_t expense_kind) {
switch (expense_kind) {case entertainment:
printf(entertainment); break;case rent:
printf(rent); break;case utilities :
printf(utilities); break;case food :
printf(food); break;
T. Informatika, PT_7 11
printf(food); break;case clothing :
printf(clothing); break;case automobile :
printf(automobile); break;case insurance :
printf(insurance); break;case miscellaneous :
printf(miscellaneous); break;default :
printf(invalid code ); }
}
-
Studi Kasus
Masalah :
Buatlah fungsi bisect yang mengaproksimasi akar dari sebuah fungsi f pada interval yang berisi jumlah akar
T. Informatika, PT_7 12
f pada interval yang berisi jumlah akar yang ganjil.
-
Studi Kasus
Design :Algoritma awal :1. jika interval berisi akar dengan jumlah genap
2. set variabel error true3. tampilkan pesan kesalahan
else4. set variabel error false
T. Informatika, PT_7 13
4. set variabel error false5. ulangi selama ukuran interval lebih besar dari epsilon dan akar belum
ditemukan6. hitung nilai fungsi pada titik tengah interval7. jika nilai fungsi nol, titik tengah adalah akarelse
8. pilih separuh di kiri atau separuh di kanan dari interval untuk melanjutkan pencarian
9. kembalikan nilai titik tengah dari interval terakhir sebagai akar dari fungsi
-
Referensi
Bab 7, Simple Data Types, Problem Solving and Program Design in C, Jeri R. Hanly dan Elliot B. Koffman, Addison Wesley, 2002
T. Informatika, PT_7 14
Wesley, 2002