Algoritma dan Flowchart, Dasar Pemrograman


Tujuan Pembelajaran
Diharapkan dapat:
1.  Mengerti tentang algoritma
2.  Membuat algoritma dari suatu permasalahan
3.  Mengerti tentang flowchart
4.  Membuat flowchart dari suatu permasalahan

Pendahuluan
1.  Komputer adalah alat bantu untuk menyelesaikan masalah
2.  Dalam menyelesaikan masalah dengan komputer perlu merumuskan langkah-langkah penyelesaian masalah dalam sekumpulan instruksi
3.  sekumpulan instruksi yang dimengerti oleh komputer disebut dengan program

Bahasa Pemrograman
1.  Program harus ditulis dalam suatu bahasa yang dimengerti oleh komputer yaitu dalam bahasa pemrograman, dibedakan 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). Contoh bahasa Pascal, bahasa C, dll.
2.  Program yang ditulis dalam bahasa pemrograman akan diterjemahkan ke dalam bahasa mesin (kenal dengan biner digit) dengan menggunakan penerjemah.
             Penerjemah:
·         Interpreter : menerjemahkan baris per baris instruksi. Contoh bahasa Basic.
·         Compiler : menerjemahkan setelah seluruh instruksi ditulis. Contoh bahasa Pascal, bahasa C/C++, dll.
Algoritma
Arti umum adalah serangkaian urutan langkah-langkah yang tepat, logis, terperinci, dan terbatas untuk menyelesaikan suatu masalah yang disusun secara sistematis.
1.  Algoritma adalah inti dari ilmu komputer
2.  Algoritma adalah urutan-urutan dari instruksi atau langkah-langkah untuk menyelesaikan suatu masalah
3.  Algoritma adalah blueprint dari program
4.  Sebaiknya disusun sebelum membuat program
5.  Kriteria suatu algoritma:
·         Ada input dan output
·         Efektifitas dan efisien
·         Terstruktur

Contoh:
Algoritma TUKAR ISI BEJANA
Diberikan 2 buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B berisi larutan berwarna biru. Tukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan warna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
1.  Tuangkan larutan dari bejana A ke dalam bejana B
2.  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 pertukaran kedua larutan tersebut.
Untuk itu pertukaran isi dua bejana, diperlukan sebuah 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. Tukarkan isi kedua bejana itu sedemikian hingga bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi:
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.

Ciri Penting Algoritma
1.  Algoritma harus berhenti setelah menjalankan sejumlah langkah terbatas.
2.  Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas).
3.  Algortima memiliki nol atau lebih masukan.
4.  Algoritma memiliki nol atau lebih keluaran.
5.  Algoritma harus efektif (setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).

Memrogram dan Bahasa Pemrograman:
1.  Belajar memrogram adalah belajar tentang metode pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami.
2.  Belajar bahasa pemrograman adalah memakai suatu bahasa, aturan, tata bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk membuat program yang ditulis dalam bahasa itu saja.

Notasi Algoritma:
1.  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.
2.  Notasi algoritma dapat berupa:
·         Uraian kalimat deskriptif (narasi):
Contoh:
Algoritma kelulusan mahasiswa
Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus.
Deskripsi:
Baca nama dan nilai mahasiswa
            Jika nilai >= 60 maka
            Keterangan = lulus
                  Tetapi jika salah
                  Keterangan = tidak lulus
            Tulis nama dan keterangan.

Tahapan Pembuatan Program:
1.  Mendefinisikan masalah dan menganalisanya. Mencangkup : tujuan pembuatan, parameter yang digunakan, fasilitas yang disediakan, algoritma yang diterapkan, dan bahasa pemrograman yang digunakan.
2.  Merealisasikan dengan langkah-langkah sebagai berikut:


Contoh Algoritma:
1.  Mengirim surat kepada teman:
·         Tulis surat pada secarik kertas surat
·         Ambil sampul surat
·         Masukkan surat ke dalam sampul
·         Tutup sampul surat dengan perekat
·         Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul
·         Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul
·         Tempel prangko pada sampul
·         Bawa sampul ke kantor pos untuk diposkan
2.  Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap:
·         Masukkan sebuah bilangan sembarang
·         Bagi bilangan tersebut dengan 2
·         Hitung sisa hasil bagi pada langkah 2
·         Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap
·         Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil


