BAB III
TIPE DATA BENTUKAN DAN OPERATOR
III.1 Tipe Data Bentukan
Tipe data bentukan adalah tipe data yang dibuat sendiri sesuai kebutuhan dalam program yang akan kita buat (disebut juga user defined types). Adapun yang termasuk ke dalam tipe bentukan adalah:
1) Struktur
Struktur adalah tipe data bentukan yang menyimpan lebih dari satu variabel bertipe sama maupun berbeda. Untuk mumbuat tipe data struktur dalam C, menggunakan kata kunci struct. Bentuk umum pendeklarasian tipe:
2) Enumerasi
Tipe Enumerasi adalah tipe data yang nilainya terbatas pada nilao-nilai yang telah didefinisikan saja. Tipe ini digunakan untuk membentuk tipe data yang nilainya bersifat pasti. Misalnya nama hari, jenis kelamin dan seterusnya.
Contoh: enum jenis_kelami(pria, wanita)
enum hari (minggu, senin, selasa, rabu, kamis, jumat, sabtu) Struct nama struktur {
Tipe_data variabel1; Tipe_data variabel2; ...
}
Bentuk Umum :
enum nama_tipe (nilai1, nilai2, nilai3, ...)
Contoh Program 1
Contoh Algoritma 1:
//Membuat tipe enum dengan namahari #include <stdio.h>
main() {
enum Namahari{Minggu, Senin, Selasa, Rabu, Kamis, Jumat,Sabtu};
printf("%d, ", Minggu); printf("%d, ", Senin); printf("%d, ", Selasa); printf("%d, ", Rabu); printf("%d, ", Kamis); printf("%d, ", Jumat); printf("%d, ", Sabtu); }
Algoritma Menampilkan nama siswa
{Membuat tipe struktur dengan nama siswa}
Deklarasi
Type Siswa <NIS[8], Nama[25], Alamat[20], Kota[15] : string> : A : Siswa
Deskripsi Read(A.NIS) Read(A.Nama) Read(A.Alamat) Read(A.Kota)
III.1 Operator
Operator digunakan untuk menyatakan suatu perhitungan/operasi. Operator dapat terbagi atas: Operator penugasan, Operator aritmatika, Operator hubungan (perbandingan), Operator logika, Operator bitwise dan operator unary.
 Operator Penugasan
Operator Penugasan (Assignment operator) dalam bahasa C berupa tanda sama dengan (“=”). Contoh operator penugasan: nilai = 50; z = x * y;. Artinya: variabel “nilai” diisi oleh 50 dan variabel “z” diisi oleh hasil perkalian x dan y
 Operator Aritmatika
Dalam bahasa C disediakan lima operator aritmatika, yaitu:  * : untuk perkalian
 / : untuk pembagian
 % : untuk sisa pembagian (modulus)
 + : untuk pertambahan
 - : untuk pengurangan
Catatan: operator % digunakan untuk mencari sisa pembagian antara dua bilangan, misalnya : 9 % 2 = 1.
Contoh Program 2
//program penggunaan operator aritmetika: #include "stdio.h"
#include "conio.h" main()
{
printf("Nilai 9 + 4 = %i\n", 9 + 4); printf("Nilai 9 - 4 = %i\n", 9 - 4); printf("Nilai 9 * 4 = %i\n", 9 * 4); printf("Nilai 9 / 4 = %i\n", 9 / 4);
 Operator Hubungan (Perbandingan)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variabel). Operator-operator hubungan dalam bahasa C adalah sebagai berikut:
Tabel 3.1 Operator-operator Perbandinngan
Operato r
Arti Contoh
< Kurang dari x < y Apakah x kurang dari y <= Kurang dari sama
x >= y Apakah x lebih dari sama dengan y
= = Sama dengan x = = y
Apakah x sama dengan y
!= Tidak sama dengan x != y Apakah x tidak sama dengan y
Contoh Program 3
 Operator Logika
Jika operator hubungan membandingkan hubungan antara dua buah operand, maka operator logika digunakan untuk membandingkan logika hasil dari operator-operator hubungan. Operator logika ada tiga macam, yaitu :
a) && : Logika AND (dan) b) || : Logika OR (atau) c) ! : Logika NOT (ingkaran)
 Operator Bitwise
Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di memori. Operator bitwise dalam bahasa C :
 << : Pergeseran bit ke kiri  >> : Pergeseran bit ke kanan  & : Bitwise AND
 ^ : Bitwise XOR (exclusive OR)
 | : Bitwise OR
 ~ : Bitwise NOT
 Operator Unary
