Anda di halaman 1dari 48

Algorithm & Data Structure

BAB 1

BAHASA PEMOGRAMAN

1.1. Pendahuluan
Komputer pada dasarnya merupakan mesin yang tidak bisa apa-apa. Kita harus
memberikan serangkaian instruksi kepada komputer sini sehingga dapat memberikan
serangkaian instruksi dalam memecahkan suatu masalah. Langkah-langkah yang perlu
dilakukan dalam memberikan instruksi kepada komputer untuk memecahkan masalah
inilah yang memberikan instruksi kepada komputer untuk memecahkan masalah inilah
yang dinamakan pemrogaman komputer. Adapun langkah-langkah pemrogaman komputer
adalah sebagi berikut: mendefinisikan masalah, menentukan solusi, memilih adalah
sebagi berikut: mendefinisikan masalah, menentukan solusi, memilih algoritma, menulis
program, menguji program, menulis dokumentasi, serta merawat algoritma, menulis program,
menguji program, menulis dokumentasi, serta merawat program.
Generasi bahasa pemrograman berkembang hingga kini menginjak generasi ke 5 antara
lain :

1. Generasi Pertama machine language (bahasa mesin)

Bahasa mesin dapat di katakan sebagai “bahasa komputer asli” yang hanya terdiri
dari karakter “0” ( nol ) dan “1” ( satu ) saja, juga di kenal dengan sebutan “bahasa
biner”.

2. Generasi Dua assembly language

Pemrograman dengan bahasa pemrograman assembly (rakitan) merupakan generasi


ke dua setelah generasi bahasa mesin, bahasa pemrograman assembly memiliki
keyword yang lebih kompleks dari pada bahasa mesin yang hanya berisi karakter
“0” dan “1” saja sehingga relatif lebih mudah di mengerti.

1
Algorithm & Data Structure

3. Generasi Tiga procedural programming

Bahasa pemrograman prosedural yang masih mencampurkan unsur simbol/karakter


khusus seperti {, }, ?, <<, >>, &&, ||, ; dan lain sebagainya, unsur simbol / karakter
khusus pun mulai di kurangi bahkan pada beberapa bahasa pemrograman telah di
hilangkan.

4. Generasi Empat 4GL (fourth-generation language)

Generasi bahasa query terstruktur (Structured Query Language), SQL sebenarnya


merupakan bahasa pemrograman namun penerapannya saat ini lebih banyak pada
basis data ( database ) misalnya MySQL, Oracle Database, SQL Server,
PostgreSQL, SQLite dan masih banyak lagi. Pada bidang pemrograman, SQL
umumnya di gunakan sebagai bahasa sekunder dengan library built – in atau
terpisah, query yang dituliskan dalam kode suatu bahasa pemrograman tujuannya
adalah untuk mendefinisikan basis data dan memanipulasi basis data, di kenal
dengan DDL(Data Definition Language) dan DML(Data Manipulation Language).

5. Generasi Lima Programming Language Based Object Oriented & Web


Development

Generasi bahasa pemrograman yang ke lima lebih menekankan pada aspek efisiensi
dan penggunaan kembali (re-use-able) modul – modul yang di buat dengan bahasa
pemrograman tingkat tinggi tertentu, generasi intellegent programming
(pemrograman kecerdasan) yang menekankan aspek otomatisasi dalam setiap
prosesnya.

1.2. Program
Program adalah sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk
menyelesaikan masalah. Dalam Program ada 4 level bahasa pemrograman yaitu:
a. Bahasa Pemograman tingkat rendah (low level language)
Bahasa ini disebut juga bahasa mesin (assembler), dimana pengkodean bahasanya
menggunakan kode angka 0 dan 1. Bahasa mesin Berisi kode-kode mesin yg hanya

2
Algorithm & Data Structure

dapat diinterpretasikan langsung oleh mesin komputer. Microcode yang merupakan


sekumpulan instruksi dalam bahasa mesin. Bahasa mesin atau kode mesin
merupakan satu-satunya bahasa yang bisa diolah komputer secara langsung tanpa
transformasi sebelumnya (kompilasi).

b. Bahasa pemogram tingkat menengah


Bahasa ini termasuk dalam bahasa pemrograman yang mudah dipelajari oleh
pengguna komputer karena menggunakan bahasa Inggris.
Bahasa tingkat menengah memberikan satu tingkat abstraksi di atas kode mesin.
Bahasa assembly memiliki sedikit spesifikasi formal, karena hanya pemetaan
simbol yang dapat di baca manusia. Biasanya, satu instruksi mesin di wakili sebagai
satu baris kode assembly. Contoh bahasa pemrograman tingkat menengah adalah
BASIC, COBOL, PASCAL, FORTRAN.

c. Bahasa tingkat tinggi (high level language)


Bahasa pemrograman tingkat tinggi (high level programming language) muncul
pada generasi ke tiga bahasa pemrograman. Perkembangan tersebut meliputi
pemrograman berorientasi obyek, pemrograman berbasis web, pemrograman basis
data, dan masih banyak lagi termasuk pemrograman perangkat mobile yang saat ini
marak di gunakan dan manpaknya akan atau tengah menjadi trend perangkat lunak.
Contoh bahasa pemrograman tingkat tinggi : C++ (Turbo C++), Visual Basic, PHP
(prosedural), Delphi (Borland), Pascal (Turbo Pascal)

d. Bahasa generasi keempat (4 GL)


Bahasa pemrograman 4GL(Fourth Generation Language) merupakan bahasa yang
berorientasi pada objek yang disebut Object Oriented Programming (OOP) sebagai
satu tingkatan khusus Bahasa pemrograman berorientasi obyek dan visual (Object
Oriented Programming & Visual) yang merupakan bagian dan pengembangan dari
bahasa pemrograman tingkat tinggi. Contoh bahasa pemrograman tingkat Object-
Oriented dan Visual : PHP, Visual Basic .NET, Java (termasuk Java yang di
gunakan pada Android Studio), JSP, ASP

3
Algorithm & Data Structure

1.3. Translator
Translator adalah suatu program atau metode dimana program tersebut mengambil input
sebuah program lain yang ditulis pada suatu bahasa program (source language) ke
bahasa lain (object on target language). Macam – macam translator antara lain :
interpreter, compiler, dan assembler.

Gambar 1. Proses Compiler dan Interpreter

1.3.1. Pengertian Compiler


Compiler adalah program sistem yang digunakan sebagai alat bantu dalam
pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code ke dalam
bahasa mesin yang menghasilkan bahasa mesin. Contoh bahasa pemrograman yang
menggunakan compiler adalah Pascal, C, Basic, dll.

1.3.2. Pengertian Interpreter


Interpreter adalah perangkat lunak yang mampu mengeksekusi code program dan
diterjemaahkan ke dalam bahasa mesin, sehingga mesin yang melakukan instruksi

4
Algorithm & Data Structure

tersebut. Interpreter tidak membangkitkan object code, hasil transaksinya hanya dalam
bentuk internal. Contoh bahasa pemrograman yang menggunakan interpreter adalah
PHP, ASP, Perl, dll.

1.3.3. Pengertian Assembler


Bahasa assembly adalah sebuah program yang terdiri dari instruksi-instruksi yang
menggantikan kode-kode biner dari bahasa mesin dengan “mnemonik” yang mudah
diingat. Misalnya sebuah instruksi penambahan dalam bahasa mesin dengan kode
“10110011” yang dalam bahasa assembly dapat dibuat dalam instruksi mnemonik
ADD, sehingga mudah diingat dibandingkan dengan angka 0 dan 1, dalam setiap
instruksi membutuhkan suatu operand baik berupa data langsung maupun suatu lokasi
memori yang menyimpan data yang bersangkutan, sedangkan assembler adalah suatu
program yang dapat menerjemahkan program bahasa assembly ke program bahasa
mesin yang merupakan kumpulan kode biner yang dijalankan oleh komputer.

