67
Nama : DEDE SUPRIADI NPM : 43200700606080234 Kelas : Extention Kelompok : B Program : S1 / TI LOGIKA DAN ALGORITMA PENGERTIAN DASAR Logika dan Algoritma diperkenalkan Oleh Ahli Matematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi. Logika berasal dari kata Yunani kuno λόγος (logos) yang berarti hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa. Definisi Algoritma 1. Langkah- langkah yg dilakukan agar solusi masalah dapat diperoleh. 2. Suatu prosedur yg merupakan urutan langkah-langkah yg berintegrasi. 3. Suatu metode khusus yg digunakan untuk menyelesaikan suatu masalah yg nyata.(Webster Dictionary) Dede Supriadi – - [email protected] - Page 1

Logika Dan Algoritma

Embed Size (px)

Citation preview

Page 1: Logika Dan Algoritma

Nama : DEDE SUPRIADINPM : 43200700606080234Kelas : ExtentionKelompok : BProgram : S1 / TI

LOGIKA DAN ALGORITMAPENGERTIAN DASARLogika dan Algoritma diperkenalkan Oleh Ahli Matematika : Abu

Ja’far Muhammad Ibnu Musa Al Khawarizmi.

Logika berasal dari kata Yunani kuno λόγος (logos) yang berarti hasil

pertimbangan akal pikiran yang diutarakan lewat kata dan

dinyatakan dalam bahasa.

Definisi Algoritma

1. Langkah- langkah yg dilakukan agar solusi masalah dapat

diperoleh.

2. Suatu prosedur yg merupakan urutan langkah-langkah yg

berintegrasi.

3. Suatu metode khusus yg digunakan untuk menyelesaikan suatu

masalah yg nyata.(Webster Dictionary)

TAHAP PENYELESAIAN MASALAH

Dede Supriadi – - [email protected] - Page 1

Page 2: Logika Dan Algoritma

Kriteria Pemilihan Algoritma.

• Ada Output, mengacu pada definisi algoritma, suatu algoritma

haruslah mempunyai output yang harus merupakan solusi dari

masalah yang sedang diselesaikan

• Efektifitas dan Efesiensi, Dikatakan efektif jika algoritma

tersebut menghasilkan suatu solusi yang sesuai dengan masalah

yang diselesaikan dalam arti algoritma harus tepat guna.Dikatakan

efisiensi jika waktu proses suatu algoritma relatif lebih singkat dan

penggunaan memori komputernya lebih sedikit.

• Jumlah Langkahnya Berhingga, maksudnya adalah barisan

instruksi yang dibuat harus dalam suatu urutan tertentu atau harus

berhingga agar masalah yang dihadapi dapat diselesaikan dengan

tidak memerlukan waktu relatif lama.

Contoh :

Sebuah prosedur ketika akan mengirimkan surat kepada

Dede Supriadi – - [email protected] - Page 2

Masalah

Model

Algoritma

Program

Eksekusi

Hasil

Data

Page 3: Logika Dan Algoritma

teman:

• Tulis surat pada secarik kertas surat

• Ambil sampul surat atau amplop

• Masukkan surat ke dalam amplop

• Tutup amplop surat dengan lem perekat

• Tulis alamat surat yg dituju, jika tdk ingat, lebih dahulu ambil

buku alamat & cari alamat yg dituju, lalu tulis alamat tsb pd

amplop surat.

• Tempelkan perangko pada amplop surat

• Bawa surat ke kantor pos utk diserahkan pd pegawai pos atau

menuju ke bis surat untuk memasukkan surat ke dlm

kotak/bis surat.

Sebuah prosedur untuk masalah menentukan akar

kuadrat dari suatu bilangan Bulat Positif yg di Input :

Baca bilangan Bulat Positif yg diinput, sebut saja

sebagai A

• Dinyatakan Nilai B adalah 0

• Hitung Nilai C yg berisikan Nilai B dikalikan Nilai B

• Jika Nilai C sama dengan Nilai A, maka Nilai B adalah

Akar dari Nilai A, lalu stop.

• Jika tidak, maka Nilai B akan bertambah 1

• Kembali ke langkah pada No. 3

TAHAPAN ANALISA ALGORITMA :

• Bagaimana merencanakan suatu algoritma.

Menentukan beberapa model atau desain sebagai penyelesaian

dari suatu masalah untuk mendapat sebuah solusi yan mungkin.

Dengan demikian, akan banyak terdapat variasi desain atau

