Anda di halaman 1dari 30

MAKALAH

ALGORITMA

Disusun Oleh :
1. Faturrahman Ahmadi (60200123051)
2. Rahul Muhammad Akhyar (60200123020)

Dosen Pengampu : IR. A. Muhammad Syafar., S.T., M.T.,IPM

PRODI TEKNIK INFORMATIKA


FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGRI ALAUDDIN MAKASSAR
2024
1
KATA PENGANTAR

Alhamdulillah, puji syukur penulis haturkan kehadirat Allah SWT. Atas rahmat-
Nya lah Penulis dapat menyelesaikan makalah ini tepat pada waktunya. Tak lupa Penulis
juga menghaturkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah
mendukung dan membantu Penulis dalam menyelesaikan makalah ini.
Dalam makalah yang berjudul ALGORITMA DAN PEMROGRAMAN ini, akan
dibahas mengenai pengertian Algoritma dan Pemrograman, sejarah Algoritma itu sendiri,
kemudian dasar-dasar pemrograman yang menjelaskan tentang variabel, tipe data, dan
operatoryang terdapat dalam bahasa pemrograman. Selain itu, untuk mempermudah
pemahaman juga sebagai bahan latihan, Penulis juga menyertakan contoh program yang dapat
dipraktekkan oleh para pembaca.
Namun demikian, Penulis merasa masih banyak sekali kekurangan dalam
penyusunan makalah ini, sesuai dengan pepatah yang mengatakan bahwa tak ada gading yang tak retak. Oleh
karena itu, segala saran dan kritik yang membangun dari yang lebih berkompeten di bidang Algoritma
dan Pemrograman, penulis terima dengan penuh rasa terima kasih.
Akhir kata, Penulis berharap makalah ini dapat bermanfaat bagi para pembaca,
khususnya bagi yang akan mempelajari Algoritma dan Pemrograman.

Makassar , 13 Januari 2024

Penulis

2
DAFTAR ISI

KATA PENGANTAR i
DAFTAR ISI ii

BAB 1 PENDAHULUAN 1
1.1. LATAR BELAKANG 1
1.2. TUJUAN 1

BAB 2 PEMBAHASAN
2.1. PENGERTIAN ALGORITMA DAN PEMROGRAMAN 2
2.2. DEFINISI ALGORITMA 6
2.2.1. ALGORITMA MERUPAKAN JANTUNG ILMU
INFORMATIKA 11
2.2.2. MEKANISME PELAKSANAAN ALGORITMA OLEH
PEMROSES 14
2.2.3. BELAJAR MEMPROGRAM DAN BELAJAR BAHASA
PROGRAM 14
2.2.4. ALGORITMA 15

2.2.5. NOTASI ALGORITMA INDEPENDEN TERHADAP


BAHASA PEMROGRAMAN DAN MESIN KOMPUTER 17

2.3. ATURAN PENULISAN ALGORITMA 23

BAB 3 PENUTUP
3.1. KESIMPULAN 30
DAFTAR PUSTAKA

3
BAB 1
PENDAHULUAN

1.1. LATAR BELAKANG


Pesatnya teknologi, terutama teknologi komputer sudah tak bisa dipungkiri
lagi, bagi yang mengikuti perkembangannya, ia tidak akan dipandang sebelah mata.
Sebaliknya, bagi yang tidak mengikuti perkembangannya, bersiaplah untuk mundur
secara suka rela dari panggung kompetisi. Ibarat wabah, teknologi komputer sudah
menyusupi hampir semua bidang kehidupan manusia. Dari pemerintah pusat sampai
tingkat pemerintah desa, perusahaan-perusahaan, supermarket, minimarket,
perguruan tinggi, SLTA, SLTP, bahkan SD hampir semuanya mengenal komputer.
Saat ini, yang mempunyai lingkungan yang semakin luas dan banyak diminati, juga dapat
digunakan untuk menghasilkan uang adalah dunia pemrograman komputer. Dalam
dunia pemrograman komputer, dikenal algoritma dan banyak bahasa pemrograman,
seperti C, C++, Pascal, Basic, Java, dan lain-lain. Oleh karena itulah, yang akan
dibahas dalam makalah ini adalah Algoritma dan Pemrograman.

1.2. TUJUAN
Makalah ini disusun dengan tujuan sebagai sarana untuk mengikuti pesatnya
perkembangan teknologi komputer di masa sekarang ini, salah satunya di dunia
pemrograman yang sekarang semakin banyak diminati. Selain itu, tujuan disusunnya
makalah ini adalah untuk memenuhi tugas untuk memperbaiki nilai UTS.

4
1

BAB 2
PEMBAHASAN

2.1. PENGERTIAN ALGORITMA DAN PEMROGRAMAN

Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang
aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung
dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan
Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya
kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata
tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far
Muhammad Ibnu Musa Al-Khuwarizmi.
Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis
buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran
dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita
juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism
menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan
Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan
angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm
berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum,
sehingga kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm
diserap menjadi Algoritma.
Bahasa Pemrograman merupakan notasi yang dipergunakan untuk
mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh komputer
dan manusia. Proses komputasi umumnya didefinisikan secara formal menggunakan

5
konsep matematika dari Mesin Turing. Pada dasarnya bahasa Pemrograman
dirancang untuk memfasilitasi komunikasi antara manusia dengan komputer.
Sebuah bahasa pemrograman disebut Turing Complete jika dapat dipergunakan
untuk mendeskripsikan semua komputasi yang dapat dilakukan Mesin Turing, yaitu
memiliki variable integer dan operator aritmatik, pernyataan penugasan, pernyataan
sekuensial, pernyataan seleksi, dan pernyataan iterasi.

2.2. DEFINISI ALGORITMA

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang


disusun secara sistematis dan logis”. Kata Logis merupakan kata kunci dalam
Algoritma. Langkah-langkah dalam Algoritmaharus logis dan harus dapat ditentukan
bernilai salah atau benar.

2.2.1. Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang


ilmu computer yang diacu dalam terminologi algoritma. Namun, jangan
beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam
kehidupan sehari-haripun banyak terdapat proses yang dinyatakan dalam
suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan
dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep
selalu ada urutan langkah-lankah membuat masakan. Bila langkah-
langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-
ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-
langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara
umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor).
Pemroses tersebut dapat berupa manusia, komputer, robot atau alat alat
elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan
atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam
Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma

6
yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang
diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok.
Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat
dimengerti oleh pemroses. Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma.
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

2.2.2. Mekanisme Pelaksanan Algoritma Oleh Pemroses

Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh


komputer, algoritma hasrus ditulis dalam notasi bahasa pemrograman
sehingga dinamakan program. Jadi program adalah prwujudan atau
implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman
tertentu sehingga dapat dilaksanakan oleh komputer.

2.2.3. Belajar Memprogram Dan Belajar Bahasa Pemrograman

Belajar memprogram tidak sama dengan belajar bahasa pemrograman.


Belajar memprogram adalah belajar tentang metodologi pemecahan masalah,
kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca
dan dipahami. Sedangakan belajar bahasa pemrograman berarti belajar
memakai suatu bahasa aturan-aturan tata bahasanya, instruksi-instruksinya,
tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi-instruksi
tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja.
Sampai saat ini terdapat puluhan bahasa pemrogram. Yang dapat dibedakan
berdasarkan tujuan dan fungsinya. Diantaranya adalah :

Programming
Language Paradigm

Imperative Declarative
7
Prosedural C, ObjOriented Parallel Logic : Functional : Database :
Pascal, Ada, Object Processing : LISP, APL, SQL
PROLOG
Fortran, Pascal, C++, Ada, Pascal S, SCHEME
Basic Java, Occam,
Smalltalk, CLinda
Eiffel

a. Belajar Memprogram
 Belajar memprogram ≠ belajar bahasa pemrograman
 Belajar memprogram : belajar tentang strategi pemecahan masalah,
metodologi dan sistematika pemecahan masalah kemudian
menuliskannya dalam notasi yang disepakati bersama.
 Belajar memprogram : bersifat pemahaman persoalan, analisis dan
sintesis.
 Belajar memprogram, titik berat : designer program.

b. Belajar Bahasa Pemrograman


 Belajar bahasa pemrograman : belajar memakai suatu bahasa
pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi
yang spesifik untuk setiap bahasa.
 Belajar bahasa pemrograman, titik berat : coder.

c. Produk yang dihasilkan Pemrogram :


 Program dengan rancangan yang baik (metodologis, sistematis).
 Dapat dieksekusi oleh mesin.
 Berfungsi dengan benar.
 Sanggup melayani segala kemungkinan masukan.
 Disertai dokumentasi.

8
 Belajar memprogram, titik berat : designer program.

2.2.4. Algoritma

a. Aksi :
 kejadian yang terjadi pada selang waktu terbatas (dimulai saat T0 dan
berakhir pada saat T1).
 Menghasilkan efek netto yang terdefinisi dengan baik dan
direncanakan.

b. Contoh :
 Ibu Tati mengupas kentang untuk mempersiapkan makan malam
(luas ruang lingkupnya).
 Karena ruang lingkup luas, maka harus didefinisikan keadaan awal
dan efek netto yang direncanakan ( Initial State dan Final State).
 Initial State (keadaan awal) : T0 kentang sudah ada dikantong
kentang, dan ditaruh di rak dapur dimana ibu Tati akan mengupasnya.
 Final State (keadaan akhir) : T1 kentang dalam keadaan terkupas di
panci, siap untuk dimasak dan kantong kertasnya harus dikembalikan
ke rak lagi.
 Kejadian : urut-urutan dari beberapa aksi yang terjadi secara
berurutan.
 Efek kumulatif dari semua aksi yang terjadi menjadi efek netto dari
kejadian.
 Penggolongan suatu kejadian menjadi aksi adalah relatif tergantung
dari sudut pandang. Contoh mengupas kentang dapat dijelaskan :
- Ambil kantong kentang dari rak
- Ambil panci dari almari
- Kupas kentang
- Kembalikan kantong kentang ke rak

9
 Contoh lain (jika tidak dipandang perlu untuk menjelaskan kantong
kentang diambil dari rak sebelum ambil panci) :
- Ambil kantong kentang dari rak dan ambil panci dari almari
- Kupas kentang
- Kembalikan kantong kentang ke rak

Jika esok hari ibu Tati mengupas kentang lagi untuk makan malam juga,
dan kita mengamati hal-hal yang sama, apakah hal tsb bisa disebut sama?
Ini tergantung jawabannya bisa sama bisa tidak.
Tidak karena ibu Tati tidak mungkin mengupas kentang yang sama
dengan kemarin.
Sama karena kemiripan pola yang dilakukan.

2.2.5. Notasi Algoritma Independen Terhadap Bahasa Pemrograman Dan


Mesin Komputer

Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa


pemrograman. Analoginya sama dengan resep membuat kue. Sebuah resep
dapat ditulis dalam bahasa apapun dan hasilnya akan sama asalkan semua
aturan pada resep diikuti. Mengapa demikian ? Karena setiap juru masak
(sebagai pemroses) dapat melakukan operasi dasar yang sama, seperti
mengocok telur, menimbang berat gula, dan lain sebagainya.

Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda


teknologinya, tetapi secara umum semua komputer dapat melakukan operasi-
operasi dasar dalam pemrograman seperti operasi pembacaan data, operasi
perbandingan, operasi aritmatika, dan sebagainya. Perkembangan teknologi
komputer tidak mengubah operasi-operasi dasar itu, yang berubah hanyalah
kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain setiap program dalam
bahasa tingkat tinggi selalu diterjemahkan kedalam bahasa mesin sebelum
akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin
menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang
sama pada setiap komputer.

Pemrograman Prosedural

10
Algoritma berisi urutan langkah-langkah penyelesaian masalah. Ini berarti
Algoritma adalah proses yang procedural.
Definisi Prosedural menurut Kamus Besar Bahasa Indonesia :
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan suatu
masalah.
Pada pemrograman procedural, program dibedakan antara bagian data dengan
bagian instruksi. Bagian instruksi terdiri atas runtutan (sequence) instruksi
yang dilaksanakan satu per satu secara berurutan oleh pemroses. Alur
pelaksanaan instruksi dapat berubah karena adanya pencabangan kondisional.
Data yang disimpan di dalam memori dimanipulasi oleh instrusi secara
beruntun atau procedural. Paradigma pemrograman seperti ini dinamakan
pemrograman procedural.

Bahasa-bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C


mendukung kegiatan pemrograman procedural, karena itu mereka dinamakan
juga bahasa procedural. Selain paradigma pemrograman procedural, ada lagi
paradigma yang lain yaitu pemrograman berorientasi objek (Object Oriented
Programming). Paradigma pemrograman ini merupakan trend baru dan
sangat populr akhir-akhir ini.

Paradigma pemrograman yang lain adalah pemrograman fungsional,


pemrogramn deklaratif dan pemrograman konkuren. Pada kesempatan ini
penulis hanya menyajikan paradigma pemrograman procedural saja.

Keuntungan pemakaian algoritma adalah: logika pemecahan masalah dapat


dibuat bertingkat (mulai dari global menuju terperinci), algoritma
merupakan bentuk fleksibel untuk diterapkan keberbagai bahasa
pemrograman.

Jadi Algoritma adalah:


1. penyusunaan aspekproses logika dari suatu pemecahan masalah tanpa
melihat karakteristik bahasa pemrograman yang akan digunakan.

11
2. Urutan notasi logika yang merupakan hasil analiss dan rancangan
sistematik dari strategi pemecahan maslah, untuk menggambarkan
urutan langkah kerja yang jika dikerjakan akan membawa ketujuannya.
3. Urutan logika langkah kerja untuk meyelesaikan suatu masalah.
Contoh algoritma dalam kehidupan sehari-hari, misalnya: menjahit
pakaian, membuat kue, jadwal harian, panduan merakit komputer, dan
lain-lain.

Beberapa notasi yang digunakan dalam penulisan algoritma :


1. Notasi I : untaian kalimat deskriptif
2. Notasi II : diagram alir (flow chart)
3. Notasi III : psudo-code

Simbol-simbol program flowchart

Contoh masalah : menghitung luas segiempat.

Notasi I :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan memasukkan nilai lebar dan panjang
segiempat
Deklarasi
Luas,panjang,lebar : bilangan bulat
Deskripsi
1. Masukkan nilai lebar dan panjang
12
2. Hitung luas sama dengan panjang kali lebar
3. Tampilkan Luas

Notasi II :

Notasi III :
Algoritma Luas_Segiempat
Menghitung luas segiempat dengan memasukkan nilai lebar dan panjang
segiempat
Deklarasi
Luas,panjang,lebar :integer
13
Deskripsi
Input(n)
Luas= panjang * lebar
Output(Luas)

2.3. ATURAN PENULISAN ALGORITMA


Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut
dapat ditulis dalam notasi apapun, asalkan mudah dibaca dan dimengerti, karena
memang tidak ada notasi baku dalam penulisan algoritma. Tiap orang dapat
membuat aturan penulisan dan notasi algoritma sendiri. Agar notasi algoritma mudah
ditranslasi ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritma
tersebut berkorespnden dengan notasi bahasa pemrograman secara umum.

a. Aturan Penulisan Algoritma


Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu :
 Judul (Header)
 Kamus
 Algoritma
Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap
bagian tersebut dituliskan diantara tanda kurung kurawa contoh { Komentar }.
Notasi algoritmis yang dituliskan diantara tanda ini tidak akan dieksekusi oleh
program.
Contoh :
Judul
{ Komentar mengenai Algoritma seperti cara kerja program, Kondisi awal dan
kondisi akhir dari algoritma }

Kamus 14
{ Pada bagian ini, didefinifikan nama konstanta, nama variable, nama
prosedur dan nama fungsi }
Algoritma
{ Pada bagian ini algoritma dituliskan. Semua teks yang dituliskan tidak
diantara tanda kurung kurawa akan dianggap sebagai notasi algoritma yang
akan berpengaruh terhadap kebenaran algoritma }

Judul (Header)
Judul adalah bagian teks algoritma yang digunakan sebagai tempat
mendefinisikan nama dengan menentukan apakah teks tersebut adalah program,
prosedur, fungsi. Setelah judul disarankan untuk menuliskan spesifikasi singkat
dari teks algoritma tersebut. Nama algoritma sebaiknya singkat namun cukup
menggambarkan apa yang akan dilakukan oleh algoritma tersebut.
Contoh :

Program Luas_Kubus ← {Judul Algoritma}


{ Menghitung luas kubus untuk ukuran sisi yang dibaca dari piranti masukan
lalu mencetak hasilnya kepiranti keluaran} ← {Spesifikasi Algoritma}

Catatan :
Untuk memisahkan antara kata dalam judul algoritma menggunakan tanda “_”
bukanlah suatu keharusan. Anda dapat menuliskan LuasLingkaran atau
Luas_Lingkaran. Tetapi sebaiknya anda tidak menggunakan spasi “ “ untuk
memisahkan antara kata di dalam nama algoritma.