1.4. Paradigma Pemrograman

Paradigma Pemrograman adalah cara untuk mengklasifikasikan bahasa pemrograman


berdasarkan fitur pemrograman, Definisi Paradigma Pemrograman merupakan sudut pandang
dan style pemrograman berhubungan dengan bagaimana suatu masalah diformulasikan dalam
suatu bahasa pemrograman.

5
Algorithm & Data Structure

Gambar 1.4. Programming Language Paradigm

Didalam pemrograman ada 5 paradigma yaitu:

1. Pemrograman Fungsional
Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika, fungsi dapat
berupa fungsi ”primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi.
Program yang dihasilkan dengan bahasa pemrograman yang menggunakan paradigma ini
biasanya membutuhkan waktu pemrosesan yang lebih lama dibandingkan dengan yang
menggunakan paradigma prosedural dikarena dibutuhkan waktu lebih untuk memproses
fungsi-fungsi yang digunakan dalam membuat program.

2. Pemrograman Prosedural atau Iiteratif


Berbeda dengan pemrograman fungsional, pada pemrograman prosedural atau iteratif ini,
pengguna atau user harus memberikan serangkaian perintah yang berurutan untuk
menyelesaikan suatu masalah pemrograman. Paradigma ini didasari oleh konsep mesin
Von Newman (stored program concept) sekelompok tempat penyimpanan (memori), yang
dibedakan menjadi memori instruksi dan memori data, masing-masing memori tersebut
dapat diberi nama dan nilai, selanjutnya instruksi akan dieksekusi satu persatu secara
sekuensial oleh sebuah proses tunggal.

6
Algorithm & Data Structure

3. Pemrograman Berorientasi Objek


Paradigma ini menggunakan konsep class dan object, object adalah instansiasi dari class,
setiap object akan mempunyai attribute dan method, masing-masing object dapat
berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda.
Pemrograman ini menyelesaikan suatu masalah yang ada dengan berorientasi kepada
objek karena seluruh data serta fungsi yang ada di dalamnya dikemas dalam suatu kelas
atau objek-objek yang terpisah ke beberapa bagian tertentu.

4. Pemrograman Deklaratif, Predikatif atau Logic


Pemrograman Deklaratif, Predikatif atau Logic mengangsumsikan suatu masalah
dianggap sebagai pekerjaan komputer yang dilakukan melalui sebuah inferensi terhadap
fakta yang ada. Hal tersebut didasari oleh sebuah predikat yang mendefinisikan relasi
antar individu sebagai kumpulan dari beberapa fakta yang tersedia. User dapat
mengajukan pertanyaan atau query guna mencocokkan terhadap fakta-fakta tersebut
sehingga masalah dapat terselesaikan dengan baik.

5. Pemrograman Konkuren
Paradigma konkuren memandang bahwa sebuah sistem komputer harus menangani
beberapa program (task) yang harus dieksekusi secara bersamaan dalam sebuah
lingkungan baik mono ataupun multi processor.

7
Algorithm & Data Structure

BAB 2

ALGORITMA, PSEUDOCODE DAN FLOWCHART

2.1. Definisi Algoritma

Definisi Algoritma sebagai berikut: “Algoritma adalah logika, metode dan tahapan
(urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.” Dan kamus
besar bahasa Indonesia (Balai Pustaka 1988) secara formal mendefinisikan algoritma sebagai
berikut: “Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.”
Algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau
matematika.

Notasi penulisan algoritma dengan menggunakan bahasa deskriptif biasa juga disebut
dengan notasi alami. Dilakukan dengan cara menuliskan instruksi-instuksi yang harus
dilaksanakan dalam bentuk untaian kalimat deskriptif dengan menggunakan bahasa yang jelas.
Program adalah implementasi algoritma dalam notasi bahasa pemrograman tertentu. Namun,
agar notasi algoritma mudah ditranslasi ke dalam notasi bahasa pemrograman, maka sebaiknya
notasi algoritma tersebut berkoresponden dengan notasi bahasa pemrograman pada umumnya.

Definisi Algoritma sebagai berikut :

a. Algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah


logika atau matematika
b. Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan
untuk memecahkan suatu permasalahan.
c. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun
secara sistematis dan logis.
d. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.

8
Algorithm & Data Structure

Ciri-ciri Algoritma sebagai berikut :

a. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.


b. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
c. Algoritma memiliki nol atau lebih masukkan.
d. Algoritma memiliki satu atau lebih keluaran.
e. Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan
dalam waktu yang masuk akal).

Syarat-syarat algoritma sebagai berikut:

1. Efisien
Banyak sekali kemungkinan solusi untuk menyelesaikan suatu masalah, tetapi dari
solusi-solusi tersebut, harus memilih yang paling efisien agar tidak berputar-putar
dalam memecahkan masalah.
2. Finiteness
Algoritma tersebut harus mempunyai akhir atau penyelesaian yang tepat untuk suatu
solusi dan mampu memberikan hasil yang sedekat mungkin dengan hasil sebenarnya.
3. General
Artinya algoritma yang dibuat bersifat umum dan tidak bersifat kasuistis, tidak dibuat
untuk menyelesaikan satu kasus yang spesifik tetapi kasus lain yang lebih general.
4. Mudah dipahami
Algoritma yang dibuat harus mudah dipahami dalam penyelesaian masalah.
Selain syarat, dalam algoritma juga terdapat tiga cara pengekspresian agoritma yaitu
dengan bahasa alamiah, bagan alir (flowchart), dan pseudocode.

Struktur Algoritma terdiri dari proses runtunan (sequencial process), proses pemilihan
(selection process) dan proses perulangan (repetition process).

a. Proses Runtunan (sequencial process)


Proses beruntun (sequence) adalah sederetan pernyataan yang urutan pelaksanaannya /
eksekusinya dilakukan secara beruntun dari baris pertama, kedua dan seterusnya
sampai baris terakhir.

9
Algorithm & Data Structure

b. Proses Pemilihan (selection process)


Proses algoritma ini dijalankan dimana suatu instruksi bisa diproses jika kondisi
tertentu terpenuhi atau bernilai true.
c. Proses Perulangan (repetition process).
Dalam algoritma, struktur perulangan ini sangat bermanfaat jika kita ingin melakukan
sebuah proses yang sama berulang-ulang dengan kondisi tertentu.

Cara penulisan algoritma dengan notasi bahasa deskriptif paling mudah dibuat, namun
demikian cara ini paling sulit untuk diterjemahkan ke dalam bahasa pemrograman. Pada
dasarnya teks algoritma dengan bahasa deskriptif disusun oleh tiga bagian utama yaitu:

1. Bagian judul (header)


Merupakan bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi)
tentang algoritma tersebut. Dibagian ini juga digunakan untuk menentukan apakah
teks algoritma yang dibuat tersebut adalah program, prosedur, atau fungsi.
2. Bagian deklarasi (kamus)
deklarasi atau kamus adalah bagian untuk mendefinisikan semua nama yang dipakai
di dalam algoritma. Nama tersebut dapat berupa nama variabel, nama konstanta,
nama tipe, nama prosedur atau nama fungsi.
3. Bagian deskripsi
Deskripsi adalah bagian inti dari struktur algoritma. Bagian ini berisi uraian langkah-
langkah penyelesaian masalah. Langkah-langkah ini dituliskan dengan notasi yang
lazim dalam penulisan algoritma. Setiap langkah algoritma dibaca dari langkah paling
atas hingga langkah paling bawah.

Sebagai contoh Algoritma Menulis Surat, untuk menulis surat diperlukan langkah-
langkah sebagai berikut:

1. Mempersiapkan kertas dan amplop


2. Mempersiapkan alat tulis
3. Mulai menulis.
4. Memasukkan kertas ke dalam amplop.

