Tipe Data Lecture 8 Tipe Data Dasar Data

  • Slides: 31
Download presentation
Tipe Data Lecture 8

Tipe Data Lecture 8

Tipe Data Dasar • Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan

Tipe Data Dasar • Data berdasarkan jenisnya dapat dibagi menjadi lima kelompok, yang dinamakan sebagai tipe data dasar, yaitu: – Bilangan bulat (integer) – Bilangan pecahan (float/real) presisi-tunggal – Bilangan pecahan (float/real) presisi-ganda – Karakter – Tak bertipe

Daftar tipe data dasar Tipe Jml Bit Rentang Data Keterangan Char 8 -128. .

Daftar tipe data dasar Tipe Jml Bit Rentang Data Keterangan Char 8 -128. . 127 Int 16 -32768. . 32767 Float 32 3. 4 e-38. . 3. 4 e+38 Bilangan pecahan presisi-tunggal Double 64 1. 7 e-308. . 1. 7 e+3. 8 Bilangan pecahan presisi-ganda Void 0 - Karakter Bilangan bulat Tak bertipe

/* LOTTYPES. C */ #include <stdio. h> int main() { int a; /* simple

/* LOTTYPES. C */ #include <stdio. h> int main() { int a; /* simple integer type */ long int b; /* long integer type */ short int c; /* short integer type */ unsigned int d; /* unsigned integer type char e; /* character type */ float f; /* floating point type */ double g; /* double precision floating point */ */ a = 1023; b = 2222; c = 123; d = 1234; e = 'X'; f = 3. 14159; g = 3. 1415926535898; printf("a = %dn", a); /* decimal output */ printf("a = %on", a); /* octal output */ printf("a = %xn", a); /* hexadecimal output */ printf("b = %ldn", b); /* decimal long output */ printf("c = %dn", c); /* decimal short output */ printf("d = %un", d); /* unsigned output */ printf("e = %cn", e); /* character output */ printf("f = %fn", f); /* floating output */ printf("g = %fn", g); /* double float output */ printf("n"); printf("a = %dn", a); /* simple int output */ printf("a = %7 dn", a); /* use a field width of 7 */ printf("a = %-7 dn", a); /* left justify in field of 7 */ c = 5; d = 8; printf("a = %*dn", c, a); /* use a field width of 5 printf("a = %*dn", d, a); /* use a field width of 8 */ */ printf("n"); printf("f = %fn", f); /* simple float output */ printf("f = %12 fn", f); /* use field width of 12 */ printf("f = %12. 3 fn", f); /* use 3 decimal places */ printf("f = %12. 5 fn", f); /* use 5 decimal places */ printf("f = %-12. 5 fn", f); /* left justify in field */ return 0; }

Result of execution a = 1023 a = 1777 a = 3 ff b

Result of execution a = 1023 a = 1777 a = 3 ff b = 2222 c = 123 d = 1234 e=X f = 3. 141590 g = 3. 141593 a = 1023 a = 1023 f = 3. 141590 f= 3. 142 f= 3. 14159 f = 3. 14159

Struktur Array

Struktur Array

Motivation • One of the most powerful programming tools available • Help to organize

Motivation • One of the most powerful programming tools available • Help to organize a collection of homogeneous data items (same type and lenght). The individual data items that make up the array are called as Element of the array • Example: Scores[3] indicated the third exam score

Definition • Array disebut juga larik, merupakan runtun data dengan setiap elemen data menggunakan

Definition • Array disebut juga larik, merupakan runtun data dengan setiap elemen data menggunakan nama yang sama dan mesing-masing elemen data bertipe sama. • Setiap komponen (elemen) array dapat dibedakan diakses melalui nomor indeksnya. • Struktur array dapat digolongkan menjadi: – Array berdimensi satu – Array berdimensi dua – Array berdimensi banyak

Array Satu Dimensi • Struktur array satu dimensi dapat dideklarasikan dengan bentuk umum berupa:

Array Satu Dimensi • Struktur array satu dimensi dapat dideklarasikan dengan bentuk umum berupa: Tipe nama_var [ukuran]; • dengan: – tipe: untuk menyatakan jenis elemen array (misalnya char, int, unsigned). – Ukuran untuk menyatakan jumlah maksimal elemen array. • contoh pendeklarasian suatu array lima elemen dengan tipe float adalah sebagai berikut: float nilai_tes [5];

Mengakses Elemen Array • Pada bahasa C, data array akan disimpan dalam memori pada

Mengakses Elemen Array • Pada bahasa C, data array akan disimpan dalam memori pada lokasi yang berurutan. • Elemen pertama mempunyai indeks bernilai 0. • Jika pada contoh variabel nilai_tes mempunyai 5 elemen, maka elemen pertama mempunyai indeks sama dengan 0, elemen kedua mempunyai indeks 1, dan seterusnya.

 • Bentuk umum pengaksesan suatu elemen variabel array adalah: Nama_var [indeks]; • Untuk