Flowchart
1.  Flowchart adalah bagan-bagan yang mempunyai arus menggambarkan langkah-langkah penyelesaian suatu masalah
2.  Merupakan cara penyajian dari suatu algoritma
3.  Ada 2 macam flowchart:
·         System flowchart:
                       Urutan proses dalam system dengan menunjukkan alat media input, output serta jenis penyimpanan dalam proses pengolahan data.
·         Program flowchart:
                       Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program.

Contoh program Flowchart


Simbol-simbol Flowchart
1.  Flow Direction Symbols (simbol penghubung alur)
2.  Processing Symbols (simbol proses)
3.  Input-Output Symbols (simbol input-output)

Tabel Simbol-simbol Flowchart


Pembuatan Flowchart
1.  Tidak ada kaidah yang baku
2.  Flowchart = gambaran hasil analisa suatu masalah
3.  Flowchart dapat bervariasi antara satu pemrograman dengan pemrograman lainnya.
4.  Secara garis besar ada 3 bagian utama:
·         Input
·         Proses
·         Output
5.  Hindari pengulangan yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
6.  Jalannnya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
7.  Sebuah Flowchart diawali dari satu titik START dan diakhiri dengan End.


Pseudocode:
1.  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)

Aturan Penulisan Teks Algoritma
1.  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.
2.  Deklarasi
          Bagian untuk mendefinisikan semua nama yang digunakan di dalam program. Nama tersebut dapat berupa nama tetapan, peubah, tipe, prosedure, dan fungsi.
3.  Deskripsi
          Bagian ini berisi uraian langkah-langkah penyelesaian masalah yang ditulis dengan menggunakan notasi yang akan dijelaskan selanjutnya.

Contoh Pseudocode:
1.  Algoritma Luas_Keliling_Lingkaran (ini merupakan judul algoritma)
          {
Menghitung luas dan keliling untuk ukuran jari-jari tertentu. Algoritma menerima masukkan jari-jari lingkaran, menghitung luas dan kelilingnya, dan mencetak luas lingkaran ke piranti keluaran
          }      (ini spesifikasi algoritma)
2.  Deklarasi
const phi = 3.14 {nilai konstanta phi}
R          : real {jari-jari lingkaran}
Luas     : real {luas lingkaran}
Keliling : real {keliling lingkaran}
3.       Deskripsi
Read (R)
Luas     = phi * R * R
Keliling       = 2 * phi * R
Write (luas, keliling)


Materi ini saya dapat dari pembelajaran kuliah waktu semester 1. Baru sempat saya posting.
Mohon maaf jika posting ini ada beberapa yang sama dengan sumbernya.

