Kamis, 26 Januari 2012

Algoritma dan Pemrograman, Pertemuan 1

S1 Teknik Informatika Semester II

1.       Masalah.
-       Masalah = persoalan (problem)
-       Pernyataan atau tugas yang kita cari jawabannya
Contoh:
Mengurutkan tumpukan kartu secara acak
Mencari nama pejabat dengan kekayaan besar
-          Secara generik, masalah tsb dideskripsikan menggunakan beberapa ukuran (parameter).
-          [masalah pengurutan] Diberikan sebuah list S terdiri dari n buah nilai bilangan bulat. Bagaimana mengurutkannya?
·            S dan n adalah parameter masalah
·            Pemberian nilai untuk semua parameter masalah dinamakan instansiasi masalah (instance of problem)
v  S = [15,4,8,11,2,10,19],         n = 7
·            Jawaban thd instansiasi masalah disebut solusi
v  S = [2,4,8,10,11,15,19]

2.       Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis

-       Langkah pengurutan 50 kartu acak:
Ø  Cari kartu dg nomor terkecil
Ø  Tempatkan kartu tsb di posisi teratas
Ø  Cari kartu dg nomor terkecil berikutnya
Ø  Tempatkan kartu tsb di bawah kartu pertama
Ø  ……..
Ø  Cari kartu dg nomor terkecil berikutnya
Ø  Tempatkan kartu tsb di bawah kartu ke-48 (sisa 1 kartu, tapi tdk perlu diurutkan lagi)

-       Langkah-langkah pengurutan 50 kartu acak itu yg disebut algoritma

-       Setiap masalah mempunyai algoritma pemecahannya

-       Tugas kita sebagai pemecah masalah adalah mendeskripsikan langkah-langkah penyelesaiannya

-       Algoritma TUKAR ISI BEJANA
Ø  Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.

Ø  DESKRIPSI :
v  Tuangkan larutan dari bejana A ke dalam bejana B
v  Tuangkan larutan dari bejana B ke dalam bejana A.

Ø  Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang benar. Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah percampuran kedua larutan tersebut.

Ø  Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan sebagai  tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk menghasilkan pertukaran yang benar adalah sebagai berikut :

Ø  Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Pertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna  biru dan bejana B berisi larutan berwarna merah.

Ø  DESKRIPSI :
v  Tuangkan larutan dari bejana A ke dalam bejana C.
v  Tuangkan larutan dari bejana B ke dalam bejana A.
v  Tuangkan larutan dari bejana C ke dalam bejana B.

3.       Ciri Penting Algoritma
-       Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
-       Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
-       Algoritma memiliki nol atau lebih masukkan.
-       Algoritma memiliki nol atau lebih keluaran.
-       Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).

4.       Program dan Pemrograman
-       Algortima akan efektif jika dijalankan oleh sebuah pemroses/processor(manusia, robot, mesin, dsb).
-       Suatu pemroses harus:
Ø  Mengerti setiap langkah dalam algoritma
Ø  Mengerjakan operasi yg bersesuaian dg langkah tsb
-       Komputer : alat bantu untuk menjalankan perintah di dalam algoritma yg telah dimasukkan ke dalamnya.
-       Algoritma yg ditulis dalam bahasa komputer dinamakan program.
-       Bahasa komputer yg digunakan dalam melunis program dinamakan bahasa pemrograman.
-       Orang yg membuat program komputer disebut pemrogram(programmer).
-       Kegiatan merancang dan menulis program disebut pemrograman.

5.       Bahasa Pemrograman
-       Contoh: assembly, Fortran, Cobol, Pascal, C, C++, Basic, Prolog,…., Java, C#
-       Berdasar tujuannya, bahasa pemrograman digolongkan menjadi:
Ø  Specific Purpose programming language
v  Cobol(terapan bisnis&administrasi)
v  Fortran(komputasi ilmiah)
v  Assembly(pemrograman mesin)
v  Prolog(kecerdasan buatan)

Ø  General Purpose programming language
v  Dapat digunakan untuk berbagai aplikasi
v  Pascal, Basic, C, C++, Java, C#, dll

-       Berdasar kedekatan(condong ke mesin atau ke manusia), bahasa pemrograman digolongkan menjadi:
Ø  Bahasa tingkat rendah (low level language) : bahasa yang berorientasi ke mesin.

Ø  Bahasa tingkat tinggi (high level language) : bahasa yang berorientasi ke manusia (seperti bahasa inggris)
v  contoh bahasa Pascal, bahasa C dll.
v  Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penterjemah.
v  Penterjemah :
v  Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penterjemah.
v  Penterjemah :

-       Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penterjemah.

-       Penterjemah :
Ø  Interpreter : menterjemahkan baris per baris instruksi. Contoh bahasa Basic.
Ø  Compiler : menterjamahkan setelah seluruh instruksi ditulis. Contoh bahasa Pascal, C, Ada ,C++, dll.



6.       Belajar Memprogram
-       Belajar memprogram ≠ belajar bahasa pemrograman
-       Belajar memprogram : belajar tentang strategi pemecahan masalah, metodologi dan sistematika pemecahan masalah kemudian menuliskannya dalam notasi yang disepakati bersama
-       Belajar memprogram : bersifat pemahaman persoalan, analisis dan sintesis
-       Belajar memprogram, titik berat : designer program
-       Belajar bahasa pemrograman : belajar memakai suatu bahasa pemrograman, aturan sintaks, tatacara untuk memanfaatkan instruksi yang spesifik untuk setiap bahasa
-       Belajar bahasa pemrograman , titik berat : coder

7.       Produk yang dihasilkan Pemrogram
-       program dengan rancangan yang baik (metodologis, sistematis)
-       Dapat dieksekusi oleh mesin
-       Berfungsi dengan benar
-       Sanggup melayani segala kemungkinan masukan
-       Disertai dokumentasi
-       Belajar memprogram, titik berat : designer program

8.       Notasi Algoritma
-       Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya.
-       Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai bahasa pemrograman

9.       Notasi Algoritma : Narasi
-       Uraian kalimat deskriptif (narasi)
·         Contoh
v  Algoritma Kelulusan_mhs
·      Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus  jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.

v  DESKRIPSI :
·      baca nama dan nilai mahasiswa.
·      jika nilai >= 60 maka
·      keterangan = lulus
·      tetapi jika <= 60 maka
·      keterangan = tidak lulus.
·      tulis nama dan keterangan


10.   Pseudo-Code
-       Algoritma Kelulusan_mhs
·         {diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika tidak maka dinyatakan tidak lulus}

                              DEKLARASI :
                              Nama : string
                              Nilai : integer
                              Keterangan : string

                              DESKRIPSI :
                              read (nama, nilai)
                              if nilai >= 60 then
                              keterangan = ‘lulus’
                              else
                              keterangan = ‘tidak lulus’
                              write(nama, keterangan)

11.   Aturan Penulisan Teks Algoritma
Ø  Judul algoritma
·   Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut.
·   Nama sebaiknya singkat dan menggambarkan apa yang dilakukan oleh algoritma tersebut.

Ø  Deklarasi
·      Bagian untuk mendefinisikan semua nama yang digunakan di dalam program.
·      Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedur dan fungsi.

Ø  Deskripsi
·      Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya.

Tidak ada komentar:

Posting Komentar