Materi Informatika SMA/MA X - Algortima dan Pemrograman
Dalam istilah ilmu komputer, struktur data adalah cara
penyimpanan, penyusunan dan pengaturan data di dalam media penyimpanan komputer
sehingga data tersebut dapat digunakan secara efisien. Dengan kata lain
struktur data adalah sebuah skema organisasi, seperti variabel dan array dan
lain-lain, yang diterapkan pada data sehingga data dapat diinterprestasikan dan
sehingga operasi-operasi spesifik dapat dilaksanakan pada data tersebut.
Pemakaian struktur data yang tepat didalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program
secara keseluruhan lebih efisien dan sederhana.
Data adalah representasi dari fakta dunia nyata Fakta atau
keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam
bentuk tulisan, suara, gambar, sinyal atau simbol. Data merupakan suatu nilai
yang bisa dinyatakan dalam bentuk konstanta atau variabel. Konstanta menyatakan
nilai yang tetap, sedangkan variabel menyatakan nilai yang dapat diubah-ubah
selama eksekusi berlangsung.
1.1.1
Konstanta
dan Variabel
Variabel
adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu didalam proses program. Berbeda dengan konstanta yang nilainya tidak
bisa diubah atau selalu tetap selang eksekusi berlangsung, nilai dari suatu
variabel dapat berubah sesuai kebutuhan. Konstanta dan variabel merupakan
tempat di memori komputer untuk menyimpan data berupa nilai dengan tipe data tertentu.
Konstanta dan variabel harus diberi nama sebagai identifikasi.
Variabel
digambarkan sebagai sebuah wadah yang dapat menampung suatu informasi
sekaligus, seperti kata atau angka. Dalam pemrograman komputer, variabel
digunakan untuk menyimpan suatu nilai. Nilai dapat berupa numerik (angka) atau
alphanumerik (kata). Kemampuannya dalam menampung dan menyimpan suatu informasi
menjadikannya sebagai referensi dan dapat dimanipulasi dibanyak tempat yang
berbeda dalam suatu program sehingga variabel sangat berguna dalam pemrograman.
Nama dari
suatu variable dapat ditentukan sendiri oleh programmer dengan aturan sebagai
berikut :
·
Nama variabel terdiri dari gabungan huruf dan
angka dengan karakter pertama harus berupa huruf. Bahasa C bersifat case-sensitive artinya huruf besar dan
kecil dianggap berbeda. Jadi antara nim, NIM
dan Nim dianggap berbeda.
·
Nama variabel tidak boleh mengandung spasi,
misalkan nama variabel terdiri dari dua suku kata nama lengkap harus nama_lengkap
·
Nama variabel tidak boleh mengandung
symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol
khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -,
+, =, dan sebagainya.
·
Nama Variabel tidak boleh menggunakan fungsi
atau keyword yang sudah didefenisikan dalam bahasa C, seperti kata int, const,
scanf, printf dan lain-lain.
·
Panjang nama variabel bebas, tetapi hanya 32
karakter pertama yang terpakai.
1.1.2
Tipe Data
Tipe data adalah jenis data. Wikipedia: “Dalam ilmu komputer dan
pemrograman komputer, tipe data ialah klasifikasi data yang mengenalkan
kompilator atau penerjemah bagaimana programmer bermaksud untuk menggunakan
data.
Terdapat dua jenis tipe data di java. Primitive dan non primitive.
Sebelum mengenal istilah primitive dan non primitive kita akan membahas
mengenai pengertian tipe data. Tipe data adalah klasifikasi dari suatu data
yang didalamnya terdapat spesifikasi jenis dari data tersimpan nantinnya pada
suatu variabel/fungsi. Contoh spesifikasi ini adalah integer, string dan lain
sebagainya
Sebagian besar bahasa pemrograman mendukung berbagai macam data,
sebagai contoh, bilangan riil, integer atau boolean. Sebuah tipe data
menyediakan sekumpulan nilai-nilai dari ekspresi (yaitu variabel, fungsi) yang
dapat mengambil nilai tersebut. Tipe data ini mendefinisikan operasi yang akan
dilakukan pada data, maksud dari data dan jurusan nilai dari tipe tersebut
dapat disimpan.” Dalam bahasa C, tipe data dikategorikan sebagai berikut.
A.
Tipe Dasar
1)
Tipe Data Bilangan
Bulat (Integer)
Tipe data
integer adalah tipe data bilangan bulat yang merupakan bilangan yang dinyatakan
dengan tidak memiliki pecahan desimal. Nilai dari bilangan bulat bisa positif
atau negatif. Dalam bahasa C penamaan tipe data bilangan bulat adalah integer. Dalam dunia nyata rentang
bilangan bulat tidak ada, akan tetapi nilai rentang tipe data ini memiliki
batas pada komputer tergantung pada mesin komputer dan compiler yang digunakan.
Pada bahasa C, integer dibagi menjadi beberapa tipe antara lain:
Tabel 3.1 Tipe Data Integer
Jenis Tipe Data
|
Ukuran Memory Penyimpanan
|
Rentang Nilai
|
char
|
1 byte
|
-128
s/d 127
|
short
|
2 bytes
|
-32,768 s/d 32,767
|
int
|
2 bytes
|
-32,768 s/d 32,767
|
int
|
4 bytes
|
-2,147,483,648 s/d 2,147,483,647
|
long
|
4 bytes
|
-2,147,483,648 s/d 2,147,483,647
|
unsigned char
|
1 byte
|
0 s/d 255
|
unsigned short
|
2 bytes
|
0 s/d 65,535
|
unsigned int
|
2 bytes
|
0 s/d 65,535
|
unsigned int
|
4 bytes
|
0 s/d 4,294,967,295
|
unsigned long
|
4 bytes
|
0 s/d 4,294,967,295
|
Operasi yang dapat dilakukang pada bilangan bulat adalah operasi
aritmatika dan operasi perbandingan. Beberapa operasi bilangan bulat dapat
dilihat pada tabel berikut ini.
OPERASI
|
NAMA OPERASI
|
DALAM BAHASA C
|
CONTOH
|
+
|
Tambah
|
+
|
3+2 hasilnya 5
|
-
|
Kurang
|
-
|
5-3 hasilnya 2
|
*
|
Kali
|
*
|
4*3 hasilnya 12
|
div
|
Bagi
|
/
|
10/3 hasilnya 3 (integer/bilangan bulat)
|
mod
|
Sisa bagi
|
%
|
7%3 hasilnya 1
|
/
|
Bagi
|
/
|
10/3 hasilnya 3,333 (float/real)
|
Selanjutnya dalam bahasa C terdapat operasi perbandingan. Nilai
dari operasi perbandingan menghasilkan nilai lojik berupa true dan false.
Operasi perbandingan dapat dilihat pada tabel berikut ini.
OPERASI
|
NAMA OPERASI
|
DALAM BAHASA C
|
CONTOH
|
=
|
Sama dengan
|
==
|
5==5
|
true
|
≠
|
Tidak sama dengan
|
!=
|
9!=9
|
false
|
>
|
Lebih besar dari
|
>
|
7>6
|
true
|
<
|
Lebih kecil dari
|
<
|
8<7
|
false
|
≥
|
Lebih besar atau sama
dengan
|
>=
|
8>=5
|
true
|
≤
|
Lebih kecil atau sama dengan
|
<=
|
9<=5
|
false
|
2)
Tipe Data Logika
(Boolean)
Tipe data boolean merupakan tipe data logika yang hanya bernilai
BENAR (TRUE) atau SALAH (FALSE). Tipe
data boolean banyak dipakai dalam percabangan kode program, atau untuk
memutuskan apa yang harus dijalankan pada sebuah kondisi if else. Dalam bahasa
C terdapat biangan lojik seperri pada tabel berikut ini.
Tabel 3.2 Operasi Logika
Operator
|
Nama
|
Contoh
|
Hasil
|
&&
|
And
|
a && b
|
benar jika a and b bernilai benar
|
||
|
Or
|
a || b
|
benar jika salah satu a atau b
bernilai benar
|
!
|
Not
|
!a
|
benar jika a tidak benar
|
^
|
Xor
|
a^b
|
benar jika salah satu a atau b
bernilai tidak benar
|
Tabel
berikut ini menunjukkan penjelasan tentang operasi logika.
a
|
not a
|
true (1)
|
false (0)
|
false (0)
|
true (1)
|
a
|
b
|
a And b
|
a Or b
|
a XOr b
|
a XAnd b
|
true (1)
|
true (1)
|
true (1)
|
true (1)
|
false (0)
|
true (1)
|
true (1)
|
false (0)
|
false (0)
|
true (1)
|
true (1)
|
false (0)
|
false (0)
|
true (1)
|
false (0)
|
true (1)
|
true (1)
|
false (0)
|
false (0)
|
false (0)
|
false (0)
|
false (0)
|
false (0)
|
true (1)
|
3)
Tipe Data Bilangan
Desimal (Real)
Tipe data
riil atau sering juga disebut float adalah tipe data yang mengandung biangan
desimal dengan menggunakan tanda titik (.) untuk menyatakan pecahan desimal.
Perlu diketahui, nilai 75 dan 75.0 dalam bahasa C memiliki nilai yang sama,
akan tetapi kedua angka tersebut mempunyai tipe yang berbeda, dimana angka 75
betipe integer, sedangkan angka 75.0 bertipe real.
Dalam bahasa
C, tipe data real menjadi float dan double. Pada dasarnya perbedaan float
dengan double terletak pada rentang nilainya. Float yang merupakan floating
point single precission 32 bit dengan range 1.7 E-38 sampai dengan 3.4
E+32, sedangkan double merupakan double
point precission 64 bit 2.2 E-308 sampai dengan 1.7 E+308.
Operasi
bilangan desimal (real) sama halnya dengan biangan bulat (integer) yakni operasi
aritmatika dan operasi perbandingan. Namun pada bilangan desimal tidak
menggunakan operasi aritmatikan div dan mod (sisa hasil bagi), untuk lebih
jelasnya perhatikan tabel operasi pada bilangan desimal berikut ini.
Tabel 3.5 Operasi Aritmatika Pada Bilangan
Desimal
OPERASI
|
NAMA OPERASI
|
DALAM BAHASA C
|
CONTOH
|
+
|
Tambah
|
+
|
6.3+3.4 hasilnya 9.7
|
-
|
Kurang
|
-
|
9.5-5.2 hasilnya 4.3
|
*
|
Kali
|
*
|
15.7*3.3 hasilnya 51.81
|
/
|
Bagi
|
/
|
10.5/3.1 hasilnya 3,387
|
Tabel 3.6
Operasi Perbandingan Pada Bilangan Desimal
OPERASI
|
NAMA OPERASI
|
DALAM BAHASA C
|
CONTOH
|
=
|
Sama dengan
|
==
|
15.3 == 15.3
|
true
|
≠
|
Tidak sama dengan
|
!=
|
9.2 != 9.2
|
false
|
>
|
Lebih besar dari
|
>
|
7.9 > 6.9
|
true
|
<
|
Lebih kecil dari
|
<
|
8.9 < 7.2
|
false
|
≥
|
Lebih besar atau sama dengan
|
>=
|
8.8 >= 5.8
|
true
|
≤
|
Lebih kecil atau sama dengan
|
<=
|
9.9 <= 5.7
|
false
|
4)
Tipe Data Karakter
(Char)
Tipe data
char tipe data karakter/huruf/angka/simbol yang mendefenisikan nilai ASCII.
Dalam hal ini tipe data karaker terdiri dari, abjad seperti: “a”, “b”, “c”, dan
seterusnya atau “A”, “B”,”C” dan seterusnya, angka seperti: ‘1’,’2’,’3’,...’9’,
karakter khusus atau simbol seperti: “!”, “$”, “@” dan seterusnya. Untuk
mendefenisikan karakter harus menggunakan tanda petik satu (‘) yang mengapit
karakter yang ingin didefenisikan, misalnya: ‘X’, ‘K’, ‘$’,’45’.
Operasi yang
dilakukan dalam tipe data karakter adalah operasi perbandingan sama halnya
seperti bilangan bulat dan bilangan desimal. Hal ini dikarenakan karakter
memiliki nilai keterurutan yang dapat dilihat pada tabel ASCII. Hasil operasi
perbandingan pada tipe data karakter menghasilkan boolean yakni true dan false. Berikut tabel operasi
perbandingan pada tipe data karakter.
Tabel 3.7
Operasi Perbandingan Pada Karakter
OPERASI
|
NAMA OPERASI
|
DALAM BAHASA C
|
CONTOH
|
=
|
Sama dengan
|
==
|
‘A’ == ‘a’
|
False
|
≠
|
Tidak sama dengan
|
!=
|
‘K’ != ‘k’
|
True
|
>
|
Lebih besar dari
|
>
|
‘a’ > ‘z’
|
False
|
<
|
Lebih kecil dari
|
<
|
‘c’ < ‘b’
|
False
|
≥
|
Lebih besar atau sama dengan
|
>=
|
‘a’ >= ‘A’
|
True
|
≤
|
Lebih kecil atau sama dengan
|
<=
|
‘$’ <= ‘$’
|
True
|
5)
Tipe Data
String
Tipe data
string merupakan tipe data teks (huruf, angka, dan simbol) yang memungkinkan
dapat menyimpan nilai dengan bentuk teks (kalimat), atau dapat diartikan
sebagai kumpulan dari karakter. Dalam mendefeniskan tipe data string harus diapit
dengan tanda petik ganda (“).
Adapun
operasi yang biasa dilakukan adalah operasi perbandingan dan penggabungan. Pada
operasi perbandingan, hal yang sama terjadi pada karakter yaitu dilakukan
dengan perbandingan terhadap nilai ASCII. Sebagai contoh operasi perbandingan
sebagai berikut.
DALAM
BAHASA C
|
HASIL
|
‘buku’ == ‘BUKU’
|
false
|
‘BUKU’
< ‘buku’
|
true
|
Sedangkan
dalam operasi penggabungan, beberapa string yang digabungkan akan menghasilkan
string baru. Untuk lebih jelasnya perhatikan tabel operasi penggabungan berikut
ini.
DALAM
BAHASA C
|
HASIL
|
‘saya’ + ‘senang’ + ‘belajar’
|
‘saya senang belajar’
|
‘6’ +
‘7’ + ‘7’ + ‘5’
|
‘6775’
|
B.
Tipe Data
Bentukan
Tipe data bentukan atau tipe data komposit adalah tipe data yang dibentuk
dari tipe data dasar dengan maksud mempermudah pekerjaan programer. Tipe data
ini lawan dari tipe date primitive, tipe data composite dapat menampung banyak
nilai. Antara lain :
1. Array, atau
disebut larik. Adalah tipe data yang terstruktur, meskipun sederhana array
mampu menyimpan data dengan tipe yang sama (homogen) didalam sebuah variable.
2. Record atau
Struct, Seperti array, record atau struct termasuk data komposit. Record biasa
dikenal pada bahasa pemrograman Pascal atau Delphi sedangkan struct lebih
dikenal di C++. Lain hal dengan array, tipe data record menampung tipe data
yang berbeda-beda (heterogen).
3. Image, tipe
data ini adalah tipe data grafik seperti contohnya grafik perkembangan suatu
populasi. pada bahasa pemrograman modern yang berbasis visual, tipe data ini sudah
sangat didukung.
4. Date Time,
nilai data date dan time disimpan dalam format yang spesifik. Dengan variable
atau konstanta yang dideklarasikan dapat disimpan dengan baik dalam bentuk tipe
data “date” maupun “time”. Tipe data ini termasuk kelompok tipe data komposit,
karena terbentuk dari beberapa tipe data.
5. Object, tipe
data ini menyimpan yang berhubungan dengan obyek-obyek yang biasa ada pada
bahasa pemrograman VB, Delphi dan bahasa pemrograman lain yang berbasis GUI
(Graphical User Interface). Contoh-nya : jika sebuah form memiliki control
Command button, kita beri nama Command1.
6. Subrange,
Tipe data bilangan yang mempunyai range nilai tertentu yang sudah ditentukan
oleh seorang programmer. Biasanya, tipe data ini memiliki batas maksimum dan
minimum.
Enumerasi, Tipe data ini mempunyai elemen-elemen yang
harus disebutkan satu per-satu dan memiliki nilai konstanta berupa integer yang
sesuai dengan urutannya. Pada nilai konstanta-nya ini mewakili suatu nama
variable yang ditulis didalam kurung. Tipe data ini sering ditemui dalam bahasa
Delphi dan SQL.