model yang dapat diambil yang terbaik.

• Bagaimana menyatakan suatu algoritma

Dede Supriadi – - [email protected] - Page 3

Page 4: Logika Dan Algoritma

Menentukan model suatu algoritma yang digunakan sehingga

dapat membuat barisan langkah secara berurutan guna

mendapatkan solusi penyelesaian masalah. Menentukan model

tersebut agar dapat digunakan dengan cara :

• Dengan bahasa semu (pseudocode), yaitu dengan

menggunakan bahasa sehari-hari, tetapi harus jelas

dan terstruktur

Contoh :

– menghitung Luas Segi tiga :

– Untuk Masukan Nilai Alas

– Masukan Nilai Tinggi

– Hitung Luas =( Alas * Tinggi ) / 2

– Cetak Luas

• Dengan diagram alur atau flowchart,

Contoh :

• Dengan Statement program/penggalan Program

Dede Supriadi – - [email protected] - Page 4

Start

MasukanAlas

MasukanTinggi

Luas = (Alas * Tinggi)/2

Cetak Luas

Stop

Page 5: Logika Dan Algoritma

Contoh :

• Read Alas

• Read Tinggi

• Luas=(Alas * Tinggi)/2

• Write(Luas)

• Bagaimana validitas suatu algoritma.

Yakni jika penyelesaian memenuhi solusi yang sebenarnya, artinya

solusi yang didapat merupakan penyelesaian suatu masalah dan

bukannya membuat asalah baru.

• Bagaimana Menganalisa suatu Algoritma.

Caranya melihat running time atau waktu tempuh yang digunakan

dalam menyelesaikan masalah serta jumlah memori yang

digunakan dalam penyelesaian masalah tersebut.

• Bagaimana Menguji Program dari suatu Algoritma.

Yaitu dengan cara menyajikannya dalam salah satu bahasa

pemrogramana, misalnya BASIC, PASCAL, FORTRAN, dBase, atau

yang lainnya. Dalam proses, uji program oleh komputer akan

melalui beberapa tahap yaitu :

Tahap Proses uji Algoritma :

• Fase Debugging, yaitu fase dari suatu proses program

eksekusi yang akan melakukan koreksi terhadap kesalahan

program. Yang dimaksud disni adalah error atau salah dalam

penulisan program baik logika maupun sintaksnya.

• Fase Profilling, yaitu fase yang akan bekerja jika program

tersebut sudah benar atau telah melalui proses pada fase

debugging. Fase ini bekerja untuk melihat dan mengukur

waktu tempuh atau running time yang diperlukan serta

jumlah memori/storage yang digunakan dalam

menyelesaikan suatu algoritma.

Dede Supriadi – - [email protected] - Page 5

Page 6: Logika Dan Algoritma

Analisis Suatu Algoritma

(Untuk melihat faktor efesiensi & efektifitas dari algoritma

tersebut), Dapat dilakukan terhadap suatu algoritma dengan

melihat pada :

• Waktu Tempuh (Running Time) dr suatu Algortima.

Adalah satuan waktu yang ditempuh atau diperlukan oleh

suatu algoritma dalam menyelesaikan suatu masalah. Hal2 yg

dapat mempengaruhi daripada waktu tempuh adalah :

Banyaknya langkah.

Besar dan jenis input data.

Jenis Operasi.

Komputer dan kompilator

• Jumlah Memori Yang Digunakan.

Sifat - Sifat Algoritma

• Banyaknya Langkah Instruksi Harus Berhingga,

• Langkah atau Instruksi harus Jelas,

• Proses harus Jelas dan mempunyai batasan,

• Input dan Output harus mempunyai Batasan,

• Efektifitas,

• Adanya Batasan Ruang Lingkup,

Dede Supriadi – - [email protected] - Page 6

Page 7: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 7

Page 8: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 8

Page 9: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 9

Page 10: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 10

Page 11: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 11

Page 12: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 12

Page 13: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 13

Page 14: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 14

Page 15: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 15

Page 16: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 16

Page 17: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 17

Page 18: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 18

Page 19: Logika Dan Algoritma

Dede Supriadi – - [email protected] - Page 19

Page 20: Logika Dan Algoritma

Struktur Data : Konstruksi Dasar

Algoritma dibangun dari tiga buah konstruksi ada struktur

dasar, yaitu runtutan (sequence), pemilihan (selection) dan

pengulangan (repetition)

1. Runtutan

Runtutan terdiri dari satu atau lebih pernyataan, setiap