Kamus (Deklarasi)
Kamus adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
 Nama type
 Nama konstanta
 Nama variable
 Nama fungsi
15
 Nama prosedur

Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah
didefinisikan terlebih dahulu didalam kamus. Penulisan sekumpulan nama dalam
kamus sebaiknya dikelompokan menurut jenis nama tersebut. Nama variabel
belum terdefinisi nilainya ketika didefinisikan. Pendefinisian nama konstanta
sekaligus memberikan harga konstanta tersebut, pendefinisian nama fungsi
dilakukan sekaligus dengan domain / range serta spesifikasinya. Pendefinisian
nama prosedur sekaligus dengan pendefinisian parameter (jika ada) dan
spesifikasi prosedur (kondisi awal “Initial State”, Kondisi akhir “ Final State”
dan proses yang dilakukan).

Contoh :

Kamus
{Nama type, hanya untuk type yang bukan type dasar}
type jam : <hh,mm,ss :integer> {Type jam terdiri dari 3 masukan yaitu “hh”
sebagai jam. “mm” sebagai menit dan “ss” sebagai detik}

{Nama konstanta, harus menyebutkan type dan nilai }


constant phi : real = 3,14159
constant nama : string = ‘Alex’
constant benar : boolean = true

{Nama Informasi, menyebutkan type}


x,y : integer {suatu nilai yang bertype bilangan bulat}
NMax : real {nilai maksimum yang bertype bilangan real}
Nama : string {suatu nilai yang merupakan kumpulan character}
P : point {suatu nilai pada bidang kartesian}
Cari : Boolean {suatu nilai logika}
Algoritma (Deskripsi)

Algoritma adalah bagian inti dari suatu algoritma yang berisi instruksi atau
pemanggilan aksi yang telah didefinisikan. Komponen teks algoritma dalam
pemrograman procedural dapat berupa :
 Instruksi dasar seperti input/output, assignment
 Sequence (runtutan)
 Analisa kasus
16
 Perulangan
Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi
penulisan menentuan urutan langkah pelaksanaan perintah.

Contoh :

Algoritma
input (c,d) {menerima masukan 2 bilangan c dan d}
if c < d then {operasi kondisional}
e ← a + b {e di assignment oleh nilai a dan b}
else
e ← a – boutput (e) {hasil keluaran berupa bilangan e}

Catatan :
Untuk kata-kata input, output, if then else, output akan dipelajari lebih
mendalam dalam bab-bab selanjutnya.

Contoh Penyelesaian Masalah Oleh Algoritma


Mencetak String “Selamat Belajar Algoritma dan Pemrograman” ke piranti
Keluaran.

Program Cetak_string
{mencetak string “Selamat Belajar Algoritma dan Pemrograman” ke piranti
keluaran}
Kamus
{tidak ada}
Algoritma
Output (‘Selamat Belajar Algoritma dan Pemrograman’)

17
Menentukan nilai terbesar dari bilangan bulat yang dibaca dari piranti masukan
dan menuliskan hasilnya ke piranti keluaran.

Program Nilai_Maksimal
{Menentukan nilai tertinggi yang dibaca dari piranti masukan dan
hasilnya dicetak ke piranti keluaran}
Kamus
hasil,x,y : integer {hasil merupakan variabel untuk menampung nilai
keluaran}
{x,y adalah variabel untuk menampung nilai
masukan}
Algoritma
input (x,y) {membaca nilai x dan y dari piranti masukan}
if x < y then {operasi kondisional}
hasil ← x {hasil di assignment oleh nila terbesar}
else
hasil ← y
output (hasil) (nilai didalam variabel hasil dicetak ke piranti
keluaran}

b. Jenis-jenis Algoritma

Struktur kontrol digunakan untuk mengatur alur logika program agar


sesuiai dengan kenyataan. Struktur kontrol akan melibatkan variabel, tipe data,
dan operator. Secara mendasar struktur program memiliki kombinasi struktur
kontrol sebagai berikut:

(1) Urutan (Sequence)

18
Dalam membuat suatu algoritma, perlu ada ketentuan-ketentuan tertentu
yang perlu dipenuhi agar suatu algoritma bisa mengeluarkan output sesuai yang
kita inginkan. Salah satu ketentuan dalam algoritma adalah sequence (urutan).
alam membuat suatu algoritma, perlu ada ketentuan-ketentuan tertentu yang perlu
dipenuhi agar suatu algoritma bisa mengeluarkan output sesuai yang kita
inginkan. Salah satu ketentuan dalam algoritma adalah sequence (urutan).
Sequence terdiri dari satu atau lebih intruksi, diantaranya:

a. Tiap intruksi dikerjakan satu persatu.

b. Tiap intruksi dilaksanakan sekali, dan tidak ada intruksi yang diulang.

c. Urutan intruksi yang dilaksanakan sama dan sesuai dengan intruksi yang
dibuat

d. Akhir dari intruksi terakhir merupakan akhir algoritma

Dua tipe Sequence, diantaranya : urutan instruksi tidak berpengaruh


terhadap hasil keluaran, dimana urutan instruksi bergantung pada permasalahan
awal. Urutan instruksi yang berbeda tidak ada pengaruhnya terhadap
penyelesaian persoalan tetapi menghasilkan output yang berbeda. Selain urutan
instruksi tidak berpengaruh terhadap hasil keluaran ada juga tipe urutan Instruksi
Berpengaruh Terhadap Hasil Keluaran, dimana pertukuran nilai akan salah jika
kita tidak benar dalam menuliskan urutan instruksi. Jadi sequence (urutan) dalam
algoritma sangat penting, karena kita bisa lebih efektif dalam menjalankan suatu
algoritma dengan urut dan sesuai dengan apa yang diinginkan karena jika suatu
algoritma tidak ada sequence (urutan) maka algoritma tersebut akan kacau dan
bisa saja mengeluarkan output yang tidak sesuai.

