Upload
d2spdpnd9185
View
20.059
Download
2
Embed Size (px)
Citation preview
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
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
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
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
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
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
Dede Supriadi – - [email protected] - Page 7
Dede Supriadi – - [email protected] - Page 8
Dede Supriadi – - [email protected] - Page 9
Dede Supriadi – - [email protected] - Page 10
Dede Supriadi – - [email protected] - Page 11
Dede Supriadi – - [email protected] - Page 12
Dede Supriadi – - [email protected] - Page 13
Dede Supriadi – - [email protected] - Page 14
Dede Supriadi – - [email protected] - Page 15
Dede Supriadi – - [email protected] - Page 16
Dede Supriadi – - [email protected] - Page 17
Dede Supriadi – - [email protected] - Page 18
Dede Supriadi – - [email protected] - Page 19
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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