Pages

Sabtu, 23 Juli 2011

PENYELESAIAN MASALAH DENGAN KOMPUTER

PENYELESAIAN MASALAH MENGGUNAKAN KOMPUTER


Seorang programmer biasanya membuat program berdasarkan rancangan yang telah dibuat sebelumnya baik oleh programmer itu sendiri maupun oleh seorang analis sistem. Jarang sekali orang membuat program komputer tanpa merancangnya lebih dahulu apalagi bila masalah yang ingin diselesaikan berskala besar dan rumit.

Ada 2 tahap yang biasanya dilakukan untuk menyelesaikan masalah menggunakan program komputer:
  1. Tahap Perancangan Solusi
  • Perumusan masalah, di antaranya meliputi kegiatan untuk menentukan input, output dan proses yang diperlukan untuk menghasilkan output.
  • Tujuan tahap ini adalah menghasilkan algoritma yang handal untuk menyelesaikan masalah.
  • Algoritma adalah rangkaian terurut instruksi-instruksi yang disusun untuk menyelesaikan suatu masalah.
  • Penyusunan algoritma tidak selalu harus dilakukan (terutama untuk masalah-masalah sederhana), tetapi sangat perlu untuk masalah-masalah yang kompleks karena akan menghemat waktu dalam implementasi program pada tahap berikutnya.



  1. Tahap Implementasi
  • Tujuan dari tahap ini adalah menghasilkan program yang dapat dijalankan oleh komputer dan mengarah ke penyelesaian masalah.
  • Program adalah algoritma yang dinyatakan / dikodekan menggunakan bahasa yang dapat dikenal oleh komputer.

ALGORITMA

Dalam kehidupan sehari-hari, hampir setiap pekerjaan kita selesaikan menggunakan prosedur / aturan tertentu, misalnya membuat minum, memasak mie instant, mengendarai motor, dsb. Prosedur itu berisi langkah-langkah yang sudah tertentu urutannya. Berisi pula langkah-langkah yang hanya dikerjakan bila memenuhi syarat tertentu dan ada pula yang perlu diulang-ulang. Prosedur seperti itu dalam bidang matematika dan pemrograman komputer disebut algoritma.

Algoritma adalah serangkaian perintah yang mempunyai urutan langkah yang jelas, bukan sekedar sebuah petunjuk atau rambu-rambu. Algoritma harus cukup rinci dan jelas dilihat dari sisi agen yang akan melaksanakan algoritma tersebut.


Contoh: Algoritma mengganti lampu yang mati

Versi 1.
  1. Lepaskan lampu yang mati.
  2. Pasangkan lampu yang baru.

Versi 2.
  1. Ambil tangga dan letakkan di bawah lampu yang mati.
  2. Ambil lampu baru dengan daya yang sama.
  3. Panjat tangga tersebut sampai lampu dapat diraih.
  4. Putar lampu dengan arah berlawanan putaran jarum jam sampai terlepas dari soketnya.
  5. Tempatkan lampu baru pada soketnya.
  6. Putar lampu baru searah dengan putaran jarum jam.
  7. Turun dari tangga.
Versi 3.
  1. Posisikan tangga di bawah lampu yang mati.
  2. Ambil lampu pengganti.
  3. Jika daya dari lampu yang diambil tidak cocok dengan daya lampu yang mati, maka ulangi langkah-langkah berikut sampai lampu pengganti ditemukan:
      1. Kembalikan lampu yang telah diambil.
      2. Ambil lampu yang lain.
  4. Ulang langkah berikut hingga lampu dapat diraih:
Naik tangga satu langkah
  1. Ulang langkah berikut sampai lampu yang mati terlepas:
Putar lampu yang mati dengan arah berlawanan dengan putaran jarum jam.
  1. Tempatkan lampu baru pada soketnya.
  2. Ulang langkah berikut sampai lampu yang baru terpasang dengan aman:
Putar lampu yang baru searah dengan putaran jarum jam.
  1. Turun dari tangga.

Algoritma komputer yang baik memiliki sifat-sifat:
    • Definiteness.
Setiap langkah harus didefinisikan dengan tepat dan tidak menimbulkan makna ganda (ambigu).
    • Effective.
Setiap langkah harus mengarah pada penyelesaian masalah dalam waktu yang berhingga.
    • Finiteness.
Seluruh rangkaian instruksi harus selesai dalam waktu yang berhingga.


LATIHAN


  1. Sebutkan 3 tingkatan bahasa komputer!
  2. Apakah fungsi bahasa pemrograman?
  3. Susunlah algoritma untuk mengganti ban mobil yang bocor. Asumsikan bahwa ban pengganti dan peralatannya sudah tersedia dengan lengkap.
  4. Susunlah algoritma untuk mengirim surat melalui kantor pos.
  5. Susunlah algoritma untuk menelpon menggunakan telpon umum.
  6. Susunlah algoritma untuk membuat jagung bakar.