10
Algorithm & Data Structure

5. Pergi ke kantor pos untuk mengirimkan surat tersebut.

Algoritma menghitung luas lingkaran dari masukan berupa jari-jari lingkaran Rumus
luas lingkaran adalah : Luas = πR2 , Maka algoritma untuk menghitung luas lingkaran adalah :

1. Masukkan R
2. Tentukan Pi = 3.14
3. Luas = Pi * R * R
4. Tulis Luas Lingkaran

Algoritma Menghitung Luas Persegi Panjang sebagai berikut :

Algoritma_Menghitung_Luas_Persegi_Panjang

Langkah 1: Baca nilai panjang.

Langkah 2: Baca nilai lebar.

Langkah 3: Kalikan nilai panjang dengan nilai lebar dan berikan nilainya ke hasil.

Langkah 4: Tampilkan nilai hasil.

Gambar 2.1. Algoritma Mencari Luas Lingkaran

11
Algorithm & Data Structure

2.2. Definisi PseudoCode


Pseudocode adalah deskripsi dari algoritma pemograman komputer yang menggunakan
konvensi struktural dari suatu bahasa pemograman dan ditujukan agar dapat dibaca oleh user
dan merupakan penjelasan cara menyelesaikan suatu masalah yang sering digunakan oleh
seseorang untuk menuliskan algoritma dari suatu permasalahan, berisikan langkah-langkah
untuk menyelesaikan suatu permasalahan dengan menggunakan bahasa yang hampir
menyerupai bahasa pemrograman yang mudah dipahami secara universal dan juga lebih
ringkas dari pada algoritma.

Pseudocode berisi deskripsi dari algoritma pemrograman komputer yang menggunakan


struktur sederhana dari beberapa bahasa pemrograman tetapi bahasa tersebut hanya di tujukan
agar dapat di baca manusia. Sehingga pseudocode tidak dapat dipahami oleh komputer.
Supaya notasi pseudocode bisa dipahami oleh komputer maka harus diterjemahkan terlebih
dahulu menjadi sintaks bahasa pemrograman komputer tertentu.

2.2.1. Fungsi Pseudocode


Dengan Pseudocode menterjemahkan operasi dasar dari pemrograman. Operasi dasar
tersebut adalah :
a. Program menerima masukan (input) dan mengeluarkan hasil (output).
b. Program mampu melakukan perhitungan aritmatika
c. Program mampu memberikan nilai pada sebuah nama dari sebuah lokasi memory
(variable)
d. Program melakukan kontrol pemilihan dan pengulangan

2.2.2. Struktur Psuedocode


Dasar operasi dari seluruh program dan aplikasi yang dibuat akan meliputi 3 komponen
sebagai berikut :
a. Variabel
Berfungsi sebagai tempat untuk menyimpan data
b. Struktur Kontrol

12
Algorithm & Data Structure

Berisikan fungsi Sequence, Selection dan Repeatation


c. Modular
Terdiri dari Procedure, Function, dan Recursive

Struktur penulisan pseudocode secara umum sama dengan struktur penulisan algoritma
dengan menggunakan kalimat deskriptif yaitu dimulai dari judul/header, deklarasi/kamus dan
diakhiri dengan deskripsi. Meskipun tidak ada sintaks khusus dalam penulisan pseudocode,
tetapi terkadang pseudocode dituliskan dengan menggunakan style atau gaya penulisan dari
beberapa bahasa pemrograman yang ada, seperti Fortran, Pascal, C dan lain-lain.

Gambar 2.2. Penulisan Pseudocode Style

Bentuk penulisan struktur pseudocode sebagai berikut :

Judul Program
{Berisi Judul Algoritma}
Deskripsi
{Berisi Deklarasi Variabel atau Konstanta}
Implementasi
{Berisi Inti Algoritma}

13
Algorithm & Data Structure

Contoh:

2.3. FlowChart

Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan


prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan
masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis
alternatif-alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian
suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

Flowchart adalah cara penulisan algoritma dengan menggunakan notasi grafis.


Flowchart merupakan gambar atau bagan yang memperlihatkan urutan atau langkah-langkah
dari suatu program dan hubungan antar proses beserta pernyataannya.

Pada dasarnya terdapat berbagai macam flowchart, diantaranya yaitu Flowchart Sistem
(System Flowchart), Flowchart Paperwork / Flowchart Dokumen (Document Flowchart),
Flowchart Skematik (Schematic Flowchart), Flowchart Program (Program Flowchart),
Flowchart Proses (Process Flowchart). Untuk keperluan pembuatan program maka digunakan
Flowchart Program.

Flowchart program menggambarkan urutan instruksi yang digambarkan dengan simbol


tertentu untuk memecahkan masalah dalam suatu program. Dalam flowchart program

14
Algorithm & Data Structure

mengandung keterangan yang lebih rinci tentang bagaimana setiap langkah program atau
prosedur seharusnya dilaksanakan.

Namum demikian terdapat beberapa yang harus diperhatikan, yaitu :

a. Flowchart digambarkan di suatu halaman dimulai dari sisi atas ke bawah dan dari sisi kiri
ke kanan.
b. Aktivitas yang digambarkan harus didefinisikan dengan menggunakan bahasa dan simbol
yangtepat dan definisi ini harus dapat dimengerti oleh pembacanya.
c. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas. Hanya terdapat satu
titik awal dan satu titik akhir.
d. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja.
e. Setiap langkah dari aktivitas harus berada pada urutan yang benar.
f. Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-
hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak
perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan
percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila
percabangannya tidak berkaitan dengan sistem.
g. Gunakan simbol-simbol flowchart yang standar. Simbol-simbol flowchart yang biasanya
dipakai adalah simbol-simbol flowchart standar yang dikeluarkan oleh ANSI dan ISO.

15
Algorithm & Data Structure

Tabel 2.3 Simbol Flowchart

SIMBOL NAMA FUNGSI

Simbol Awal (Start) atau


Terminator
Simbol Akhir (End)

Flow Line Simbol Aliran/Penghubung

Proses Perhitungan/Pengolahan

Mempresentasikan Pembacaan
Input/Output Data
Data(read)/Penulisan(write)
Simbol pernyataan pilihan berisi suatu
Decision kondisi yang selalu menghasilkan 2 nilai
keluaran yaitu benar atau salah

Preparation Inisialisasi/Pemberian Nilai Awal

Predefined Process Proses menjalankan sub


(SubProgram) program/Fungsi/Prosedur
Penghubung Diagram Alir dalam satu
On Page Connector
halaman
Penghubung Diagram Alir pada halaman
Off Page Connector
yang berbeda

16
Algorithm & Data Structure

Contoh

Algoritma Pseudocode : Menghitung Luas Persegi Panjang

Algoritma Luas_PersegiPanjang

Deklarasi
Panjang, Lebar, Luas : Integer;

Deskripsi
input (panjang);
Input (lebar);
Luas:= Panjang*Lebar;
Write (Luas Persegi Panjang=’, Luas);
End.

Flowchart Menghitung Luas Persegi Panjang

17
Algorithm & Data Structure

BAB 3

STRUKTUR DATA

3.1. Pengertian Struktur Data