(2) Pemilihan (Selection)

Pemilihan (selection) dapat menggunakan struktur kontrol pilihan dalam


pseudocode untuk menggambarkan sebuah pilihan diantara dua atau lebih
tindakan, tergantung kepada sebuah kondisi adalah benar atau salah. Kondisi ini
berdasarkan pada sebuah perbandingan 2 hal, dan biasanya diekspresikan dengan
salah satu operator hubungan/relational berikut ini :

19
< kurang dari = sama dengan >= lebih besar atau sama > lebih dari<= kurang
atau sama dengan<> tidak sama

Struktur pemilihan ini merupakan suatu implementasi algoritma dalam


pemecahan suatu masalah dengan berbagai alternatif jawaban yang tersedia dan
harus mengambil keputusan untuk memilih salah satu jawaban yang tepat.

(3) Pengulangan (Iteration)

Perulangan/loop adalah instruksi khusus dalam bahasa pemograman dan


algoritma yang digunakan untuk mengulang beberapa perintah sesuai dengan
jumlah yang telah ditentukan. Sebuah proses didalam program yang akan
mengulang satu atau beberapa statement terus menerus hingga sampai pada
kondisi berhenti. Ada 3 jenis bentuk pengulangan:

a. Pengulangan menggunakan for adalah pengulangan yang membutuhkan nilai


awal dan akhir/ nilai akhir dan awal. Umumnya digunakan pada perulangan
yang jumlah iterasinya sudah pasti atau sudah diketahui sebelumnya

b. Pengulangan menggunakan While Do adalah perulangan yang diketahui nilai


akhirnya saja (diperiksa dulu kondisinya baru masuk)

c. Pengulangan menggunakan Repeat Until adalah perulangan yang diketahui


nilai akhir saja(pernah masuk sebelumnya baru diperiksa). Pernyataan
Kondisional (If Statement) Pernyataan kondisional adalah pernyataan yang
hanya akan dijalankan jika suatu kondisi bernilai benar, berfungsi untuk
melakukan filter/penyaringan hasil berdasarkan kondisi tertentu.

Berikut adalah macam-macam pernyataan kondisional:

(1) IF: Hanya if, namun dengan inisialisasi atau nilai awal,

(2) IF..ELSE : Kontrol struktur else merupakan pelengkap dari kontrol struktur
if, digunakan untuk memberikan alternatif jawaban benar atau salah.
Pernyataan pada bagian else akan dijalankan apabila pernyataan pada bagian
if bernilai salah.. Struktur ini perlu memiliki 2 kasus untuk melanjutkan
instruksinya,,

20
(3) IF...ELSEIF....ELSE : Nilai hasil suatu ekspresi bisa jadi bukan merupakan
dua nilai, benar atau salah, tetapi bisa bnyak nilai. Bentuk if...
else...digunakan untuk memutuskan suatu blok perintah yang harus
dikerjakan berdasarkan dua macam nilai yang dihasilkan yaitu benar dan
salah.

Jika terdapat lebih dari dua maka harus digunakan struktur kontrol
yang dapat memenuhi kebutuhan ini. Struktur kontrol yang paling tepat
untuk menjawab permasalahan tersebut adalah if... elseif... else... Dikenal
sebagai nested-if. Struktur yang akan memeriksa N kasus, dengan
memeriksa (n - 1) kasus,(4) IF Bersarang Kombinasi pernyataan IF adalah
pernyataan IF yang berisi banyak kondisi dan beda untuk jenis kondisinya.
Setiap pernyataan bisa menggunakan operator logika AND (DAN) atau OR
(ATAU).

Jika kondisi dikombinasikan denganmenggunakan penghubung


AND, kedua kondisi harus bernilai benar untuk membuat kondisi kombinasi
bernilai benar. Jika kondisi dikombinasikan dengna menggunakan
penghubung OR, salah satu dari konsidi bernilai benar maka pernyataan
bisa dikerjakan

(2) Flowchart

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. Penulisan algoritma dengan cara flowchart dilakukan dengan
menggunakan simbol.

Dengan demikiansimbol menggambarkan proses tertentu. Sedangkan proses


digambarkan dengan garis penghubung. Dengan menggunakan flowchart, maka
akan mudah melakukan pengecekan bagian-bagian yang terlupakan dalam
analisis masalah. Penulisan algoritma dengan menggunakan cara flowchart
kurang efektif untuk penulisan algoritma yang panjang karena akan mengbiskan
banyak tempat.

21
Dalam pembuatan flowchart tidak ad rumus atau patokan yang bersifat
mutlak. Karena flowchart merupakan gambaran hasil pemikir dalam dalam
menganalisis suatu masalah yang nantinya akan diubah menjadi program
komputer. Tetapi, ada beberapa anjuran yang harus diperhatikan, yaitu:

(a) Flowchart digambarkan di suatu halaman dimulai dari sisi atas ke bawah atau
dari sisi kiri ke kanan.

(b) Aktivitas yang digambarkan harus didefinisikan dengan menggunakan bahasa


dan simbol yang tepat dan definisi ini harus dapat dimengerti oleh pembaca.

(c) Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas. Hanya
terdapat satu titik awal dan satu titik terakhir.

(d) Setiap langkah dari aktivitas harus diuraikan dengan deskripsi kata kerja,
misalkan "menghitung nilai rata-rata".

(e) Setiap langkah dari aktivitas harus berada pada urutan yang benar.

(f) Lingkup dan range dari aktivitas yang sedang digambarkan harus ditelusuri
dengan hati-hati.

