Selasa, 14 April 2009

LOGIKA DAN ALGORITMA

Logika

Logika
berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada
dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan
yang memiliki suatu tujuan. Jadi pengertian Logika adalah ilmu berpikir
/ cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu.

Algoritma

Pada
Merriam-Webster’s Collegiate Dictionary, istilah algoritma diartikan
sebagai prosedur langkah demi langkah untuk memecahkan masalah atau
menyelesaikan suatu tugas. Kamus Besar Bahasa Indonesia (KBBI) mendefinisikan
algoritma sebagai urutan logis pengambilan keputusan untuk pemecahan
masalah.

Alat Bantu untuk
menuliskan Logika dan Algoritma, salah satunya adalah FLOWCHART.

FLOWCHART

FLOWCHART adalah gambaran dalam
bentuk diagram alir dari algoritma dalam suatu program atau prosedur
sistem secara logika, yang menyatakan arah alur program dalam menyelesaikan
suatu masalah.

SIMBOL Flowchart

Pedoman-pedoman dalam Membuat
Flowchart:

  1. Bagan alir sebaiknya
    digambar dari atas ke bawah dan mulai dari bagian kiri dari suatu halaman.
  2. Kegiatan di dalam bagan
    alir harus ditunjukkan dengan jelas.
  3. Harus ditunjukkan dari
    mana kegiatan akan dimulai dan dimana akan berakhirnya (diawali dari
    satu titik START dan diakhiri dengan END).
  4. Masing-masing kegiatan
    di dalam bagan alir sebaiknya digunakan suatu kata yang mewakili suatu
    pekerjaan, misalnya:
    • “Persiapkan”
      dokumen
    • “Hitung”
      gaji
  5. Masing-masing kegiatan
    di dalam bagan alir harus di dalam urutan yang semestinya.
  6. Kegiatan yang terpotong
    dan akan disambung di tempat lain harus ditunjukkan dengan jelas menggunakan
    simbol penghubung.
  7. Gunakanlah simbol-simbol
    bagan alir yang standar.

Secara garis besar,
Ada 3 bagian utama dalam flowchart :

INPUT

PROSES

OUTPUT

Notasi Algoritma

Sebelum membahas masalah notasi algoritma, terlebih dahulu kita pahami pengertian-pengertian dan konsep dasar seperti di bawah ini:
Algoritma : urutan langkah-langkah atau instruksi-instruksi yang harus dilaksanakan untuk memecahkan masalah.
Flowchart : (Diagram alur) adalah urutan instruksi-instruksi program yang digambarkan dalam bentuk suatu diagram.
Program : sederetan instruksi atau perintah (dalam bahasa yang di mengerti oleh komputer) untuk melaksanakan tugas-tugas tertentu, sehingga menghasilkan suatu keluaran / output yang diharapkan.
Bahasa pemrograman : program yang berisikan instruksi-instruksi yang dimengerti oleh komputer. Ada 2 klasifikasi dalam bahasa pemrograman, yaitu;

1. Low level language / bahasa tingkat rendah yang berorientasi pada mesin, contohnya: bahasa mesin / machine language dan bahasa rakitan / assembly language.
2. High level language /bahasa tingkat tinggi adalah bahasa pemrograman yang berorientasi pada manusia. Contohnya : BASIC, PASCAL, COBOL, FORTRAN, C.

Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma disusun oleh sederetan langkah instruksi yang logis.

Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma harus logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.

Sebagai contoh, tinjau persoalan mempertukarkan isi dua bejana, A dan B. Bejana A berisi larutan yang berwarna merah, sedangkan bejana B berisi air berwarna biru. Kita ingin mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah. Untuk mempertukarkan isi dua bejana, kita memerlukan sebuah bejana tambahan yang diperlukan sebagai tempat penampungan sementara. Sebut bejana tambahan tersebut bejana C. Dengan menggunakan bejana bantu C ini, algoritma mempertukarkan isi dua buah bejana yang benar adalah sebagai berikut ini:

Deskripsi Algoritma Tukar Isi Bejana:
1. Tuangkan larutan dari bejana A ke dalam bejana C.
2. Tuangkan larutan dari bejana B ke dalam bejana A.
3. Tuangkan larutan dari bejana C ke dalam bejana B.