Struktur data merupakan cara membentuk, mengkonstruksi, mengaransemen,
mengkomposisikan ataupun mengorganisasikan data (ADT) ADT: stack, queue, priority
queue, dictionary, sequence, set Struktur Data: array, linked list, hash table (open, closed,
circular hashing), trees (binary search trees, heaps, AVL trees, 2-3 trees, tries, red/black trees,
B-trees).
Struktur data adalah cara menyimpan atau merepresentasikan data didalam komputer
agar bisa dipakai secara efisien. Sedangkan 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. Struktur Data, meliputi struktur data
sederhana misalnya array dan record., struktur data majemuk, yang terdiri dari Linier seperti
Stack, Queue, List dan Multilist dan Non Linier seperti Pohon Biner dan Graph.
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.
struktur data adalah cara penyimpanan, penyusunan dan pengaturan data di dalam media
penyimpanan komputer sehingga data tersebut dapat digunakan secara efisien.Sedangkan 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.
Struktur data merupakan metode untuk melakukan penyimpanan, penyusunan, dan
pengaturan data pada media penyimpanan sehingga data tersebut dapat digunakan secara
efisien. Dalam teknik pemrograman, struktur data berarti pengaturan dan penyusunan dari tata
letak kolom-kolom data, baik kolom data yang tampak oleh pengguna program maupun tata
letak kolom pada memori yang tidak tampak oleh pengguna, yang tidak tampak ini hanya
digunakan untuk kepentingan proses dalam program saja.

18
Algorithm & Data Structure

Konstanta digunakan untuk menyatakan nilai tetap sedangkan variable digunakan dalam
program untuk menyatakan nilai yang dapat berubah-ubah selang eksekusi berlangsung. Ada
empat istilah data, yaitu:
1. Tipe data adalah jenis atau macam data di dalam suatu variable dalam bahasa
pemrograman.
2. Objek data mengacu kumpulan elemen, D (domain).
3. Representasi data : Suatu mapping dari struktur data ‘d’ ke suatu set ke struktur data
‘e’ (d===e) misal bolean di representasikan dalam 0 dan 1.
4. Struktur data biasa dipakai untuk mengelompokan beberapa informasi yang terkait
menjadi sebuah kesatuan.
Dalam teknik pemrograman, struktur data berarti tata letak data yang berisi kolom-
kolom data, baik itu kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya
digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna.Setiap baris dari
kumpulan kolom-kolom tersebut dinamakan catatan (record). Lebar kolom untuk data dapat
berubah dan bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari
pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah struktur data
dapat diterapkan untuk pengolahan database (misalnya untuk keperluan data keuangan) atau
untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh
struktur data dapat dilihat pada berkas-berkas lembar-sebar (spreadsheet), pangkal-data
(database), pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas
dengan teknik tertentu yang memanfaatkan struktur data.
Struktur data ini adalah cara yang sistematis untuk mengatur data untuk
menggunakannya secara efisien. Berikut adalah persyaratan dasar struktur data.
a. Interface
Struktur data masing-masing memiliki antarmuka. Antarmuka merupakan operasi
yang mendukung struktur data. Antarmuka yang hanya menyediakan daftar operasi
didukung, jenis parameter mereka dapat menerima dan kembali jenis operasi ini.
b. Implementasi
Implementasi menyediakan perwakilan internal struktur data. Implementasi juga
menyediakan definisi dari algoritma yang digunakan dalam operasi dari struktur data.

19
Algorithm & Data Structure

3.1.1. Karakteristik Struktur Data


a. Correctness
Struktur Data implementasi harus mengimplementasikan antarmuka dengan benar.
b. Time Complexity
Waktu berjalan atau waktu eksekusi operasional dari strukturdata harus sekecil
mungkin.
c. Space Complexity
Kompleksitas ruang operasi struktur data harus sesedikit mungkin.

3.1.2. Kebutuhan untuk struktur Data

Seperti aplikasi yang semakin kompleks dan data yang kaya, ada tiga masalah yang
biasanya dihadapi.
a. Data Search
Mempertimbangkan inventarisasi 1 million(106) item dari toko. Jika aplikasi untuk
mencari item. Itu harus mencari item dalam 1 million(106) item setiap
kalimemperlambat pencarian. Sebagai data tumbuh, pencarian akan menjadi lebih
lambat.
b. Processor Speed
Kecepatan prosesor meskipun yang sangat tinggi, jatuh terbatas jika data tumbuh
milyar catatan.
c. Multiple Requests
Permintaan beberapa ribuan pengguna dapat mencari data secara bersamaan pada
web server, bahkan sangat cepat server gagal ketika mencari data.
Untuk mengatasi masalah tersebut, struktur data yang datang untuk menyelamatkan.
Data dapat diatur dalam struktur data sedemikian rupa bahwa semuanya mungkin tidak
diperlukan untuk pencarian dan data yang diperlukan dapat dicari hampir seketika.

3.2. Konsep Struktur Data


Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer
agar bisa dipakai. Data merupakan fakta atau kenyataan sebuah objek yang mengandung arti

20
Algorithm & Data Structure

memiliki tipe konstanta atau variabel. Struktur data menunjukkan skema organisasi, yang
diterapkan pada data sehingga data dapat diinterprestasikan seperti struktur dan array,
sehingga operasi-operasi spesifik dapat dilaksanakan pada data. Struktur data mempunyai tiga
bagian utama yaitu :
1. Himpunan struktur dari tempat penyimpanan atau storage. Merupakan koleksi dari
variable dan hubungan antara satu variabel dengan variabel yang lain.
2. Himpunan dari fungsi-fungsi dasar. Dapat digunakan pada struktur tempat
penyimpanan yang ada dan dapat digunakan pada setiap bagian dari program
3. Himpunan dan algoritma digunakan untuk pengubahan dari struktur tempat
penyimpanan.

Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan
algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara keseluruhan lebih
efisien dan sederhana. Secara umum struktur data terdiri dari beberapa bagian seperti
himpunan nilai-nilai data dan sejumlah operasi dasar yang bekerja pada data tersebut menurut
suatu algoritma tertentu.

Untuk membuat menjadi struktur data, kita harus melakukan dulu aktivitas terhadap
objek data, yaitu :

a. Mendeskkripsikan kumpulan operasi sah yang diterapkan ke elemen-elemen objek


data.
b. Menunjukan mekanisme kerja operasi-operasi.

Objek data integer ditambah operasi (+ , - , * , / , mod ,cell , floor , < , >) dan operasi-
operasi lain yang memanipuasi objek data integer menyatakan struktur data.

Struktur data = Objek data + { Operasi manipulasi }

21
Algorithm & Data Structure

Tahap pembuatan struktur data adalah :

1. Tahap Spesifikasi
Pendeskripsian / spesifikasi struktur data menyatakan apa yang dapat dilakukan struktur
data, bukan cara penerapannya. Spesifikasi dapat dilakukan dengan dua cara, yaitu :
a. Spesifikasi secara formal
b. Spesifikasi secara informal
2. Tahap Implementasi
Implementasi menyatakan cara penerapan struktur data dengan struktur data yang telah
ada.Implementasi struktur data adalah proses pendefinisian tipe data abstrak sehingga
semua operasi dapat dieksekusi computer. Implementasi struktur penyinpanan item-item
data serta algoritma-algoritma untuk implementasi operasi-operasi sehingga menjamin
terpenuhinya karakteristik struktur data, relasi item-item data atau invariant pada struktur
data itu.
3. Tahap Pemrograman
Pemrograman terstruktur adalah penerjemahan menjadi pernyataan di bahasa pemrograman
tertentu. Prosesnya terdiri dari :
a. Deklarasi yang mendefinisikan objek-objek data dan hubungannya…
b. Pembuatan prosedur / rutin untuk operasi-operasi dasar yang menjaga invariant pada
struktur data itu .
Sesuai dengan relasi yang didefinisikan di spesifikasi perancangan harus memilih tipe-
tipe data yang telah ada untuk merepresentasikan struktur data. Struktur data di bangun
menggunakan fasilitas pembentukan atau pembuatan struktur data yang disediakan bahasa
seperti array, record, dan sebagainya atau yang telah di buat seperti stack, queue, atau
himpunan menggunakan linked list. Pembuatan struktur data adalah pembentukan tipe data
lengkap yang mempunyai empat property berikut :
1. Nama
Identifier tipe data
2. Domain
Domain / himpunan semesta nilai di tipe data
3. Konstanta (penyebutan anggota-anggotanya)