Percabangan-percabangan yang memotong aktivitas yang sedang


digambarkan tidak perlu pada flowchart yang sama. Simbol konektor harus
digunakan dan percabangannya diletakkan pada halaman yang terpisah atau
hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.

(g) Gunakan simbol-simbol flowchart yang standar.

(3) Pseudocode

Pseudocode adalah cara penulisan algoritma yang menyerupai bahasa


pemrograman tingkat tinggi. Pseudocode menggunakan bahasa yang hampir
menyerupai bahasa pemrograman. Biasanya pseudocode menggunakan bahasa
yang mudah dipahami secara universal dan juga lebih ringkas dari pada cara
penulisan algoritma sebelumnya. Struktur bahasa yang digunakan dalam menulis
algoritma dengan cara ini berasal dari beberapa bahasa pemrograman, tetapi

22
bahasa tersebut hanya ditujukan agar dapat dibaca manusia. Sehingga
pseudocode tidak dapat dipahami oleh komputer.

Agar notasi psudocode dapat dipahami oleh komputer maka harus


diterjemahkan terlebih dahulu menjadi sintaks bahasa pemrograman komputer
tertentu. Tidak ada sintaks standar yang resmi dalam penulisan algoritma dengan
cara penulisan pseudocode. Oleh karena itu, pseudocode ini dapat diterapkan
dalam berbagai bahasa pemrograman. Tetapi, untuk memudahkan translasi ke
dalam bahasa pemrograman disarankan untuk menggunakan keyword yang
umum digunakan seperti: if, then, whike, do, else, repeat, for, dan lainnya.
Struktur penulisan algoritma dengan notasi pesudocode sama dengan cara
kalimat deskriptif yaitu:

(a) Judul

(b) Deklarasi

(c) Deskripsi

Jenis-jenis algoritma:

(1) Algoritma Bellman-Ford: menghitung jarak terpendek pada graf berbobot, di mana sisi
bisa memiliki bobot negatif.

AlgoritmaBellman-Ford digunakan untuk menghitung jarak terpendek (dari satu


sumber) pada sebuah graf berbobot. Maksudnya dari satu sumber dan menghitung
semua jarak terpendek yang berawal dari satu titik (node). Algoritma Bellman-Ford
hanya digunakan jika ada sisi berbobot negatif. Munculnya algoritma ini cukup
membantu jika bobot dari suatu graf bernilai negatif. Berikut ini telah melampirkan
langkah-langkah penyusunan algoritma Bellman-Ford yang akan mengembalikan nilai
TRUE jika pada graf tidak terdapat siklus yang negatif dan akan mengembalikan nilai
FALSE jika sebaliknya

(2) Algoritme Dijkstra, (sesuai penemunya Edsger Dijkstra), adalah sebuah algoritma yang
dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem)
untuk sebuah graf berarah (directed graph).

23
Menurut Andrew Goldberg peneliti Microsoft Research Silicon Valley,
mengatakan ada banyak alasan mengapa peneliti terus mempelajari masalah pencarian
jalan terpendek. "Jalan terpendek adalah masalah optimasi yang relevan untuk
berbagai macam aplikasi, seperti jaringan routing, game, desain sirkuit, dan
pemetaan". Algoritma Dijkstra bekerja dengan membuat jalur ke satu simpul optimal
pada setiap langkah. Jadi pada langkah ke n, setidaknya ada n node yang sudah kita
tahu jalur terpendek. Langkah-langkah algoritma Dijkstra dapat dilakukan dengan
langkah-langkah berikut:

(a) Tentukan titik mana yang akan menjadi node awal, lalu beri bobot jarak pada node
pertama ke node terdekat satu per satu, Dijkstra akan melakukan pengembangan
pencarian dari satu titik ke titik lain dan ke titik selanjutnya tahap demi tahap.

(b) Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu set nilai 0 pada node awal
dan nilai tak hingga terhadap node lain (belum terisi).

(c) Set semua node yang belum dilalui dan set node awal sebagai “Node keberangkatan”

(d) Dari node keberangkatan, pertimbangkan node tetangga yang belum dilalui dan hitung
jaraknya dari titik keberangkatan. Jika jarak ini lebih kecil dari jarak sebelumnya
(yang telah terekam sebelumnya) hapus data lama, simpan ulang data jarak dengan
jarak yang baru

(e) Saat kita selesai mempertimbangkan setiap jarak terhadap node tetangga, tandai node
yang telah dilalui sebagai “Node dilewati”. Node yang dilewati tidak akan pernah di
cek kembali, jarak yang disimpan adalah jarak terakhir dan yang paling minimal
bobotnya.

(f) Set “Node belum dilewati” dengan jarak terkecil (dari node keberangkatan) sebagai
“Node Keberangkatan” selanjutnya dan ulangi langkah e.Sebagai contoh hitunglah
Jarak

(3) Algoritma Floyd-Warshall: menghitung solusi jarak terpendek untuk semua pasang titik
pada sebuah graf berarah dan berbobot.

Algoritma Floyd Warshall adalah salah satu varian dari pemrograman dinamis,
metode untuk memecahkan masalah pencarian rute terpendek (sama seperti Algoritma

24
Dijkstra). Metode ini melakukan pemecahan masalah dengan memandang solusi yang
akan diperoleh sebagai suatu keputusan yang saling terkait. Maksudnya, solusi-solusi
dibentuk dari solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi
lebih dari satu. Algoritma ini juga bisa diterapkan pada sebuah aplikasi pencari rute
jalan yangterdekat dari suatu daerah ke daerah lainnya. dengan metode ini hasil yang di
dapat bisa lebih optimal namun memelukan resource yang cukup besar jika dipakai
untuk pencarian yang kompleks

