ALGORITMA
Konsep algoritma:
1. Tektik
penyusunan langkah-langkah dalam bentuk kalimat dengan jumlah kata terbatas,
tetapi tersusun secaral logis dan sistematis
2. Suatu prosedur
yang jelas untuk menyelesaikan suatu persoalan dengan menggunakan
langkah-langkah tertentu dan terbatas
Ciri
algoritma:
-
Algoritma mempunyai awal dan akhir
-
Setiap langkah harus didenifisikan dengan tepat
sehingga tidak memiliki arti ganda
-
Memiliki masukan (input) / kondisi awal
-
Memiliki keluaran (output) / kondisi akhir
-
Algoritma harus efektif: bila diikuti dengan benar
akan menyelesaikan permasalahan
Sifat
algoritma:
-
Input: Suatu algoritma memiliki kondisi awal / masukan
-
Outpot: Suatu algoritma memiliki kondisi akhir /
keluaran
-
Definiteness: langkah-langkah yang tertulis dalam
algoritma harus didefinisikan dengan jelas sehingga mudah digunakan uleh
pengguna
-
Finiteness: Suatu algoritma harus memberikan kondisi
akhir / output setelah melakukan proses algoritma
-
Effectiveness: setiap langkah bisa dilaksanakan dalam
waktu tertentu sehingga pada akirnya memberi solusi sesuai yang diharapkan
-
Generality: Langkah-langkah algoritma berlaku untuk
semua himpunan
Progam:
Perwujudan
dan implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu
Dasar-dasar
algoritma
§ Proses,
intruksi, aksi
§ Algoritma
merupakan deskripsi urutan pelaksanaan suatu proses
§ Algoritma
tersusun oleh deretan langkah intruksi yang logis
§ Tiap langkah
intruksi akan mengerjakan suatu tindakan(aksi)
§ Bila aksi
dilaksanakan, maka sejumlah operasi yang bersesuaian akan dikerjakan oleh cpu
Ekspresi algoritma
a. Bahasa ilmiah
b. Flowcart
c. Pseudicode
Bahasa
ilmiah:
1. Masukan panjang
persegi panjang
2. Masukan lebar
persegi panjang
3. Kalikan lebar
dan panjang untuk mencari luas
4. Cetak luasnya
Pseudokode:
1. Read (panjang,
lebar)
2. Luas:=panjang*lebar
3. Write(luas)
Hal-hal yang
harus diperhatikan dalam algoritma:
1. Teks algoritma
berisi dekskripsi langkah-langkah penyelesaian masalah
2. Tidak ada notasi
yang baku dalam penulisan teks algoritma
3. Setiap orang
dapat membuat aturan penulisan (notasi algoritmik milik sendiri)
4. Notasi algoritma
bukan notasi bahasa pemrograman
5. Algoritma
digunakan untuk membantu dalam mengkorversikan suatu permasalahan ke dalam
bahasa pemrograman
6. Algoritma
merupakan hasil pemikiran konseptual
Ciri-ciri
penulisan algoritma ( variabel )
1. (a,1,1a)
2. (a’,b’4)
3. (1,2,3)
4. (1=a,a=2)
5. (a,b,c)
Struktur
dasar algoritma
1. Peruntunan, tiap
intruksi dikerjakan sesuai urutan penulisannya
2.


Seleksi/pemilihan, intruksi
dikerjakan jika kondisi tertentu terpenuhi
Contoh percabangan:
A. IF, digunakan
untuk pengambilan keputusan berdasarkan perbandingan nilai dengan operator (
< ≤ = ≥ > )
a. IF-Then yaitu
aksi akan dilaksanakan jika kondisi
bernilai benar
b. IF-Then Else
yaitu memberiakan dua buah aksi yang dikerjakan tergantung pada nilai kondisi
nya
c. IF-Then Else-IF
yaitu pemilhan bersarang
B. Swicth,
digunakan untuk pengembalian keputusan bertdasarkan perbandingan nilai (=)
3.


