KONSEP TIPE DATA
4
Tujuan Instruksi Umum (TIU):
Mampu mendeklarasikan variabel dan konstanta dengan menggunakan tipe data yang benar sehingga dapat menghasilkan program dalam Bahasa C.
Tujuan Instruksi Khusus (TIK):
• Mengetahui tipe data dasar dan tipe data bentukan secara umum dalam pemrograman. • Mengetahui tipe data yang telah disediakan oleh Bahasa C.
• Mampu mendeklarasikan variabel dengan menggunakan tipe data yang tepat dalam bahasa C dengan
mempertimbangkan nilai yang dikandung dan penggunaan memori yang tepat.
• Mengetahui konstanta-konstanta yang telah disediakan oleh Bahasa C.
Pembahasan Materi:
• Tipe data
• Deklarasi Konstanta • Deklarasi Variabel
• Pembahasan tipe-tipe data
4.1 Tipe Data
Untuk mendeklarasikan variabel, sebelumnya harus ditentukan tipe datanya terlebih dahulu. Tipe data ini menentukan nilai yang dapat disimpan variabel tersebut dan operator-operator apa saja yang dapat dikenakan padanya. Suatu tipe menyatakan pola penyajian data dalam komputer. Mendefinisikan tipe data berarti :
menentukan nama tipe data itu
mendefinisikan domain nilai yang dapat dimiliki
perjanjian tentang cara menulis tetapan bertipe tersebut
operator yang dapat dioperasikan terhadap data bertipe tersebut
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap perintah yang akan dilaksanakan oleh komputer. Sebagai contoh, variabel x yang bertipe data integer mempunyai nilai 13 akan dibagi oleh y yang bernilai 4 yang bertipe data integer pula, maka hasil pembagiannya adalah 4. Mengapa 13 dibagi 4 bukan 3.25? Karena variabel x dan y keduanya bertipe integer maka hasil operasinya akan menghasilkan nilai yang bertipe integer pula, namun jika keduanya bertipe float maka akan menghasilkan nilai pecahan yaitu 3.25.
27
-----------------------------------------------------Page 1-----------------------------------------------------
•
Tipe data secara umum dapat dikelompokan menjadi dua macam : 1. Tipe dasar / sederhana :
-
-
Bilangan bulat ( integer )
Tipe bilangan bulat adalah tipe yang memiliki keterurutan. Ini artinya, bila sebuah nilai bilangan bulat diketahui, nilai sebelumnya ( predecessor ) dan nilai sesudahnya (successor) dapat ditentukan. Contohnya, predecessor dari 8 adalah 7, sedangkan successor -nya adalah 9. Konstanta untuk nilai bertipe bilangan bulat harus ditulis tanpa mengandung titik desimal.
Sebagai contoh, misalkan diberikan dua buah variabel A dan B, yang masing-masing dideklarasikan sebagai bilangan bulat dalam Bahasa C:
int A, B;
Bilangan pecahan ( floating point )
Bilangan pecahan atau bilangan real adalah bilangan yang mengandung pecahan desimal, misalnya 3.65, 0.0003, 2.60240000E-6, .24, dan lain-lain.
Contoh pendeklarasian bilangan pecahan dalam Bahasa C:
float y = 2.37;
float x = 1.23E2
2
-
-
Karakter ( character )
Tidak seperti tipe bilangan bulat yang digunakan untuk menyimpan data numeris, tipe karakter digunakan untuk menyimpan data alfanumeris, seperti A, Z, @, $, 1, 9, &, *, dan semua kode ASCII. Pemberian nilai untuk tipe data karakter harus diberi tanda petik tunggal (berada diantara tanda petik tunggal).Tipe data ini hanya dapat menampung satu karakter.
Seperti halnya pada tipe bilangan bulat, tipe karakter juga mempunyai ketentuan ( successor dan predecessor ) yang ditentukan oleh cara pengkodeannya di dalam komputer, misalnya pengkodean ASCII.
Bilangan logika ( boolean )
Bilangan logika hanya mengenal dua buah nilai: benar (true) atau salah (false). Istilah “bilangan” pada “bilangan logika” muncul karena nilai “benar” dan “salah” dapat dinyatakan dengan angka 1 dan 0 (atau sebaliknya tergantung konvensi yang digunakan).
Karena jangkauan nilai tipe boolean hanya beranggotakan dua buah nilai, maka konstanta (constant) atau tetapan yang terdapat pada tipe ini adalah true dan false
2. Tipe bentukan :
-
-
-
Larik ( array )
Tipe larik memungkinkan pembuat program dapat mendeklarasikan kumpulan variabel yang bertipe sama (homogen). Karena larik dapat menyimpan lebih dari satu nilai dengan nama dan tipe yang sama maka untuk membedakan antara data satu dengan data lainnya digunakan indeks, pada bahasa C indeks dimulai dari 0. larik selain satu dimensi, juga dapat dideklarasikan sebagai larik multidimensi. Pointer
Pointer adalah variabel yang menunjukkan lokasi memori (alamat dari suatu data yang disimpan) tertentu. String
Tipe string digunakan untuk menyimpan data yang berupa untaian karakter dengan panjang tertentu. Tipe string sebenarnya merupakan pengembangan tipe karakter.
28
keterangan: 1.23E2 dapat dibaca 1.23 * 10 = 123
-----------------------------------------------------Page 2-----------------------------------------------------
-
Rekaman (struct)
Tipe data rekaman (dalam bahasa C dinamakan struct) adalah suatu struktur data yang menggabungkan beberapa data yang mempunyai tipe data yang berbeda (heterogen).
•
Tipe data dalam Bahasa C disediakan lima macam tipe data dasar, yaitu:
Tabel 4.1 Tipe Data Dasar C
Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efektip. Pemilihan tipe data yang tepat tergantung dari range atau jangkauan dari tipe data tersebut. Misalnya akan digunakan tipe data yang menunjukkan gaji pegawai, jika nilai gaji pegawai tersebut memiliki jangkauan dari 0 hingga 5000000 maka tipe data apakah yang akan dipilih?
Jika melihat dari tabel 4.1 maka kita hanya mungkin memilih tipe float atau double, tetapi kedua tipe tersebut
kurang efektip karena kita tidak memerlukan range nilai negatif.
Dari tipe dasar yang disediakan oleh C, tipe data int , float , double dan char dapat dikombinasikan dengan pengubah ( modifier ) signed , unsigned , long dan short . Pengubah signed berarti nilai variabel dapat mempunyai tanda, sehingga dapat menampung nilai negatif dan positif. Kombinasi tipe data tersebut dapat dilihat pada tabel 4.2.
Tabel 4.2 Tipe data dan Modifier
Tipe Data char
signed char
unsigned char
int
Ukuran
8 bit
Jangkauan nilai
-128 s/d 127
0 s/d 255
signed int short int
signed short int
unsigned short int unsigned int long int
16 bit
-32768 s/d 32767
-128 s/d 127
0 s/d 65535
signed long int
unsigned long int
float
double
long double
32 bit
32 bit 64 bit 80 bit
-2147483648 s/d 2147483647
0 s/d 4294967295
3.4E-38 s/d 3.4 E+38 1.7E-308s/d 1.7E+308
3.4E-4932 s/d 1.1E+4932
29
-----------------------------------------------------Page 3-----------------------------------------------------
Berdasarkan tabel 4.2, maka untuk menentukan tipe data yang akan dipilih untuk menyimpan nilai gaji pegawai yang mempunyai nilai antara 0 – 5000000 dapat menggunakan tipe data unsigned long int . Tipe data erat hubungannya dengan konstanta, variabel dan bentuk format penampilan data dalam program. Konstanta yang digunakan oleh program juga dapat ditentukan sesuai dengan tipe dari datanya, apakah termasuk konstanta numerik (integer atau float), konstanta karakter ataukah konstanta string.
4.2 Konstanta
Konstanta adalah suatu nilai yang tetap (tidak berubah) dalam sebuah program. Contoh sebuah konstanta adalah saat kita menetukan sebuah tetapan dengan sebuah nilai, misalnya kita tetapkan pi adalah bernilai 3.14, dalam Bahasa C penetapan konstanta tersebut dapat dilakukan dengan menggunakan preprocessor directive #define .
Listing Program 4.1 Program Prepocessor directive define
#include <stdio.h> #define phi 3.14
main()
{
float r = 5;
Luas Lingkaran = 78.50
float luas;
luas = phi * r * r;
printf(“Luas Lingkaran = %.2f”, luas);
}
Selain menggunakan preprocessor directive #define , dapat juga menggunakan statemen const lalu diikuti
dengan tipe datanya dan nama konstanta lalu nilai yang akan diberikan.
Listing Program 4.2 Program Konstanta
#include <stdio.h>
main() {
const float phi = 3.14;
float r = 5; float luas;
luas = phi * r * r;
#define phi 3.14
const float phi = 3.14;
printf(“Luas Lingkaran = %.2f”, luas);
}
Dengan melihat program di atas, maka dapat dipastikan nilai phi di dalam program tersebut akan tetap nilainya yaitu 3.14. Selain konstanta seperti contoh di atas, Bahasa C juga menyediakan konstanta sesuai dengan tipe data yang disediakan, yaitu konstanta numerik integer, konstanta numerik pecahan, konstanta karakter dan konstanta string.
30
-----------------------------------------------------Page 4-----------------------------------------------------
• Konstanta numerik integer ( integer constant )
Konstanta numerik integer adalah sebuah bilangan bulat. Konstanta numerik integer dapat berupa bilangan basis 10 (desimal) yaitu menggunakan digit 0 sampai dengan 9, basis 8 (oktal) menggunakan digit 0 sampai dengan 7, basis 16 (heksadesimal) menggunakan digit 0 sampai dengan 9 dan ditambah huruf A atau a sampai dengan F atau f (huruf A sebagai pengganti 10 sampai dengan F sebagai pengganti 15). Konstanta oktal dengan penulisan diawali “0” (nol). Konstanta heksadesimal diawali dengan “0x” (nol dan x). Nilai konstanta heksadesimal dan nilai konstanta oktal tidak dapat bernilai negatif dan tidak dapat bernilai pecahan. Berikut ini contoh konstanta numerik ineteger: 23, -6, 0x7b (bernilai 123 dalam decimal), 015 (bernilai 13 dalam desimal).
• Konstanta numerik pecahan ( floating-point constant )
Konstanta numerik pecahan adalah sebuah bilangan pecahan. Tanda desimal dalam bahasa C adalah tanda titik . Konstanta numerik pecahan dapat bernilai ketepatan tunggal ( float ), ketepatan ganda ( double ) atau ketepatan ganda panjang ( long double ). Konstanta numerik pecahan hanya dapat ditulis dalam bentuk nilai desimal. Berikut ini contoh konstanta numerik pecahan: 3.14, 123. (ketepatan tunggal), 23.65E-78 (ketepatan ganda), 1.23E-7890 (ketepatan ganda panjang).
• Konstanta karakter ( character constant ) dan karakter string ( string constant )
Konstanta karakter adalah merupakan nilai sebuah karakter yang ditulis di antara tanda petik tunggal. Konstanta string merupakan nilai sebuah karakter atau lebih yang ditulis di antara petik ganda. Konstanta string sering pula disebut dengan literal string. Berikut ini adalah contoh konstanta karakter dan karakter string:
‘Z’
“Algoritma”
(konstanta karakter huruf Z bernilai ASCII 90). (konstanta string).
• Konstanta karakter escape ( escape sequence )
Konstanta karakter escape adalah karakter yang diawali dengan tanda backslash ( \ ), konstanta karakter escape banyak digunakan di statemen-statemen untuk menampilkan hasil, misalnya untuk menempatkan kursor di baris berikutnya. Berikut ini adalah konstanta karakter escape yang dapat digunakan disajikan dalam tabel 4.3.
Tabel 4.3 Konstanta Karakter Escape
Karakter Escape
\0 \a \b
\f
\n \r \t
\v \\ \’ \”
\?
Nilai ASCII
0x00 0x07 0x08 0x0C 0x0A 0x0D 0x09 0x0B 0x5C 0x27 0x22 0x3F
Karakter
NULL
BEL
BS FF LF
CR HT VT
\ ‘ “
?
Arti
Karakter dengan nilai ASCII=0 ( null ) kosong Bunyi bel ( alert )
Backspace (mundur satu spasi) Formfeed (ganti halaman) Linefeed (ganti baris)
Carriage return (ke awal baris) Tabulator horizontal Tabulator vertical
Backslash (Karakter miring kiri) Karakter petik tunggal Karakter petik ganda Karakter tanda tanya
31
-----------------------------------------------------Page 5-----------------------------------------------------
4.3 Variabel
Variabel adalah suatu pengenal yang digunkan untuk mewakili suatu nilai tertentu di dalam program. Nama
variabel dapat dibuat sendiri oleh pemrogram dengan ketentuan penamaan.
Mendeklarasikan Variabel
Semua variabel yang akan digunakan di dalam program C harus dideklarasikan terlebih dahulu. Deklarasi variabel dimaksudkan untuk memberitahukan compiler C nama variabel dan tipe data yang digunakan sehingga bahasa C dapat mempersiapkan tempat variabel tersebut diletakkan di memori. Bentuk umu pendeklarasian variabel dalam Bahasa C adalah :
Tipedata nama_variabel;
Contoh:
int n1;
float x = 12.3; char kar = ‘X’
//mendeklarasikan n1 yang dapat menampung nilai integer (bilangan bulat) //mendeklarasikan x yang bertipe float dan diberikan nilai awal 12.3
//mendeklarasikan variabel kar bertipe karakter, yang berarti dapat menampung
nilai karakter, variabel kar diberi nilai awal X .
4.4 Contoh Program dan Pembahasan
1. Buatlah program dengan menggunakan bahasa C untuk mengkonversikan panjang dalam yard, kaki (feet), dan inchi ke dalam meter. Sebagai contoh, jika pengguna memasukkan 3 yard, 2 kaki, dan 8 inchi, maka program akan menampilkan keluaran 3 yard = 2,7432 meter; 2 kaki = 0,6096 meter ; 8 inchi = 0,2032 meter; total = 3,556 meter.
Jawab:
Berdasarkan soal di atas maka kita harus mengetahui tabel konversi yard, kaki, dan inchi, ke SI (satuan Internasional). Berikut ini adalah tabel konversi yard, kaki dan inchi ke meter.
-3
1 kaki = 30,48 cm = 30,48 * 10 -2 meter
1 yard = 0,9144 meter
1 yard = 3 kaki
1 kaki = 12 inchi
Algoritma pengkonversian yard, kaki, inchi ke meter berdasarkan
Algoritma Konversi Ukuran
Deklarasi variabel yard, kaki, inch dengan tipe data float
permasalahan
di
atas
dapat
Deklarasi variabel y,k,i, totalMeter dengan tipe data float
dituliskan sebagai berikut:
1. masukkan yard, kaki, inchi
2. hitung y = 0.9144 * yard 3. hitung k = 0.3048 * kaki 4. hitung i = 0.0254 * inchi
(konversi dari yard ke meter) (konversi dari kaki ke meter) (konversi dari inchi ke meter)
5. hitung totalMeter = y + k + i
6. tulis y, k, i dan totalMeter
32
1 inchi = 25,4 mm = 25,4 * 10 meter
-----------------------------------------------------Page 6-----------------------------------------------------
Listing Program 4.3 Program Konversi Ukuran
#include <stdio.h>
void main() {
float yard, kaki, inchi; float y,k,i,meter;
printf("Masukkan Yard = "); //untuk input yard scanf("%f", &yard);
printf("Masukkan Kaki = "); //untuk input kaki scanf("%f", &kaki);
printf("Masukkan Inchi = "); //untuk input inchi scanf("%f", &inchi);
y= 0.9144 * yard; k= 0.3048 * kaki; i= 0.0254 * inchi;
meter= y+k+i;
//hitung konversi yard ke meter //hitung konversi kaki ke meter //hitung konversi inchi ke meter
//hitung total seluruh konversi ke meter
printf("%.2f printf("%.2f printf("%.2f printf("%.2f
Yard = %.3f Meter\n", yard,y); Kaki = %.3f Meter\n", kaki,k); Inchi = %.3f Meter\n", inchi,k);
Yard %.2f Kaki %.2f Inchi = %.3f Meter\n",yard,kaki,inchi,meter);
}
Output:
Masukkan Yard = 3 Masukkan Kaki = 2 Masukkan Inchi = 8
3.00 Yard = 2.743 meter 2.00 Kaki = 0.610 meter 8.00 Inchi = 0.203 meter
3.00 Yard 2.00 Kaki 8.00 Inchi = 3.556 meter
2. Buatlah program untuk mencari total detik dari masukan berupa jam, menit dan detik. Masukan dari program adalah nilai jam, menit dan detik yang merupakan bilangan bulat. Keluaran yang diminta adalah total detik dari nilai-nilai yang dimasukkan.
Jawab:
Untuk mendapatkan total detik maka dapat dihitung dengan menggunakan perhitungan berikut: Total_detik = (3600 * jam )+ (60 * menit) + detik
Algoritma Menghitung Total Detik
Deklarasi variabel jam, menit, detik dengan tipe data integer Deklarasi variabel totalDetik dengan tipe data long integer
1. masukkan jam, menit dan detik
2. hitung totalDetik = (3600 * jam )+ (60 * menit) + detik 3. cetak totalDetik
33
-----------------------------------------------------Page 7-----------------------------------------------------
Listing Program 4.4 Program Menghitung Detik
#include <stdio.h>
void main() {
int jam, menit, detik; int totalDetik;
printf("Masukkan Jam = "); scanf("%d", &jam); printf("Masukkan Menit = "); scanf("%d", &menit); printf("Masukkan Detik = "); scanf("%d", &detik);
totalDetik = (3600 * jam )+ (60 * menit) + detik;
printf("\n%d: %d: %d = %d Detik",jam,menit,detik,totalDetik);
}
Output:
Masukkan Jam = 2
Masukkan Menit = 3 Masukkan Detik = 4
2: 3: 4 = 7384 Detik
Latihan:
1. Jawablah dengan singkat pertanyaan di bawah ini:
a. Untuk mengolah Nomer Induk Mahasiswa (NIM) sebaiknya menggunakan tipe data? b. Apa perbedaan antara variabel dengan konstanta?
c.
Bagaimana cara pendeklarasian konstanta dalam bahasa C?
d. Konstanta karakter escape untuk memindahkan kursor ke baris baru adalah? e. Tuliskan bentuk umum pendeklarasian variabel dalam bahasa C
2. Buatlah algoritma untuk mencari volume dan luas permukaan bola apabila beri masukan berupa nilai jari-jari bola. Masukan yang diinginkan adalah jari-jari bola dengan tipe bilangan pecahan. Keluaran yang diharapkan adalah volume dan luas bola.
3. Tulislah algoritma untuk mencari berat badan ideal seseorang, jika diketahui tinggi badannya. Sebagai contoh,
jika tinggi badan yang dimasukkan adalah 160 cm, maka berat badan ideal adalah 54 kg.
Masukan yang dinginkan adalah tinggi badan (dalam satuan cm) yang bertipe bilangan bulat, dimana 30 ≤ tinggi badan ≤ 255.
Keluaran yang diinginkan adalah berat badan ideal (dalam Kg) yang bertipe bilangan bulat.
Petunjuk:
Untuk mendapatkan berat badan ideal didapatkan dengan cara mengurangi tinggi badan dengan 100, kemudian mengurangi lagi dengan 10% dari hasil pengurangan sebelumnya. Sebagai contoh: Tinggi badan : 160
Berat badan ideal = (tinggi badan – 100) – 0.1 * (tinggi badan – 100)
= 160 – 100 – 0.1 * (160 – 100) = 60 – 6 = 54
34
-----------------------------------------------------Page 8-----------------------------------------------------
Tugas Mandiri:
1. Tulislah program dalam bahasa C untuk soal nomor 2 dari latihan di atas.
2. Buatlah program dalam bahasa C dari permasalahan nomor 3 dari soal latihan di atas.
==============
Referensi:
Achmad Solichin, Pemrograman Bahasa C dengan Turbo C , www.ilmukomputer.com , 2003
Antony Pranata, Algoritma dan Pemrograman , J&J Learning, Yogyakarta, 2000
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
35
-----------------------------------------------------Page 9-----------------------------------------------------
4
Tujuan Instruksi Umum (TIU):
Mampu mendeklarasikan variabel dan konstanta dengan menggunakan tipe data yang benar sehingga dapat menghasilkan program dalam Bahasa C.
Tujuan Instruksi Khusus (TIK):
• Mengetahui tipe data dasar dan tipe data bentukan secara umum dalam pemrograman. • Mengetahui tipe data yang telah disediakan oleh Bahasa C.
• Mampu mendeklarasikan variabel dengan menggunakan tipe data yang tepat dalam bahasa C dengan
mempertimbangkan nilai yang dikandung dan penggunaan memori yang tepat.
• Mengetahui konstanta-konstanta yang telah disediakan oleh Bahasa C.
Pembahasan Materi:
• Tipe data
• Deklarasi Konstanta • Deklarasi Variabel
• Pembahasan tipe-tipe data
4.1 Tipe Data
Untuk mendeklarasikan variabel, sebelumnya harus ditentukan tipe datanya terlebih dahulu. Tipe data ini menentukan nilai yang dapat disimpan variabel tersebut dan operator-operator apa saja yang dapat dikenakan padanya. Suatu tipe menyatakan pola penyajian data dalam komputer. Mendefinisikan tipe data berarti :
menentukan nama tipe data itu
mendefinisikan domain nilai yang dapat dimiliki
perjanjian tentang cara menulis tetapan bertipe tersebut
operator yang dapat dioperasikan terhadap data bertipe tersebut
Tipe data merupakan bagian program yang paling penting karena tipe data mempengaruhi setiap perintah yang akan dilaksanakan oleh komputer. Sebagai contoh, variabel x yang bertipe data integer mempunyai nilai 13 akan dibagi oleh y yang bernilai 4 yang bertipe data integer pula, maka hasil pembagiannya adalah 4. Mengapa 13 dibagi 4 bukan 3.25? Karena variabel x dan y keduanya bertipe integer maka hasil operasinya akan menghasilkan nilai yang bertipe integer pula, namun jika keduanya bertipe float maka akan menghasilkan nilai pecahan yaitu 3.25.
27
-----------------------------------------------------Page 1-----------------------------------------------------
•
Tipe data secara umum dapat dikelompokan menjadi dua macam : 1. Tipe dasar / sederhana :
-
-
Bilangan bulat ( integer )
Tipe bilangan bulat adalah tipe yang memiliki keterurutan. Ini artinya, bila sebuah nilai bilangan bulat diketahui, nilai sebelumnya ( predecessor ) dan nilai sesudahnya (successor) dapat ditentukan. Contohnya, predecessor dari 8 adalah 7, sedangkan successor -nya adalah 9. Konstanta untuk nilai bertipe bilangan bulat harus ditulis tanpa mengandung titik desimal.
Sebagai contoh, misalkan diberikan dua buah variabel A dan B, yang masing-masing dideklarasikan sebagai bilangan bulat dalam Bahasa C:
int A, B;
Bilangan pecahan ( floating point )
Bilangan pecahan atau bilangan real adalah bilangan yang mengandung pecahan desimal, misalnya 3.65, 0.0003, 2.60240000E-6, .24, dan lain-lain.
Contoh pendeklarasian bilangan pecahan dalam Bahasa C:
float y = 2.37;
float x = 1.23E2
2
-
-
Karakter ( character )
Tidak seperti tipe bilangan bulat yang digunakan untuk menyimpan data numeris, tipe karakter digunakan untuk menyimpan data alfanumeris, seperti A, Z, @, $, 1, 9, &, *, dan semua kode ASCII. Pemberian nilai untuk tipe data karakter harus diberi tanda petik tunggal (berada diantara tanda petik tunggal).Tipe data ini hanya dapat menampung satu karakter.
Seperti halnya pada tipe bilangan bulat, tipe karakter juga mempunyai ketentuan ( successor dan predecessor ) yang ditentukan oleh cara pengkodeannya di dalam komputer, misalnya pengkodean ASCII.
Bilangan logika ( boolean )
Bilangan logika hanya mengenal dua buah nilai: benar (true) atau salah (false). Istilah “bilangan” pada “bilangan logika” muncul karena nilai “benar” dan “salah” dapat dinyatakan dengan angka 1 dan 0 (atau sebaliknya tergantung konvensi yang digunakan).
Karena jangkauan nilai tipe boolean hanya beranggotakan dua buah nilai, maka konstanta (constant) atau tetapan yang terdapat pada tipe ini adalah true dan false
2. Tipe bentukan :
-
-
-
Larik ( array )
Tipe larik memungkinkan pembuat program dapat mendeklarasikan kumpulan variabel yang bertipe sama (homogen). Karena larik dapat menyimpan lebih dari satu nilai dengan nama dan tipe yang sama maka untuk membedakan antara data satu dengan data lainnya digunakan indeks, pada bahasa C indeks dimulai dari 0. larik selain satu dimensi, juga dapat dideklarasikan sebagai larik multidimensi. Pointer
Pointer adalah variabel yang menunjukkan lokasi memori (alamat dari suatu data yang disimpan) tertentu. String
Tipe string digunakan untuk menyimpan data yang berupa untaian karakter dengan panjang tertentu. Tipe string sebenarnya merupakan pengembangan tipe karakter.
28
keterangan: 1.23E2 dapat dibaca 1.23 * 10 = 123
-----------------------------------------------------Page 2-----------------------------------------------------
-
Rekaman (struct)
Tipe data rekaman (dalam bahasa C dinamakan struct) adalah suatu struktur data yang menggabungkan beberapa data yang mempunyai tipe data yang berbeda (heterogen).
•
Tipe data dalam Bahasa C disediakan lima macam tipe data dasar, yaitu:
Tabel 4.1 Tipe Data Dasar C
Pemilihan tipe data yang tepat akan membuat proses operasi data menjadi lebih efektip. Pemilihan tipe data yang tepat tergantung dari range atau jangkauan dari tipe data tersebut. Misalnya akan digunakan tipe data yang menunjukkan gaji pegawai, jika nilai gaji pegawai tersebut memiliki jangkauan dari 0 hingga 5000000 maka tipe data apakah yang akan dipilih?
Jika melihat dari tabel 4.1 maka kita hanya mungkin memilih tipe float atau double, tetapi kedua tipe tersebut
kurang efektip karena kita tidak memerlukan range nilai negatif.
Dari tipe dasar yang disediakan oleh C, tipe data int , float , double dan char dapat dikombinasikan dengan pengubah ( modifier ) signed , unsigned , long dan short . Pengubah signed berarti nilai variabel dapat mempunyai tanda, sehingga dapat menampung nilai negatif dan positif. Kombinasi tipe data tersebut dapat dilihat pada tabel 4.2.
Tabel 4.2 Tipe data dan Modifier
Tipe Data char
signed char
unsigned char
int
Ukuran
8 bit
Jangkauan nilai
-128 s/d 127
0 s/d 255
signed int short int
signed short int
unsigned short int unsigned int long int
16 bit
-32768 s/d 32767
-128 s/d 127
0 s/d 65535
signed long int
unsigned long int
float
double
long double
32 bit
32 bit 64 bit 80 bit
-2147483648 s/d 2147483647
0 s/d 4294967295
3.4E-38 s/d 3.4 E+38 1.7E-308s/d 1.7E+308
3.4E-4932 s/d 1.1E+4932
29
-----------------------------------------------------Page 3-----------------------------------------------------
Berdasarkan tabel 4.2, maka untuk menentukan tipe data yang akan dipilih untuk menyimpan nilai gaji pegawai yang mempunyai nilai antara 0 – 5000000 dapat menggunakan tipe data unsigned long int . Tipe data erat hubungannya dengan konstanta, variabel dan bentuk format penampilan data dalam program. Konstanta yang digunakan oleh program juga dapat ditentukan sesuai dengan tipe dari datanya, apakah termasuk konstanta numerik (integer atau float), konstanta karakter ataukah konstanta string.
4.2 Konstanta
Konstanta adalah suatu nilai yang tetap (tidak berubah) dalam sebuah program. Contoh sebuah konstanta adalah saat kita menetukan sebuah tetapan dengan sebuah nilai, misalnya kita tetapkan pi adalah bernilai 3.14, dalam Bahasa C penetapan konstanta tersebut dapat dilakukan dengan menggunakan preprocessor directive #define .
Listing Program 4.1 Program Prepocessor directive define
#include <stdio.h> #define phi 3.14
main()
{
float r = 5;
Luas Lingkaran = 78.50
float luas;
luas = phi * r * r;
printf(“Luas Lingkaran = %.2f”, luas);
}
Selain menggunakan preprocessor directive #define , dapat juga menggunakan statemen const lalu diikuti
dengan tipe datanya dan nama konstanta lalu nilai yang akan diberikan.
Listing Program 4.2 Program Konstanta
#include <stdio.h>
main() {
const float phi = 3.14;
float r = 5; float luas;
luas = phi * r * r;
#define phi 3.14
const float phi = 3.14;
printf(“Luas Lingkaran = %.2f”, luas);
}
Dengan melihat program di atas, maka dapat dipastikan nilai phi di dalam program tersebut akan tetap nilainya yaitu 3.14. Selain konstanta seperti contoh di atas, Bahasa C juga menyediakan konstanta sesuai dengan tipe data yang disediakan, yaitu konstanta numerik integer, konstanta numerik pecahan, konstanta karakter dan konstanta string.
30
-----------------------------------------------------Page 4-----------------------------------------------------
• Konstanta numerik integer ( integer constant )
Konstanta numerik integer adalah sebuah bilangan bulat. Konstanta numerik integer dapat berupa bilangan basis 10 (desimal) yaitu menggunakan digit 0 sampai dengan 9, basis 8 (oktal) menggunakan digit 0 sampai dengan 7, basis 16 (heksadesimal) menggunakan digit 0 sampai dengan 9 dan ditambah huruf A atau a sampai dengan F atau f (huruf A sebagai pengganti 10 sampai dengan F sebagai pengganti 15). Konstanta oktal dengan penulisan diawali “0” (nol). Konstanta heksadesimal diawali dengan “0x” (nol dan x). Nilai konstanta heksadesimal dan nilai konstanta oktal tidak dapat bernilai negatif dan tidak dapat bernilai pecahan. Berikut ini contoh konstanta numerik ineteger: 23, -6, 0x7b (bernilai 123 dalam decimal), 015 (bernilai 13 dalam desimal).
• Konstanta numerik pecahan ( floating-point constant )
Konstanta numerik pecahan adalah sebuah bilangan pecahan. Tanda desimal dalam bahasa C adalah tanda titik . Konstanta numerik pecahan dapat bernilai ketepatan tunggal ( float ), ketepatan ganda ( double ) atau ketepatan ganda panjang ( long double ). Konstanta numerik pecahan hanya dapat ditulis dalam bentuk nilai desimal. Berikut ini contoh konstanta numerik pecahan: 3.14, 123. (ketepatan tunggal), 23.65E-78 (ketepatan ganda), 1.23E-7890 (ketepatan ganda panjang).
• Konstanta karakter ( character constant ) dan karakter string ( string constant )
Konstanta karakter adalah merupakan nilai sebuah karakter yang ditulis di antara tanda petik tunggal. Konstanta string merupakan nilai sebuah karakter atau lebih yang ditulis di antara petik ganda. Konstanta string sering pula disebut dengan literal string. Berikut ini adalah contoh konstanta karakter dan karakter string:
‘Z’
“Algoritma”
(konstanta karakter huruf Z bernilai ASCII 90). (konstanta string).
• Konstanta karakter escape ( escape sequence )
Konstanta karakter escape adalah karakter yang diawali dengan tanda backslash ( \ ), konstanta karakter escape banyak digunakan di statemen-statemen untuk menampilkan hasil, misalnya untuk menempatkan kursor di baris berikutnya. Berikut ini adalah konstanta karakter escape yang dapat digunakan disajikan dalam tabel 4.3.
Tabel 4.3 Konstanta Karakter Escape
Karakter Escape
\0 \a \b
\f
\n \r \t
\v \\ \’ \”
\?
Nilai ASCII
0x00 0x07 0x08 0x0C 0x0A 0x0D 0x09 0x0B 0x5C 0x27 0x22 0x3F
Karakter
NULL
BEL
BS FF LF
CR HT VT
\ ‘ “
?
Arti
Karakter dengan nilai ASCII=0 ( null ) kosong Bunyi bel ( alert )
Backspace (mundur satu spasi) Formfeed (ganti halaman) Linefeed (ganti baris)
Carriage return (ke awal baris) Tabulator horizontal Tabulator vertical
Backslash (Karakter miring kiri) Karakter petik tunggal Karakter petik ganda Karakter tanda tanya
31
-----------------------------------------------------Page 5-----------------------------------------------------
4.3 Variabel
Variabel adalah suatu pengenal yang digunkan untuk mewakili suatu nilai tertentu di dalam program. Nama
variabel dapat dibuat sendiri oleh pemrogram dengan ketentuan penamaan.
Mendeklarasikan Variabel
Semua variabel yang akan digunakan di dalam program C harus dideklarasikan terlebih dahulu. Deklarasi variabel dimaksudkan untuk memberitahukan compiler C nama variabel dan tipe data yang digunakan sehingga bahasa C dapat mempersiapkan tempat variabel tersebut diletakkan di memori. Bentuk umu pendeklarasian variabel dalam Bahasa C adalah :
Tipedata nama_variabel;
Contoh:
int n1;
float x = 12.3; char kar = ‘X’
//mendeklarasikan n1 yang dapat menampung nilai integer (bilangan bulat) //mendeklarasikan x yang bertipe float dan diberikan nilai awal 12.3
//mendeklarasikan variabel kar bertipe karakter, yang berarti dapat menampung
nilai karakter, variabel kar diberi nilai awal X .
4.4 Contoh Program dan Pembahasan
1. Buatlah program dengan menggunakan bahasa C untuk mengkonversikan panjang dalam yard, kaki (feet), dan inchi ke dalam meter. Sebagai contoh, jika pengguna memasukkan 3 yard, 2 kaki, dan 8 inchi, maka program akan menampilkan keluaran 3 yard = 2,7432 meter; 2 kaki = 0,6096 meter ; 8 inchi = 0,2032 meter; total = 3,556 meter.
Jawab:
Berdasarkan soal di atas maka kita harus mengetahui tabel konversi yard, kaki, dan inchi, ke SI (satuan Internasional). Berikut ini adalah tabel konversi yard, kaki dan inchi ke meter.
-3
1 kaki = 30,48 cm = 30,48 * 10 -2 meter
1 yard = 0,9144 meter
1 yard = 3 kaki
1 kaki = 12 inchi
Algoritma pengkonversian yard, kaki, inchi ke meter berdasarkan
Algoritma Konversi Ukuran
Deklarasi variabel yard, kaki, inch dengan tipe data float
permasalahan
di
atas
dapat
Deklarasi variabel y,k,i, totalMeter dengan tipe data float
dituliskan sebagai berikut:
1. masukkan yard, kaki, inchi
2. hitung y = 0.9144 * yard 3. hitung k = 0.3048 * kaki 4. hitung i = 0.0254 * inchi
(konversi dari yard ke meter) (konversi dari kaki ke meter) (konversi dari inchi ke meter)
5. hitung totalMeter = y + k + i
6. tulis y, k, i dan totalMeter
32
1 inchi = 25,4 mm = 25,4 * 10 meter
-----------------------------------------------------Page 6-----------------------------------------------------
Listing Program 4.3 Program Konversi Ukuran
#include <stdio.h>
void main() {
float yard, kaki, inchi; float y,k,i,meter;
printf("Masukkan Yard = "); //untuk input yard scanf("%f", &yard);
printf("Masukkan Kaki = "); //untuk input kaki scanf("%f", &kaki);
printf("Masukkan Inchi = "); //untuk input inchi scanf("%f", &inchi);
y= 0.9144 * yard; k= 0.3048 * kaki; i= 0.0254 * inchi;
meter= y+k+i;
//hitung konversi yard ke meter //hitung konversi kaki ke meter //hitung konversi inchi ke meter
//hitung total seluruh konversi ke meter
printf("%.2f printf("%.2f printf("%.2f printf("%.2f
Yard = %.3f Meter\n", yard,y); Kaki = %.3f Meter\n", kaki,k); Inchi = %.3f Meter\n", inchi,k);
Yard %.2f Kaki %.2f Inchi = %.3f Meter\n",yard,kaki,inchi,meter);
}
Output:
Masukkan Yard = 3 Masukkan Kaki = 2 Masukkan Inchi = 8
3.00 Yard = 2.743 meter 2.00 Kaki = 0.610 meter 8.00 Inchi = 0.203 meter
3.00 Yard 2.00 Kaki 8.00 Inchi = 3.556 meter
2. Buatlah program untuk mencari total detik dari masukan berupa jam, menit dan detik. Masukan dari program adalah nilai jam, menit dan detik yang merupakan bilangan bulat. Keluaran yang diminta adalah total detik dari nilai-nilai yang dimasukkan.
Jawab:
Untuk mendapatkan total detik maka dapat dihitung dengan menggunakan perhitungan berikut: Total_detik = (3600 * jam )+ (60 * menit) + detik
Algoritma Menghitung Total Detik
Deklarasi variabel jam, menit, detik dengan tipe data integer Deklarasi variabel totalDetik dengan tipe data long integer
1. masukkan jam, menit dan detik
2. hitung totalDetik = (3600 * jam )+ (60 * menit) + detik 3. cetak totalDetik
33
-----------------------------------------------------Page 7-----------------------------------------------------
Listing Program 4.4 Program Menghitung Detik
#include <stdio.h>
void main() {
int jam, menit, detik; int totalDetik;
printf("Masukkan Jam = "); scanf("%d", &jam); printf("Masukkan Menit = "); scanf("%d", &menit); printf("Masukkan Detik = "); scanf("%d", &detik);
totalDetik = (3600 * jam )+ (60 * menit) + detik;
printf("\n%d: %d: %d = %d Detik",jam,menit,detik,totalDetik);
}
Output:
Masukkan Jam = 2
Masukkan Menit = 3 Masukkan Detik = 4
2: 3: 4 = 7384 Detik
Latihan:
1. Jawablah dengan singkat pertanyaan di bawah ini:
a. Untuk mengolah Nomer Induk Mahasiswa (NIM) sebaiknya menggunakan tipe data? b. Apa perbedaan antara variabel dengan konstanta?
c.
Bagaimana cara pendeklarasian konstanta dalam bahasa C?
d. Konstanta karakter escape untuk memindahkan kursor ke baris baru adalah? e. Tuliskan bentuk umum pendeklarasian variabel dalam bahasa C
2. Buatlah algoritma untuk mencari volume dan luas permukaan bola apabila beri masukan berupa nilai jari-jari bola. Masukan yang diinginkan adalah jari-jari bola dengan tipe bilangan pecahan. Keluaran yang diharapkan adalah volume dan luas bola.
3. Tulislah algoritma untuk mencari berat badan ideal seseorang, jika diketahui tinggi badannya. Sebagai contoh,
jika tinggi badan yang dimasukkan adalah 160 cm, maka berat badan ideal adalah 54 kg.
Masukan yang dinginkan adalah tinggi badan (dalam satuan cm) yang bertipe bilangan bulat, dimana 30 ≤ tinggi badan ≤ 255.
Keluaran yang diinginkan adalah berat badan ideal (dalam Kg) yang bertipe bilangan bulat.
Petunjuk:
Untuk mendapatkan berat badan ideal didapatkan dengan cara mengurangi tinggi badan dengan 100, kemudian mengurangi lagi dengan 10% dari hasil pengurangan sebelumnya. Sebagai contoh: Tinggi badan : 160
Berat badan ideal = (tinggi badan – 100) – 0.1 * (tinggi badan – 100)
= 160 – 100 – 0.1 * (160 – 100) = 60 – 6 = 54
34
-----------------------------------------------------Page 8-----------------------------------------------------
Tugas Mandiri:
1. Tulislah program dalam bahasa C untuk soal nomor 2 dari latihan di atas.
2. Buatlah program dalam bahasa C dari permasalahan nomor 3 dari soal latihan di atas.
==============
Referensi:
Achmad Solichin, Pemrograman Bahasa C dengan Turbo C , www.ilmukomputer.com , 2003
Antony Pranata, Algoritma dan Pemrograman , J&J Learning, Yogyakarta, 2000
Cheltenham Computer Training, C Programming , www.cctglobal.com , United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition , Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa C , Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C , Salemba Teknika, Jakarta, 2004
☺☺☺
35
-----------------------------------------------------Page 9-----------------------------------------------------
0 Response to "KONSEP TIPE DATA"
Post a Comment