• Tidak ada hasil yang ditemukan

Algoritma dan Pemrograman

N/A
N/A
Protected

Academic year: 2021

Membagikan "Algoritma dan Pemrograman"

Copied!
35
0
0

Teks penuh

(1)

Algoritma dan Pemrograman

Oleh:

Eddy Prasetyo N

(2)

Konten

Pendahuluan

Aturan

Silabus

Referensi

Introduksi Algoritma

(3)

Tentang Saya...

• Nama :

Eddy Prasetyo Nugroho

• Beristri 1 dan Anak Tiga

• Unit kerja : Ilmu Komputer , FPMIPA, UPI

• Pendidikan S1 Teknik Informatika STT Telkom

• Pendidikan S2 ,Magister Teknik Bidang Rekayasa Perangkat Lunak, Informatika,ITB

• E-mail : eddypn@gmail.com

• Hp : 08562116367

(4)

Aturan

Metoda Penilaian :

Tugas mandiri/Tugas Kelompok (min 10%)

Kehadiran/Latihan di kelas (min 5%)

Praktikum (maks 15%)

Quiz (maks 15%)

UTS (min 25%)

UAS (min 30%)

Syarat Kelulusan :

Kehadiran minimal 80 %

Mengumpulkan semua tugas mandiri/tugas kelompok

Mengikuti Quiz

Mengikuti UTS dan UAS

(5)

Silabus

Pengantar ke algoritma

Dasar-dasar algoritma dan aturan penulisan teks algoritma.

Penggunaan tipe, nama, dan nilai yang tepat.

Struktur Algoritma runtunan, pemilihan, dan pengulangan.

Prosedur dan fungsi.

(6)

Referensi

Liem, Inggriani, Diktat Algoritma dan

Pemrograman (Paradigma Prosedural), Teknik Informatika ITB, 1999

Aho, Alfredd dkk, Data Structures and Algorithms, Addison-Wesley Publising Company, 1987

Munir, Rinaldi, Algoritma dan Pemrograman (buku 1), Informatika, Bandung 2005.

Munir, Rinaldi dan Leony Lidya, Algoritma dan Pemrograman (buku 2), Informatika, Bandung 2005.

Walter Salvitch, Absolute Java, Addison Wisley,

(7)

Introduksi Algoritma

(8)

Pengantar Algoritma

Saat ini sangat mudah kita menemukan orang yang bekerja dengan komputer. Dengan berkembangnya teknologi komputer, komputer telah banyak digunakan untuk membantu dan mengerjakan tugas manusia. Dalam banyak kasus, komputer terlihat pintar bahkan lebih pintar dari manusia, sehingga sering muncul anggapan bahwa komputer bisa mengerjakan apa pun untuk memberikan hasil yang diinginkan manusia.

(9)

Pendapat di atas tidak sepenuhnya salah. Persoalannya, komputer tidak begitu saja bisa menyelesaikan masalah yang disodorkan. Orang harus merumuskan langkah-langkah penyelesaian masalah itu dalam bentuk urutan instruksi yang disebut dengan program.Agar program dapat dilaksanakan oleh komputer, program ditulis dalam bahasa yang dimengerti oleh komputer. Bahasa ini disebut dengan bahasa pemrograman. Tanpa program, komputer tetaplah sebuah perangkat keras yang tidak bisa melakukan apa-apa.

(10)

Dengan semakin banyaknya bahasa pemrograman, pemecahan masalah tidak dilakukan dengan langsung menulis programnya.

Perlu dibangun sebuah rancangan pemecahan masalah yang berisi urutan langkah-langkah untuk mencapai solusi dengan bahasa yang tidak tergantung pada bahasa pemrograman tertentu. Urutan langkah-langkah sistematis untuk

menyelesaikan suatu masalah dinamakan algoritma. Tidak ada aturan baku bagaimana algoritma ditulis. Notasi algoritma

ditentukan atas kesepatakan bersama, biasanya antara perancang program dan pemrogram.

(11)

Algoritma merupakan deskripsi pelaksanaan suatu

proses yang disusun dari sederetan langkah instruksi yang logis. Tiap langkah instruksi mengerjakan suatu aksi. Efek pengerjaan dari suatu aksi dapat diamati dengan membandingkan status awal yaitu kondisi