Pengulangan, struktur yang
pelaksanaan iinstruksinya secara berulang sepanjang kondisi tertentu yang masih
menghendaki.
Contoh percabangan:
a. For, digunakan
jika sudah diketahui berapa jumlah
pengulangan
b. Repeat – Until,
akan melakukan aksi hingga kondisi berhenti memenuhi
c. While – do,
digunakan untuk pengulangan yang belum diketahui berapa jumlah pengulangannya.
DATA
1.
Tipe data : setiap data memiliki tipe data
2.
Variabel : nama yang mewakili suatu elemen
3.
Nilai : setiap data
memiliki harga atau nilai
Contoh: umur seseorang 20 tahun.
Tipe data: bilangan
Vareiabel: Umur
Nilai: 20 tahun
Tipe dasar
1. Bilangan bulat
(integer)
a. Bilangan
atau angka yang tidak memiliki titik desimal atau pecahan, seperti 10, +225,
-2344.
b. Tipe
dituliskan sebagai integer atau int.
c. Jangkauan
nilai bergantung pada implementasi perangkat keras komputer, misalnya dari
-32455 sampai dengan +23456; untuk algoritma tidak kita batasi.
d. Operasi
aritmatika : tambah (+), kurang (-), kali (*), bagi (/), sisa hasil bagi (%)
e. Operasi
pembandingan : lebih kecil (<), lebih kecil atau sama dengan (<=), lebih
besar (>), lebih besar atau sama dengan (>=), sama (=), tidak sama
(><).
2. Bilangan
Biasa (real)
a. Bilangan
atau angka yang memiliki titik desimal atau pecahan, dan ditulis sebagai :
235.34, +345.986, -234.533 atau dalam notasi ilmiah seperti : 1.234E+03,
7.34E-06, +23.34E-34, -3.43E+34.
b. Tipe
dituliskan sebagai : real.
c. Jangkauan
nilai : bergantung pada implementasi perangkat keras komputer, misal dari
-2.34E_34 sampai dengan +23.344E+23, untuk algoritma tidak bisa dibatasi.
d. Operasi
aritmatik dan pembandingan juga berlaku bagi bilangan biasa.
3. Bilangan
Tetap (const)
a. Bilangan
tetap (const) adalah tipe bilangan, baik bernilai bulat maupun tidak, yang
nilainya tidak berubah selama algoritma dilaksanakan.
b. Tipe
dituliskan sebagai const.
c. Jangkauan
nilai meliputi semua bilangan yang mungkin.
4. Karakter
(character atau char)
a. karakter
adalah data tunggal yang mewakili semua huruf, simbol baca, dan juga simbol
angka yang tidak dapat dioperasikan secara matematis, misalnya : 'A',
'B',..'Z','a', 'b',..'z', '?', '!'.
b. Tipe
dituliskan sebagai char.
c. Jangkauan
nilai meliputi semua karakter dalam kode ASCII, atau yang tertera pada setiap
tombol keyboard.
d. Operasi
pembandingan dapat dilakukan dan dievaluasi menurut urutan kode ASCII, sehingg
huruf 'A' (Hex 41) sebenarnya lebih kecil dari huruf 'a' (Hex 61).
5. Logik
(logic)
a. Tipe data
logik adalah tipe data yang digunakan untuk memberi nilai pada hasil
pembandingan, atau kombinasi pembandingan.
b. Tipe
dituliskan sebagai boolean.
c. Jangkauan
nilai ada dua : true dan false.
d. Contoh :
45 > 56 hasilnya false, Amir < Husni hasilnya true.
e. Ada
beberapa operasi untuk data jenis logik antara lain and, or, dan not.
Tipe
bentukan
1. Array
(larik)
a. Array
adalah tipe data bentukan, yang merupakan wadah untuk menampung beberapa nilai
data yang sejenis. Kumpulan bilangan bulat adalah array integer, kumpulan
bilangan tidak bulat adalah array real.
b. Cara
mendefinisikan ada dua macam, yaitu :
i. Nilai_ujian : array[1..10] of
integer;, atau
ii. int nilai_ujian[10];
c. Kedua
definisi diatas menunjukkan bahwa nilai_ujian adalah kumpulan dari 10 nilai
bertipe bilangan bulat.
2. String
a. string
adalah tipe data bentukan yang merupakan deretan karakter yang membentuk satu
kata atau satu kalimat, yang biasanya diapit oleh dua tanda kutip.
b. Sebagai
contoh : nama, alamat, dan judul adalah tipe string.
c. Cara
mendefinisikannya adalah :
i. String Nama, Alamat; atau
ii. Nama, Alamat : String;
3. Record
(rekaman)
a. Record
adalah tipe data bentukan yang merupakan wadah untuk menampung elemen data yang
tipenya tidak perlu sama dengan mewakili objek.
b. Sebagai
contoh , mahasiswa sebagai satu jenis objek memiliki beberapa elemen data
seperti : nomor_stb, nama, umur, t4lahir, jenkel.
c. Cara
mendefinisikan record mahasiswa tersebut adalah sebagai berikut :
Type DataMhs
: record
< nomor_stb : integer,
nama_mhs : string,
umur : integer,
t4lahir : string,
jenkel : char,
>
Variabel
Variabel
adalah nama yang mewakili suatu elemen data seperti : jenkel untuk jenis
kelamin, t4lahir untuk tempat lahir, alamat untuk alamat, dan sebagainya. Ada
aturan tertentu yang wajib diikuti dalam pemberian nama variabel, antara lain :
1. Harus
dimulai dengan abjad, tidak boleh dengan angka atau simbol.
2. Tidak
boleh ada spasi diantaranya.
3. Jangan
menggunakan simbol-simbol yang bisa membingungkan seperti titik dua, titik
koma, koma, dan sebagainya.
4. Sebaiknya
memiliki arti yang sesuai dengan elemen data.
5. Sebaiknya
tidak terlalu panjang.
Contoh
variabel yang benar : Nama, Alamat, Nilai_Ujian
Contoh
variabel yang salah : 4XYZ, IP rata, VAR:+xy, 458;
Pemberian
Nilai
Ada dua cara
yang dapat digunakan untuk memberi nilai pada suatu variabel, yaitu melalui
proses assigment dan pembacaan.
Pemberian
nilai dengan cara assigment mempunyai bentuk umum sebagai berikut :
a. variabel
<-- nilai;
b. variabel
<-- variabel2;
c. variabel
<-- ekspresi;
Contoh
Assigment:
a. Nama
<-- "Ali bin Abu Thalib";
b. Jarak
<-- 100.57;
c. X <--
jarak;
d. Rentang
<-- X + 50 - 3 * Y;
Pemberian
nilai dengan cara pembacaan dapat dilakukan melalui instruksi pembacaan denga
bentuk umum sebagai berikut :
a.
read(variabel); atau
b.
read(variabel1, variabel2,...);
Contoh
pembacaan data:
a.
read(Nama);
b.
read(jarak, Rentang, X);
Menampilkan
Nilai
Agar hasil
pelaksanaan dapat dikomunikasikan atau ditayangkan maka nilai variabel yang
telah diproses dalam algoritma dapat ditampilkan. Intruksi untuk menampilkan
nilai variabel adalah : write(variabel, ...);
Contoh
penampilan nilai adalah sebagai berikut :
a.
write("nama anda :", nama);
b.
write("nilai ujian :", nilai);
c.
write("jumlah variabel :", X+Y+Z);
Ekspresi
(Expression)
Ekspresi
adalah transformasi data dan peubah dalam bentuk persamaan yang direlasikan
oleh operator dan operand. Operand adalah data, tetapan, peubah, atau hasil
dari suatu fungsi, sedangkan operator adalah simbol - simbol yang memiliki
fungsi untuk menghubungkan operand sehingga terjadi transformasi. Jenis-jenis
operator adalah sebagai berikut :
a. Operator
aritmatika : operator untuk melakukan fungsi aritmatika seperti : +, -, *, /
b. Operator
relational : operator untuk menyatakn relasi atau perbandingan antara dua
operand, seperti : >, <, >=, <=, ==, !=, <>, ><.
c. Operator
logik : Operator untuk merelasikan operand secara logis, seperti &&
(and), || (or), ! (not).
d. Operand
string : Operator untuk memanipulasi string seperti + (concatenation), len
(panjang string), dan substr (substring, mencuplik).
Operasi string
|
Nama operasi
|
Bentuk operasi
|
Fungsi
|
|
Pemenggalan
(substring)
|
Subtring(string,posisi,banyak)
RIGHT(string,posisi,banyak)
LEFT(string,posisi,banyak)
|
Mengambil
bagian dari suatu string
|
|
Penggabungan(contatenation)
|
String//string//.....
CONCATE(“sring”,”string”)
String+string+....
|
Menggabungkan
dua atau lebih string
|
|
Pencaharian
posisi
|
INDEX(string,substring)
AT atau
POS
|
Mendapatkan
posisi awal suatu substring pada string
|
|
Menghitung
panjang string
|
LENGHT(string)
LEN atau
SIZE
|
Menghitung
banyaknya karakter suatu string
|
|
UPPER
|
UPPER(string)
|
|
|
LOWER
|
LOWER(string)
|
|
|
LTRIM
& RTRIM
|
LTRIM
atau RTRIM (substring(string,posisi,banyak)
|
Menghapus
data kosong suatu string
|
|
VAL
|
VAL(srting)*/+/-VAL(string)
|
Operasi
matematika
|
|
ASC
|
ASC(String)
|
Mengkonversi
variabel menjadi numerik
|
|
CHR
|
CHR(string)
|
Mengkonversi
numerik menjadi variabel
|
|
STR
|
STR(string)
|
Mengalikan
nilai data numerik menjadi string
|
|
INSERT
|
INSERT(string,posisi,substring)
|
Memesukan
substring kedalam string
|
|
DELETE
|
DELETE(string,posisi,banyak)
|
Menghapus
suatu string
|