22
Algorithm & Data Structure

Cara penyebutan anggota anggota tipe data


4. Operasi-operasi terhadap tipe data itu (operator)
Daftar operasi terhadap anggota tipe data sehingga kelakuan objek data sesuai
spesifikasi.

3.3. Jenis Struktur Data


3.3.1. Struktur Data Sederhana
a. Array (Larik)
Larik adalah struktur data statik yang menyimpan sekumpulan elemen yang bertipe
sama. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe
data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya
elemen larik harus sudah diketahui sebelum program dieksekusi. Tipe elemen larik
dapat berupa tipe sederhana, tipe terstruktur, atau tipe larik lain. Nama lain array
adalah larik, tabel, atau vektor.
b. Record (Catatan)
ADT adalah definisi tipe dan sekumpulan primitif (operasi dasar) terhadap tipe
tersebut. Tipe diterjemahkan menjadi tipe terdefinisi dalam bahasa pemrograman
yang bersangkutan.

3.3.2. Struktur Data Majemuk


a. Linier
1. Stack (Tumpukan)
Stack (tumpukan) adalah list linier yang dikenali elemen puncaknya (top),
aturan penyisipan dan penghapusan elemennya tertentu (penyisipan selalu
dilakukan “di atas” (top), penghapusan selalu dilakukan pada top). Karena
aturan penyisipan dan penghapusan semacam itu, top adalah satu-satunya
alamat tempat terjadi operasi. Elemen yang ditambahkan paling akhir akan
menjadi elemen yang akan dihapus. Dikatakan bahwa elemen stack akan
tersusun secara LIFO (Last In First Out).

23
Algorithm & Data Structure

2. Queue (Antrian)
Queue (antrian) adalah list linier yang dikenali elemen pertama (head) dan
elemen terakhirnya (tail); Aturan penyisipan dan penghapusan elemennya
disefinisikan sebagai penyisipan selalu dilakukan setelah elemen terakhir,
penghapusan selalu dilakukan pada elemen pertama; Satu elemen dengan
elemen lain dapat diakses melalui informasi next.

3. List dan Multi-List (Daftar)


List linier adalah sekumpulan elemen bertipe sama, yang mempunyai
keterurutan tertentu, yang setiap elemennya terdiri dari 2 bagian. Sebuah list
linier dikenali dengan (1) Elemen pertamanya, biasanya melalui alamat elemen
pertama yang disebut (first); (2) Alamat elemen berikutnya (suksesor), jika kita
mengetahui alamat sebuah elemen, yang dapat diakses melalui field next; (3)
Setiap elemen mempunyai alamat, yaitu tempat elemen disimpan dapat diacu.
Untuk mengacu sebuah elemen, alamat harus terdefinisi. Dengan alamat
tersebut informasi yang tersimpan pada elemen list dapat diakses; (4) Elemen
terakhirnya.

b. Non-Linier
1. Binary Tree (Pohon Biner)
Sebuah pohon biner (binary tree) adalah himpunan terbatas yang mungkin
kosong atau terdiri dari sebuah simpul yang disebut sebagai akar dan dua buah
himpunan lain yang disjoint yang merupakan pohon biner yang disebut sebagai
sub pohon kiri (left) dan sub pohon kanan (right) dari pohon biner tersebut.
Pohon biner merupakan tipe yang sangat penting dari struktur data dan banyak
dijumpai dalam berbagai terapan. Karakteristik yang dimiliki oleh pohon biner
adalah bahwa setiap simpul paling banyak hanya memiliki dua buah anak, dan
mungkin tidak punya anak. Istilah-istilah yang digunakan sama dengan istilah
pada pohon secara umum.

24
Algorithm & Data Structure

2. Graph (Graf)
Graph merupakan struktur data yang paling umum. Jika struktur linier
memungkinkan pendefinisian keterhubungan sekuensial antara entitas data,
struktur data tree memungkinkan pendefinisian keterhubungan hirarkis, maka
struktur graph memungkinkan pendefinisian keterhubungan tak terbatas antara
entitas data. Banyak entitas-entitas data dalam masalah-masalah nyata secara
alamiah memiliki keterhubungan langsung (adjacency) secara tak terbatas
demikian. Contoh: informasi topologi dan jarak antar kota-kota di pulau Jawa.
Dalam masalah ini kota X bisa berhubungan langsung dengan hanya satu atau
lima kota lainnya. Untuk memeriksa keterhubungan dan jarak tidak langsung
antara dua kota dapat diperoleh berdasarkan data keterhubungan-keterhubungan
langsung dari kota-kota lainnya yang memperantarainya. Representasi data
dengan struktur data linier ataupun hirarkis pada masalah ini masih bisa
digunakan namun akan membutuhkan pencarian-pencarian yang kurang efisien.
Struktur data graph secara eksplisit menyatakan keterhubungan ini sehingga
pencariannya langsung (straight forward) dilakukan pada strukturnya sendiri.

25
Algorithm & Data Structure

BAB 4

TIPE DATA DAN OPERATOR

4.1. Tipe Data


Tipe data adalah pengelompokan data berdasarkan isi dan sifatnya. Ada banyak tipe data
yang tersedia, tergantung jenis bahasa pemrograman yang dipakai. Secara garis besar tipe data
dapat dikategorikan menjadi tiga macam yaitu tipe data dasar (primitive data type), tipe data
abstrak (abstract data type) dan Tipe data Collection. Pada umumnya dalam setiap bahasa
pemrograman terdapat tiga level tipe data, yaitu:
1. Tipe data primitif
Tipe data Primitif mulai dikenal pada bahasa pemrograman prosedural seperti:
Pascal, C, atau Basic. Dimana tipe data ini memiliki ukuran memori yang tetap dan
pasti, diantaranya:
a. Integer
Digunakan untuk data-data angka yang tidak mengandung angka dibelakang
koma. Misalnya 3, 21, 78.Jangkauan tipe data integer sebagai berikut : byte (8
byte), short (16 b), int (32 b), long (64 b)
b. Floating point
Tipe yang mempresentasikan data-data bilangan yang mengandung angka
dibelakang koma, misalnya 3.16, 21.5, dll.
Besaran tipe data Floating point sebagai berikut : float (32 byte), double(64
b), decimal(128 b), big Decimal(256 b)
c. Booleans
Tipe ini merepresentasikan data-data yang hanya mengandung dua buah nilai,
yaitu nilai logika (boolean) yang terdiri dari nilai benar (direpresentasikan
dengan nilai 1) dan nilai salah (direpresentasikan dengan nilai 0). Ukuran tipe
data boolean (1 bit)

26
Algorithm & Data Structure

d. Characters
Tipe ini merepresentasikan data-data yang berupa karakter, dan dinyatakan
dengan tipe char, sedangkan untuk string dinyatakan dengan pointer dari tipe
char yaitu char*. Ukuran tipe data char(1 byte)
e. String(koleksi dari char )
Operasional tipe data primitif terbatas pada jenis tipe datanya, sehingga diperlukan
konversi atau Casting untuk merubahnya apabila dibutuhkan penggabungan
operasional pada tipe data tersebut.

Gambar 4.1 Tipe Data

2. Tipe data abstrak (Obyek)


Tipe data Obyek mulai digunakan pada pemrograman prosedural pascal ataupun C
dengan penggunaan tipe data abstrak dan pointer, yaitu record, struct untuk tipe data
kelompok serta pointer untuk penciptaan tipe data dinamis. Pada perkembangannya
bahasa pemrograman berorientasi obyek menggunakannya untuk tipe data Obyek
dimulai pada bahasa pemrograman LISP dan kemudian disusul Java. Tipe data ini
dapat merepresentasikan kelompok tipe data dengan beragam tipe primitif yang bisa
diciptakan secara dinamis. Sedangkan pada Java yang sepenuhnya berbasis obyek

27
Algorithm & Data Structure