sebelum aksi dilakukan dan status akhir yaitu kondisi setelah aksi dilakukan. Merancang algoritma dimulai dengan menentukan status awal dan status akhir yang ingin dicapai dari sebuah proses. Perhatikan 2 buah contoh berikut.

(12)

Contoh 1

{status awal: gelas A berisi minuman a, gelas B berisi minuman b

status akhir: gelas A berisi minuman b, gelas B berisi minuman a}

{Dibutuhkan sebuah gelas kosong yaitu gelas C}

Algoritma

Tuangkan minuman a ke gelas C Tuangkan minuman b ke gelas A Tuangkan minuman a ke gelas B

(13)

Contoh 2

{status awal: kotak A berisi sejumlah bola, kotak B kosong

status akhir: Bola pada kotak A berkurang 1, kotak B berisi sebuah bola}

Algoritma

Ambil 1 bola dari kotak A

Masukkan bola terambil ke kotak B

(14)

Perhatikan contoh 1. Contoh 1 terdiri dari 3 instruksi. Status awal dan status akhir dari algoritma ditulis pada 2 baris teratas. Untuk setiap aksi yang dilakukan masing- masing instruksi bisa ditentukan status awal dan status akhir sebagi berikut:

Aksi 1

{status awal: gelas A berisi minuman a, gelas C kosong}

Tuangkan minuman a ke gelas C

{status akhir: gelas A kosong, gelas C berisi minuman a } Aksi 2

{status awal: gelas A kosong, gelas B berisi minuman b } Tuangkan minuman b ke gelas A

{status akhir: gelas A berisi minuman b, gelas B kosong } Aksi 3

{status awal: gelas B kosong, gelas C berisi minuman a } Tuangkan minuman a ke gelas C

{status akhir: gelas B berisi minuman a, gelas C kosong, }

(15)

#Latihan 1

Terdapat 4 buah bola yang tampilannya sama. 3 bola mempunyai berat yang sama dan sebuah bola lebih ringan atau lebih berat. Untuk mencari bola mana yang beratnya berbeda disediakan sebuah

timbangan tanpa skala yang hanya bisa

menunjukkan 2 benda beratnya sama atau tidak.

Buat algoritma untuk persoalan ini.

(16)

Contoh 3

{status awal: kotak A berisi sejumlah bola, kotak B kosong

status akhir: bola pada kotak A berkurang 1, kotak B kosong atau berisi sebuah bola merah}

Algoritma

Ambilkan 1 bola dari kotak A if bola berwarna merah then

Masukkan bola terambil ke kotak B

(17)

Definisi Algoritma

Algoritma berasal dari asal kata “algorism”, yaitu nama penulis buku Arab yang terkenal, yaitu Abu Ja‟far Muhammad Ibnu Musa Al-Khuwarizmi.

Sekumpulan tahapan logis untuk menyelesaikan suatu tugas

Suatu resep tindakan

Suatu cara mendeskripsikan perilaku

Urutan langkah-langkah logis, disusun secara sistematis untuk menyelesaikan masalah

(18)

Mekanisme Pelaksanaan Algoritma oleh Prosesor

Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman

sehingga dinamakan program. Jadi, program adalah perwujudan atau implementasi algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga

dapat dilaksanakan oleh komputer.

Kegiatan membuat program disebut pemrograman (programming).

Orang yang menulis program disebut pemrogram (programmer).

(19)

Secara garis besar komputer tersusun atas empat komponen utama: piranti masukan, piranti keluaran, unit pemroses, dan memori

Piranti masukan

Memori

Piranti keluaran Unit Pemroses

Utama

(20)

Notasi Algoritmik

Berdasarkan teknik pemrograman terstruktur,

pemecahan masalah tidak selalu dilakukan dengan langsung menulis programnya dalam bahasa

pemrograman, tetapi dibuat lebih dulu disain atau rancangan yang mewakili pemecahan masalah tersebut.

Desain berisi urutan langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif yang disebut algoritma.

Notasi untuk menuliskan algoritma disebut notasi algoritmik

(21)

Notasi Algoritma

