P. 1
Logika Dan Algoritma

Logika Dan Algoritma

5.0

|Views: 20,104|Likes:
Published by d2spd.pnd9185

More info:

Categories:Types, School Work
Published by: d2spd.pnd9185 on Mar 06, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

05/24/2013

pdf

text

original

Nama NPM Kelas Kelompok Program

: DEDE SUPRIADI : 43200700606080234 : Extention :B : 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. 2. 3. Langkah- langkah yg dilakukan agar solusi masalah dapat diperoleh. Suatu prosedur yg merupakan urutan langkah-langkah yg berintegrasi. Suatu metode khusus yg digunakan untuk menyelesaikan suatu masalah yg nyata.(Webster Dictionary)

Dede Supriadi –

- d2spd_pnd@telkom.net - Page 1

TAHAP PENYELESAIAN MASALAH

Masalah Model Algoritma Program Eksekusi Data Hasil

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.

Dede Supriadi –

- d2spd_pnd@telkom.net - Page 2

Contoh : Sebuah prosedur ketika akan mengirimkan surat kepada 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.

Dede Supriadi –

- d2spd_pnd@telkom.net - Page 3

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
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
Start
Masukan

Alas
Masukan •Dengan diagram alur atau flowchart, Tinggi

Contoh :
Luas = (Alas * Tinggi)/2

Dede Supriadi –

Cetak - d2spd_pnd@telkom.net - Page 4 Luas

Stop

•Dengan Statement program/penggalan Program 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.

Dede Supriadi –

- d2spd_pnd@telkom.net - Page 5

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.

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. Dede Supriadi – - d2spd_pnd@telkom.net - Page 6

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 –

- d2spd_pnd@telkom.net - Page 7

Dede Supriadi –

- d2spd_pnd@telkom.net - Page 8

Dede Supriadi –

- d2spd_pnd@telkom.net - Page 9

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 10

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 11

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 12

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 13

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 14

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 15

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 16

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 17

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 18

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 19

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 20

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 –

- d2spd_pnd@telkom.net -Page 21

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 plaincopy to clipboardprint?
1.

if kondisi then aksi

2.

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 22

Bahasa Indonesia untuk if adalah jika, dan untuk then adalah maka. Dalam kehidupan sehari-hari dapat kita temui sebagai berikut: view plaincopy to clipboardprint?
1.

if saya makan then saya kenyang

2.

Jika pilihan aksi ada 2 view plaincopy to clipboardprint?
1.

if bil <= 100 then tulis bilangan lebih dari seratus else tulis kurang dari 100

2.
3. 4.

Jika pilihan aksi lebih dari 2 view plaincopy to clipboardprint?
1.

if A < B then
- d2spd_pnd@telkom.net -Page 23

Dede Supriadi –

2.

if A < C then tulis bilangan terbesar = A else tulis bilangan terbesar = C else if B < C then tulis bilangan terbesar = B else tulis bilangan terbesar = C

3.
4.

5.
6. 7.

8.
9.

10.

Penulisan ruang kosong (indentasi) di atas akan lebih mudah dibaca dibanding: view plaincopy to clipboardprint?
1. 2.

if A < B then if A < C then

3. tulis bilangan terbesar = A
4.

else

5. tulis bilangan terbesar = C
Dede Supriadi – - d2spd_pnd@telkom.net -Page 24

6. 7.

else 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 plaincopy to clipboardprint?
1. 2.

ALGORITMA tulis kalimat 100 kali: repeat 100 times
- d2spd_pnd@telkom.net -Page 25

Dede Supriadi –

3.

Tulis "Saya akan mengerjakan PR"

maka akan algoritmanya demikian: view plaincopy to clipboardprint?
1.

repeat N times aksi

2.

artinya aksi diulang sebanyak N kali. for view plaincopy to clipboardprint?
1.

for pencacah pengulangan dari 1 sampai N do aksi

2.

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 plaincopy to clipboardprint?

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 26

1. ALGORITMA:
2. 3.

for i dari 1 sampai 100 do writeln "Saya tidak akan mengulanginya lagi

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 plaincopy to clipboardprint?
1.

repeat aksi until kondisi

2.
3.

Contoh view plaincopy to clipboardprint?
Dede Supriadi – - d2spd_pnd@telkom.net -Page 27

1. 2. 3. 4.

ALGORITMA tulis kalimat 100 kali: repeat writeln "Saya berjanji tidak akan mengulangi lagi" until sudah 100 kali.

while while artinya selagi, do artinya lakukan view plaincopy to clipboardprint?
1.

while kondisi do aksi

2. Contoh:

view plaincopy to clipboardprint?
1.

while i <= do jumlah = jumlah + i i=i+1

2.
3.

