Kelompok 7 Algoritma
Kelompok 7 Algoritma
ALGORITMA
Disusun Oleh :
1. Faturrahman Ahmadi (60200123051)
2. Rahul Muhammad Akhyar (60200123020)
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.
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
BAB 3 PENUTUP
3.1. KESIMPULAN 30
DAFTAR PUSTAKA
3
BAB 1
PENDAHULUAN
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
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.
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.
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.
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.
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.
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.
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)
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 :
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}
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.
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
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:
b. Tiap intruksi dilaksanakan sekali, dan tidak ada intruksi yang diulang.
c. Urutan intruksi yang dilaksanakan sama dan sesuai dengan intruksi yang
dibuat
19
< kurang dari = sama dengan >= lebih besar atau sama > lebih dari<= kurang
atau sama dengan<> tidak sama
(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).
(2) Flowchart
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.
(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.
(3) Pseudocode
22
bahasa tersebut hanya ditujukan agar dapat dibaca manusia. Sehingga
pseudocode tidak dapat dipahami oleh komputer.
(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.
(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.
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.
(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
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,
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.
(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.
f) Cetak 𝐿. Hasil yang diperoleh dari penerapan algoritma topological sort tidaklah tunggal.
(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.
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
Ladjamudin, Al-Bahra Bin. (2019). Analisis dan Desain Sistem Informasi. 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