Vous êtes sur la page 1sur 37

Ari Sentani, ST, MSc

Algoritma yaitu urutan langkah-langkah logis


untuk menyelesaikan sebuah masalah yang
disusun dengan sistematis.
Program yaitu kumpulan instruksi/perintah
komputer dengan bahasa tertentu yang
berfungsi menghubungan user dengan
komputer. Atau bisa juga disebut implementasi
dari bahasa pemrograman
- Setiap langkah/step harus jelas dan pasti
- Boleh tidak ada inputan tetapi harus
memiliki output minimal 1 output, output ini
merupakan solusi akhir dari penyelesaian
masalah
- Efektif/tepat guna dan efisien/membutuhkan
waktu singkat dan memori sedikit
- Jumlah langkah/step harus ada batasannya,
baik ada solusi ataupun tidak
- Terstruktur/runtun, jelas (ipo)


Mendefinisaikan masalah
Menentukan solusi
Memilih algoritma
Menulis program
Menguji program
Menulis dokumentasi
Merawat program
Adalah kumpulan instruksi-instruksi tersendiri yang
biasanya disebut source code yang dibuat oleh
programmer (pembuat program)
Program adalah kumpulan instruksi atau perintah yang
disusun sedemikian rupa sehingga mempunyai urutan
nalar yang tepat untuk menyelesaikan suatu persoalan.
Instruksi (statement) yang dimaksud adalah syntax
(cara penulisan) sesuai dengan bahasa pemrograman
yang digunakan yang mempunyai komponen-
komponen : Input, Output, Proses, Percabangan
dan Perulangan.
Adalah alat untuk membuat program
Contoh: C, C++, C#, Pascal, Basic, Perl, PHP,
ASP, JHP, Java, dll.

Perbedaan: cara memberikan instruksi (sintaks)
Persamaan: bertujuan menghasilkan output yang
sama
1. First Generation Language (1GL)
Bahasa pemrograman ini berupa kode-kode mesin yang hanya bisa dipahami
oleh mikroprosesor.

2. Second Generation Language (2GL)
Bahasa = assembly language,
Menggunakan kode-kode yang disebut dengan mnemonic.
Bahasa ini bukan bahasa asli mikroprosesor, meskipun begitu programer
tetap harus mengetahui keunikan dari masing-masing mikroprosesor
(register dan jenis instruksi).

3. Generasi ketiga (3GL)
Pada generasi ini mulai dikenalkan istilah variabel, tipe data, ekspresi
aljabar dan sudah mendukung pemrograman terstruktur.

Contoh bahasa: FORTRAN, COBOL, ALGOL, BASIC, C, C++, Pascal, Java.

4. Generasi keempat (4GL)
Didesain untuk mengurangi effort dan mempercepat proses pembuatan
program. Contoh bahasa:
Pemrograman umum : DataFlex, WinDev, PowerBuilder
Basis data : SQL, Progress 4GL
Manipulasi data, analisis dan pelaporan : ABAP, Matlab, PL/SQL.

5. Generasi kelima (5GL)
Disebut sebagai constraint-programming atau declarative- programming.
Program tidak dituliskan dalam bentuk algoritma melainkan dituliskan
batasan atau fakta dari sebuah lingkup masalah, sehingga program akan
menghasilkan luaran dalam bentuk solusi
Bahasa pemrograman ini digunakan untuk membangun sistem kecerdasan
buatan dan belum digunakan secara meluas di dunia industri. Contoh
bahasa: Prolog, LISP, Mercury.
1. Low-level programming language (bahasa mesin)
Tingkat bahasa pemrograman ini disebut rendah (low level) bukan
karena posisinya berada di bawah, melainkan karena kurangnya
abstraksi (penggambaran kode instruksi) antara bahasa natural dengan
bahasa mesin. Bahasa pemrograman yang masuk kategori ini adalah
bahasa mesin itu sendiri (1GL) dan bahasa assembly (2GL).

2. High-level programming language (HLL)
Bahasa pemrograman di tingkat ini memiliki abstraksi yang lebih
banyak dan terdapat kemiripan dengan bahasa natural (bahasa Inggris),
lebih mudah untuk digunakan dan mudah untuk dipindahkan antar
platform.

3. Very high-level programming language (VHLL)
Bahasa ini memiliki abstraksi yang lebih tinggi dibandingkan HLL, dan
digunakan untuk menunjang produktifitas programer profesional.
Biasanya VHLL digunakan hanya untuk tujuan yang spesifik, misalnya
untuk keperluan bisnis: mengolah data, membuat laporan, dsb.