ALGORITMA DAN PROGRAM KOMPUTER
Algoritma bersifat programming language–independent, maksudnya sebuah algoritma dapat diimplementasikan menggunakan berbagai bahasa pemrograman tetapi penulisannya tidak bergantung kepada bahasa pemrograman tertentu.


Sebuah algoritma dan program komputer mempunyai komponen-komponen yang sama:
  1. Input / Masukan
  2. Langkah-langkah
  3. Output / Keluaran

Suatu algoritma (dan program komputer) dapat menghasilkan satu atau lebih keluaran (output), tetapi tidak harus mempunyai masukan (input)

Jenis-jenis Proses Dalam Algoritma dan Program Komputer:
  1. Sequential Process (Proses Berurutan)
Instruksi dikerjakan satu demi satu mulai dari instruksi pertama sampai dengan instruksi terakhir.
  1. Conditional Process (Proses Bersyarat)
Suatu instruksi adakalanya baru boleh dikerjakan apabila memenuhi persyaratan tertentu, misalnya: suatu bilangan boleh dibagi dengan bilangan yang lain apabila bilangan pembaginya bukan nol.
  1. Iteration Process (Proses Berulang)
Suatu instruksi adakalanya perlu dikerjakan berulang-ulang selama sekian kali atau selama suatu kondisi masih terpenuhi.

Algoritma dapat disajikan menggunakan 2 teknik:
    1. Gambar, menggunakan diagram alir / flowchart
    2. Tulisan, menggunakan kode semu / pseudocode

Sedangkan program komputer dapat ditulis dalam berbagai bahasa pemrograman (lihat Gambar 2.3).

DIAGRAM ALIR / FLOWCHART

Diagram alir merupakan representasi grafis dari algoritma. Untuk masalah yang tidak terlalu rumit, diagram alir cocok digunakan. Tetapi jika masalah yang digambarkan terlalu rumit diagram alir tidak cocok digunakan dan banyak memakan tempat. Suatu diagram alir biasanya disusun menggunakan notasi atau gambar yang memiliki fungsi tertentu.
Terminator. Digunakan untuk menyatakan awal dan akhir dari algoritma.



Data Input. Digunakan untuk memasukkan data dari terminal (keyboard)





Data Output. Digunakan untuk menampilkan data ke monitor / printer.





Data Input/Output. Kadang-kadang perintah input / output juga bisa dinyatakan dengan gambar seperti ini.




Proses. Melambangkan operasi yang dikerjakan oleh komputer, seperti pemberian nilai kepada variabel atau operasi aljabar yang lain.





Keputusan. Menyatakan pemisahan langkah berdasarkan syarat yang dipenuhi. Lambang keputusan selalu memiliki dua cabang / garis ouput. Satu cabang diberi label “Y” dan yang lain diberi label “T”.






Proses Terdefinisi. Menyatakan pemanggilan fungsi atau proses yang telah didefinisikan sebelumnya.





Konektor. Menyatakan sambungan dari dua atau lebih garis arah untuk membedakan dengan garis arah yang saling bersilangan sehingga mempermudah pembacaan algoritma.





Konektor Ganti Halaman. Kadang-kadang sebuah penulisan algoritma melebihi satu halaman kertas. Lambang ini digunakan untuk menyatakan bahwa aliran algoritma dilanjutkan ke halaman berikutnya.






Garis Arah. Menghubungkan simbol satu dengan simbol yang lain untuk menyatakan urutan langkah.




Diagram Alir tidak cocok untuk penulisan algoritma yang panjang karena menimbulkan kerumitan.
Contoh: Diagram Alir untuk Menentukan Kelulusan

Untuk menilai keberhasilan seorang mahasiswa pada suatu matakuliah, dilakukan ujian sebanyak 4 kali dengan skala nilai 100. Algoritma berikut menghitung rata-rata dari keempat ujian tersebut dengan bobot sama. Bila nilai rata-rata kurang dari 50, maka mahasiswa tersebut dianggap gagal

KODE SEMU / PSEUDOCODE

Algoritma juga dapat ditulis menggunakan pseudocode, yaitu kata-kata tertentu dalam bahasa sehari-hari yang biasa digunakan untuk menyatakan sebuah instruksi.
Contoh kata-kata yang biasanya digunakan (dalam bahasa Inggris) adalah:
  • read atau input digunakan untuk membaca nilai masukan.
  • write atau output digunakan untuk menampilkan hasil.
  • if-then dan if-then-else atau jika-maka untuk perintah bersyarat
  • repeat-until atau loop digunakan untuk perintah yang perlu diulang-ulang.
  • Tanda panah kiri digunakan untuk menyimpan nilai operasi aritmatika atau pemindahan nilai,
  • dan lain-lain.