dengan menggunakan Class dimana obyek tidak hanya atribut variabel tetapi juga
methode, karena itu tipe data abstrak memiliki ukuran memori yang dinamis atau
adaptif sesuai dengan masukan yang diberikan.

3. Tipe data Collection


Koleksi adalah tipe data yang berupa rangkaian atau kumpulan data ataupun obyek
yang berindeks. Terdapat tiga tipe dasar koleksi di Java yaitu:
a. Array
koleksi statis dengan ukuran tetap dan hanya bisa mengelompokkan tipe data
yang sama.
b. List
koleksi dinamis dengan ukuran adaptif dan bisa mengelompokkan tipe data
yang sama ataupun berbeda, List merupakan tipe data koleksi yang memiliki
indeks kontinyu dan dapat dioperasikan secara dinamis tanpa dibatasi jumlah
indeks ataupun tipe data dasarnya. Operasional koleksi list mengikuti standar
antrian Queue dimana setiap data masukan akan selalu ditempatkan pada
indeks berikutnya.
c. Map
koleksi dinamis dengan ukuran adaptif dan bisa mengelompokkan tipe data
yang sama ataupun berbeda dengan menggunakan pasangan <key, value>.

4.2. Operator
Operator dalam bahasa pemrograman adalah simbol yang memberitahu compiler atau
interpreter untuk melakukan operasi matematika, relasional atau logika tertentu dan
menghasilkan hasil akhir. Operator Matematika yaitu operator yang digunakan untuk operasi
matematis terhadap suatu nilai data. Ada beberapa operator aritmatika yang dapat digunakan
dalam pemrograman yaitu Penjumlahan, Pengurangan, Pembagian, Perkalian dan Pangkat.
Operator adalah simbol-simbol khusus yang digunakan untuk mengoperasikan suatu nilai data
(operand).

28
Algorithm & Data Structure

4.2.1. Assignment Operator / Operator Penugasan


Assignment Operator (operator penugasan) adalah operator yang menggunakan tanda
sama dengan (=) untuk mengisi sebuah nilai dalam suatu variabel. Operator Assignment
digunakan untuk menyatakan suatu perintah atau fungsi perhitungan untuk memberikan nilai
pada variabel dalam bentuk yang disingkat.

Operator penugasan terdiri dari :

Operator Nama Operator Contoh Keterangan


= Pengisian Nilai A=B A=B
+= Pengisian Nilai dan Penjumlahan A+=B A=A+B
-= Pengisian dan Pengurangan A-=B A=A-B
*= Pengisian dan Perkalian A*=B A=A*B
/= Pengisian dan Pembagian A/=B A=A/B
Pengisian dan Sisa
%= A%=B A=A%B
Bagi(modulus)
**= Pengisian dan Pemangkatan A**=B A=A**B

Tabel 4.2.1 Assignment Operator / Operator Penugasan

Sebenarnya, operator penugasan sama seperti operator aritmatika dan juga digunakan
untuk melakukan operasi aritmatika.

Contoh :

var x = 25;

x++;

x--

Maka nilai variable x akan menjadi 26.

29
Algorithm & Data Structure

Khusus untuk operator penugasan, yang dijumlah atau dikurangi dengan satu bisa
disingkat dengan ++ (untuk penjumlahan) dan — (untuk pengurangan).

4.2.2. Arithmetic Operator / Operator Aritmatika


Arithmetic Operator (operator aritmatika) adalah operator yang digunakan untuk
melaksanakan operasi aritmatika. Program komputer banyak digunakan untuk perhitungan
matematis. Kita bisa menulis program komputer yang sederhana seperti menambahkan dua
angka (2 + 3) dan kita juga bisa menulis sebuah program, yang bisa menyelesaikan persamaan
kompleks seperti P (x) = x4 + 7x3 - 5x + 9. Anda harus sadar bahwa pada ungkapan pertama 2
dan 3 adalah operan dan + adalah operator.
Kedua pernyataan ini disebut ekspresi aritmatika dalam bahasa pemrograman dan plus,
minus yang digunakan dalam ungkapan ini disebut operator aritmatika dan nilai yang
digunakan dalam ungkapan ini seperti 2, 3 dan x, dll, disebut operan. Dalam bentuknya yang
paling sederhana, ungkapan semacam itu menghasilkan hasil numerik.

Operator Deskripsi Contoh Keterangan


A=2
+ Tambah 4
A+2
A=2
- Pengurangan 3
5-A
A=4
* Perkalian 20
A*5
/ Pembagian 10/2 5
% Modulus (Sisa Hasil Bagi) 5%2 1
A=5
++ Increment A=6
A++
A=5
-- Decrement A=4
A--

Tabel 4.2.2 Arithmetic Operator / Operator Aritmatika

30
Algorithm & Data Structure

4.2.3. Logical Operator / Operator Logika / Boolean Operator


Operator Boolean atau Operator Logika adalah operator yang digunakan untuk
melakukan operasi logika yaitu operator yang menghasilkan nilai TRUE (benar) atau FALSE
(salah).
Beberapa logical operator yang umum digunakan dalam pemrograman di antaranya:

1. OR(||)

Merupakan operator yang membandingkan dua operand dan bila salah satu nilainya
true maka dianggap true

2. AND(&&)

Merupakan operator yang membandingkan dua operand dan bila keduanya true, maka
dianggap true

3. NOT(!)

Merupakan operator yang membutuhkan hanya satu operand dan menghasilkan nilai
kebalikan dari operand itu sendiri.

4. EQUALS TO (==)

Merupakan operator yang membandingkan nilai dua operand dan menghasilkan true
bila nilainya sama

5. NOT EQUALS TO (!=)

Merupakan operator yang membandingkan nilai dua operand dan menghasilkan true
bila nilainya tidak sama

31
Algorithm & Data Structure

6. LESS THAN (<, <=)

Merupakan operator yang membandingkan nilai dua operand dan menghasilkan true
bila nilai di sisi kiri lebih kecil dari sisi kanan (<) atau bila nilai di sisi kiri lebih kecil
atau sama dengan sisi kanan (<=)

8. GREATER THAN (>, >=)

Merupakan operator yang membandingkan nilai dua operand dan menghasilkan true
bila nilai di sisi kiri lebih besar dari sisi kanan (>) atau bila nilai di sisi kiri lebih besar
atau sama dengan sisi kanan (>=)

9. EXCLUSIVE OR (^)

Merupakan operator yang membandingkan nilai dua operand dan menghasilkan true
bila nilai di sisi kiri berbeda dengan di sisi kanan (yang satu bernilai true dan satu
bernilai false).

N1||
N1 N2 N1&&N2 !N1 !N2 N1==N2 N1!=N2 N1<N2 N1>N2 N1^N2
N2
T T T T F F T F F F F
T F T F F T F T F T T
F T T F T F F T T F T
F F F F T T T F F F F

Tabel 4.2.3 Logical Operator / Operator Logika / Boolean Operator

32
Algorithm & Data Structure

4.2.4. Comparison Operator / Operator Pembanding


Operator Pembanding adalah operator yang digunakan untuk membandingkan dua buah
nilai atau operand.

Operator Deskripsi Contoh


== Sama Dengan 4==3 hasil False
!= Tidak Sama Dengan 2!=2 hasil False
<> Tidak Sama Dengan 2<>4 hasil True
> Lebih Besar dari 4>2 hasil True
< Lebih Kecil dari 2<3 hasil True
<= Lebih Kecil atau Sama Dengan dari 2<=3 hasil True
>= Lebih Besar atau Sama Dengan dari 2>=3 hasil False

Tabel 4.2.4 Comparison Operator / Operator Pembanding

33
Algorithm & Data Structure

BAB 5

VARIABEL DAN KONSTANTA

5.1. Pengertian Variabel


