Tipe Data
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
Daftar tipe data dasar
Tipe
Jml Bit
Rentang Data
Keterangan
Char
8
-128 .. 127
Karakter
Int
16
-32768 .. 32767
Bilangan bulat
Float
32
3.4e-38 .. 3.4e+38
Bilangan pecahan
presisi-tunggal
Double
64
1.7e-308 .. 1.7e+3.8
Bilangan pecahan
presisi-ganda
/* 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 = %d\n", a); /* decimal output */ printf("a = %o\n", a); /* octal output */ printf("a = %x\n", a); /* hexadecimal output */ printf("b = %ld\n", b); /* decimal long output */ printf("c = %d\n", c); /* decimal short output */ printf("d = %u\n", d); /* unsigned output */ printf("e = %c\n", e); /* character output */ printf("f = %f\n", f); /* floating output */ printf("g = %f\n", g); /* double float output */ printf("\n");
printf("a = %d\n", a); /* simple int output */ printf("a = %7d\n", a); /* use a field width of 7 */ printf("a = %-7d\n", a); /* left justify in field of 7 */ c = 5;
d = 8;
printf("a = %*d\n", c, a); /* use a field width of 5 */ printf("a = %*d\n", d, a); /* use a field width of 8 */ printf("\n");
printf("f = %f\n", f); /* simple float output */ printf("f = %12f\n", f); /* use field width of 12 */ printf("f = %12.3f\n", f); /* use 3 decimal places */ printf("f = %12.5f\n", f); /* use 5 decimal places */ printf("f = %-12.5f\n", f); /* left justify in field */ return 0;
Result of execution
a = 1023
a = 1777
a = 3ff
b = 2222
c = 123
d = 1234
e = X
f = 3.141590
g = 3.141593
a = 1023
a = 1023
a = 1023
a = 1023
a = 1023
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
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 dan diakses melalui nomor
indeksnya.
• Struktur array dapat digolongkan menjadi:
– Array berdimensi satu
– Array berdimensi dua
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:
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,
• Bentuk umum pengaksesan suatu elemen
variabel array adalah:
Nama_var [indeks];
• Untuk variabel array nilai_tes,
• 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”.
/* --- */
/* 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 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, 30, 31, 31, 30, 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.
Array 2-Dimensi
• Tipe data array dua dimensi biasa digunakan
untuk menyimpan, mengolah maupun
menampilkan suatu data dalam bentuk tabel
maupun matriks.
• 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
Array dua dimensi
• Seperti halnya pada arrau satu dimensi, data
array dua dimensi akan ditempatkan pada
memori secara berurutan, seperti yang
diperlihatkan pada Gambar 7.3.
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
• 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
/* --- */
/* File program : baca2.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("\n\n");
/* 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>
•
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 = %2d is %3d\n",
•
index, values[index]);
Result of execution
AN ARRAY OF FLOATING POINT DATA
/* BIGARRAY.C */
#include <stdio.h>
char name1[] = "First Program Title";
int main()
{
int index;
int stuff[12];
float weird[12];
static char name2[] = "Second Program Title";
for (index = 0 ; index < 12 ; index++)
{
stuff[index] = index + 10;
weird[index] = 12.0 * (index + 7);
}
printf("%s\n", name1);
printf("%s\n\n", name2);
for (index = 0 ; index < 12 ; index++)
printf("%5d %5d %10.3f\n", index, stuff[index], weird[index]);
return 0;
Result of execution
First program title
Second program title
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[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("%5d ", big[i][j]);
printf("\n"); /* newline for each increase in i */
}
Result of execution
0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7