Paradigma Imperatif
Paradigma Fungsional
Paradigma Logika
Inti dari paradigma ini adalah menjalankan
sebuah urutan perintah, jalankan satu perintah
kemudian jalankan perintah yang selanjutnya.
Ide dasarnya adalah dari model komputer Von Neumann.
Eksekusi langkah-langkah komputasi diatur oleh sebuah
struktur kontrol.
Berdasarkan urutan-urutan atau sekuensial.
Contoh bahasa pemrograman: Fortran, Algol, Pascal, Basic, C
Program adalah suatu rangkaian prosedur untuk memanipulasi
data. Prosedur merupakan kumpulan instruksi yang dikerjakan
secara berurutan.
Pemrograman Fungsional adalah sebuah paradigma yang
menjadikan fungsi matematika sebagai penentu dalam eksekusi
komputasi.
Fungsi tersebut merupakan dasar utama dari program yang
akan dijalankan.
Paradigma ini lebih banyak digunakan di kalangan akademis
daripada produk komersial, terutama yang murni
fungsional.
Ide dasar dari matematika dan teori fungsi.
Beberapa contoh bahasa fungsional adalah APL, Erlang, Haskell,
Lisp, ML, Oz dan Scheme.
Umumnya digunakan pada domain yang berhubungan dengan ekstraksi
pengetahuan yang berbasis kepada fakta dan relasi.
Berasal dari pembuktian otomatis didalam intelegensia buatan.
Berdasar kepada aksioma, aturan dan query.
Eksekusi program menjadi proses pencarian secara sistematik dalam
sekumpulan fakta, dengan menggunakan sekumpulan aturan.
Beberapa contoh bahasa pemrograman: ALF, Fril, Gdel, Mercury, Oz,
Ciao, Visual Prolog, XSB, and Prolog
Logika digunakan secara murni untuk representasi bahasa deklaratif
yang kebenarannya ditentukan oleh programmer, sedangkan pembukti-
teorema atau model pembangkit digunakan sebagai pemecah masalah.
Mempermudah
kompleksitas
perangkat
lunak
Caranya
adalah dengan
memperkuat
modularity
dan
reusability
didalam
perangkat
lunak
tersebut.
Menggunakan
obyek dan
interaksi antar
obyek dalam
penyusunan
sebuah
perangkat
lunak.
Ide dari
interaksi antar
obyek yang
ada pada
dunia nyata.
Antar obyek
saling
berinteraksi
dengan saling
mengirimkan
pesan
(message).
Abstraksi
Enkapsulasi
Pewarisan
Polimorfisme
Karakteristik utama :
Kejadian yang terjadi pada waktu yang terbatas dan
menghasilkan efek yang memang direncanakan
Dari waktu0 ke waktuN
Contoh: aksi Bu Tati mengupas kentang untuk makan
malam
Batasan:
Apa kentang harus dibeli dulu atau sudah ada?
Apakah mengupas berarti sampai kentang terhidang?
Apakah setelah kentang selesai dikupas, harus ada kegiatan lain
seperti dibuat sup atau digoreng?
Berarti harus ada kejadian awal = start dan kejadian akhir =
finish
Kejadian bu Tati dapat juga diterapkan pada ibu-ibu
yang lain, yang juga akan mengupas kentang
Cara (Metode) sebisa mungkin harus bersifat universal
Ada 2 gelas kosong berukuran: 5 liter dan 3
liter
Bagaimana cara kita mendapatkan air
berukuran 4 liter?

Masukkan air ke 3 liter hingga penuh
Masukkan air 3 liter ke 5 liter, sisa 2 liter kosong
Masukkan air ke 3 liter hingga penuh
Tuangkan air 3 liter ke sisa 2 liter, berarti sisa 1
liter di gelas 2 liter
Buang seluruh air di gelas 5 liter tadi
Tuangkan air 1 liter yg ada di gelas 3 liter tadi
hingga ke 5 liter kosong
Masukkan air ke 3 liter hingga penuh
Tuangkan 3 liter ke gelas 5 liter yang sudah ada 1
liter tadi, hingga kita dapat 4 liter

Kalimat Deskriptif
Flow Chart (bagan alir)
Pseudo Code (kode semu)

Menggunakan untaian kalimat untuk menjelaskan
langkah langkah
Contoh

PROGRAM GanjilGenap
Diberikan sebuah bilangan bulat positif X
untuk dicek apakah termasuk ganjil atau
genap

ALGORITMA
1.Jika X habis dibagi 2 maka tulis Genap,
jika tidak maka tulis Ganjil
Menggunakan simbol simbol
untuk menggambarkan aliran
atau langkah langkah
Aliran proses ditunjukkan dengan
arah panah atau disebut dengan
flowlines.

mulai
baca X
X mod 2 = 0
selesai
Tulis Genap
Tulis Ganjil
tidak
ya
KETERANGAN SIMBOL
Mulai / Selesai (Terminator)
Aliran Data
Input / Output
Proses
Percabangan (Decision)


Pemberian nilai awal suatu
variabel
(Preparation)
Memangggil prosedur / fungsi
(Call)
Connector (di halaman yang
sama)
Connector (di halaman lain)