42 komentar:

  1. blognya bagus mas, punya saya baru bikin jadi masih melompong hhe tapi kunjungan balik ni, kmaren thank ya uda berkunjung ke blog ane,, mas nak IT juga kah? ngomong2 masalah algoritma, saya merupakan orang yang bisa dikatakan keliru mas, masalahnya saya kalau ada soal dan suruh bikin pemecahannya kalau di tuangkan langsung kedalam program bisa mas, tapi kalau suruh bikin algoritmanya saya diam seribu bahasa alias kurang bisa,, ada masukkan mas? kalau ada tutorial tentang algoritma mau donk soalnya saya aga leman ni jadinya kan ya ga lucu aja programnya bisa tapi algoritmanya kurang ngerti. thank ya..

    ReplyDelete
  2. @ Hageta's Blog : Iya mas.
    Kalau buat suatu program, gak mungkin Mas bisa jadi tanpa ada persiapan orak-orek atau rancangannya atau bahkan hanya pemikiran dari logika kita di orak saja. Nah..... itu bisa dijadikan Algoritma. Jadi setelah mendapat ide mau buat program apa, jalannya bagaimana, itu bisa kita buatkan ke Algoritma dulu. Setelah itu baru mulai tahap pembuatannya atau ke script (implementasi).
    Tapi banyak juga para programmer emang gak mau meribetkan diri untuk membuat algoritma, ya.....bisa dibilang algoritmanya cukup di otak saja.

    Soalnya saya kalau lagi buru-buru juga gitu Mas
    Hehehe......

    ReplyDelete
    Replies
    1. This comment has been removed by a blog administrator.

      Delete
  3. seru nih pelajaran tentang algoritma... apalagi buat flow chart,,, jadi inget masa2 awal kuliah...

    ReplyDelete
  4. mas cara bua flow cahrt yg baik itu gimna y ??

    cos msih bingung buat floe chat, padahal programnya jalan..

    hehe~

    maklum msih semester awal, bru belajar..

    ^^

    By : David Frogg

    ReplyDelete
  5. @ David : sedikit tips dari saya....
    Cara mudah membuat flowchart, kita mesti tahu dulu algoritma program yang kita buat.....
    Atau sederhananya, kita tahu langkah-langkah/logika dari program yang kita buat.....

    Misalnya ada inputan apa saja, proses-proses apa saja (terdapat percabangan, perulangan,dll), dan yang ditampilakan apa saja.

    Setelah diketahui, kita tinggal menyesuaikan saja dengan simbol-simbol yang digunakan dalam pembuatan flowchart seperti tabel pada postingan di atas.

    Dilanjutkan dengan proses merangkainya sesuai dengan urutan yang dilakukan oleh program yang dibuat.

    semoga bisa membantu...

    @ All : Terima kasih telah berkunjung......

    ReplyDelete
  6. gmna cara merumuskan flowchart ke c++ yh???

    ReplyDelete
  7. @ Kabar Terbaru : kalo flowchart sudah, brati secara gak langsung kita sudah punya gambaran mengenai program yang kita buat.

    Untuk diterapkan ke pemrograman C++, kita mesti tahu dulu library, fungsi", & struktur pemrograman C++.
    Seperti cara menginputkan, menampilkan, memproses data menggunakan percabangan atau perulangan, dll.

    ReplyDelete
  8. aku masih bingung nich masalah flowchart

    ReplyDelete
  9. Artikelnya bagus... thnx... cuma yg bagian menentukan kelulusan mahasiswa aj yg keknya salah... yang Jika nilai <= 60 maka Keterangan = lulus... Mungkin yg bener >=60 kali ya... :) anyway thnx...

    ReplyDelete
  10. @ di atas : makasi sudah mengingatkan...
    maaf, mungkin ketedoran pengetikkan...
    akan saya rubah..

    ReplyDelete
  11. Mas, salam kenal. Saya seorang ibu yang memiliki anak autistik (16 thn). Dia ingin meneruskan ke SMK yang ada jurusan Rekayasa perangkat Lunak. Sepengetahuan saya kan nanti dia jg akan mempelajari Algoritma pemrograman. Saya ingin masukan dari Mas, apakah dengan kemapuan matematika nya yg sedikit lemah anak saya akan mampu mengikuti materi algoritma pemrograman ini ? Tapi yang jelas anak saya ini ketika di SMP sangat menyukai pelajaran TIK. Tks atas perhatiannya.

    ReplyDelete
  12. @ Anonim : salam kenal juga Bu.
    sekedar masukan dari saya Bu.

    Kalau mau jadi programmer buat bikin program yang gitu2 saja sih tidak perlu pakai matematika juga bisa, yang penting logika anak ibu kuat & banyak berlatih tentunya.

    kalau bicara soal kriptografi, AI, yang hubungannya erat dengan numerik, dll, itu butuh lebih dari sekedar logika.

    semoga bermanfaat.

    ReplyDelete
  13. Bang numpang sunting artikel ea info algoritma ea keren

    ReplyDelete
  14. @Alexseallover : makasi banyak Gan

    ReplyDelete
  15. saya belum mengerti buat flowchat dan programnya boleh dijelaskan lebih mendetail

    ReplyDelete
  16. bantu yam membuat program dan flowchart

    ReplyDelete
  17. @saifullah : Saya rasa penjelasannya sudah lumayan detail.
    Yang perlu diperhatikan dalam pembuatan Flowchart adalah Alur dari Sistem yang dibuat dan Simbol-simbol yang digunakan.

    semoga bisa terbantu

    ReplyDelete
  18. bingungg pelajaran inii...:((

    ReplyDelete
  19. @Anonymous : Bingungnya di bagian mana????
    :-o

    ReplyDelete
  20. wah mas, ini persis sama yg dosen saya ajarin *,*
    cuma mau nanya nih,soalnya ada tugas, kalo seumpama di suruh deskrisi kelulusan nilai mahasiswa tapi ada range alias batasan2 nilai tertentu terus ada keterangannya gimana yah? Mohon bantuannya hehe

    ReplyDelete
  21. @Anonymous : Misalnya untuk pseudocode-nya

    Deklarasi:
    Nama : String
    Nilai : Integer
    Keterangan : String

    Deskripsi:
    Read (nama, nilai)
    if (80 > nilai) and (nilai <= 100) then
    Keterangan = 'nilai A'
    else if (75 > nilai) and (nilai <= 80) then
    Keterangan = 'nilai B'
    else if (65 > nilai) and (nilai <= 75) then
    Keterangan = 'nilai C'
    ....dst....
    write (nama, keterangan)

    mungkin seperti itu....

    ReplyDelete
  22. aaaaaaaaaaaarrrggh=))

    ReplyDelete
  23. blognya bagus yah, bisa nanya dan langsung di jawab...pembelajaran yg efektif.
    ijin bertanya juga kalo membuat flowchart dari program C++ gmn yah?

    ReplyDelete
  24. bantu banget gan...;))
    smoga blog ini masi berkembang ,makin berisi sehingga makin mermanfaat bagi banyak orang...

    ReplyDelete
  25. sory gun ,, boleh minta jawaban dari pertanyaan ini ga ?

    :x tulislah algo dlm notasi narasi untuk mnjelaskan proses peminjaman buku perpusatakaan selama kartu anggota masih berlaku, dan tiap amggotanya hanya boleh memnjam 2 buku saja...

    tolong bantuan nya.. makasih..

    ReplyDelete
  26. @Ridwan : saya bantu sedikit untuk algoritmanya, nanti Mas yang lengkapi dalam narasi...

    1.pembacaan tanggal berlaku kartu anggota
    2.selama tanggal berlaku kartu valid, lakukan:
    - input jumlah buku
    - jika buka > 2, tulis peminjaman buku melebihi jumlah maksimum
    dst

    *jawaban bisa bervariasi Mas, mengingat pemikiran orang berbeda2.
    terima kasih

    ReplyDelete
  27. wah muanteeb saya baru kuliah sama persis materinya :D makasi Gan ,

    ReplyDelete
  28. Numpang tanya om , saya ada tugas Algoritma , untuk nyusun Program "mgninput tiga buah bilangan yang menyatakan nilai ujian tiga mata kuliah , Cetak perkataan lulus bila nilai rata-rata dari ketiga nilai tersebut lebih besar atau sama dengan 60 dan ketiga nilai tersebut tidak ada yng mendapat nilai di bawah 40 , bila nilai rata2 nya di bawah 60 atau ada salah satu nilai yang mendapat nilai di bawah 40 , maka tercetak tidak lulus .
    mohon bantuannya om buat source code bahasa C nya

    ReplyDelete
  29. saya bantu untuk logika alurnya.
    - buat 3 var untuk matkul & 1 var nilai rata-rata
    - input 3 var matkul.
    - hitung nilai averange (jumlahkan 3 var matkul, & bagi 3)
    - jika ((matkul1 >= 40)&&(matkul2 >= 40)&&(matkul3 >= 40)&&(averange >= 60)), maka cetak LULUS. Jika tidak, cetak TIDAK LULUS

    ReplyDelete
  30. kalau cara buat flow chatnya cetak angka 1-10 itu bagaimana yah?

    ReplyDelete
  31. bang mau tanya.. untuk 2 penukaran bejana.. kalau tanpa bejana ke 3 gimana ya...? makasih

    ReplyDelete
  32. gimana cara memilih algoritma sebelum diterapkan untuk memecahkan masalah?
    kan algoritma ada banyak tuh, mas.

    ReplyDelete
  33. pseudocodenya begini:
    - buat 3 var untuk matkul & 1 var nilai rata-rata
    - input 3 var matkul.
    - if matkul1 <= 40 then cetak tidak lulus,elseif
    - if matkul2 <= 40 then cetak tidak lulus,elseif
    - if matkul3 <= 40 then cetak tidak lulus,elseif
    - rata = matkul1 + matkul2 + matkul3
    - if rata < 60 then cetak tidak lulus,else
    - cetak lulus

    ReplyDelete
  34. saya mahasiswa dari Jurusan Informatika
    Artikel yang sangat menarik, bisa buat referensi ini ..
    terimakasih ya infonya :)

    ReplyDelete