Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman...

14
Pertemuan 7 Dasar Pemrograman Komputer Dasar Pemrograman Komputer Tipe Data Sederhana 1

Transcript of Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman...

Page 1: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Pertemuan 7Dasar Pemrograman KomputerDasar Pemrograman Komputer

Tipe Data Sederhana

1

Page 2: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Tujuan

Memberikan pemahaman mengenai berbagai tipe data sederhana yang disediakan oleh C, sehingga mahasiswa mampu memilih tipe data yang sesuai untukmahasiswa mampu memilih tipe data yang sesuai untuk menyelesaikan persoalan pemrograman.

2

Page 3: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Format Data

Format internal tipe int dan tipe double :

Bilangan Biner Mantissa EksponenBilangan Biner Mantissa Eksponen

Format int Format double

Bilangan real = mantissa x 10 eksponen

3

Page 4: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Range Tipe Data

Tipe Rangeshort -32.767 …. 32.767unsigned short 0 …. 65.535i t 32 767 32 767int -32.767 …. 32.767unsigned int 0 …. 65.535long -2.147.483.647 ….2.147.483.647long 2.147.483.647 ….2.147.483.647unsigned long 0 …. 4.294.967.295float 10-37 …. 1038

double 10-307 …. 10308

long double 10-4931 …. 104932

4

Page 5: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Ketidakakuratan secara NumerikRepresentational error : kesalahan yang

berkaitan dengan pengkodean bilangan real menggunakan jumlah digit biner yang terbatasmenggunakan jumlah digit biner yang terbatas.Untuk variabel yang mengontrol perulangan sebaiknya digunakan variabel integer, tidaksebaiknya 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 hilangdari operand yang nilainya kecil hilang.

5

Page 6: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Ketidakakuratan secara Numerik Arithmetic underflow : kesalahan yang disebabkan

karena hasil komputasi yang nilainya sangat kecil dinyatakan sebagai noldinyatakan sebagai nol.

Arithmetic overflow : kesalahan yang disebabkan karena kita berusaha menyatakan hasil komputasi yang terlalu besar.

6

Page 7: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Konversi Tipe Data

Konversi tipe data secara otomatis :int k=5, m=4, n;d bl 1 5 2 1double x=1.5, y=2.1, z;z=k+5;z=k/m;z k/m;n=x*y;

Konversi tipe data secara eksplisit :z=(double) k/ (double) m;

7

Page 8: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Konversi Tipe Data

#include <stdio.h>#define START_CHAR ‘ ‘#define END_CHAR ‘Z’i i ( id) {int main(void) {

int char_code;for (char code=(int) START CHAR; char code <= (int)for (char_code (int) START_CHAR; char_code (int)

END_CHAR; char_code ++)printf(“%c”, (char) char_code);

printf(“\n”);p ( \ );return(0);

}

8

Page 9: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Tipe Enumerasi

Tipe enumerasi adalah tipe data yang nilai-nilainya ditentukan oleh programer pada saat deklarasi tipedeklarasi tipe.

Konstanta enumerasi : suatu identifier yang merupakan salah satu nilaisuatu identifier yang merupakan salah satu nilai

dalam tipe enumerasi Harus berupa identifier

Tid k b l h ik k kt t t i Tidak boleh numerik, karakter atau string Secara default, nilainya diawali dengan integer 0. Suatu identifier tidak boleh muncul lebih dari sekaliSuatu identifier tidak boleh muncul lebih dari sekali

dalam definisi tipe enumerasi.

9

Page 10: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Tipe Enumerasi#include <stdio.h>typedef enum {entertainment, rent, utilities, food,clothing automobile insurance miscellaneous}clothing, automobile, insurance, miscellaneous}expense_t;void print_expense(expense_t expense_kind);int main(void) {int main(void) {

expense_t expense_kind;scanf(“%d”, & expense_kind);printf(“Expense code represent “);printf( Expense code represent );printf_expense(expense_kind);printf(“\n”);return(0);return(0);

}

10

Page 11: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Tipe Enumerasi

void print_expense(expense_t expense_kind) {switch (expense_kind) {

case entertainment:case entertainment: printf(“entertainment”); break;

case rent: printf(“rent”); break;

case utilities : printf(“utilities”); break;

case food : printf(“food”); break;

case clothing : printf(“clothing”); break;printf( clothing ); break;

case automobile : printf(“automobile”); break;

case insurance : printf(“insurance”); break;

i llcase miscellaneous : printf(“miscellaneous“); break;

default :printf(“invalid code” );

}}}

11

Page 12: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Studi Kasus

Masalah :Buatlah fungsi bisect yang mengaproksimasi akar dari

b h f i f d i t l b i i j l h ksebuah fungsi f pada interval yang berisi jumlah akar yang ganjil.

12

Page 13: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Studi KasusDesign :Algoritma awal :1. jika interval berisi akar dengan jumlah genap

2 t i b l “t ”2. set variabel error “true”3. tampilkan pesan kesalahan

else4 set variabel error “false”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 akar7. 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 g gfungsi

13

Page 14: Pertemuan 7 Dasar Pemrograman KomputerDasar Pemrograman ...blog.ub.ac.id/ardi93/files/2012/07/Tipe-Data-Sederhana.pdfBilangan real = mantissa x 10 eksponen 3. Range Tipe Data Tipe

Referensi

Bab 7, “Simple Data Types”, Problem Solving and Program Design in C, Jeri R. Hanly dan Elliot B. Koffman Addison Wesley 2002Koffman, Addison Wesley, 2002

14