(4) Algoritma Kruskal: mencari pohon rentang minimum pada sebuah graf. Sebuah
algoritma dalam teori graf yang mencari sebuah minimum spanning tree (MST) untuk
sebuah graf berbobot yang terhubung. Langkah-langkahnya, diantaranya:

a. Lakukan pengurutan terhadap setiap sisi di graf mulai dari sisi yang memiliki bobot
terkecil.

b. Pilih sisi yang mempunyai bobot minimum yang tidak membentuk sirkuit pada pohon,
kemudian tambahkan sisi tersebut ke dalam pohon.

c. Ulangi langkah kedua sebanyak n – 1 kali (n adalah jumlah simpul graf).

Dalam pembuatan graf algoritma kruskal lintasannya tidak boleh membentuk


circle. Kelebihan dan kekurangan dari algoritma kruskal, diantaranya:

a. Sangat cocok digunakan saat graf memiliki sisi berjumlah sedikit namun memiliki
sangat banyak simpul, karena orientasi kerja algoritma ini adalah berdasarkan urutan
bobot sisi bukan simpul.

b. Kurang cocok digunakan saat graf dimana setiap simpul terhubungkan dengan semua
simpul yang lain. Karenaalgoritma ini menitik beratkan pada pencarian sisi yang
diurutkan.

(5) Algoritma Prim: mencari pohon rentang minimum pada sebuah graf.

Sebuah algoritma dalam teori graf untuk mencari pohon rentang minimum untuk
sebuah graf berbobot yang saling terhubung. Ini berarti bahwa sebuah himpunan bagian
dari edge yang membentuk suatu pohon yang mengandung node, di mana bobot
keseluruhan dari semua edge dalam pohon diminimalisasikan. Bila graf tersebut tidak

25
terhubung, maka graf itu hanya memiliki satu pohon rentang minimum untuk satu dari
komponen yang terhubung. Langkah-langkah untuk mencari bobot minimum:

a. Ambil sisi dari graph (G) yang berbobot minimum, masukkan dalam Tree (T).

b. Pilih sisi yang mempunyai bobot minimum dan bersisian dengan simpul di T ,tetapi sisi
tersebut tidak membentuk sirkuit di T, kemudian tambahkan sisi tersebut ke dalam T.

c. Ulangi langkah 2 sebanyak (N -2 ) kali.

(6) Algoritma Boruvka: mencari pohon rentang minimum pada sebuah graf. Algoritma
Boruvka adalah salah satu algoritma yang digunakan untuk pencarian jalur. Algoritma
ini hanya bertujuan untuk menghubungkan semua titik, bukan untuk mencari jalur
yang tersambung dari awal sampai akhir

(7) Algoritma Ford-Fulkerson: menghitung aliran maksimal didalam graf.

Algoritma untuk memaksimumkan aliran (flow) dengan kapasitas dan biaya


yang terbatas pada jaringan. Algoritma Ford-Fulkerson juga merupakan metode yang
dipakai untuk melakukan penambahan aliran dalam suatu jaringan. Algoritma Ford-
Fulkerson menentukan maximum flow pada jaringan, Jika f merupakan feasible flow
dalam G. maka Edge (i,j) dikatakan : saturasi jika f(i,j) = c(i,j), bebas jika f(i,j) = 0, dan
positifif 0 < f(i,j) < c(i,j). Tiga hal penting yang perlu diperhatikan dalam kaitannya
dengan metode menggunakan algoritma Ford-Fulkerson, yaitu:

a. Residual network : residual capacity (rc) dari sebuah edge (i,j) adalah sama dengan c(i,j)
–f(i,j) ketika (i,j) adalah forward edge, atau sama dengan f(i,j) ketika (i,j) adalah
backward edge,

b. Flow Augmenting Path : suatu lintasan yang memungkinkan terjadinya suatu


penambahan aliran. Langkah FlowAughmenting Path, diantaranya: menaikkan flow
forward link sampai menuju ci,j, dan menurunkan flow arah backward link sampai
menuju 0 (kapasitas terendah).

c. Minimum Cutset : suatu metode pemecahan jaringan menjadi beberapa subnet.


Minimum cut-set akan membentuk suatu partisi (membentuk dua buah jaringan baru).

(8) Algoritma Edmonds-Karp: implementasi dari Ford-Fulkerson. mplementasi metode


Ford-Fulkerson untuk menghitung aliran maksimum dalam jaringan arus pada waktu O
( V E 2 ).

Algoritma ini pertama kali diterbitkan oleh Yefim Dinitz pada tahun 1970 dan
diterbitkan secara independen oleh Jack Edmonds dan Richard Karp pada tahun 1972.
Algoritma ini mencakup teknik tambahan yang mengurangi waktu berjalan ke O (V2E).
26
Algoritma ini identik dengan algoritma Ford-Fulkerson, kecuali bahwa urutan pencarian
saat menemukan jalan augmenting didefinisikan. Jalur yang ditemukan pastilah jalan
terpendek yang memiliki kapasitas yang tersedia. Ini bisa ditemukan dengan pencarian
yang luas , karena kita membiarkan tepi memiliki panjang satuan.

Waktu berjalan O (VE2) ditemukan dengan menunjukkan bahwa setiap jalur


augmenting dapat ditemukan pada waktu O (E), bahwa setiap kali setidaknya satu dari
ujung E menjadi jenuh (tepi yang memiliki arus maksimum), bahwa jarak dari tepi
jenuh ke sumber sepanjang jalan augmenting harus lebih lama dari waktu terakhir
jenuh, dan panjangnya paling banyak V. Sifat lain dari algoritma ini adalah bahwa
panjang jalur augmenting terpendek meningkat secara monoton.

(9) Spring based algorithm: algoritma untuk penggambaran draf Topological sort.

