SELAMAT DATANG DI BLOG’S DARMAN SINAGA

Cari Disini

Sabtu, 24 September 2011

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)

TAHAP PENYELESAIAN MASALAH
Masalah
Model
Algoritma
Program
Eksekusi
Hasil
Data
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 2
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
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
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
Contoh :
• Read Alas
• Read Tinggi
• Luas=(Alas * Tinggi)/2
• Write(Luas)
Start
Masukan
Alas
Masukan
Tinggi
Luas = (Alas * Tinggi)/2
Cetak
Luas
Stop

• 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.
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.
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 5
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,
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 6
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 7
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 8
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 9
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 10
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 11
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 12
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 13
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 14
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 15
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 16
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 17
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 18
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.
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
2. aksi
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 19
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
2. saya kenyang
Jika pilihan aksi ada 2
view plaincopy to clipboardprint?
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 plaincopy to clipboardprint?
1. if A < B then
2. if A < C then
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
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 20
Penulisan ruang kosong (indentasi) di atas akan lebih mudah dibaca dibanding:
view plaincopy to clipboardprint?
1. if A < B then
2. if A < C then
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
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. ALGORITMA tulis kalimat 100 kali:
2. repeat 100 times
3. Tulis "Saya akan mengerjakan PR"
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 21
maka akan algoritmanya demikian:
view plaincopy to clipboardprint?
1. repeat N times
2. aksi
artinya aksi diulang sebanyak N kali.
for
view plaincopy to clipboardprint?
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 plaincopy to clipboardprint?
1. ALGORITMA:
2. for i dari 1 sampai 100 do
3. 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?
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 22
1. repeat
2. aksi
3. until kondisi
Contoh
view plaincopy to clipboardprint?
1. ALGORITMA tulis kalimat 100 kali:
2. repeat
3. writeln "Saya berjanji tidak akan mengulangi lagi"
4. until sudah 100 kali.
while
while artinya selagi, do artinya lakukan
view plaincopy to clipboardprint?
1. while kondisi do
2. aksi
Contoh:
view plaincopy to clipboardprint?
1. while i <= do
2. jumlah = jumlah + i
3. i = i + 1
Struktur Dasar : Pernyataan
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 23
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?
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"
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 24
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 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, beberapa asas terhadap notasi harus ditaati agar tidak terjadi
kesalahpahaman.
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 25
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.
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.
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 26
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 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
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 27
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?
Belajar Memprogram dan Belajar Bahasa Pemrograman
Masih bingung dengan tutorial kemarin? Insya Allah akan saya terangkan pelanpelan
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. 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
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 28
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.
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:
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.
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 29
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:
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.
Saya akan menggunakan bahasa Pascal dan bahasa C. Mengapa bukan bahasa
basic atau bahasa lain? Karena baik bahasa Pascal maupun bahasa C
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 30
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?
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
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);
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 31
21. F := F + step;
22. end;
23. end.
2. Dalam bahasa C:
view plaincopy to clipboardprint?
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);
18. printf("%3.0f %6.1f\n", F, C);
19. F = F + step;
20. }
21. }
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 32
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.
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
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 33
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:
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.
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 34
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):
Flowchart
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 35
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
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.
• Input data, fungsi untuk proses input data, parameter.
• Output data, output data, informasi
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 36
• 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
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
Edwin surya utama ‐ ilkom92@gmail.com ‐ Page 37
• Pseudocode
Kelebihan :
Mudah dikomunikasikan
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

0 komentar:

Kata yang sejuk


" Janganlah kamu Dianggap rendah karena kamu muda . Jadilah teladan bagi sesamamu lakukan yang terbaik yang baik di mata TUHAN"
--(1 Korintus)--

" TUHAN lah kekuatan ku Takkan kekurangan Aku. Ia membimbing aku kejalan yang benar, Ia membaringakan aku Dipadang yang berumput hijau, Ia menopang aku ketika aku jatuh. Ia takkan membiarkan aku dalam kesesakan, Ia selalu memberikan yang terbaik kepada ku."
--(Mazmur 23)--

" Hukum yang pertama dan yang terutama Ialah : Kasihanilah TUHAN Allah mu dengan segenap hatimu , dengan segenap jiwamu , dengan Segenap Akal budimu. Dan hukum kedua Sama seperti diatas yaitu Kasihanilah Sesamamu manusia seperti dirimu sendiri"
--(Yohanes)--

" Hai pemalas Pergilah kepada Semut , dan jadilah bijak,LIhatlah semut , meskipun tidak ada pemimpnnya , Ia mengumpulkan makanan di waktu panen. Selalu semangat dalam menjalani hidup "
--(Amsal)--
Sering - Sering Mengunjungi Blog Saya .....
Design by : @ Darman Sinaga e-Mail : darmansinaga92@gmail.com (darmansinaga.blogspot.com)