Anda di halaman 1dari 11

Nama : ANDHIKA

NIM : 202025002
PRODI : TEKNIK KIMIA

UJIAN AKHIR SEMESTER


1. DEFINISI DAN STRUKTUR DASAR 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 Algoritma harus logis dan harus
dapat ditentukan bernilai salah atau benar.
Struktut algoritma adalah urutan bagaimana pemrosesan instruksi dalam
algoritma dilakukan dan juga bagaimana struktur instruksi algoritma tersebut
dibagun. Struktur dasar algoritma dibagi menjadi 3 bagian sebagai berikut:
1. Runtunan (Sequence)
2. Pemilihan (Selection)
3. Pengulangan (Repitition)

beberapa kriteria penting yang perlu diperhatikan saat menyusun suatu


algorima:

 Input : Suatu algoritma bisa menerima masukan dari pengguna atau


bahkan tidak sama sekali.
 Ouput : Algoritma yang baik harus mempunyai minimal sebuah output.
 Definiteness : Algoritma memiliki instruksi-instruksi yang jelas (pasti)
dan tidak ambigu
 Finiteness : Suatu algoritma harus memiliki titik berhenti (stoping role)
 Effectiveness : Algoritma perlu berjalan dengan efektif dengan
mempertimbangkan berbagai aspek.

Contoh Algoritma dalam kehidupan sehari hari:


1. Mulai
2. Siapkan 1 bungkus mie, 2 gelas air, panci, mangkuk, sendok dan garpu
3. Masukan air kedalam panci
4. Nyalakan kompor atur dengan api sedang
5. Taru panci diatas kompor, tunggu hingga air mendidih
6. Jika air sudah mendidih masukan mie instant kedalam panci
7. Aduk mie agar matang merata
8. Jika dirasa sudah matang, angkat lalu buang air rebusan
9. Siapkan piring, lalu tiriskan bumbunya
10. Masukan mie diatas piring lalu aduk hingga bumbu merata.
11. Mie goreng siap disajikan.
12. Selesai
2. DEFINISI NOTASI ALGORITMA
Notasi algortima merupakan hal dasar yang harus diketahui oleh setiap
orang yang ingin membuat program, karena dalam notasi algoritma terdapat
kerangka-kerangka suatu program. Terdapat tiga cara (notasi) yang digunakan
dalam menuliskan algoritma yaitu :
1. Kalimat deskriptif
Notasi penulisan algoritma menggunakan bahasa deskriptif
dilakukan dengan menulisakan instruksi-instruksi yang harus
dilaksanakan dalam bentuk kalimat deskriptif dengan menggunakan
bahasa yang gamblang. Contoh penulisan notasi deskriptif untuk
menghitung keliling persegi panjang,

Deskripsi :
1. Masukan panjang
2. Masukan lebar
3. Hitung keliling = 2 * panjang + 2 * lebar
4. Tampilkan keliling ke layar

2. Flowchart
Notasi Flowchart merupakan gambar atau bagan yang
menampilkan proses langkah-langkah dari suatu pemecahan masalah
dalam program. Gambar ini dinyatakan dalam simbol. Maka dari itu
setiap simbol menyatakan proses tertentu.
Simbol-simbol flowchart yang biasa dipakai adalah adalah simbol-
simbol flowchart standart yang di keluarkan oleh ANSI dan ISO

2
3. Pseudocode
Pseudocode adalah notasi algortima yang penulisannya menyerupai
bahasa pemrograman tingkat tinggi. Keuntungan menggunakan
pseudocode adalah kemudahan mentranslasi ke bahasa pemrograman
karena ada hubungan anatara bentuk dan isi pseudocode dengan bahasa
pemrograman.
Contoh penulisan notasi Pseudocode untuk menghitung keliling
persegi panjang :

Algoritma : Keliling_Persegi_Panjang
/* dimasukkan nilai panjang (p) dan lebar (l). Carilah dan cetak keliling
persegi panjang */

Deklarasi :
p, l, K = real

Deskripsi :
1. Start
2. Read ( p )
3. Read ( l )
4. K 2 * p + 2 * l
5. cout << “K”;
6. End

3. DEFINISI TIPE, OPERATOR, DAN EKSPRESI PADA


ALGORITMA
1. Tipe Dasar
Tipe dasar adalah tipe yang dapat langsung dipakai. Yang termasuk
tipe dasar adalah bilangan lojik, bilangan bulat, karakter, bilangan riil,
dan string. Untuk bilangan lojik dan bilangan bulat disebut juga tipe
ordinal karena setiap konstanta nilainya dapat ditransformasikan ke suatu
nilai integer.
 Bilangan Logic
 Bilangan Bulat
 Bilangan Real
 Karakter
 String