Dengan cara tersebut maka bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.

Oke…seteleh deskripsi tersebut mari kita langsung masuk ke materinya…..

Seperti disebutkan diatas, bahwa algoritma adalah urutan langkah-langkah atau instruksi-instruksi yang harus dilaksanakan untuk memecahkan masalah. Algoritma ini dituliskan dalam sebuah notasi yang disebut Notasi Algoritma. Notasi algoritma merupakan hal dasar yang harus diketahui oleh setiap orang yang ingin membuat suatu pogram, karena dalam notasi algoritma inilah terdapat kerangka-kerangka suatu program. Ciri notasi algoritma yang baik yaitu dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Notasi algoritma bukan notasi bahasa pemrograman, sehingga siapapun dapat membuat notasi algoritma yang berbeda. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti. Meskipun demikian untuk menghindari kekeliriuan, ketaatan terhadap notasi perlu diperhatikan. Di bawah ini ada 3 notasi yang umum digunakan dalam penulisan algoritma, yaitu :

1. Notasi Alami
2. Flowchart / Diagram Alur
3. Pseudo-Code (seperti kode)


1. NOTASI ALAMI
Penulisan algoritma dengan notasi alami adalah dengan cara menuliskan instruksi-instuksi yang harus dilaksanakan untuk memecahkan masalah dalam bentuk untaian kalimat deskriptif.

Dengan notasi bergaya kalimat ini, deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang. Proses diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’, dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika…maka…’. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relative sukar.

2. FLOWCHART / DIAGRAM ALUR
Ada 2 jenis Flowchart :
a. flowchart sistem, adalah suatu gambar yang menjelaskan :
- file-file yang diproses oleh program
- jenis piranti yang digunakan oleh file
- operasi terhadap file (masukan ataupun keluaran).
b. flowchart program (biasa disebut flowchart saja), adalah suatu gambar yang menjelaskan urutan :
- Pembacaan data
- Pemrosesan data
- Pengambilan keputusan terhadap data
- Penyajian hasil pemrosesan data

Nah….yang kita bahas disini adalah flowchart program atau biasa disebut flowchart saja.

Flowchart/Diagram Alur popular pada awal-awal era pemrograman dengan komputer (terutama dengan bahasa Basic, Fortran, dan Cobol). Diagram alur lebih menggambarkan aliran instruksi di dalam program secara visual dibanding memperlihatkan struktur program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sukar.

Simbol-simbol pada flowchart

Untuk mulai/akhir:

Simbol ini dinamakan terminator, digunakan untuk menyatakan MULAI (START) dan SELESAI (END) suatu algoritma.




Untuk input:

Manual input merupakan KOTAK MASUKAN yang digunakan untuk membaca data yang diberikan oleh usernya. Jadi user mengimput suatu harga/variable/nilai.



Data merupakan KOTAK DATA yang digunakan untuk membaca dan menampilkan data. Contoh aplikasinya yaitu jika kita ingin kita ingin mengetahui saldo tabungan kita pada mesin ATM, ATM hanya tinggal membaca data yang ada.



Untuk Proses:

Proses merupakan KOTAK PENUGASAN untuk melakukan perhitungan matematika yang hasilnya diberikan sebagai suatu variable.



Decision merupakan KOTAK KEPUTUSAN untuk memutuskan arah atau percabangan yang diambil sesuai dengan kondisi yang saat itu terjadi. Hanya ada 2 keputusan yaitu BENAR atau SALAH.




Untuk Output:

Kotak ini selain untuk input, digunakan juga untuk output. Digunakan untuk menampilkan data.



Dokumen merupakan KOTAK KELUARAN untuk menampilkan / mencetak / menyimpan hasil(keluaran).



Simbol-simbol lain yang digunakan antara lain:

Simbol Aliran Panah.



Connector merupakan SIMBOL PENGHUBUNG, untuk penghubung bila diagram alur terputus tapi masih dalam halaman yang sama.



Off-page connector merupakan SIMBOL PENGHUBUNG, untuk penghubung bila diagram alur terputus disebabkan misalnya oleh pergantian halaman (tak cukup digambar 1 halaman).