Pengertian Variabel adalah suatu besaran yang dapat diubah atau berubah sehingga
dapat mempengaruhi peristiwa atau hasil penelitian. Dengan penggunaan variabel, kita dapat
dengan mudah memperoleh dan memahami permasalahan. Pengertian variabel sangat
bermacam-macam bergantung dari mata pelajaran pengertian variabel dimaksudkan seperti
dalam mata pelajaran, sains, matematika, ilmu komputer, dan logika matematika.
Variabel Adalah sebuah tempat untuk menampung data dimemori dimana tempat
tersebut dapat menampung nilai (data) yang dapat berubah-ubah selama proses program. atau
variabel juga disebut sebagai sebuah identifier yang mempunyai nilai dinamis, arti kata
dinamis disini bermaksud bahwa nilai variabel tersebut dapat kita ubah sesuai kebutuhan
dalam program.Variabel adalah suatu data yang nilainya dapat berubah-ubah. Variabel sangat
erat kaitannya dengan tipe data. Karena sebagai keberadaan suatu data perlu di tentukan tipe
datanya untuk pengenalan processor dalam mengolah data tersebut.
Fungsi Variabel Adalah sebagai tempat yang akan digunakan untuk menampung data
dimemori dimana tempat tersebut dapat menampung nilai (data) yang dapat berubah-ubah
selama proses program. Contohnya dari variable seperti script dibawah ini

int a;

Maskud dari satu baris script diatas ialah memberi instruksi pada processor untuk membuat
variable a yang dialokasikan pada memori sebesar bit tipe data integer dengan nilai NULL
(tidak terisi apapun).

34
Algorithm & Data Structure

5.2. Jenis-jenis Variabel


Variabel terdiri dari beberapa macam antara lain sebagai berikut :

1. Variabel Independen (Variabel Bebas)

Variabel yang mempengaruhi atau sebab perubahan timbulnya variabel terikat


(dependen). Variabel Independen disebut juga dengan variabel perlakuan, kausa,
risiko, variabel stimulus, antecedent, variabel pengaruh, treatment, dan variabel
bebas. Dapat dikatakan variabel bebas karena dapat mempengaruhi variabel
lainnya.

2. Variabel Despenden (Variabel Terikat)

Variabel yang dipengaruhi, akibat dari adanya variabel bebas. Dikatakan sebagai
variabel terikat karena variabel terikat dipengaruhi oleh variabel independen
(variabel bebas). Variabel Despenden disebut juga dengan variabel terikat,
variabel output, Konsekuen, variabel tergantung, kriteria, variabel terpengaruh,
dan variabel efek.

3. Variabel Moderator

Variabel yang mempengaruhi baik itu memperkuat atau memperlemah hubungan


antara Variabel bebas dan terikat. Variabel Moderator juga disebut dengan
Variabel Independen Kedua. Skema variabel moderator yaitu Variabel Bebas
(Independen) - Moderator – Despenden.

4. Variabel Intervening

Variabel yang mempengaruhi variabel bebas dan variabel terikat secara teoritis,
tetapi tidak dapat diamati dan diukur. Variabel intervening merupakan variabel
antara/penyela pada variabel bebas dan variabel terikat, sehingga variabel bebas
tidak langsung mempengaruhi perubahan variabel terikat.

35
Algorithm & Data Structure

5. Variabel Kontrol

Variabel yang dikendalikan atau dibuat konstan sehingga hubungan variabel bebas
terhadap variabel terikat tidak terpengaruh oleh faktor luat yang tidak telitit.
Variabel kontrol sering digunakan sebagai pemanding melalui penelitian
eksperimental.

Aturan-aturan Penulisan variabel yaitu:

a. Nama variabel harus diawali dengan huruf


b. Tidak boleh menggunakan spasi pada satu nama variabel
c. Spasi bisa diganti dengan karakter underscore (_).
d. Nama variabel tidak boleh mengandung karakter-karakter khusus seperti: . (titik) , +
(tambah), - (kurang), * (kali), / (bagi), < (lebih kecil), > (lebih besar), & (dan), ( (kurung
buka), ) (kurung Tutup) dan lain-lain.
e. Nama variabel tidak boleh menggunakan kata-kata kunci bahasa pemrograman

5.3. Pengertian Konstanta


Variabel dan konstanta itu hampir sama pada intinya. Namun konstanta sendiri berarti
suatu data yang nilainya tetap. Jadi konstanta juga seperti variabel namun nilainya tidak dapat
berubah-ubah.
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa diubah, jadi
konstanta adalah juga variabel bedanya adalah pada nilai yang disimpannya, jika nilai datanya
sepanjang program berjalan tidak berubah-ubah maka sebuah varibel lebih baik diperlakukan
sebagai konstanta. Pada sebuah kode program, biasanya nilai data dari konstanta diberikan
langsung dibagian deklarasi konstanta. Sedangkan untuk variabel biasanya hanya ditentukan
nama variabel dan tipe datanya tanpa isian nilai data , Aturan penamaan variabel juga berlaku
untuk penamaan konstanta. Demikian juga aturan penetapan tipe data. konstanta dibagi
menjadi 4 yaitu :
1. Konstanta integer, berupa integer biasa, integer panjang (long int) dan integer tak
bertanda (unsigned integer). Nilainya dapat berupa desimal, oktal atau hexadesimal.

36
Algorithm & Data Structure

2. Konstanta floating point, dapat mengandung nilai pecahan, yang biasa ditulis dalam
bentuk pecahan biasa maupun bentuk eksponensial dan selalu dinyatakan dalam
double, kecuali jika diakhiri dengan F atau f (menyatakan konstanta float).
3. Konstanta string, merupakan deretan karakter yang diawali dan diakhiri dengan tanda
petik ganda (“…“). Juga dapat mengandung karakter yang menggunakan tanda \ yang
disebut karakter escape (escape sequence).
4. Konstanta karakter, selalu diawali dan diakhiri dengan tanda petik tunggal (‘…’).
Beberapa konstanta karakter dapat diawali dengan tanda \ (penempatannya setelah
tanda petik tunggal).

37
Algorithm & Data Structure

BAB 6

STRUKTUR KONTROL

6.1. Struktur Kontrol

Digunakan untuk mengatur susunan proses eksekusi statement-statement di dalam


program. Struktur kontrol mempunyai dua tipe:

1. Struktur kontrol keputusan

Digunakan untuk memilih bagian dari code yang akan dieksekusi (memilih dan
mengeksekusi block tertentu dari code yang dapat berpindah ke bagian lain ).Tipe-tipe:
statement-if ; statement-if-else ; statement-if-else if

2. Struktur kontrol pengulangan

Digunakan untuk mengeksekusi bagian tertentu sesuai dengan jumlah angka


pengulangannya. Tipe-tipe pengulangan : For, While dan Do ..While

6.2. Struktur Kontrol Keputusan


6.2.1. Statement IF
Pernyataan If akan menentukan sebuah pernyataan (atau blok kode) yang akan
eksekusi jika dan hanya jika persyaratan bernilai benar(true). Pernyataan if akan
menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan hanya
jika persyaratan bernilai benar(true). Fungsi dari logika if adalah membuat program
menjadi dua pilihan bercabang, sehingga alur program tidak lagi lurus kebawah namun
bisa mengalami beberapa kemungkinan. Logika if paling banyak digunakan atau
diaplikasikan dalam sebuah program.

38
Algorithm & Data Structure

Fungsi logika ini akan mengambil suatu kondisi tertentu kemudian menentukan nilai
TRUE atau FALSE. Nilai TRUE adalah nilai dimana kondisi tersebut terpenuhi dan
nilai FALSE adalah nilai untuk kondisi yang tidak terpenuhi. Berikut penjelasan untuk
logika IF.

Bentuk dari pernyataan if :

if( boolean_expression )
statement;
atau
if( boolean_expression ){
statement1; statement2;
...
}