pernyataan diakhiri oleh satu baris atau titik koma. Tiap

pernyataan dibuat secara berurutan sesuai dengan urutannya.

Setiap instruksi dilaksanakan setelah instruksi sebelumnya

selesai dilaksanakan.

Dede Supriadi – - [email protected] - Page 20

Page 21: Logika Dan Algoritma

Misal pertukaran nilai A ke dalam nilai B dengan

membutuhkan bantuan C:

Masukkan nilai A ke dalam C

Masukkan nilai B ke dalam A

Masukkan nilai C ke dalam B

2. Pemilihan

Pada beberapa hal kita terkadang dihadapkan pada suatu

pilihan. Misal:

Jika saya tidur larut malam maka saya akan bangun

kesiangan

Pernyataan di atas biasa diubah dalam notasi algoritmik

demikian:

view plain copy to clipboard print ?

1. if kondisi then 

2.    aksi 

Dede Supriadi – - [email protected] - Page 21

Page 22: Logika Dan Algoritma

Bahasa Indonesia untuk if adalah jika, dan untuk then adalah

maka. Dalam kehidupan sehari-hari dapat kita temui sebagai

berikut:

view plain copy to clipboard print ?

1. if saya makan then 

2.     saya kenyang 

Jika pilihan aksi ada 2

view plain copy to clipboard print ?

1. if bil <= 100 then 

2.    tulis bilangan lebih dari seratus 

3. else 

4.    tulis kurang dari 100 

Jika pilihan aksi lebih dari 2

view plain copy to clipboard print ?

1. if A < B then 

2.    if A < C then 

Dede Supriadi – - [email protected] - Page 22

Page 23: Logika Dan Algoritma

3.       tulis bilangan terbesar = A 

4.    else 

5.       tulis bilangan terbesar = C 

6. else 

7.    if B < C then 

8.          tulis bilangan terbesar = B 

9.    else 

10.          tulis bilangan terbesar = C  

Penulisan ruang kosong (indentasi) di atas akan lebih mudah

dibaca dibanding:

view plain copy to clipboard print ?

1. if A < B then 

2. if A < C then 

3. tulis bilangan terbesar = A 

4. else 

5. tulis bilangan terbesar = C 

6. else 

Dede Supriadi – - [email protected] - Page 23

Page 24: Logika Dan Algoritma

7. if B < C then 

8. tulis bilangan terbesar = B 

9. else 

10. tulis bilangan terbesar = C  

bukan?

3. Pengulangan

Pernahkah anda dihukum oleh guru anda menulis kalimat

berulang-ulang sampai satu lembar atau lebih? Capek bukan?

Komputer mempunyai fungsi untuk melakukan pekerjaan

berulang-ulang dan tak kenal lelah. Jika dalam pemrograman

tentu penulisan secara berulang-ulang tidak akan efisien.

Oleh karena itu digunakan beberapa fungsi.

repeat

view plain copy to clipboard print ?

1. ALGORITMA tulis kalimat 100 kali: 

2. repeat 100 times 

3.     Tulis "Saya akan mengerjakan PR" 

Dede Supriadi – - [email protected] - Page 24

Page 25: Logika Dan Algoritma

maka akan algoritmanya demikian:

view plain copy to clipboard print ?

1. repeat N times 

2.     aksi 

artinya aksi diulang sebanyak N kali.

for

view plain copy to clipboard print ?

1. for pencacah pengulangan dari 1 sampai N do 

2.     aksi 

artinya aksi dilakukan sebanyak hitungan cacah pengulanagn,

yaitu dari 1 sampai N (sebanyak N kali). Pencacah tidak

hanya dimulai dari angka 1, tapi dari sebarang nilai yang lain.

view plain copy to clipboard print ?

1. ALGORITMA: 

2.    for i dari 1 sampai 100 do 

3.       writeln "Saya tidak akan mengulanginya lagi 

Dede Supriadi – - [email protected] - Page 25

Page 26: Logika Dan Algoritma

i adalah pencacah pengulangan yang mencacah pengulangan

dari 1 sampai 100. Untuk mengenal notasi ini akan saya

bahas selanjutnya.

repeat-until

Artinya pengulangan aksi yang dilakukan hingga persyaratan

terpenuhi. Jadi penulisan kalimat 100 kali dengan notasi

repeat-until adalah:

view plain copy to clipboard print ?

1. repeat 

2.    aksi 

3. until kondisi 

Contoh

view plain copy to clipboard print ?

