pemrogramanpc07

14
Pertemuan 7 Pemrograman Procedural T. Informatika, PT_7 1 Tipe Data Sederhana

Upload: nurussyarifatulngaeni

Post on 24-Nov-2015

75 views

Category:

Documents


0 download

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