• Bentuk umum pengaksesan suatu elemen variabel array adalah: Nama_var [indeks]; • Untuk variabel array nilai_tes, – Nilai_tes[1] elemen ke-1 dari nilai_tes – Nilai_tes[3] elemen ke-3 dari nilai_tes

Gambar berikut memperlihatkan urutan komponen array dalam memori.

Gambar berikut memperlihatkan urutan komponen array dalam memori.

 • Contoh untuk memasukkan data ke variabel array: – nilai_tes[0] = 70; /*

• Contoh untuk memasukkan data ke variabel array: – nilai_tes[0] = 70; /* contoh 1*/ – scanf(“%f”, &nilai_tes[3]); /* contoh 2*/ • Contoh pertama merupakan pemberian nilai 70 ke elemen variabel nilai_tes ke-0. • Contoh kedua merupakan perintah untuk membaca data bilangan dari keyboard dan diberikan ke elemen nilai-tes yang ke-3. • Statemen &nilai_tes[3] menunjukkan “alamat dari elemen variabel nilai_tes yang ke-3”. • Perlu diingat bahwa instruksi scanf( ) membutuhkan argumen berupa alamat dari variabel yang digunakan untuk menyimpan nilai masukan.

/* ------------------------ */ /* File program : baca. c */ /* Contoh pengaksesan array

/* ------------------------ */ /* File program : baca. c */ /* Contoh pengaksesan array satu dimensi */ /* ------------------------ */ #include <stdio. h> #define maks_tes 5 main() { int i; float nilai_tes[maks_tes]; /* deklarasi array */ /* Membaca data dari keyboard */ for (i=0; i<maks_tes; i++) { printf("Nilai tes ke-%d: ", i+1); scanf("%f", &nilai_tes[i]); } /* Menampilkan data yang telah dimasukkan */ for (i=0; i<maks_tes; i++) { printf("Nilai tes ke-%d: %f", i+1, nilai_tes[i]); } }

Program Baca. c • • • Program diatas memperlihatkan cara memasukkan data larik dari

Program Baca. c • • • Program diatas memperlihatkan cara memasukkan data larik dari keyboard sebanyak lima buah data dan kemudian menampilkan data tersebut ke layar monitor. Data array juga dapat dideklarasikan dalam bentuk variabel yang bersifat statis, serta dapat dilakukan inisialisasi terhadap masing-masing elemen array. Contoh proses deklarasi dan inisialisasinya adalah: static int jum_hari[12] = { 31, 28, 31, 30, 31 }; Dengan deklarasi di atas, maka o jum_hari[0] bernilai 31 o jum_hari[1] bernilai 28 o jum_hari[2] bernilai 31 o jum_hari[3] bernilai 30 o dan seterusnya. Nilai yang ada pada array menyatakan banyaknya hari untuk setiap bulan.

Array 2 -Dimensi • Tipe data array dua dimensi biasa digunakan untuk menyimpan, mengolah

Array 2 -Dimensi • Tipe data array dua dimensi biasa digunakan untuk menyimpan, mengolah maupun menampilkan suatu data dalam bentuk tabel maupun matriks. • Untuk data dalam bentuk tabel, seperti yang diperlihatkan pada tabel berikut ini, dimensi pertama array digunakan untuk menyatakan nama Program Studi dan dimensi kedua untuk menyatakan jumlah penerimaan mahasiswa per tahun pada tahun tertentu.

Tabel Jumlah Mahasiswa yang diterima di Jurusan Teknik Elektro UGM.

Tabel Jumlah Mahasiswa yang diterima di Jurusan Teknik Elektro UGM.

 • Untuk mendeklarasikan array agar dapat menyimpan data penerimaan mahasiswa dari tabel di

• Untuk mendeklarasikan array agar dapat menyimpan data penerimaan mahasiswa dari tabel di atas adalah sebagai berikut: int Jumlah_mhs [4][3]; • Nilai indeks 3 untuk menyatakan banyaknuya tahun dan 4 menyatakan banyaknya program studi.

Array dua dimensi Gambar berikut memperlihatkan ilustrasi untuk memudahkan pemahaman tentang array dua dimensi.

Array dua dimensi Gambar berikut memperlihatkan ilustrasi untuk memudahkan pemahaman tentang array dua dimensi.

 • Seperti halnya pada arrau satu dimensi, data array dua dimensi akan ditempatkan

• Seperti halnya pada arrau satu dimensi, data array dua dimensi akan ditempatkan pada memori secara berurutan, seperti yang diperlihatkan pada Gambar 7. 3. Model penyimpanan array dua dimensi pada memori.