1. ALGORITMA tulis kalimat 100 kali: 

2.     repeat 

3.         writeln "Saya berjanji tidak akan mengulangi lagi" 

4.     until sudah 100 kali. 

Dede Supriadi – - [email protected] - Page 26

Page 27: Logika Dan Algoritma

while

while artinya selagi, do artinya lakukan

view plain copy to clipboard print ?

1. while kondisi do 

2.     aksi 

Contoh:

view plain copy to clipboard print ?

1. while i <= do 

2.    jumlah = jumlah + i 

3.    i = i + 1 

Struktur Dasar : Pernyataan

Oke, kita lanjutkan lagi. Beberapa saat yang lalu saya sudah

memberikan penjelasan singkat tentang struktur dasar

algoritma, kali ini saya akan memberikan penjelasan lebih

rinci tentang struktur dasar algoritma.

Dede Supriadi – - [email protected] - Page 27

Page 28: Logika Dan Algoritma

Sebuah algoritma merupakan deskripsi dari langkah-langkah

yang kita lakukan. Setiap langkah terdapat pernyataan atau

istilah lain instruksi dan berisi aksi yang dilakukan. Jika

pernyataan tersebut dijalankan oleh prosesor, maka aksi akan

sesuai dengan pernyataan yang dikerjakan.

Misal:

view plain copy to clipboard print ?

1. Tulis "Hello, world" 

maka pernyataan di atas akan menjalankan sebuah aksi untuk

menulis "Hello, world"

pernyataan

view plain copy to clipboard print ?

1. Kalikan x dengan 4 

maka tiap aksi x akan dikalikan dengan 4.dan hasil perkalian

akan disimpan di dalam peubah x lagi.

Pernyataan

Dede Supriadi – - [email protected] - Page 28

Page 29: Logika Dan Algoritma

view plain copy to clipboard print ?

1. Jika bulan = 'maret' maka tulis "jumlah hari = 31" 

Terdiri dari dua aksi, yaitu variabel bulan dengan 'maret',

dan aksi tulis 'jumlah hari = 31'. jika perbandingan benar.

Dalam algoritma terdapat beberapa jenis pernyataan, seperti

pernyataan expresi, pemilihan, pengulangan, prosedur,

gabungan dan sebagainya. Masing-masing pernyataan akan

kita bahas nanti.

Notasi Algoritmik

Beberapa bab yang lalu saya sudah sering mengatakan

tentang notasi algoritmik. Notasi

algoritmik dibuat independen tidak terkait dengan salah satu

bahasa pemrograman apa pun dan bisa diterjemahkan ke

berbagai macam bahasa pemrograman. Seperti membuat

resep roti, apa pun bahasa dalam pembuatan resep baik

Indonesia, Jerman, Jawa, Madura hasilnya akan tetap sama

Dede Supriadi – - [email protected] - Page 29

Page 30: Logika Dan Algoritma

karena algoritmanya sama (jika semua cara dan aturan sesuai

dengan resep). Mengapa hal itu terjadi? Karena tiap koki

mempunyai kemampuan yang sama dalam operasi dasar

pembuatan roti, seperti mengocok telur, mengaduk adonan,

dan memasukkan ke dalam oven. Jadi resep pembuatan roti

tidak tergantung pada bahasa setempat dan koki yang

memasaknya.

Sama juga halnya dengan komputer, asalkan algoritmanya

sama, dengan menggunakan berbagai macam bahasa

pemrograman hasilnya tetap sama. Teknologi komputer

tidaklah mengubah operasi dasar komputer seperti operasi

perhitungan, pembacaan data, aritmatika dan sebagainya.

Yang berbeda adalah kecepatan dalam memproses, biaya atau

tingkat ketelitian.

Notasi algorimik bukanlah bahasa pemrograman, jadi bebas

ditulis dengan bebas asal mudah dibaca dan dimengerti.

Meskipun notasi algoritmik bukan bahasa pemrograman,

Dede Supriadi – - [email protected] - Page 30

Page 31: Logika Dan Algoritma

beberapa asas terhadap notasi harus ditaati agar tidak terjadi

kesalahpahaman.

Di bawah ini beberapa macam notasi algoritmik yang sering

digunakan untuk menulis algoritma. Contoh yang ditulis di

bawah adalah perhitungan luas segitiga:

1. Notasi I: algoritma dengan untaian kalimat deskriptif

PROGRAM LuasSegitiga

Memasukkan angka luas dan tinggi. Algoritma