Sebuah topological sort dari sebuah graf tidak serkuler yang terhubung adalah
sebuah pengurutan pada simpul-simpulnya seperti semua sisi datang dari kiri ke
kanan. Hanya sebuah graf tidak sirkuler dapat memiliki sebuah topological sort,
karena sebuah graf sirkuler yang terhubung pada akhirnya harus kembali ke awal ke
simpul pertamasirkuler tersebut. Langkah-langkah dalam algoritma topological sort
adalah sebagai berikut:

a) Mula-mula definisikan 𝑆 sebagai him-punan seluruh simpul yang ada di dalam graf.

b) Cari sebuah simpul 𝑋 yang mana simpul tersebut tidak memiliki predecessor. Minimal
terdapat satu simpul dengan jenis seperti ini di dalam graf. Jika tidak, maka akan
terjadi cycle dan grafnya bukan asiklik sehingga algoritma topologi-cal sort tidak bisa
diterapkan.

c) Hapus 𝑋 dari 𝑆 dan keterhubungan antara 𝑋dengan item lainnya.

d) Insert 𝑋 sebagai elemen paling belakang di dalam 𝐿.

e) Jika 𝑆 tidak kosong, maka ulangi ke langkah 2.

f) Cetak 𝐿. Hasil yang diperoleh dari penerapan algoritma topological sort tidaklah tunggal.

Sebagai contoh, salah satu alternatif penyelesaian dari penerapan algoritma


topological sort pada graf berarah asiklik Algoritma pencarian (searching algorithm)
adalah algoritma yang menerima sebuah argument kunci dan dengan langkah-langkah
tertentu akan mencari rekaman dengan kunci tersebut. Setelah proses pencarian
dilaksanakan, akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari
ditemukan (successful) atau tidak ditemukan (unsuccessful). Sedangkan jenis-jenis
algoritma pencarian, diantaranya:

(1) Pencarian linear: mencari sebuah item pada sebuah list tak berurut.

27
Pencarian (searching) merupakan suatu pekerjaan yang sering dikerjakan dalam
kehidupan sehari – hari. Ada kalanya kita mencari sesuatu dengan tujuan hanya untuk
mengetahui apakah data tersebut ada dalam sekumpulan data atau tidak, sementara di lain
waktu mungkin kita menginginkan posisi dari data yang dicari tersebut.

Pencarian atau searching adalah proses untuk menemukan elemen yang spesifik di
dalam suatu array, dan ini adalah hal yang umum dilakukan pada proses pemrograman.
Pencarian Linier atau Pencarian Sekuensial adalah pencarian data secara linier (garis
lurus), artinya adalah pencarian dilakukan secara teratur (secara sekuensial) dari awal
sampai akhir data (atau bisa juga dari akhir ke awal data). Linear search digunakan pada
sekumpulan item. Metode ini didasarkan pada teknik melakukan penelusuran dari awal
hingga akhir dengan mengeksplorasi semua properti elemen yang ditemukan.

(2) Algoritma seleksi: mencari item ke-k pada sebuah list.

Algoritma ini juga memungkinkan untuk menemukan elemen terkecil ke-k dalam
waktu linear yang paling buruk atau orde statistik berlipat. Seleksi adalah sebuah sub
masalah dari permasalahan yang lebih kompleks seperti permasalahan tetangga terdekat.

(3) Pencarian biner: menemukan sebuah item pada sebuah list terurut.

Binary search (pencarian biner) adalah algoritme pencarian yang paling populer.
Binary search hanya berfungsi pada kumpulan elemen yang runtut. Dengan kata lain, agar
dapat menggunakan binary search, kumpulan elemen tersebut

28
BAB 3
PENUTUP

3.1. Kesimpulan
Imperative program beranalogi dibawah bahasa pemograman yang memacu
atau berorientasi pada objek objek system informasi yang mengarah pada system
informasi. Pembuatan program program komputer dengan penguasaan data yang ada
pada bahasa pemograman untuk dikuasai agar menjadi seorang programmer handal.
Beberapa sub dari bidang pemograman imperative diantaranya adalah variable dan
penugasan ; perintah tidak struktur ; perintah tidak terstruktur ; subprogram, prosedur
dan fungsi; dan penanganan eksepsi. Mengenali dan memberi contoh variable dan
penguasaaanya, mengenali bentuk perintah tidak terstruktur, mengenali bentuk
perintah terstruktur, dapat menjelaskan bentuk-bentuk struktur control, dapat
menuliskan subprogram, prosedur, dan fungsi, dan dapat mengenali serta
menjelaskan beberapa bentuk eksepsi dan penangananya.

29
DAFTAR PUSTAKA

http://google.com/http://ikc.dinus.ac.id/berseri/alex-algoritma/index.phphttps://wikipedia.co.id/
Software materi Asep Baban Sobana, ST.
Husein, Muhammad Fakhri & Amin Wibowo. (2021). Sistem Informasi Managemen.
Yogyakarta : Unit Penerbit dan Percetakan AMP YKPN

Kadir, Abdul. (2021). Pengenalan Sistem Informasi. Yogyakarta : Penerbit ANDI


Yogyakarta

Ladjamudin, Al-Bahra Bin. (2019). Analisis dan Desain Sistem Informasi. Yogyakarta :
Penerbit Graha Ilmu

Ladjamudin, Al-Bahra Bin. (2018). Rekayasa Perangkat Lunak. Yogyakarta : Penerbit


Graha Ilmu

Madcoms. (2019). PHP dan MySQL untuk Pemula. Madiun : Penerbit ANDI Yogyakarta

Madcoms. (2019). Teknik Mudah Membangun Website dengan HTML, PHP, Dan My
SQL. Madiun : Penerbit ANDI Yogyakarta

30

Anda mungkin juga menyukai