Keterangan :
boolean_expression adalah sebuah penyataan logika (true/false) atau
variabel bertipe boolean.

Gambar 6.2.1 Statement IF

39
Algorithm & Data Structure

6.2.2. Statement If- Else


Pernyataan if-else digunakan apabila kitaingin mengeksekusi beberapa pernyataan
dengan kondisi true dan pernyataan yang lain dengan kondisi false.
Bentuk statement if-else
If ( boolean_expression )
statement;
else
statement;

dapat juga ditulis sepert :

if ( boolean_expression ){
statement1;
statement2;. . .}
else{
}

Gambar 6.2.2 Statement IF - Else

40
Algorithm & Data Structure

6.2.3. Statement if-else-if


Pernyataanpada bagian kondisielsedari blok if-elsedapat menjadi struktur if-elseyang
lain. Kondisi struktur seperti ini mengijinkan kita untuk membuat seleksi persyaratan
yang lebih kompleks.
Bentuk statement if-else-if

if( boolean_expression1 )
statement1;
else if( boolean_expression2 )
statement2;
else
statement3;

Gambar 6.2.3 Statement If-Else-If

41
Algorithm & Data Structure

6.3. Struktur Kontrol Pengulangan


Perulangan yang biasa disebut dengan “looping” adalah proses melakukan tindakan
yang sama secara berulang-ulang atau berkali-kali sampai batas yang telah ditentukan.
Struktur kontrol perulangan digunakan untuk mengulangi satu atau lebih algoritma
(perintah) tertentu guna menyelesaikan masalah tertentu. Struktur kontrol perulangan
yang dipakai memilki suatu fungsi dari program yang akan dijalankan secara berulang
Beberapa karakteristik struktur kontrol perulangan adalah:
a. Mengerjakan hal yang sama berulang-ulang.
b. Jumlah perulangan bisa ditetapkan, dapat juga sesuai kondisi.
c. Ada kondisi awal dan kondisi akhir. Perulangan dimulai dari kondisi awal, naik
secara bertahap dan berhenti saat mencapai kondisi akhir.
d. Menaikkan dan menurunkan kondisi per- ulangan dilakukan dengan operator
increment, decrement, dan ekspresi matematika.

6.3.1. Perulangan For


Perulangan for yaitu struktur yang memilki kontrol perulangan yang menjalankan
dengan satu atau lebih dari satu perintah dengan jumlah perulangan yang telah
ditentukan di dalam proses inisialisasi kondisi.
Berikut ini beberapa karakteristik dari pernyataan For:
a. Digunakan untuk perulangan yang batasnya sudah diketahui dengan jelas,
misalnya dari 1 sampai 10.
b. Memerlukan 2 buah variabel awal dan akhir perulangan, misalnya counter_awal
dan counter_akhir.
c. Nilai penghitung akan secara otomatis bertambah atau berkurang tiap kali
sebuah pengulangan dilaksanakan.

Bentuk umum penulisannya adalah sebagai berikut.

42
Algorithm & Data Structure

Contoh pengulangan For dalam Flowchart

Gambar 6.3.1 FlowChart Pengulangan For

6.3.2. Perulangan While


Perulangan while merupakan struktur kontrol perulangan yang akan melakukan
pengulangan selama kondisi yang dihasilkan dalam perulangan tersebut masih bernilai
benar.
Beberapa karakteristik struktur While adalah sebagai berikut:
a. Dilakukan pengecekan kondisi terlebih dahulu sebelum dilakukan perulangan.
Jika kondisi yang dicek bernilai benar (true) maka perulangan akan dilakukan.
Jika kondisi yang diperiksa bernilai salah (false) maka perulangan tidak
dilakukan. Ada kemungkinan tidak dikerjakan.
b. Blok pernyataan tidak harus ada. Struktur tanpa statement akan tetap dilakukan
selama kondisi masih true.
c. Perulangan akan terus dilakukan sampai kondisi false.

43
Algorithm & Data Structure

Bentuk umum penulisannya adalah sebagai berikut :

Contoh pengulangan While dalam Flowchart

Gambar 6.3.2 FlowChart Pengulangan While

6.3.3. Perulangan Do – While


Perulangan do-while bentuk struktur kontrol yang merupakan perulangan yang
menjalankan bentuk perintah yang ada di dalam yang terlebih dahulu yang kondisi
perulangan setelah perintah yang selesai dijalankan sebanyak satu kali.

44
Algorithm & Data Structure

Beberapa karakteristik struktur Do ... While adalah:


a. Perulangan akan dilakukan minimal satu kali terlebih dahulu, kemudian baru
dilakukan pengecekan terhadap kondisi. Jika kondisi benar maka perulangan
masih akan tetap dilakukan.
b. Perulangan dengan Do While akan dilakukan sampai kondisi false.

Bentuk penulisannya sebagai berikut :

Contoh pengulangan Do While dalam Flowchart

Gambar 6.3.3 FlowChart Pengulangan Do While

45
Algorithm & Data Structure

BAB 7

ARRAY

7.1. Pengertian Array


Array adalah suatu variabel yang menyimpan sekumpulan data yang memiliki tipe data
yang sama. Setiap data tersebut menempati lokasi atau alamat memory yang berbeda-beda dan
selanjutnya disebut elemen array. Elemen Array dapat diakses melalui indeks yang terdapat
didalamnya, masing-masing data yang disimpan dalam array memiliki index sebagai sebuah
pengenal.
Array adalah struktur data yang menyimpan data-data bertipe sama dalam urutan
tertentu. Array dapat dianalogikan sebagai sebuah lemari atau locker yang memiliki sederetan
kotak penyimpanan yang diberi nomor berurutan.

Array adalah object yang digunakan untuk menyimpan banyak data dengan tipe yang
sama. Tipe data dari array bisa : tipe data primitif atau class

Terdapat 3 langkah untuk membuat array:

1. Mendeklarasikan variabel array


2. Membuat array beserta ukurannya.
3. Memberikan sebuah nilai pada setiap element array.

Kelebihan lain dari array adalah kita bisa memakai sejumlah variable, mempunyai tipe
data sama (bersifat homogen), mempunyai batasan dari pemesanan alokasi memori (bersifat
statis), dengan nama yang sama asalkan variable tersebut dalam indeks yang berbeda.

Array dideklarasikan dengan tanda [ ] (bracket), Bentuk umum dari tipe data array
adalah :

tipe_data nama_array[jumlah_elemen]
`

46
Algorithm & Data Structure

Jika ingin mendeklarasikan sebuah array dengan tipe data integer dengan nama a dan
jumlah elemen array-nya 10 maka kodenya adalah :

int a[10];

Gambar 7.1. Flowchart Array

7.2. Array Berdimensi Satu


Array dengan satu buah indeks disebut array berdimensi satu, vektor, larik, atau
tabel.Variabel Larik atau lebih dikenal dengan array adalah tipe terstruktur yang terdiri dari
sejumlah komponen-komponen yang mempunyai tipe yang sama. Sebelum digunakan,
variabel array perlu dideklarasikan terlebih dahulu. Cara mendeklarasikan variabel array sama
seperti deklarasi variabel yang lainnya, hanya saja diikuti oleh suatu indek yang menunjukan
jumlah maksimum data yang disediakan.

47
Algorithm & Data Structure

Bentuk Umum pendeklarasian array :

tipe_data[] nama_var_array;
nama_var_array = new tipe_data[ukuran];

Atau bisa juga secara langsung seperti dibawah ini :

tipe_data[] nama_var_array = new tipe_data[ukuran];

Keterangan :
Type Data :Untuk menyatakan type data yang digunakan.
Ukuran :Untuk menyatakan jumlah maksimum elemen array.

Berikut contoh pendeklarasian array dan membuat objek array;


int[] nil_akhir;
nil_akhir = new int[6];

48

Anda mungkin juga menyukai