Struktur Dasar : Pernyataan
Dede Supriadi – - d2spd_pnd@telkom.net -Page 28

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. 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 plaincopy to clipboardprint? 1. Tulis "Hello, world" maka pernyataan di atas akan menjalankan sebuah aksi untuk menulis "Hello, world" pernyataan view plaincopy to clipboardprint?
Dede Supriadi – - d2spd_pnd@telkom.net -Page 29

1.

Kalikan x dengan 4

maka tiap aksi x akan dikalikan dengan 4.dan hasil perkalian akan disimpan di dalam peubah x lagi. Pernyataan view plaincopy to clipboardprint?
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
Dede Supriadi – - d2spd_pnd@telkom.net -Page 30

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 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
Dede Supriadi – - d2spd_pnd@telkom.net -Page 31

tingkat ketelitian. Notasi algorimik bukanlah bahasa pemrograman, jadi bebas ditulis dengan bebas asal mudah dibaca dan dimengerti. Meskipun notasi algoritmik bukan bahasa pemrograman, 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

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 32

Bisa kita lihat, notasi bergaya deskriptif di atas menggunakan kalimat yang mudah dimengerti oleh orang awam, akan tetapi susah diterjemahkan ke dalam bahasa pemrograman.
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 –

- d2spd_pnd@telkom.net -Page 33

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. Pseudocode tiap orang berbeda-beda karena tiap orang menyukai gaya tertentu untuk menuliskan pseudo

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 34

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 selanjutnya akan memakai notasi yang mirip dengan bahasa Pascal, namun tidak seluruhnya sama dengan aturan Pascal. Seperti di bawah ini: view plaincopy to clipboardprint? 1. PROGRAM LuasSegiTiga 2. Program untuk mengitung luas segitiga 3. DEKLARASI:
4.

a, t: integer { bilangan bulat alas dan tinggi } luas: float

5.

6. ALGORITMA: 7. read(a, t)

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 35

8. 9.

luas = 0.5 * a * t write(luas)

Perhatikan dan cermati pseudo code di atas, apakah ada kemiripan dengan Pascal?

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
Dede Supriadi – - d2spd_pnd@telkom.net -Page 36

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. 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.
Dede Supriadi – - d2spd_pnd@telkom.net -Page 37

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. 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.

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 38

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:
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
Dede Supriadi – - d2spd_pnd@telkom.net -Page 39

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: 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

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 40

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.

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 plaincopy to clipboardprint?

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 41

1. PROGRAM FahreinheitCelcius;
2. 3. 4. 5. 6. 7. 8. 9.

{ Program untuk mencetak tabel Fahrenheit-Celsius dari x sampai y. Masukan program ini adalah suhu awal, suhu akhir, step, dan keluarannya adalah tabel konversi suhu dalam C dan F} (* DEKLARASI *) var F, C : real; x, y, step : integer;

10.
11. begin 12. (*

ALGORITMA *) read(x); read(y); read(step); F := x; while F <= y do begin
- d2spd_pnd@telkom.net -Page 42

13. 14. 15. 16.
17. 18.

Dede Supriadi –

19. 20.

C:= 5/9 * (F - 32); writeln(F, ` `, C); F := F + step; end;

21.
22. 23. end.

2. Dalam bahasa C: view plaincopy to clipboardprint?
1. 2.

/* PROGRAM Fahrenheit-Celsius */ #include <stdio.h>

3. main() 4. {
5. 6. 7.

/* DEKLARASI */ float F, C; int x, y, step;</stdio.h>

8.
9. 10.

/* ALGORITMA */ scanf("%d", &x);
- d2spd_pnd@telkom.net -Page 43

Dede Supriadi –

11. 12.

scanf("%d", &y); scanf("%d", &step);

13. 14.
15.

F = x; while (F <=y ) { C = (5/9) * (F - 32); printf("%3.0f %6.1f\n", F, C); F = F + step; }

16. 17.
18.

19. 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
Dede Supriadi – - d2spd_pnd@telkom.net -Page 44

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.
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}

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 45

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
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 berulangulang selama kondisi tertentu masih terpenuhi

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 46

(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: 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.
Dede Supriadi – - d2spd_pnd@telkom.net -Page 47

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. 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 –

- d2spd_pnd@telkom.net -Page 48

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

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 49

suatu permasalahan. Dengan flowchart biasanya pemrograman akan mudah dimengerti dan dilanjutkan untuk

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

Dede Supriadi –

- d2spd_pnd@telkom.net -Page 50

Proses, fungsinya untuk proses perhitungan/proses pengolahan data.

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 – - d2spd_pnd@telkom.net -Page 51

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 –

- d2spd_pnd@telkom.net -Page 52

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 –

- d2spd_pnd@telkom.net -Page 53

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->