Untuk memperjelas biasanya pseudocode disertai dengan penjelasan menggunakan kalimat sehari-hari.
Contoh:
    1. Kode semu untuk menentukan kelulusan:
  1. [Masukan / input berupa nilai-nilai ujian]
Read (Uji1, Uji2, Uji3, Uji4)
  1. [Hitung rata-rata nilai ujian]
Rata2 (uji1 + uji2 + uji3 + uji4) / 4
  1. [Tentukan Kelulusannya]
If Rata2 50
then Write(‘Anda Lulus dengan nilai ‘, Rata2)
else Write(‘Anda Tidak Lulus dengan nilai ‘, Rata2)
  1. [Selesai]
Stop

    1. Kode semu untuk menentukan jarak rata-rata yang bisa ditempuh sepeda motor untuk tiap liter BBM.

  1. Input awal_spedometer
  2. JumlahBB 0
  3. Repeat
  4. Input PengisianBB
  5. JmlBB JmlBB + PengisianBB
  6. Until PengisianBB = 0
  7. Input akhir_spedometer
  8. jarak_rata2 (akhir_spedometer – awal_spedometer) / JmlBB
  9. print jarak_rata2
  10. Stop

PENGUJIAN DAN PENELUSURAN ALGORITMA

Suatu algoritma harus bebas dari kesalahan interpretasi, makna ganda dan kesalahan logika. Untuk menguji bahwa algoritma yang kita rumuskan bekerja seperti yang diharapkan dan tidak terdapat kesalahan maka diperlukan tahap pengujian atau pelacakan kesalahan pada algoritma. Algoritma diuji menggunakan beberapa data yang representatif kemudian melacak perubahan nilai-nilai yang tersimpan dalam variabel secara detail pada setiap langkah.
Pengujian perlu dilakukan beberapa kali dengan data uji yang berbeda-beda, diantaranya dengan:
    • Data yang mudah diperiksa secara manual.
    • Data yang wajar, data yang diharapkan
    • Data ekstrim. Data-data ekstrim biasanya berupa nilai batas, bilangan yang terlalu besar/kecil, bilangan negatif, nol, data kosong, string yang terlalu panjang, string yang terlalu pendek, dsb.
    • Data ilegal, data yang sama sekali tidak bisa diharapkan, misalnya berbeda tipe.

Contoh: Pelacakan Algoritma untuk Menentukan Kelulusan

Langkah
Uji1
Uji2
Uji3
Uji4
Rata2
Syarat
Output
1
70
50
90
75
?


2
70
50
90
75
71,25


3
70
50
90
75
71,25
Benar

4
Selesai



Langkah
Uji1
Uji2
Uji3
Uji4
Rata2
Syarat
Output
1
50
40
60
45
?


2
50
40
60
45
48,75


3
50
40
60
45
48,75
Salah

4
Selesai





CONTOH–CONTOH ALGORITMA

Contoh 1. Algoritma Pythagoras
Diberikan panjang 2 sisi tegak lurus dari
sebuah segitiga siku-siku, yaitu Alas (A)
dan Tinggi (T). Algoritma ini menghitung
panjang sisi miring atau Hipotenusa (H).
  1. Read (A, T)
  2. K1 Kuadrat(A)
K2 Kuadrat(T)
  1. H Akar(K1 + K2)
  2. Write(“Panjang sisi miring = “, H)
  3. Stop




Contoh 2. Algoritma Konversi Suhu

Diberikan suhu dalam derajat Celcius (C). Konversikan suhu tersebut dalam satuan Fahrenheit (F), Reamur (R), dan Kelvin (K).
  1. [membaca suhu dalam celcius]
Read (C)
  1. [konversikan suhu C]
F 1.8 * C + 32
R 0.8 * C
K C + 273
  1. [menampilkan hasil]
Write(‘Fahrenheit = ‘, F)
Write(‘Reamur = ‘, R)
Write(‘Kelvin = ‘, K)
  1. [Selesai]
Stop










LATIHAN:
    1. Tulislah algoritma untuk menghitung luas segitiga.
    2. Tulislah algoritma untuk menghitung luas lingkaran.
    3. Tulislah algoritma untuk menghitung nilai hambatan total dari 3 hambatan yang tersusun secara seri.
    4. Tulislah algoritma untuk menghitung nilai hambatan total dari 3 hambatan yang tersusun secara paralel.
    5. Tulislah algoritma untuk menghitung volume sebuah kotak yang panjang sisi-sisinya p, l dan t.
    6. Tulislah algoritma untuk menghitung volume bola yang memiliki jari-jari r.

0 komentar:

Posting Komentar