Jika di dalam pemrograman, sebuah variabel dinyatakan sebagai bilangan real, tidaklah
tertutup kemungkinan bahwa ia bernilai sebuah integer (misalnya variabel real Q memenuhi Q
= Sqrt(X), untuk X = 9, nilai Q adalah 3, suatu nilai real yang sebenarnya adalah integer).
Deklarasi suatu variabel secara berlainan, salah satu maksudnya adalah untuk menaikkan
lingkup, dan ketepatan komputasi.
Bilangan real dimasukkan ke dalam memori komputer memakai sistem floating point,
merupakan versi yang disebut notasi ilmiah atau scientific notation. Di sini penyajian terdiri
atas dua bagian : mantissa (pecahan) dan indeks, yang disebut eksponen atau karakter yang
menetapkan tempat dari titik radix terhadap digit tersebut.
Contoh :
Di dalam sistem desimal : 123000 = 0.123 * 106 di sini 0.123 adalah mantissa atau pecahan,
sedangkan 6 adalah eksponennya.
0.00151 = 0.151 * 10-2 di sini 0.151 dijadikan sebagai pecahan, dan -2 adalah eksponennya.
Jelaslah bahwa radix adalah 10.
Secara umum untuk bilangan real X, rumusnya menjadi :
X = M * RE
di sini M dijadikan pecahan, R adalah radixnya dan E merupakan eksponennya.
Berhubung radix floating point dari suatu komputer tertentu, sudah ditetapkan (biasanya 8
atau 16), maka cukup memasukkan pecahan M dan eksponen E untuk menguraikan angka X.
Untuk menyajikan suatu bilangan secara unik, dan untuk mendapatkan banyak digit secara
maksimum di dalam pecahan, biasanya diadakan normalisasi. Berarti bahwa pada penyajian
pecahan, maka bit yang paling penting ialah suatu digit yang bukan 0. Normalisasi dilakukan
dengan menukar tempat dari titik radix yang berarti menukar nilai dari eksponennya.
Variabel yang dinyatakan sebagai real dimasukkan ke dalam angka presisi tunggal yakni
menjadi satu string. Bagi suatu radix tertentu, presisi angka ditentukan oleh penyajian
digitnya.
Penyajian bilangan real ke dalam suatu komputer hanya dapat dilakukan sebagai bilangan yang
pasti, oleh karena itu bilangan-bilangan real yang tidak pasti adalah antara dua bilangan real
yang dapat dimasukkan ke dalam komputer. Selanjutnya, hasil dari proses tersebut harus
dianggap sebagai perkiraan saja. Artinya, sulit menentukan kondisi yang tepat untuk bilangan
real, karena di antara angka 2,0 dan 3,0 saja ada angka-angka yang berjenis real yang tidak
terhingga banyaknya.
Jangan sekali-kali mengadakan tes dengan bentuk statement if atau while untuk mendapatkan
persamaan yang tepat dari dua bilangan real; salah satu di antaranya dihasilkan dari
perhitungan aritmatika. Terutama jangan mencoba mencari persamaan hingga mencapai 0,0.
Dua kesukaran yang mungkin timbul di dalam aritmatika bilangan real, ialah :
1) pembatalan dua bilangan dekat tetapi tidak sama, dari tanda yang berlawanan sebagai
hasil dari suatu penambahan (disebut kehilangan arti);
2) kelebihan bilangan karena proses pembagian diakibatkan oleh bilangan pembagi yangkecil.
Contoh penggunaan tipe data boolean akan lebih jika anda telah mempelajari kondisi
percabangan program seperti IF (yang akan saya jelaskan pada tutorial terpisah). Untuk
sementara anda hanya perlu memahami bahwa tipe data boolean adalah tipe data yang hanya
memiliki 2 isi: TRUE atau FALSE.
Dalam contoh diatas, saya membuat variabel a sebagai boolean, kemudian mengisinya dengan
true dan false. Pada contoh ketiga dan keempat, saya menggunakan perintah not untuk
membalik nilai boolean. Perintah ‘not true’ akan menghasilkan false, sedangkan ‘not false’
akan menghasilkan true.
Perhatikan bahwa nilai untuk boolean ini (true atau false) harus ditulis tanpa tanda kutip. Jika
anda menambahkan tanda kutip, ini menjadi string. Dengan kata lain ‘true’ tidak sama dengan
true (perhatikan tanda kutipnya).
Selain menulis langsung nilai boolean, kita juga bisa menginput hasilnya dari sebuah operasi
perbandingan. Berikut contohnya :
Salah satu konsep yang harus anda pahami di dalam pemrograman adalah penggunaan tanda
‘=’. Didalam pascal, tanda ini digunakan untuk operasi perbandingan, bukan pengisian ke
dalam sebuah variabel (operasi assignment).
Dengan kata lain, “a:= 1=1” berarti kita mengisi nilai variabel a dengan hasil dari perbandingan
“1=1”. Jadi apakah 1=1? Yup benar, yang di dalam bahasa inggris menjadi: true. Oleh karena
itulah variabel a akan diisi dengan nilai boolean true.
Pada contoh kedua, apakah “9<8”? salah!, karena 9 bukan lebih kecil dari delapan, sehingga
hasilnya: false.
Berikutnya, apakah “999<>998”? Tanda “<>” di dalam pascal bisa dibaca sebagai “tidak sama
dengan”, sehingga hasilnya adalah: true.
Contoh terakhir, apakah ‘yodha’ = ‘yodha.com’? salah!, karena untuk ‘benar’, kedua string
harus mengandung karakter yang sama persis. Sehingga hasilnya adalah false.
Tipe data boolean yang dipelajari disini akan lebih jelas penggunaannya jika anda telah
mempelajari struktur logika percabangan kode program seperti IF.
Pada kompilator Pascal yang lebih baru dikenal pula tipe data ANSI-string yang dapat
menyimpan karakter lebih banyak.
Contoh kode C++ yang menggunakan tipe data string pada STL:
Contoh 1 :
Contoh 2 :
Pada tipe ini terdapat juga karakter-karakter yang tidak dapat diketik melalui keyboard. Pada
bahasa java kita bisa menemukan istilah “escape sequence” (pasangan karakter yang dianggap
karakter tunggal). Berikut akan dijelaskan contoh escape sequence :
Setelah kita berhasil mendeklarasikan array, maka kita dapat mulai memberikan nilai untuk
setiap kamar-kamar yang tersedia dalam hotel yang tadi kita deklarasikan.
Tipe data array yang dapat digunakan antara lain: int, char, double, string, dan boolean.
Ada dua jenis tipe data array :
1) Array 1 dimensi
2) Array 2 dimensi (multi dimensi)
Jika array satu dimensi kita asumsikan sebagai deretan data maka array berdimensi dua
mewakili suatu bentuk tabel atau matrik dimana indeks yang pertama menunjukkan baris
kemudian indeks yang kedua menunjukkan kolom dari tabel atau matriks.
Berikut contoh array dimensi satu dalam pascal dengan fungsi for to do :
Berikut contoh array berdimensi dua:
Record juga mirip dengan array, dimana kita bisa membuat sebuah variabel yang berisi
berbagai element. Perbedaannya, record bisa menampung berbagai jenis tipe data, tidak
hanya 1 tipe data seperti array.
Perhatikan bahwa untuk membuat record, diawali dengan nama_record. Ini adalah variabel
yang akan menampung seluruh isi record. Setelah itu, pembuatan ‘isi’ record berada di antara
perintah record dan end;. Disinilah seluruh variabel yang menjadi ‘isi’ record di defenisikan.
Sebagai contoh, saya akan membuat sebuah record ‘siswa’ yang terdiri dari nama, umur,
sekolah, dan kota. Berikut cara penulisannya :
Sekarang, variabel ‘siswa’ adalah tipe data record yang terdiri dari nama, umur, sekolah, dan
kota. Bagaimana cara mengakses record ini ?
Untuk mengakses variabel di dalam record (atau disebut juga sebagai field), digunakan
karakter titik ( . ), seperti contoh berikut :
Dalam kode diatas, saya mengisi beberapa data kedalam record ‘siswa’. Perhatikan bahwa isi
masing-masingnya harus bersesuaian dengan tipe data sewaktu kita merancang record. Untuk
nama, bisa diisi dengan string[20], sedangkan untuk umur bisa diisi dengan angka bulat
(integer).
Berikut kode lengkap cara penggunaan struktur record di dalam pascal :
Prosedur merupakan bagian yang terpisah dari program dan dapat gunakan dimanapun di
dalam program.
Kata Kunci "Procedure" digunakan sebagai judul dari bagian deklarasi prosedur, diikuti oleh
identifier yang merupakan nama dari prosedurnya dan secara optional dapat diikuti oleh
kumpulan parameter yang diakhiri dengan titik koma.
HEADER PROCEDURE
Sebagaimana halnya sebuah program, suatu procedure juga memiliki header dan block.
Perbedaan bentuknya dengan program hanyalah pada bagian header-nya saja. Bentuk Umum
header suatu procedure adalah :
PROCEDURE nama;
Atau
PROCEDURE nama (formal parameter : jenis);
Jika kita menggunakan procedure dalam suatu program, maka procedure tersebut harus
dituliskan pada bagian deklarasi.
Format Penulisan Procedure dalam Pascal :
Program Judul_Program ;
Procedure Judul_Procedure ;
begin
statement procedure ;
statement procedure ;
statement procedure ;
end;
Begin
statement program utama;
statement program utama;
statement program utama;
end.
Berikut ini adalah contoh PROCEDURE yang berfungsi untuk mencetak karakter bintang
sebanyak n-kali.
Untuk penggunaan PROCEDURE tersebut akan kita bahas nanti. Sekarang kita bahas terlebih
dahulu tentang bagian-bagiannya.
1. Nama PROCEDURE
Nama PROCEDURE merupakan nama yang kita gunakan untuk mengidentifikasi dan
memanggil PROCEDURE.
Nama PROCEDURE terletak setelah keyword ‘procedure’, dan diikuti oleh tanda kurung
buka (jika terdapat deklarasi parameter). Sebisa mungkin nama sebuah PROCEDURE harus
menggambarkan tujuan spesifiknya.
Seperti contoh di atas, karena fungsinya adalah untuk mencetak karakter bintang sebanyak
n-kali maka nama PROCEDURE-nya adalah ‘cetakBintang’.
2. Parameter
Parameter merupakan sebuah variable yang dapat diisikan dari program utama. Fungsi
dari parameter adalah untuk mengatur keluaran dari PROCEDURE tersebut.
Letak penulisan parameter ini berada di dalam kurung setelah nama PROCEDURE.
Karena parameter ini merupakan sebuah variable, maka penulisannya juga sama dengan
penulisan variable.
Pada contoh sebelumnya kita mendeklarasikan sebuah parameter dengan nama n yang
bertipe integer.
Apabila kita ingin membuat beberapa parameter pada sebuah PROCEDURE maka dapat
digunakan tanda koma. Seperti berikut :
Apabila kita ingin membuat sebuah PROCEDURE tanpa parameter, maka tanda kurung
tidak perlu dituliskan.
3. Deklarasi Lokal
Deklarasi lokal, sama seperti bagian deklarasi program utama. Pada deklarasi lokal ini kita
dapat mendeklarasikan varibale, constant, dan type.
Pada contoh sebelumnya kita telah membuat deklarasi variable lokal bernama i dengan
tipe data integer.
Variable i ini hanya memiliki cakupan di dalam PROCEDURE ini saja. Jika kita mencoba
menggunakannya pada program utama maka akan terjadi error.
4. Tubuh PROCEDURE
Yang terakhir dan merupakan bagian terpenting dari PROCEDURE adalah tubuh. Pada
bagian ini, kita bisa menuliskan logika program seperti yang kita tuliskan pada bagian
program utama.
Tubuh PROCEDURE diawali dengan keyword begin dan diakhiri dengan keyword end;
(menggunakan titik koma bukan titik).
Selanjutnya program akan menjalankan tubuh PROCEDURE sesuai perintah yang telah kita
tuliskan. Karena nilai variable n adalah 10, sesuai logika program maka karakter bintang akan
dicetak sebanyak 10 kali.
Silahkan coba mengubah nilai parameter pada saat pemanggilan PROCEDURE cetakBintang,
nantinya jumlah karakter bintang yang dicetak juga akan berubah.
9. PENGERTIAN DAN CONTOH STACK
Stack adalah kumpulan suatu elemen dimana hanya elemen yang baru dimasukkan yang dapat
diakses atau dilihat. Stack merupakan perintah pengumpulan data secara linear yang
menyusun data seperti tumpukan dan bersifat Last In First Out (LIFO) yang berarti data yang
terakhir masuk adalah data yang pertama keluar. Contoh dalam Kehidupan sehari-hari :
a) Setumpuk koran, dimana koran yang paling terakhir ditambahkan dan ditaruh diatas
adalah koran yang dapat dilihat
b) Seseorang yang sedang mencuci piring, piring yang dicuci pertama pasti akan diletakan
dibawah dan akan terus berlanjut sampai tumpukan piring yang terakhir dicuci. Lalu, piring
pasti akan di taruh di rak piring dan pasti yang diambil adalah piring yang paling atas yaitu
piring yang terakhir dicuci dan yang pertama dicuci pasti akan terakhir.
c) Tumpukan Batu bata yang sedang diturunkan dari mobil pasti yang diambil adalah batu
bata yang paling atas, padahal batu bata pertama yang dimasukkan kedalam mobil adalah
batu bata yang berada dibawahnya.
Jadi, Stack yaitu sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out) dan
Stack dapat diimplementasikan sebagai representasi berkait atau kontinyu. Ciri-Ciri Stack
diantaranya :
Elemen TOP/Puncak diketahui
Penyisipan dan Penghapusan selalu dilakukan di TOP
LIFO (Last In First Out)
Pemanfaatan Stack yaitu :
Perhitungan Ekspresi Aritmatitika (posfix)
Algoritma Backtracking (runut balik)
Algoritma Rekursif
Operasi Stack yang biasa digunakan diantaranya yaitu :
1) Push untuk memasukkan atau menginputkan data
2) Pop untuk mengeluarkan data
3) IsFull untuk mengetahui jika tumpikan sudah penuh
4) IsEmpety untuk mengetahui tumpukan yang kosong, dan
5) Clear untuk menghapus seluruh data atau membersihkan data.
package queue;
import java.lang.reflect.Array;
import java.util.Scanner;
public class Queue {
public Integer pointer;
private final Integer sizeArray;
private final T[] element;
do
{
queue.viewQueue();
System.out.println();
System.out.println("1. Enqueue");
System.out.println("2. Dequeue");
System.out.println("3. Clear");
System.out.println("4. Exit");
pil = scanner.nextInt();
if(pil > 0 && pil < 4)
{
switch (pil) {
case 1:
String data;
System.out.print("Masukkan Data: ");
data = scanner.next();
queue.enqueue(data);
break;
case 2:
queue.dequeue();
break;
case 3:
queue.clearQueue();
break;
default:
break;
}
}
else
break;
}while(true);
}
}
Untuk contoh hasil Output dari kode di atas sebagai berikut dibawah ini :