Anda di halaman 1dari 14

10/26/2019

ALGORITMA DAN
PEMROGRAMAN

Pendahuluan

■ Computer telah menjadi alat bantu manusia dalam kegiatan sehari-hari


■ Komputer tidak bermanfaat tanpa bantuan manusia.
■ Program adalah “ROH” yang dapat membuat computer dapat bekerja dan
memberikan bantuan kepada manusia.
■ Dalam pembuatan program terdiri dari beberapa tahap salah satunya adalah
tahap desain.
■ Dimana didalam pembuatan desain harus mudah dibaca dan dipahami oleh
orang lain dengan cara menggunakan notasi standar.

1
10/26/2019

Komputer Elektronik

■ Seluruh perangkat elektronik umumnya terdapat


sebuah computer kecil yang berfungsi sebagai
“otak” atau pusat pengendali.
■ Perangkat computer modern dapat bekerja
apabila terdapat energy listrik, demikian pula
dengan data-data yang di olah.
■ Seluruh data bentuk apapun sangat dimungkinkan
untuk direpresentasikan ke dalam bentuk apapun

Sistem Komputer

■ Sistem computer terdiri dari Hardware, Software dan Brainware.


■ Sistem computer dapat bekerja karena ketiga komponen diatas bekerja sama
sehingga hardware dapat diakses oleh brainware menggunakan software.

2
10/26/2019

Komponen Komputer

■ Didalam computer terdapat beberapa komponen untuk mengolah data.


■ Komponen tersebut dapat dibagi menjadi tiga bagian yaitu

– Input : berfungsi sebagai media untuk memasukan data ke dalam


computer
– Process : berfungsi untuk melakukan pengolahan data menjadi informasi
– Output : berfungsi sebagai media untuk menyampaikan informasi hasil
pengolahan.

Algoritma

■ Algoritma merupakan metoda umum yang digunakan untuk menyelesaikan


kasus-kasus tertentu.
■ Penulisan algoritma dapat menggunakan Bahasa natural atau menggunakan
notasi matematika, sehingga belum bias dijalankan pada computer.
■ Algoritma secara tidak sadar selalu kita lakukan didalam kehidupan sehari-hari
dalam menyelesaikan permasalahan atau tantangan yang dihadapi.
– Contoh algoritma dalam membuat telur dadar.
– Sebelum membuat telur dadar perlu mendefinisikan masukan (input) dan
luaran (output) terlebih dahulu. Dimana input merupakan telur mentah
dan output adalah telur dadar.

3
10/26/2019

Algoritma

■ Susunlah algoritma telur dadar adalah sebagai berikut :


1. Nyalakan api kompor
2. Tuangkan minyak kedalam wajan
3. Pecahkan telur ayam kedalam mangkok
4. Tambahkan garam secukupnya
5. Aduk campuran telur dan garam
6. Tuangkan adonan telur ke dalam wajan
7. Masak telur hingga matang

Algoritma

■ Contoh kasus
– Seorang ibu akan membuat keripik kentang untuk di jual di lingkungan
rumahnya.
– Dalam pembuatan keripik tentunya ada beberapa tahapan dan proses
yang dilakukan, dalam hal ini kejadian yang dilakukan sebelum kentang
di goreng.

4
10/26/2019

Algoritma

■ Dari kasus diatas tentunya ada beberapa hal yang harus di perhatikan yang
berkaitan dengan aksi tersebut, antara lain:
– Apakah kentang sudah tersedia atau harus di beli terlebih dahulu?
– Jika sudah dibeli, apakah kentang yang akan digoreng sudah dikupas
kulitnya?
– Ada berapa kentang yang harus digoreng?
– Apakah semua kentang memiliki mutu yang baik atau ada yang busuk?
– Jika ada yang busuk, apakah kentang tersebut akan tetap dipakai atau
dibuang?
– Jika kentang sudah selesai digoreng, bagaimana cara menghidangkannya?

Siklus hidup software

Requirement Design Implementation Testing

■ Requirement : tahapan mencari tahu kebutuhan klien/user.


■ Design : tahapan membuat prototype/bentuk program interface yang akan
dibuat namun belum fungsional
■ Implementation : tahapan dimana programmer melakukan pengkodean secara
nyata hingga semua fungsionalitasnya terpenuhi dan benar.
■ Testing : tahapan setelah program selesai, melakukan pengetesan apakah
semua fungsionalitasnya benar-benar sesuai dengan rewuirement yang sudah
ditetapkan sebelumnya.

5
10/26/2019

Kriteria Algoritma

Menurut Donald E. Knuth, algoritma memiliki keriteria sebagai berikut