mengitung luas segitiga yaitu setengah alas

dikalikan tinggiALGORITMA

1. Masukkan alas dan tinggi

2. Rumus luas segitiga = 0.5 * a * t

3. Cetak hasilnya ke layar

Bisa kita lihat, notasi bergaya deskriptif di atas

menggunakan kalimat yang mudah dimengerti oleh

orang awam, akan tetapi susah diterjemahkan ke dalam

bahasa pemrograman.

Dede Supriadi – - [email protected] - Page 31

Page 32: Logika Dan Algoritma

2. Notasi II: algoritma dengan flowchart.

Untuk keterangan gambar flowchart bisa dilihat di sini.

Biasanya untuk program dengan masalah yang kecil,

tapi untuk masalah yang rumit dan besar akan susah

karena akan menghabiskan kertas. Pengonversian dari

flowchart ke dalam bahasa pemrograman tergantung

kebiasaan, beberapa orang ada yang kesulitan

mengonversi, beberapa orang lain lebih mudah

mengonversinya dengan menggunakan flowchart. Akan

tetapi karena flowchar menggunakan aturan yang baku,

mudah dimengerti oleh siapa saja.

Dede Supriadi – - [email protected] - Page 32

Page 33: Logika Dan Algoritma

3. Notasi III: menggunakan pseudo code.

Beberapa pakar ilmu komputer menyukai menggunakan

pseudo code daripada flowchart. Pseudo-code artinya

notasi yang mirip dengan bahasa pemrograman tingkat

tinggi, biasanya bahasa Pascal atau C. Akan tetapi beda

dengan notasi bahasa pemrograman aslinya, pseudo

code ini tidak mau direpotkan dengan penulisan titik

koma (semi colon), indeks, format keluaran, aturan

khusus dan sebagainya, pseudo code boleh ditulis

semaunya asal tidak membingungkan pembaca. Pseudo-

code tiap orang berbeda-beda karena tiap orang

menyukai gaya tertentu untuk menuliskan pseudo

codenya. Karena menggunakan pseudo code yang mirip

dengan notasi bahasa pemrograman, maka dengan

mudah akan dikonversi ke dalam notasi bahasa

pemrograman. Karena berbeda-beda itulah terkadang

beberapa orang bingung dengan pseudo code.Pseudo

code pada tulisan saya mulai sekarang hingga

Dede Supriadi – - [email protected] - Page 33

Page 34: Logika Dan Algoritma

selanjutnya akan memakai notasi yang mirip dengan

bahasa Pascal, namun tidak seluruhnya sama dengan

aturan Pascal. Seperti di bawah ini:

view plain copy to clipboard print ?

1. PROGRAM LuasSegiTiga 

2. Program untuk mengitung luas segitiga 

3. DEKLARASI: 

4.    a, t: integer { bilangan bulat alas dan tinggi } 

5.    luas: float 

6. ALGORITMA: 

7.    read(a, t) 

8.    luas = 0.5 * a * t 

9.    write(luas) 

Perhatikan dan cermati pseudo code di atas, apakah ada

kemiripan dengan Pascal?

Dede Supriadi – - [email protected] - Page 34

Page 35: Logika Dan Algoritma

Belajar Memprogram dan Belajar

Bahasa Pemrograman

Masih bingung dengan tutorial kemarin? Insya Allah akan

saya terangkan pelan-pelan apa bagian dari program yang

ditulis kemarin. Oke kita sekarang ke penjelasan-penjelasan

saja. Belajar memprogram tidaklah sama dengan belajar

bahasa pemrograman. Belajar memprogram berarti

mempelajari metode untuk memecahkan suatu masalah,

kemudian menuliskannya ke dalam sebuah algoritma dalam

kode-kode tertentu. Sedangkan belajar bahasa pemrograman

berarti mempelajari suatu bahasa komputer, aturan-aturannya,

instruksinya, serta bagaimana mengoperasikan kompilernya

dan memanfaatkan instruk-instruksi tersebut untuk membuat

programan.

Pada saat melakukan aktivitis pemrograman, kita lebih

menekankan untuk memecahkan masalah sedang untuk

menulis kode program tersebut merupakan aktivitas terakhir.

Dede Supriadi – - [email protected] - Page 35

Page 36: Logika Dan Algoritma

Kita pikirkan rancangan pemecahan suatu masalah tanpa

memikirkan menggunakan bahasa pemrograman tertentu.

Sebab jika pikiran kita terbagi pada penggunaan bahsa