Tipe Bentukan
Tipe bentukan adalah tipe yang didefenisikan sendiri oleh
pemogram (user defined type data). Tipe bentukan di susun oleh satu
atau lebih tipe dasar. Ada 2 macam tipe bentukan :
 Tipe dasar yang diberi nama tipe baru
 Tipe terstruktur

3
2. Operator
Operator adalah simbol-simbol khusus yang digunakan untuk
mengoperasikan suatu nilai data .
 Operator Aritmatika
 Operator Relasi
 Operator Bolean
 Precendence
 Asosiatif
 Operator Logika
 Lamban Lambang

Perioritas Operator Keterangan


I () Tanda kurung
II ++ -- Increment, Decrement
III * / % Kali, bagi dan sisa
IV + - Tambah dan kurang
V = += -= *= /= Operator pemberi nilai aritmatika
%=
VI ! Operator logika NOT
VII < > <= >= Operator relasional
VIII && || Operator logika DAN dan ATAU

3. Eksresi
Ekspresi adalah transformasi nilai menjadi keluaran yang
dilakukan melalui suatu perhitungan (komputasi). Ekspresi terdiri atas
operand dan operator, contoh ekspresi: “a + b”.Hasil Evaluasi dari
sebuah Ekpresi adalah nilai yang sesuai dengan type operand yang
dipakai

Macam macam Ekspresi :


 Expresi Arimatika
 Ekspresi Perbandingan/ Relasional
 Ekspresi Logika

4. DEFINISI RUNTUNAN(SEQUENCE)
Sequence atau runtunan dalam struktur algoritma adalah bahwa
instruksi-insturksi dalam algoritma diproses secara beruntun langkah demi
langkah dari awal sampai akhir dimulai dari langkah pertama hingga langkah
terakhir. Harus selalu diingat, bahwa Runtunan ini juga berlaku di dalam
bahasa pemrograman,

ketika instruksi bahasa pemrograman yang kita tulis di proses oleh


komputer, maka komputer akan memproses dan menterjemahkan bahasa
pemrograman tersebut secara beruntun dari awal hingga akhir dimulai dari
instruksi pada baris pertama hingga baris terakhir.

4
Contoh:
- Masukan Panjang8cm
- Masukan Lebar3cm
- Hitung luas persegi panjang, luasPanjang*Lebar
- Cetak luas persegi panjang

5. DEFINISI PEMILIHAN(SELECTION)
Pada umumnya instruksi algoritma setidaknya akan mengandung pemilihan,
atau selection, instruksi ini akan muncul apabila ada kasus yang memiliki 2
atau lebih alternatif penyelesaian.
Contoh :

Contoh pseudocode:
{ Judul }
Membandingkan_dua_nilai

{ Kamus }
a, b: Integer
keterangan: String

{ Algoritma }
Input(a, b);

{ Pemilihan - 2 Kasus }

5
If a > b Then
keterangan <- 'A lebih besar dari B'
Else
keterangan <- 'B lebih besar dari A'

Output(keterangan)

6. DEFINISI PENGULANGAN(REPETITION)
Struktur dasar algoritma yang ketiga adalah pengulangan atau repitition,
artinya kasus-kasus pemecahan masalah dalam algoritma maupun bahasa
pemrograman pada kenyataannya tidak akan lepas dari kasus-kasus yang
membutuhkan pengulangan. Di algoritma sendiri untuk mengatasi kasus
pengulangan data, memiliki intruksi tersendiri, dengan intruksi tersebut
pengulangan akan lebih mudah ditulis secara singkat dan praktis daripada
harus di tulis satu-persatu.
Contoh Pengulangan :
Dalam kasus di algoritma yang membuat sebuah data harus diulang
beberapa kali, misal untuk kasus mencetak angka 1 sampai 5.
Penyelesaian pengulangan sebenarnya sangat mudah, bisa saja kita tulis satu
persatu misal;

 langkah 1: tulis angka 1


 langkah 2: tulis angka 2
 langkah 3: tulis angka 3
 langkah 4: tulis angka 4
 langkah 5: tulis angka 5

Penjelasan Contoh :
Membuat intruksi pengulangan dengan menuliskannya satu persatu
tentunya bukanlah cara praktis, jika hanya 5 baris mungkin saja bisa dibuat
secara manual, ditulis satu-satu, namun bagaimana jika yang harus diulang
sebanyak 1.000 (seribu baris misalnya), saya yakin anda akan kerepotan
menuliskannya.
Oleh karena itu karena kerap sekali pengulangan ditemukan di kasus-
kasus pemecahan masalah terkomputerisasi, maka di algoritma dikenal
struktur pengulangan yang akan lebih memudahkan dan mempercepat
penulisan proses pengulangan secara praktis dan cepat. (pengulangan ini
biasanya dipelajari di materi algoritma Looping/ pengulangan).