3. PSEUDO-CODE
Pseudo-code adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Pascal dan C. Bahasa pemrograman umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi seperti notasi if-then-else, while-do, repeat-until, read, write, dan sebagainya. Namun tidak seperti bahasa pemrograman yang direpotkan dengan tanda titik koma, indeks, format keluaran, kata-kata khusus, dan sebagainya, sembarang versi Pseudo-code dapat diterima asalakan perintahnya tidak membingungkan pembaca. Keuntungan menggunakan notasi Pseudo-code adalah kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespodensi antara setiap Pseudo-code dengan notasi bahasa pemrograman. Sehingga Pseudo-code cocok untuk algoritma yang rumit.



CONTOH KASUS
Buatlah algoritma untuk menghitung luas persegi panjang dengan ketiga notasi algoritma diatas?

Jawab.
1. Notasi Alami
- Dapatkan nilai panjang
- Dapatkan nilai lebar
- Kalikan nilai panjang dengan nilai lebar dan berikan nilainya kehasil
- Tampilkan nilai hasil

2. Flowchart














3. Pseudo-code

p, l, ls : numeric

begin
read (p, l)
ls : p x l
print (ls)
end.

Algoritma-algoritma yang merupakan konsep Pre-emptive

Filed Under:

1. Penjadwalan Round-Robin (RR)
semua proses dianggap penting dan di beri jatah waktu pemroses yang disebut kwanta. Proses berjalan dieksekusi oleh pemproses sebanyak saru kwanta, kemudian penjadwal akan megalihkan ke proses berikutnya juga untuk berjalan satu kwanta, kemudian dilanjutkan ke proses berikutnya, juga diproses satu kwanta, begitu setersnya sampai kembali ke proses awal dan berulang.
Ketentuan penjadwalan ini adalah sebagai berikut :

  • Bila kwanta gabis dan proses belum selesai maka proses running itu menjadi ready dan prmroses dialihkan ke proses lain,
  • Jika kwanta belum habis dan proses menuggu suatu kejadian (misalnya menunggu suatu proses I/O)
  • JIka kwanta belum habis dan proses menunggu suatu kejadian (misalnya menunggu suatu operasi I/O) maka proses running itu pemroses di alihkan ke proses lain.
2. Multiple Feedback Queues (MPQ)
Sasaran Penjadwalan ini untuk meminimalkan banyaknya swapping baru yang dilakukan adalah :
  • Proses yang sangat banyak menggunakan pemroses diberi jatah waktu lebih banyak (kwanta lebih besar) dan satu waktu.
  • Penjadwalan dilakukan berdasarkan kelas-kelas prioritas proses kelas tertinggi berjalan selama satu kwanta, kelas berikutnya berjalan dua kwanta, kolom berikutnya berjalan tiga kwanta dan seterusnya.
Ketentuan penjadwalan ini adalah sebagai berikut :
Jalankan proses-proses pada kelas prioritas tertinggi
Jika Proses telah menggunakan seluruh kwanta yang diberikan prioritasnya diturunkan satu kelas
Proses yang masuk pertama kali ke sistem diberi prioritas tertinggi.

3. Sortest-Remaind-First (SRF)
Penjadwalan yang memprioritaskan estimasi waktu proses yang rendah. ketentuannya yaitu proses-proses yang di estimasi memiliki sisa waktu. Proses terendah segera dieksekusi termasuk proses-proses yang baru masuk dalam antrian.

4. Hightes-Ratio-Next (HRN)
Penjadwalan yang memprioritaskan "Rasio prioritas dinamis" tertinggi.
dimana HRN di hitung dengan rumus :
Prioritas = (waktu tinggi+waktu layanan)/waktu layanann

5. Priority Schedule (PS)
Penjadwalan yang memprioritaskan proses yang memiliki prioritas statis tertinggi.

6. Guaranteed Schedule (GS)
Penjadwalan ini berupaya memberi masing-masing daya pemroses yang sama, jika terdapat N proses maka tiap proses diberikan 1/n daya pemroses.

Tidak ada komentar:

Posting Komentar