pemrograman tertentu, maka fokus kita akan sangat

tergantung pada bahasa pemrograman tersebut. Rancangan

urutan pemecahan masalah tersebut disebut notasi-notasi

deskriptif (notasi ini kita namakan sebagai notasi algoritmik).

Untuk belajar memprogram dan menjadi sebuah

programmer/pemrogram yang baik, bukanlah "yang penting

hasilnya benar", tetapi perlu dipikirkan bagaimana membuat

sebuah program dengan menggunakan skema yang benar.

Kenapa? Karena akan membuat program yang kita buat akan

bersih dari kesalahan yang akan timbul pada saat eksekusi.

Jika rancangan sudah dibuat dengan skema yang baik dan

benar, maka kita tinggal memasukkan skema tersebut ke

dalam kode-kode di komputer. Makanya kita butuh untuk

belajar bahasa pemrograman.

Dede Supriadi – - [email protected] - Page 36

Page 37: Logika Dan Algoritma

Saat ini banyak sekali bahasa pemrograman yang bisa kita

pelajari. Antara lain assembly, Fortran, Cobol, Ada, PL/I,

Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasa

pemrograman simulasi seperti CSMP, Simscript, GPSS,

Dinamo dan masih banyak lagi lainnya. Disamping itu

muncul bahasa baru seperti Java dan C#. 

Dari tujuan aplikasinya kita golongkan menjadi dua

kelompok:

1. Bahasa pemrograman bertujuan khusus (specific

purpose programming language). Contoh: Cobol,

Fortran, assembly, Prolog, simscript dan lain

sebagainya.

2. Bahsa pemrograman umum (general purpose

programming language). Contoh: Pascal, C/C++,

Basic, dan lain sebagainya.

Dari kedekatan bahasa pemrograman yang lebih ke manusia

atau mesin, dikelompokkan menjadi dua macam:

Dede Supriadi – - [email protected] - Page 37

Page 38: Logika Dan Algoritma

1. Bahasa tingkat rendah. Bahasa ini lebih dekat pada

mesin, jadi tanpa penerjemah langsung dikerjakan oleh

mesin.

2. Bahasa tingkat tinggi. Bahasa ini lebih dekat pada

manusia, dan mudah dipahami oleh manusia. Contoh:

Pascal, Basic, C/C++, dan lain-lain.

Ada beberapa orang yang menggolongkannya menjadi 3

kelompok. Tidak usah bingung, karena pengelompokkan

tidak selalu jelas. Dan yang penting kita bisa mengerti dan

bisa membuat sebuah program

Program dan Pemrograman

Sebelum melanjutkan ke Contoh Algoritma (2), kita harus

mengenal dahulu program dan pemrograman. Algoritma

efektif bila dijalankan oleh sebuah prosesor. Prosesor bisa

manusia, robot, mesin, komputer, dan lain sebagainya.

Prosesor bisa membaca semua instruksi algoritma lalu

mengerjakannya. Suatu prosesor harus:

Dede Supriadi – - [email protected] - Page 38

Page 39: Logika Dan Algoritma

1. Mengerti setiap langkah dalam algoritma.

2. Mengerjakan operasi yang sesuai dengan langkah

tersebut.

Karena kali ini kita memegang komputer, kita fokuskan saja

pelajaran kali ini pada komputer. Komputer suatu alat yang

membantu manusia untuk melaksanakan perintah algoritma

yang telah dimasukkan ke dalamnya. Supaya komputer

mengerti apa yang akan dijalankan, maka kita membutuhkan

sebuah bahasa agar komputer mengerti apa yang dimasukkan

oleh manusia. Algoritma yang ditulis dalam bahasa komputer

disebut program. Bahasa komputer yang digunakan untuk

membuat program disebut bahasa pemrograman. Manusia

yang membuat program komputer disebut

programmer/pemrogram. Kegiatan dalam merancang dan

menulis program disebut programming/pemrograman.

Pada saat programming/pemrograman melalui aktivitas

menulis kode program, ini dinamakan coding.

Dede Supriadi – - [email protected] - Page 39

Page 40: Logika Dan Algoritma

Saya akan menggunakan bahasa Pascal dan bahasa C.

Mengapa bukan bahasa basic atau bahasa lain? Karena baik

bahasa Pascal maupun bahasa C menggunakan metode yang

terstruktur dan lebih mudah dipelajari algoritma-nya daripada

Basic.

Di bawah ini adalah contoh sebuah program menghitung