Notasi algoritmik yang dipakai bersifat umum, kadang-kadang terdapat perbedaan notasi

yang dirujuk, tetapi esensinya sama, tidak bergantung pada bahasa pemrograman maupun mesin komputernya.

Algoritma yang dibuat dapat diterjemahkan

ke dalam berbagai bahasa pemrograman.

(22)

Teks Algoritma sebagai notasi

Notasi ini sebagai jembatan keragaman dan

kompleksitas bahasa sehingga mahasiswwa mampu melakukan “abstraksi”

Sebagai alat untuk menuangkan rancangan secara prosedural yang selanjutnya dengan mudah

ditranslasi menjadi salah satu program dalam bahasa tertentu

Teks Algoritma terdiri dari 3 bagian yaitu:

Judul (Header)  nama program, prosedur/fungsi, modul

Kamus  deklarasi type,konstanta,variabel, fungsi/prosedur

(23)

Contoh Algoritma dan notasinya

Contoh : Tiga versi algoritma untuk operasi tambah, kali, kurang, bagi, dua buah

bilangan. Analisa perbedaan ketiga algoritma

tersebut

(24)

Format Teks Algoritma

JUDUL

{ Ini adl. Teks atau algoritma }

{ Spesifikasi teks algorima secara umum : Status Awal =…..

Status Akhir = …..}

KAMUS

{ Bagian ini dilakukan pendefinisian nama konstanta, variabel, spesifikasi prosedur/fungsi }

ALGORITMA

(25)

Versi 1

PROGRAM TKKB_V1

{Status Awal= “Diberikan dua buah bilangan dengan nama B1, B2”;

Status Akhir= “Diperoleh luaran berupa hasil tambah, kali, kurang, bagi dari kedua bilangan tersebut”}

KAMUS

B1, B2 : integer

ALGORITMA B1  99

B2  11

output (“ Nilai B1 dan B2 berturut-turut = ”, B1, B2 ) output (“ Penambahan B1 dan B2 = ”, B1+B2 )

output (“ Perkalian B1 dan B2 = ”, B1 * B2 )

output (“ Pengurangan B1 oleh B2 = ”, B1 - B2 )

(26)

Versi 2

PROGRAM TKKB_V2

{Status Awal= “Diberikan dua buah bilangan dengan nama B1, B2”;

Status Akhir= “Diperoleh luaran berupa hasil tambah, kali, kurang, bagi dari kedua bilangan tersebut”}

KAMUS

B1, B2 : integer

ALGORITMA

Input (“ Bilangan bulat pertama ? : ”, B1) Input (“ Bilangan bulat kedua ? : ”, B2)

output (“ Penambahan B1 dan B2 = ”, B1+B2 ) output (“ Perkalian B1 dan B2 = ”, B1 * B2 )

output (“ Pengurangan B1 oleh B2 = ”, B1 - B2 ) output (“ Pembagian B1 oleh B2 = ”, B1/ B2 )

(27)

Versi 3

PROGRAM TKKB_V3

{Status Awal= “Diberikan dua buah bilangan dengan nama B1, B2”;

Status Akhir= “Diperoleh luaran berupa hasil tambah, kali, kurang, bagi dari kedua bilangan tersebut”}

KAMUS

B1, B2,Tb, Kl, Kr,Bg : integer

ALGORITMA

Input (“ Bilangan bulat pertama ? : ”, B1) Input (“ Bilangan bulat kedua ? : ”, B2)

Tb  B1+B2 ; Kl  B1*B2 ; Kr  B1-B2 ; Bg  B1/B2 output (“ Penambahan B1 dan B2 = ”, Tb)

output (“ Perkalian B1 dan B2 = ”, Kl )

output (“ Pengurangan B1 oleh B2 = ”, Kr )

(28)

Belajar Memprogram dan Bahasa Pemrograman

Pemrograman memerlukan dua keahlian (skills) : berfikir

algoritmik (Algoritmic thinking) dan pengetahuan sintaks bahasa pemrograman (language syntax) .

Belajar sintaks bahasa pemrograman merupakan bagian yang relatif mudah.

Belajar memprogram adalah belajar tentang metodologi