7. PENGANTAR PEMROGRAMAN MODULAR


Pemrograman modular adalah teknik pemecahan program menjadi sejumlah
sub-program. Sub-program bisa berbentuk sub-rutin, modul, prosedur, atau

6
fungsi. Modul yang sudah dirancang dapat dipasang ke dalam program lain
yang membutuhkan Teknik pemrograman modular (procedure dan function)
Modularisasi memberikan dua keuntungan

a. Untuk aktifitas yang harus dilakukan lebih dari satu kali,modularisasi


menghindari penulisan teks program yang sama secara berulang kali.
b. Kemudahan dalam menulis dan menemukan kesalahan(debug) program.

Contoh :

8. FUNGSI / FUNCTION
Fungsi (Function) adalah suatu program terpisah dalam blok sendiri yang
berfungsi sebagai sub-program (modul program) yang merupakan sebuah
program kecil untuk memproses sebagian dari pekerjaan program utama.
Fungsi digunakan untuk mengumpulkan beberapa perintah yang sering
dipakai dalam sebuah program. Fungsi juga bisa diartikan sebagai bagian
dari program yang dapat digunakan kembali. contoh kasus struktur algoritma
yang melibatkan fungsi

7
Algoritma Menghitung persegi panjang tanpa Fungsi
algoritma hitung_persegi_panjang;

DEKLARASI
panjang : integer
lebar : integer
luas : integer

ALGORITMA:
lebar  5
panjang  10
luas  panjang * lebar

write(luas)

9. LARIK/ ARRAY ALGORITMA


Larik atau array adalah struktur data dalam pengkodean sebuah program,
dimana sebuah variabel atau peubah dapat menyimpan nilai sejenis lebih dari
satu nilai.

Gambar diatas adalah contoh penggunaan array sederhana 1 dimensi. Pada


baris nilai : array [0..9] of integer; maka baris ini mempersiapkan 10 tempat
penyimpanan dimemori.

Input data kedalam variabel array :


untuk mengisi nilai maka kita mengaksesnya dengan mengacu pada indeks,
 nilai [0] := 23; artinya kita memasukan nilai 23 kedalam indeks 0.
 nilai [1]:= 13 ; artinya kita memasukan nilai 13 kedalam indeks 1.
 nilai [2]:= 98 ; artinya kita memasukan nilai 98 kedalam indeks 2.
Anda boleh saja memasukan nilai kedalam indeks dengan tidak berurutan,
asalkan nilai indek tetap pada yang anda deklrasikan.

8
nilai [9]:= 106 ; artinya kita memasukan nilai 106 kedalam indeks 1. dst..
Bagaimana jika memasukan nilai kedelam indeks yang tidak ada di dalam
memori array, maka akana out of range, karena nilai yagn di input tidak ada
no indeksnya.

Memanggil Output Array :


untuk memanggil output maka kita juga harus mengacu pada indeks
variabel array pada gambar diatas maka kita menuliskan baris kode seperti
di bawah berikut
 writeln ( ' nilai 0 ', nilai [0] ); maka akan tercetak nilai yang tersimpan
pada indeks lemen o yaitu 23.
 writeln ( ' nilai 1 ', nilai [1] ); maka akan tercetak nilai yang tersimpan
pada indeks lemen 1 yaitu 13.
 writeln ( ' nilai 2 ', nilai [2] ); maka akan tercetak nilai yang tersimpan
pada indeks lemen 2 yaitu 98.
 writeln ( ' nilai 9 ', nilai [9] ); maka akan tercetak nilai yang tersimpan
pada indeks lemen 9 yaitu 106.

10. ALGORITMA PENCARIAN

Searching merupakan proses dasar dalam pengolahan data. Yaitu untuk


menemukan nilai tertentu dalam sekumpulan data yang bertipe sama.
Algoritma searching dijelaskan secara luas sebagai algoritma yang
menerima masukan berupa sebuah masalah dan menghasilkan sebuah
solusi untuk masalah tersebut. Algoritma searching menerima sebuah
argument kunci dan dengan langkah-langkah tertentu akan mencari
rekaman dengan kunci tersebut. Setelah melakukan proses pencarian,
akan diperoleh salah satu dari dua kemungkinan, yaitu data yang dicari
ditemukan atau tidak ditemukan.