■ Input : minimal program harus memiliki nol input atau lebih dari pengguna.
■ Output : minimal program harus memiliki 1 output, program pasti
menghasilkan output karena program dibuat untuk tujuan tertentu, output
dapat berupa tampilan di layar, ditulis ke file, dll.
■ Finite (terbatas), suatu program yang dieksekusi haruslah berhenti dan selesai,
suatu program akan mengalami infinite karena kesalahan programmer.
■ Definite (pasti) : suatu program harus jelas kapan mulai dan kapan berakhir,
apa tujuannya dan memiliki logika yang jelas agar menghasilkan output yang
sesuai dengan yang diharapkan.
■ Efisien : tidak memakan banyak memori, tidak melakukan hal-hal yang tidak
perlu, missal : x = 5 + 0 atau y = 100 * 0.

Bentuk-bentuk dasar Algoritma

■ Algoritma memiliki beberapa bentuk dasar antara lain :


– Algoritma Sekuensial
– Algoritma percabangan
– Algoritma perulangan

6
10/26/2019

Algoritma Sekuensial

■ Banyak di jumpai pada kehidupan sehari-hari misalnya pada kasus “pengiriman


surat” dimana pada kasus tersebut terdapat langkah-langkah yang harus
dilakukan, yaitu :
– Membeli amplop
– Membeli perangko
– Memasang perangko ke amplop
– Menuliskan alamat pengirim dan alamat tujuan
– Pergi ke kantor pos atau memasukan kedalam kotak surat
– Surat terkirim

Algoritma Sekuensial

■ Dari kasus sebelumnya dapat dilihat bahwa langkah harus dilakukan secara
terurut dan ada yang tidak boleh di bulak-balik urutannya.
– Amplop harus di pasang perangko dulu baru kemudian dikirim ke kantor
pos.
– Surat tidak dapat dikirimkan tanpa dimasukkan ke amplop berperangko
terlebih dahulu.
■ Pada prinsipnya sekuensial adalah alur pemikiran yang terstruktur, terurut,
pasti dan jelas untuk menyelesaikan masalah dan kadang ada langkah yang
tidak boleh di tukar urutannya.

7
10/26/2019

Algoritma Percabangan

■ Dari kasus “mengirimkan surat” di langkah ke 5 yaitu surat dapat dikirimkan


melalui kantor pos atau kotak surat.
■ Didalam percabangan suatu kondisi harus terpenuhi baik salah satunya atau
kedua-duanya, dimana apabila kondisi terpenuhi akan bernilai “true”
sedangkan jika tidak terpenuhi akan bernilai “false”.
■ Algoritma percabangan adalah algoritma dimana programmer harus memilih
langkah yang harus dia lakukan berdasarkan kondisi tertentu.

Algoritma Perulangan

■ Pada contoh kasus “pembuatan keripik kentang” dimana ibu wajib mengupas
kentang cukup banyak dengan lama waktu mengupas disesuaikan dengan
jumlah kentang.
■ Algoritma perulangan berarti mendapat satu atau lebih kejadian/tindakan
yang harus diulang terus menerus sampai kondisinya tidak terpenuhi.

8
10/26/2019

Program

■ Adalah sekumpulan instruksi tersendiri yang biasa disebut sebagai source code,
atau kumpulan instruksi/perintah yang disusun sedemikian rupa sehingga
mempunyai urutan nalar yang tepat untuk menyelesaikan suatu persoalan.
■ Program merupakan formulasi sebuah algoritma dalam bentuk Bahasa
pemrograman, sehingga siap untuk dijalankan pada mesin computer.
■ Membuat program sama seperti memberitahukan apa yang harus dilakukan
kepada orang lain.
■ Lain halnya ketika kita memerintahkan computer untuk melakukan apa yang
kita inginkan, dimana supaya membuatnya menjadi mudah diperlukan
penyusunan algoritma yang benar.
■ Mendesain algoritma yang benar dan menterjemahkannya ke dalam Bahasa
pemrograman bukanlah hal yang mudah karena Bahasa pemrograman memiliki
tata penulisan sendiri.

Bahasa pemrograman

■ Bahasa pemrograman adalah Bahasa buatan yang digunakan untuk


mengendalikan perilaku dari sebuah mesin, biasanya berupa mesin computer
sehingga dapat digunakan untuk memberitahu computer tentang apa yang
harus dilakukan.

9
10/26/2019

Klasifikasi Bahasa Pemrograman


menurut generasi
1. First Generation Language (IGL), Bahasa pemrograman berupa kode-kode
mesin yang hanya bisa dipahami oleh microprosesor.
2. Second Generation Language (2GL), Bahasa pemrograman berupa assembly,
dimana masih menggunakan kode-kode yang disebut dengan mnemonic.
3. Generasi ketiga, Bahasa pemrograman yang mudah dipahami oleh manusia,
dan mulai dikenalkan istilah variable, tipe data, ekspresi aljabar dan sudah
mendukung pemrograman terstruktur. Contoh : fortran, Cobol, Algol, Basic, C,
C++, Pascal, Java.

Klasifikasi Bahasa Pemrograman