Operator Unary merupakan operator yang hanya membutuhkan satu operand saja. Dalam bahasa C terdapat beberapa operator unary yang sering digunakan, yaitu :
Tabel 3.2 Beberapa Operator Unary
Operato r
Arti/Maksud Letak Contoh Equivalen
- Unary minus Sebelum operator A+-B*C A + (-B)*C ++ Peningkatan dengan
penambahan nilai 1
Sebelum dan sesudah
A++ A = A + 1
-- Penurunan dengan pengurangan nilai 1
Contoh Program 4
III.2 Input dan Output
III.3.1 Memasukkan Data
Dalam bahasa C proses pemasukkan data bisa menggunakan beberapa fungsi yang sudah tersedia di dalam program bahasa C (fungsi pustaka). Beberapa fungsi pustaka yang bisa digunakan adalah:
1. scanf()
Fungsi ini digunakan untuk menginput data berupa data numerik, karakter dan string secara terformat. Hal-hal yang perlu diperhatikan dalam pemakaian fungsi scanf() :
a. Fungsi scanf() memakai penentu format
b. Fungsi scanf() memberi pergantian baris secara otomatis c. Fungsi scanf() tidak memerlukan penentu lebar field d. Variabelnya harus menggunakan operator alamat & /* Perbedaan operator peningkatan ++ yang diletakkan di depan dan dibelakang operand */ #include <stdio.h>
#include <conio.h> void main()
{ int X, Nilai; X = 5; Y = 10;
Nilai = ++X; /* berarti X = X + 1; Nilai = X; */ printf("Nilai = %d, X = %d\n", Nilai, X);
nilai = x++; /* berarti Nilai = X; Nilai = X + 1; */ printf("Nilai = %d, X = %d\n", Nilai, X);
nilai = --Y; /* berarti Y = Y - 1; Nilai = Y; */ printf("Nilai = %d, Y = %d\n", Nilai, Y);
nilai = Y--; /* berarti Nilai = Y; Y = Y - 1; */ printf("Nilai = %d, Y = %d\n", Nilai, Y);
Kode penentu format :
%c : Membaca sebuah karakter %s : Membaca sebuah string %i, %d : Membaca sebuah
bilangan bulat (integer) %f, %e : Membaca sebuah
bilangan pecahan (real)
%o : membaca sebuah bilangan octal
%x : Membaca sebuah bilangan heksadesimal
%u Membaca sebuah bilangan tak bertanda
2. gets()
Fungsi gets() digunakan untuk memasukkan data bertipe karakter dan tidak dapat digunakan untuk memasukkan data numerik.
3. getchar()
Fungsi getchar() digunakan untuk membaca data yang bertipe karakter
4. getch() dan getche()
Fungsi getch() dan getche() digunakan untuk membaca data karakter.
III.3.2 Menampilkan Data 1. Menampilkan Data ke Layar Monitor
Menggunakan fungsi printf() digunakan untuk menampilkan semua jenis data (numerik dan karakter). Fungsi puts() digunakan untuk menampilkan data string dan secara otomatis akan diakhiri dengan perpindahan baris. Fungsi putchar() digunakan untuk menampilkan sebuah karakter. Mengatur tampilan bilangan pecahan (float). Bentuk umum : printf(“%m.nf”, argument);
Keterangan:
m : menyatakan panjang range
n : menyatakan jumlah digit di belakang koma. argument : nilai atau variabel yang akan ditampilkan.
2. Menampilkan data ke printer
Untuk menampilkan data ke printer dapat menggunakan fungsi fprintf(), fputs() dan fputc().
o Fungsi fprintf(): digunakan untuk mencetak semua jenis tipe data ke printer dan secara otomatis memberikan efek perpindahan baris.
o Fungsi fputs(): digunakan untuk mencetak tipe data string ke printer
o Fungsi fputc(): digunakan untuk mencetak tipe data karakter ke printer
3. Mengenal Karakter Escape
Karakter escape adalah sebuah karakter yang ditulis dengan awalan tanda \ tabel 3.3 memperlihatkan karakter escape pada C dan C++.
Tabel 3.2 Daftar Karakter escape
Karakter Keterangan
\0 Karakter NULL (tulisannya berupa \ dan angka nol)
\a Karakter bel
\b Karakter backspace
\f Formfeed
\n Linefeed(disebut juga newline atau pindah baris)
\r Carriage return
\t Tab horizontal
\v Tab Vertikal
\\ Karakter \
\’ Karakter petik tunggal
\” Karaker petik ganda
\? Karakter tanda Tanya
\DDD Menyatakan sebuah karakter yang nilai ASCIInya sama dengan nilai oktal DDD
\xHH Menyatakan sebuah karakter yang nilai ASCIInya sama dengan nilai heksadesimal HH
III.3 Fungsi Operasi String
Menggunakan fungsi string pada C harus mencantumkan header file “string.h” pada header file program. Terdapat beberapa fungsi operasi string diantaranya adalah
 Berfungsi untuk menyalin suatu string asal ke variable string tujuan.
 Bentuk umum : strcpy(var_tujuan, string_asal);
b) strlen()
 berfungsi untuk memperoleh jumlah karakter dari suatu string.
 Bentuk umum : strlen(string);