Algoritma pencarian beruntun dapat dituliskan sebagai berikut:


(1)
i←0
(2)
ketemu ← false
(3)
selama (tidak ketemu) dan (i <= N) kerjakan baris 4
(4)
jika (Data*i+ = x) maka ketemu ← true, jika tidak i ← i + 1
(5)
jika (ketemu) maka i adalah indeks dari data yang dicari, jika data tidak
ditemukan.
.
Contoh
#include <stdio.h>
#include <conio.h>
void main()

9
{
int data[8] = {8,10,6,
-
2,11,7,1,100};
int cari;
int flag=0;
printf(“masukkan data yang ingin dicari = “);scanf(“%d”,&cari);
for(int i=0;i<8;i++)
{
if(data[i] == cari) flag=1;
}
if(flag==1) printf(“Data ada
!
\
n”);
else printf(“Data tidak ada!
\
n”);
getch();
return 1;
}

11. ALGORITMA PENGURUTAN


Algoritma pengurutan adalah algoritma untuk menyimpan sebuah list
tertentu pada suatu urutan tertentu, biasanya membesar atau mengecil.
Umumnya digunakan untuk mengurutkan huruf atau angka. Pada makalah
ini akan diulas mengenai pengurutan, algoritma, teknik, dan efisiensinya.

Algoritma Pengurutan
1. Bubble Sort
Bubble sort adalah salah satu metodepengurutan exchanging yang
bersifat langsung dan termasuk jenis pengurutan yang paling sederhana.
Nama bubble sort sendiri berasal dari sifat nilai elemen terbesar yang
selalu naik ke atas (ke akhir dari list) seperti gelembung udara(bubble).
2. Insertion
Algoritma insertion sort adalah sebuah algoritma sederhana yang cukup
efisien untuk mengurutkan sebuah list yang hampir terurut. Algorima
ini juga biasa digunakan sebagai bagian dari algoritma yang lebih
canggih. Cara kerja algoritma ini adalah dengan mengambil elemen list
satu-per-satu dan memasukkannya di posisi yang benar seperti
namanya.
3. Merge sort
Merge sort ini memanfaatkan sebuah fungsi merge dengan spesifikasi
mengurutkan 2 buah list yang elemen tiap list sudah terurut. Dengan ide
ini list yang akan diproses dibagi-bagi dulu menjadi list yang lebih kecil
hingga tingal satu elemen. Setelah itu digabung kembali dari dua list
menjadi satu, lalu digabung kembali terus sampai menjadi 2 list besar
yang setelah dimerge akan menghasilkan list yang sudah terurut.

10
Sorting jenis ini sangat berguna saat kita akan memproses jumlah
elemen yang sangat banyak.
4. Quick Sort
Quick sort merupakan divide and conquer algorithm. Algoritma ini
mengambil salah satu elemen secara acak (biasanya dari tengah) lalu
menyimpan semua elemen yang lebih kecil di sebelah kirinya dan
semua elemen yang lebih besar di sebelah kanannya. Hal ini dilakukan
secara rekursif terhadap elemen di sebelah kiri dan kanannya sampai
semua elemen sudah terurut.

12. ARSIP BERUNTUN LOGARITMA


Penyimpanan rekaman secara berurutan, rekaman yang satu dengan
rekaman yang lainnya. Untuk mengakses data tertentu, program harus
mengakses mulai dari rekaman pertama sampai rekaman yang diinginkan.
Pengaksesan arsip jenis ini, biasanya sangat lambat, khususnya arsip
berukuran besar, namun arsip berurutan mudah dibuat dan dipelihara.
Sekumpulan rekaman bertipe sama yang diakses secara beruntun mulai dari
rekaman pertama sampai rekaman yang terakhir  Rekaman pada arsip
beruntun diakses satu persatu secara searah
Contoh :
 Arsip bil berisi sekumpulan bilangan bulat Deklarasi bil : seqfile of integer {nama
arsip bilangan bulat}
 Mendefinisikan arsip bilangan bulat sebagai tipe bentukan Deklarasi type
ArsipBil : seqfile of integer bil : ArsipBil Lanjuta
 Arsip MHS yang berisi data mahasiswa (NIM, Nama, dan IPK) Deklarasi Type
datamhs : record MHS : seqfile of datamhs
 Mendefinisikan arsip diatas sebagai tipe baru tipe arsipmhs : seqfile of datamhs
Mhs : arsipmhs
 Arsip KAR yaitu arsip yang berisi data bertipe karakter. Setiap rekaman bertipe
karakter Deklarasi : KAR : Seqfile of char ;

11

Anda mungkin juga menyukai