konversi fahrenheit-Celsius dengan menggunakan bahasa

Pascal dan bahasa C:

1. Dalam bahasa Pascal

view plain copy to clipboard print ?

1. PROGRAM FahreinheitCelcius; 

2. { Program untuk mencetak tabel Fahrenheit-Celsius

3. dari x sampai y. Masukan program ini adalah suhu

4. awal, suhu akhir, step, dan keluarannya adalah

5. tabel konversi suhu dalam C dan F} 

6. (* DEKLARASI *) 

7. var 

Dede Supriadi – - [email protected] - Page 40

Page 41: Logika Dan Algoritma

8.     F, C : real; 

9.     x, y, step : integer; 

10.  

11. begin 

12. (* ALGORITMA *) 

13.     read(x); 

14.     read(y); 

15.     read(step); 

16.     F := x; 

17.     while F <= y do 

18.         begin 

19.             C:= 5/9 * (F - 32); 

20.             writeln(F, ` `, C); 

21.             F := F + step; 

22.         end; 

23. end. 

2. Dalam bahasa C:

Dede Supriadi – - [email protected] - Page 41

Page 42: Logika Dan Algoritma

view plain copy to clipboard print ?

1. /* PROGRAM Fahrenheit-Celsius */ 

2. #include <stdio.h> 

3. main() 

4. { 

5. /* DEKLARASI */ 

6.     float F, C; 

7.     int x, y, step;</stdio.h> 

8.  

9. /* ALGORITMA */ 

10.     scanf("%d", &x); 

11.     scanf("%d", &y); 

12.     scanf("%d", &step); 

13.  

14.     F = x; 

15.     while (F <=y ) 

16.     { 

17.         C = (5/9) * (F - 32); 

Dede Supriadi – - [email protected] - Page 42

Page 43: Logika Dan Algoritma

18.         printf("%3.0f  %6.1f\n", F, C); 

19.         F = F + step; 

20.     } 

21. } 

Contoh Algoritma

Berikut ini beberapa contoh penyelesaian dengan Algoritma.

Misalkan, saya punya 2 buah ember masing-masing

bervolume 3 liter dan 5 liter. Saya hanya punya dua ember

tersebut. Entah karena lupa atau sengaja lupa, suatu ketika

saya ingin membeli 4 liter minyak tanah. Lha yang saya bawa

itu hanya ember berukuran 3 liter dan 5 liter saja, saya boleh

memindahkan dari ember satu ke ember lain, mengembalikan

minyak tanah ke tempat asalnya dan sebagainya. Bagaimana

Algoritmanya?

Algoritma mendapatkan minyak dengan volume 4 liter.

Dede Supriadi – - [email protected] - Page 43

Page 44: Logika Dan Algoritma

1. Isi penuh ember 3 liter dengan minyak. {ember 3 liter

berisi minyak 3 liter}

2. Tuangkan minyak dari ember 3 liter ke dalam ember 5

liter. {ember 5 liter berisi minyak 3 liter}.

3. Isi penuh ember 3 liter dengan minyak. {ember 3 liter

berisi minyak 3 liter}

4. Tuang minyak dari ember 3 liter ke ember 5 liter hingga

ember 5 liter penuh. {di dalam ember 3 liter sekarang

berisi minyak sebanyak 1 liter}

5. Kembalikan minyak dari ember 5 liter ke dalam

drumnya. {ember 5 liter kosong}

6. Tuangkan minyak dari ember 3 liter ke ember 5 liter.

{ember 3 liter kosong, ember 5 liter berisi minyak 1

liter}

7. Isi penuh ember 3 liter dengan minyak, lalu tuang ke

dalam ember 5 liter. Maka akan diperoleh minyak

sebanyak 4 liter {1 + 3 = 4 liter minyak }.

Struktur Dasar Algoritma

Dede Supriadi – - [email protected] - Page 44

Page 45: Logika Dan Algoritma

Untuk memecahkan berbagai masalah, baik dengan bantuan

komputer maupun tanpa bantuan komputer, dibutuhkan

algoritma yang terdiri dari serangkaian AKSI. Rangkaian aksi

ini bisa dilaksanakan dalam 3 struktur dasar, yaitu:

1. Aksi dilaksanakan secara berturut-turut atau beruntun

(sequence)

2. Aksi yang akan dipilih atau dilaksanakan ditentukan

oleh kondisi tertentu (selection)

3. Satu atau serangkaian aksi dilaksanakn secara berulang-

ulang selama kondisi tertentu masih terpenuhi