menurut generasi
4. Generasi keempat, didesain untuk mengurangi effort dan mempercepat
proses pembuatan program, dimana sebuah perintah dapat menghasilkan
beberapa intruksi 3GL yang kompleks dengan sedikit error.
Contoh :
– Pemrograman Umum : Data flex, Windev, Power Builder,
– Basis Data : SQL, Progress 4GL
– Manipulasi data : ABAP, Matlab, PL/SQL
5. Generasi kelima, dapat disebut dengan constraint-programming atau
declarative-programming. Program tidak dituliskan dalam bentuk algortima
melainkan dituliskan batasan dan fakta dari sebuah lingkup masalah sehingga
program akan menghasilkan luaran dalam bentuk solusi.
Digunakan untuk membangun system kecerdasan buatan dan belum digunakan
secara luas contoh : Prolog, LISP, Mercury.

10
10/26/2019

Klasifikasi Menurut Tingkatan

1. Low-level programming language, kurangnya penggambaran kode instruksi


antara Bahasa natural dengan Bahasa mesin. Contoh : 1GL dan 2GL
2. Hight-Level Programming Language, (HLL) penggambaran abstraksi yang lebih
banyak dan terdapat kemiripan dengan Bahasa natural, lebih mudah
digunakan dan mudah dipindahkan antar platform.
3. Very hight-level Programming Language (VHLL), memiliki abstraksi lebih
tinggi dibandingkan HLL dan dugunakan untuk menunjang produktifitas
programmer professional. Biasanya digunakan hanya untuk tujuan yang
spesifik missal untuk bisnis: mengolah data dan membuat laporan.

Paradigma Pemrograman

■ Merupakan sebuah cara pandang sorang programmer dalam menyelesaikan


sebuah masalah dan memformulasikannya kedalam sebuah Bahasa
pemrograman. Terdapat beberapa paradigm pemrograman seperti :
– Paradigma imperatif
– Paradigma fungsional
– Paradigma logika
– Paradigma berorientasi objek

11
10/26/2019

Paradigma Imperatif

■ Sebuah program imperative tersusun dari urutan perintah yang akan dijalankan
oleh computer.
■ Pemrograman procedural merupakan salah satu contoh dari paradigma ini dan
seringkali dianggap sebagai paradigm yang sama.
– Ide dasarnya adalah dari model computer von Neumann.
– Eksekusi langkah-langkah komputasi diatur oleh sebuah struktur kontrol,.
– Berdasarkan urutan-urutan atau sekuensial.
– Program adalah suatu rangkaian prosedur untuk memanipulasi data.
Prosedur merupakan sekumpulan instruksi yang dikerjakan secara
berurutan
■ Contoh : Fortran, pascal, basic, c

Paradigma Fungsional

■ Sebuah paradigm yang menjadikan fungsi matematika sebagai penentu dalam


eksekusi komputasi.
■ Fungsi terebut merupakan dasar utama dari program yang akan dijalankan.
■ Banyak digunakan di kalangan akademisi daripada produk komersial, terutama
yang murni fungsional

12
10/26/2019

Paradigma Logika

■ Logika digunakan secara murni untuk representasi Bahasa deklaratif yang


kebenarannya ditentukan oleh programmer, sedangkan pembukti teorema atau
model pembangkit digunakan sebagai pemecah masalah
– Berasal dari pembuktian otomatis didalam intelegensia buatan
– Berdasar kepada aksioma, aturan dan query
– Eksekusi program menjadi proses pencarian secara sistematis dalam
sekumpulan fakta dengan menggunakan sekumpulan aturan
■ Contoh Bahasa pemrograman : ALF, Fril, Mercury, Oz, Ciao, Visual Prolog, XSB

Paradigma Berorientasi Objek

■ Paradigma ini muncul untuk mengatasi masalah kompleksitas dari sebuah


perangkat lunak sehingga kualitas dari perangkat lunak tersebut dapat dikelola
dengan lebih mudah dengan memperkuat modularity dan reuseability.
■ Menggunakan objek dan interaksi antar objek dalam penusunan sebuah
perangkat lunak.
■ Banyak digunakan karena lebih mudah dalam menggambarkan kondisi yang ada
pada dunia nyata.
■ Terdapat beberapa karakteristik utama yaitu abstraksi, enkapsulasi, pewarisan
dan polimorfisme.

13
10/26/2019

Contoh kasus

1. Sebutkan program/aplikasi yang anda miliki dimana aplikasi tersebut akan


melakukan update ke versi terbaru? Kira-kira konsep yang digunakan oleh
aplikasi tersebut bila di tinjau dari siklus hidup software.
2. Sebutkan program/aplikasi yang pernah anda miliki yang menggunakan konsep
perulangan dan pemilihan kondisi?
3. Menurut anda, apa yang harus diperhatikan agar suatu program bisa laku di
jual dan banyak dipakai orang dan perusahaan?
4. Berikan contoh nyata dari setiap kriteria algoritma menurut Donald E. Knuth!
5. Apakah algoritma bersifat statis dan tidak perlu berubah/diperbaharui?
Kenapa? Sebutkan contoh nyatanya?

14

Anda mungkin juga menyukai