c) strcat()
 Digunakan untuk menambahkan string sumber ke bagian akhir dari string tujuan.
 Bentuk umum : strcat(tujuan, sumber);
d) strupr()
 Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital.
 Bentuk umum : strupr(string);
e) strlwr()
 Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf kecil semua.
 Bentuk umum : strlwr(string);
f) strcmp()
 Digunakan untuk membandingkan dua buah string.
 Hasil dari fungsi ini bertipe integer dengan nilai :
Negative, jika string pertama kurang dari string kedua. Nol, jika string pertama sama dengan string kedua Positif, jika string pertama lebih besar dari string kedua.
 Bentuk umum : strcmp(string1, string2);
III.4 Fungsi Operasi Karakter
Menggunakan fungsi karakter pada C harus mencantumkan header file “ctype.h” pada header file program. Terdapat beberapa fungsi operasi karakter diantaranya adalah
a) islower()
 Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kecil.
b) isupper()
 Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital.
 Bentuk umum : isupper(char);
c) isdigit()
 Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit.
 Bentuk umum : isdigit(char);
d) tolower()
 Fungsi akan mengubah huruf capital menjadi huruf kecil.
 Bentuk umum : tolower(char);
e) toupper()
 Fungsi akan mengubah huruf kecil menjadi huruf kapital.
 Bentuk umum : toupper(char);
III.5 Fungsi operasi Matematika
fungsi matematik pada C terdapat header file “math.h” dan “stdlib.h”. Terdapat beberapa fungsi operasi matematika diantaranya adalah
a) sqrt()
 Digunakan untuk menghitung akar dari sebuah bilangan.
 Bentuk umum : sqrt(bilangan);
b) pow()
 Digunakan untuk menghitung pemangkatan suatu bilangan.
 Bentuk umum : pow(bilangan, pangkat);
c) sin(), cos(), tan()
 Masing-masing digunakan untuk menghitung nilai sinus, cosinus dan tangens dari suatu sudut.
 Bentuk umum :
tan(sudut); d) atof()
 Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe double.
 Bentuk umum : atof(char x);
e) atoi()
 Digunakan untuk mengkonversi nilai string menjadi bilangan bertipe integer.
 Bentuk umum : atoi(char x);
f) div()
 Digunakan untuk menghitung hasil pembagian dan sisa pembagian.
 Bentuk umum : div_t div(int x, int y)
 Strukturnya :
typedef struct
{ int qout; // hasil pembagian int rem // sisa pembagian } div_t;
g) max()
 Digunakan untuk menentukan nilai maksimal dari dua buah bilangan.
 Bentuk umum : max(bilangan1, bilangan2);
h) min()
 Digunakan untuk menentukan bilangan terkecil dari dua buah bilangan.
 Bentuk umum : min(bilangan1, bilangan2);
III.6 Soal Latihan
A. Tuliskan kembali program dibawah ini, compile, dan tuliskan semua pernyataan error/ kesalahaan yang ada dan tuliskan bagaimana solusinya
void main()
{ char satu[30] = “Jurusan Teknik Informatika”; char dua[30] = “Politeknik Pos Indonesia”; clrscr();
strcat(satu, dua);
printf(“Hasil penggabungannya : %s\n”, satu);
printf(“Jika diubah menjadi huruf kapital semua :\n”); printf(“%s”, str(satu));
printf(“Jika diubah menjadi huruf kecil semua :\n”); printf(“%”, strlwr(satu));
getch(); }
#include “stdio.h” #include “conio.h” #include “stdlib.h” void main()
{ int x, y; clrscr();
printf(“Menentukan bilangan terbesar \n”); printf(“X = “); scanf(“%i”, &x);
printf(“Y = “); scanf(“%i”, &y); printf(“Z = “); scanf(“%”, &z);
printf(“\nBilangan terbesar : %i”, max(max(x, y), z)) getch();
}
B. Buatlah algoritma untuk kasus dibawah ini
1. Menghitung jumlah dua bilangan yang dimasukkan oleh user 2. Menghitung jumlah karakter pada teks yang dimasukkan oleh user 3. Menggabungkan dua teks yang dimasukkan oleh user
1
4. Menampilkan data pribadi berupa nama, alamat, jenis kelamin, no telepon dengan menggunakan tipe data bentukan
5. Menentukan bilangan terkecil dari dua bilangan yang dimasukkan oleh user