pemecahan masalah, kemudian menuangkannya dalam suatu notasi yang mudah dipahami.

Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa, aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya, dan memanfaatkan instruksi- instruksi tersebut untuk membuat program yang ditulis dalam suatu bahasa.

(29)

Bahasa Pemrograman(1)

Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar:

Bahasa pemrograman bertujuan khusus. Misal Cobol (untuk terapan bisnis dan administrasi), fortran (terapan komputasi ilmiah), dll.

Bahasa pemrograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic, dan C

(30)

Bahasa Pemrograman(2)

Berdasarkan notasi bahasa pemrograman lebih “dekat” ke mesin atau bahasa manusia, maka dikelompokkan menjadi dua:

Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin.

Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi” dan berorientasi ke bahasa manusia (bahasa Inggris). Program dalam bahasa ini tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan dulu oleh

translator bahasa ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa: Pascal, Cobol, Basic, C,

(31)

Paradigma Pemrograman

Prosedural / imperative  instruksi akan dieksekusi secara sekuensial o/

sebuah prosesor. Terdapat memorisasi dan struktur data

Contoh: Pascal, C, Fortran …

Fungsional  Didasari konsep pemetaan dan fungsi pada matematika.

Fungsi dapat berbentuk sbg fungsi primitif, atau komposisi dari fungsi-fungsi lain yang telah didefinisikan. Pemrogram berasumsi bahwa ada fungsi-fungsi dasar yang dapat dilakukan. Disini tidak mempersoalkan Memori dan Struktur data, tidak ada pemilahan data dan program

Contoh: LOGO, LISP

Deklaratif, Predikatif atu logik  didasari atas pendefinisian rlasi antar individu yang dinyatakan sbg predikat orde pertama. Sebuah program lojik adalah kumpulan aksioma (fakta dan aturan deduksi). Pemrogram

mendeklarasikan sekumpulan fakta dan aturan. Ketika program dieksekusi, pemakai mengajukan pertanyaan (Query) dan program akan menjawab apakah pernyataan itu dapat dededuksi dari autran dan fakta yang ada.

Contoh : PROLOG

Object Oriented  Didasari oleh kelas dan objek. Objek adl instansiasi dari kelas. Objek mempunyai atribut dan kelakuan (metoda). Paradigma ini

(32)

Proses Interpretasi Algoritma ke Prosesor

Algoritma Program dlm bahasa tingkat Program dlm bhs Mesin

tinggi

Interpretasi oleh CPU

Translasi Kompilasi

(33)

Contoh Program Pascal

Program Selamat1a;

(* Menuliskan : Hello.. *) (*Deskripsi*)

Begin

Write(„Hello.. ‟);

End.

(34)

Contoh Program C

/*menulis hello ke layar */

Versi 1:

Void main() {

printf (“Hello..\n”);

}

Versi 2:

Int main() {

printf (“Hello..\n”);

Return 0;

}

(35)

Dalam Java

class Hello {

//program Hello

public static void main (String[] arg){

System.out.println("Heeeeellllo");

}

}

Referensi

Dokumen terkait

Agar notasi algoritma mudah ditranslasikan kedalam notasi bahasa pemrograman, maka sebaliknya notasi algoritmik tersebut berupa pseudo-code yang berkoresponden

Penyelesaian persoalan dengan pemrograman dinamis ini akan menghasilkan sejumlah berhingga pilihan yang mungkin dipilih, lalu solusi pada setiap tahap-tahap yang dibangun dari

Pemecahan masalah tidak harus dengan langsung menulis program dengan bahasa pemrograman tertentu1. Disain pemecahan masalah

Setiap instruksi dalam bahasa mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap komputer.

Puji Syukur kepada Tuhan karena modul Algoritma dan Pemrograman ini dapat terselesaikan. Modul ini membahas tentang dasar-dasar pemrograman dengan menggunakan bahasa

Notasi  algoritmik  bukan  bahasa  pemrograman,  sehingga  siapa  pun  dapat  membuat 

Setiap instruksi dalam bahasa mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek netto yang sama pada setiap komputer.

• Pemrograman adalah suatu kumpulan urutan instruksi yang dibuat menggunakan bahasa yang dimengerti oleh komputer untuk mengerjakan suatu perintah, • Instruksi yang dibuat