Sequence process










Perulangan













- Kasus : menghitung luas segitiga
- Algoritma :
Masukkan alas (a)
Masukkan tinggi (t)
Hitung luas (L), yaitu 0.5 * alas * tinggi
Cetak luas (L)
Menggunakan kode kode untuk menyatakan
langkah langkah
Bentuk informal untuk mendeskripsikan algoritma
yang mengikuti struktur bahasa pemrograman
tertentu.
Contoh

DEKLARASI
X : integer

ALGORITMA
read(X)
if X mod 2 = 0 then {apakah X habis dibagi 2}
write(Genap) {jika ya}
else
write(Ganjil) {jika tidak}
Struktur algoritma yang digunakan mengacu
pada struktur pemrograman bahasa Pascal
yang terdiri dari 3 (tiga) bagian,

Judul
Deklarasi/Kamus
data
Badan Program
Pada bagian Judul, digunakan sebagai tempat untuk
mencantumkan nama atau judul program.
Terdapat aturan penulisan judul, yakni:
Tidak diawali dengan angka atau karakter selain
alphabet
Tidak terdapat karakter spasi atau karakter selain
alphabet kecuali karakter underscore _ (sebagai
pengganti karakter spasi).

Sebagai tempat untuk mencantumkan variabel,
konstanta, dan record.
Mengingat cara eksekusi kode program dilakukan
berurut dari atas ke bawah maka, deklarasi
diletakkan di awal program setelah bagian judul.
Hal-hal yang dideklarasikan pada bagian ini
digunakan sebagai reservasi alokasi memory
untuk penyimpanan data dan akan digunakan
selama program bekerja.
Pada bahasa pemrograman Pascal, bagian
deklarasi juga berfungsi untuk mendeklarasikan
nama function dan procedure.


Pada bagian badan program, digunakan untuk
meletakkan semua algoritma atau kode-kode
program.
Bagian ini diawali dengan BEGIN dan diakhiri
dengan END.
Semua algoritma atau kode program wajib
dituliskan diantara kedua penanda tersebut.

Algoritma Pseudo-code
Masukkan panjang Input panjang
Masukkan lebar Input lebar
Nilai luas adalah panjang x lebar Luas panjang x lebar
Tampilkan luas Print luas
Contoh lain:
Algoritma Pseudo-code
Jika sudah selesai, cetak
invoice
IF KONDISI_SELESAI = DONE THEN
PRINT INVOICE
Nilai A dibagi dengan 2 A A / 2
Jika nilai A lebih besar dari 2
maka nilai A dikalikan 3
IF A > 2 THEN A A x 3
Dari dua bilangan A dan B,
cari
bilangan yang terbesar
IF A > B THEN PRINT A ELSE PRINT B
Masukkan semua mata kuliah
yang ingin diambil pada
semester
ini
DARI MATKUL = 0 SAMPAI MATKUL
<= MATKUL_DIINGINKAN, MASUKAN
DATA MATKUL
Sebenarnya tidak ada aturan mengikat tentang
penulisan algoritma dan pseudo-code, karena
fungsi kedua hal ini adalah untuk memudahkan
seseorang untuk menggambarkan urutan suatu
kejadian.
Algoritma dan pseudo-code untuk para
programmer, berfungsi sebagai dasar alur
pembuatan program. Di mana dapat
merepresentasikan alur cerita dari client tentang
kebutuhan dasar dari sebuah program, sehingga
lebih mudah untuk dipahami.
Jadi pseudo-code bisa dikatakan juga sebagai
algortima yang sudah sedikit digabungkan dengan
bahasa pemrograman yang akan digunakan.
Terdapat 2 buah ember A dan B masing
masing memiliki isi yang berbeda. Tuliskan
algoritma untuk menukarkan isi masing
masing ember tersebut.

ALGORITMA
- untuk menukar air dari ember A ke ember
B,dibutuhkan satu ember kosong yaitu C.
- air yang ada di ember A kita pindah
dahulu ke ember C.
- sekarang ember A kosong, kemudian isi
yang ada di ember B kita pindah ke
ember A.
- sekarang ember A terisi dan ember B
kosong.
- kemudian isi yang ada di ember C kita
pindah ke ember B.
- sehingga ember A dan B sudah terisi dan
tertukar sedang ember C menjadi kosong.
FLOWCHART

mulai
baca A,B,C
selesai
Tampilkan
A,B
C = A
A = B
B = C
Pseudo code
DEKLARASI
A,B,C : integer

ALGORITMA
A = 2
B = 5
C A isi di variabel A sudah pindah ke
variabel C
A B isi yang ada di variabel B sudah
pindah ke variabel A
B C isi yang ada di variabel C sudah
pindah ke variabel B
sehingga

A 5
B 2

Vous aimerez peut-être aussi