(iteration/loop). Dengan demikian, struktur perulangan

(iteration/loop) pasti mengandung struktur pemilihan

(selection).

Seringkali, untuk memecahkan sebuah masalah dibutuhkan

ketiga struktur ini secara sekaligus. Misalnya, dalam masalah

menghilangkan rasa haus, terdapat rincian seperti di bawah

ini:

Dede Supriadi – - [email protected] - Page 45

Page 46: Logika Dan Algoritma

Output: Hilangnya rasa haus.

Input: Sebuah gelas kosong berukuran 200 ml dan botol

berukuran 1000 ml penuh air.

Algoritma (dalam notasi alami):

1. Angkat botol

2. Tuangkan air ke dalam gelas

3. Periksa kondisi air dalam gelas. Jika gelas belum penuh,

lanjutkan ke langkah 4. Jika gelas sudah penuh,

lanjutkan ke langkah 5.

4. Periksa kondisi air dalam botol. Jika botol belum

kosong, kembali ke langkah 2. Jika botol sudah kosong,

lanjutkan ke langkah 5.

5. Letakkan botol air.

6. Periksa air dalam gelas. Jika gelas kosong, lanjutkan ke

langkah 11. Jika gelas berisi air, lanjutkan ke langkah 7

7. Angkat gelas.

8. Minum air.

Dede Supriadi – - [email protected] - Page 46

Page 47: Logika Dan Algoritma

9. Periksa kondisi rasa haus. Jika rasa haus belum hilang,

lanjutkan ke langkah 10. Jika rasa haus sudah hilang,

lanjutkan ke langkah 11.

10. Periksa kondisi air dalam gelas. Jika gelas belum

kosong, kembali ke langkah 8. Jika gelas sudah kosong,

kembali ke langkah 1.

11. Letakkan gelas.

Algoritma (dalam notasi flowchart):

Dede Supriadi – - [email protected] - Page 47

Page 48: Logika Dan Algoritma

Flowchart

Flowchart adalah gambaran dalam bentuk diagram alir dari

algoritma-algoritma dalam suatu program, yang menyatakan

arah alur program tersebut. Flowchart berupa simbol-simbol

yang saling terhubung dan membentuk urutan penyelesaian

suatu permasalahan. Dengan flowchart biasanya

pemrograman akan mudah dimengerti dan dilanjutkan untuk

Dede Supriadi – - [email protected] - Page 48

Page 49: Logika Dan Algoritma

Berikut ini gambar flowchart yang umum digunakan :

Terminator, fungsinya untuk permulaan /

akhir program.

Garis alir (Flow line), fungsinya untuk arah

aliran program.

Preparation, fungsinya untuk proses

inisialisasi/pemberian harga awal atau untuk

perulangan/looping

Proses, fungsinya untuk proses

perhitungan/proses pengolahan data.

Dede Supriadi – - [email protected] - Page 49

Page 50: Logika Dan Algoritma

Input data, fungsi untuk proses input

data, parameter.

Output data, output data, informasi

Decision, perbandingan pernyataan,

penyeleksian data yang memberikan pilihan untuk

langkah selanjutnya

On page connector, penghubung bagian-bagian

flowchart yang berada pada satu halaman

Off page connector, penghubung bagian-bagian

flowchart yang berada pada halaman berbeda

Saya memulai tutorial programming ini dengan pengertian

algoritma yang saya terima

Dede Supriadi – - [email protected] - Page 50

Page 51: Logika Dan Algoritma

Algoritma mempunyai banyak arti :

Algorism : kamus webster1957

Algorist : orang yang menghitung angka arab

Algorism : berasal dari orang Arab bernama Abu Ja’far

Muhammad Ibn Musa Al Khuwarismi Al JabarWal

Muqabata

Algoritma : urutan langkah logis penyelesaian masalah

yang disusun secara sistematis

Penulisan Algoritma bisa menggunakan:

Tulisan :

English structure

Pseudocode

Kelebihan :

Mudah dikomunikasikan

Dede Supriadi – - [email protected] - Page 51

Page 52: Logika Dan Algoritma

Kekurangan :

- Sangat dipengaruhi tata bahasa

- kadang sulit dipahami

Gambar:

* Hippo

* Flowchart

# Kelebihan :

1. menggambar sintaks

2. mudah digunakan (ada standar yang ditetapkan)

3. menggambar secara sederhana, teratur, rapi,

efektif dan jelas

Dede Supriadi – - [email protected] - Page 52