Mengakses Elemen Array 2 Dimensi • Untuk mengakses elemen array dua dimensi dapat dilakukan

Mengakses Elemen Array 2 Dimensi • Untuk mengakses elemen array dua dimensi dapat dilakukan dengan statemen: – nama_variabel[indeks pertama][indeks kedua]; • - Sebagai contoh: – Jumlah_mhs[1][2] = 129; – Merupakan instruksi untuk mengakses elemen array pada baris ke-1, kolom ke-2.

Pengakessan elemen array dua dimensi

Pengakessan elemen array dua dimensi

 • Dalam program, untuk membaca atau memasukkan data array dua dimensi dari keyboard

• Dalam program, untuk membaca atau memasukkan data array dua dimensi dari keyboard dapat dilakukan dengan memanfaatkan statemen nested loop. • Contoh program berikut memperlihatkan bagaimana memasukkan data sebuah matriks n x n ke memori dan menampilkan hasil pembacaan ke layar monitor.

/* ------------------------ */ /* File program : baca 2. c */ /* Contoh pengaksesan

/* ------------------------ */ /* File program : baca 2. c */ /* Contoh pengaksesan array dua dimensi */ /* ------------------------ */ #include <stdio. h> main() { int i, j; int matriks[4][3]; /* deklarasi array */ /* Membaca data dari keyboard */ for (i=0; i<4; i++) { for(j=0; j<3; j++) { printf("matriks (%d, %d): ", i, j); scanf("%d", &matriks[i][j]); } } printf("nn"); /* Menampilkan data matriks yang telah dimasukkan */ for (i=0; i<4; i++) { for(j=0; j<3; j++) { printf(" Matriks(%d, %d): %d", i, j, matriks[i][j]); } printf("n"); } }

Array of Integer • • /* INTARRAY. C */ #include <stdio. h> • •

Array of Integer • • /* INTARRAY. C */ #include <stdio. h> • • int main() { int values[12]; int index; • • for (index = 0 ; index < 12 ; index++) values[index] = 2 * (index + 4); • • • for (index = 0 ; index < 12 ; index++) printf("The value at index = %2 d is %3 dn", index, values[index]); • • return 0; }

Result of execution The value at index = 0 is 8 The value at

Result of execution The value at index = 0 is 8 The value at index = 1 is 10 The value at index = 2 is 12 The value at index = 3 is 14 The value at index = 4 is 16 The value at index = 5 is 18 The value at index = 6 is 20 The value at index = 7 is 22 The value at index = 8 is 24 The value at index = 9 is 26 The value at index = 10 is 28 The value at index = 11 is 30

AN ARRAY OF FLOATING POINT DATA /* BIGARRAY. C */ #include <stdio. h> char

AN ARRAY OF FLOATING POINT DATA /* BIGARRAY. C */ #include <stdio. h> char name 1[] = "First Program Title"; int main() { int index; int stuff[12]; float weird[12]; static char name 2[] = "Second Program Title"; for (index = 0 ; index < 12 ; index++) { stuff[index] = index + 10; weird[index] = 12. 0 * (index + 7); } printf("%sn", name 1); printf("%snn", name 2); for (index = 0 ; index < 12 ; index++) printf("%5 d %10. 3 fn", index, stuff[index], weird[index]); return 0; }

Result of execution First program title Second program title 0 1 2 3 4

Result of execution First program title Second program title 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 84. 000 96. 000 108. 000 120. 000 132. 000 144. 000 156. 000 168. 000 180. 000 192. 000 204. 000 216. 000

MULTI-DIMENSIONAL ARRAYS #include <stdio. h> int main() { int i, j; int big[8][8], large[25][12];

MULTI-DIMENSIONAL ARRAYS #include <stdio. h> int main() { int i, j; int big[8][8], large[25][12]; for (i = 0 ; i < 8 ; i++) for (j = 0 ; j < 8 ; j++) big[i][j] = i * j; /* This is a multiplication table */ for (i = 0 ; i < 25 ; i++) for (j = 0 ; j < 12 ; j++) large[i][j] = i + j; /* This is an addition table */ big[2][6] = large[24][10] * 22; big[2][2] = 5; big[2][2]][big[2][2]] = 177; /* this is big[5][5] = 177; */ for (i = 0 ; i < 8 ; i++) { for (j = 0 ; j < 8 ; j++) printf("%5 d ", big[i][j]); printf("n"); /* newline for each increase in i */ } return 0; }

Result of execution 0 0 0 0 0 1 2 3 4 5 6

Result of execution 0 0 0 0 0 1 2 3 4 5 6 7 0 0 2 3 5 6 6 9 8 12 10 15 12 18 14 21 0 0 4 5 6 7 8 10 748 14 12 15 18 21 16 20 24 28 20 177 30 35 24 30 36 42 28 35 42 49