Algoritma dan Pemrograman #1



Algoritma dan Pemrograman

Apa itu Algoritma?

    Algoritma adalah bagian teks algoritmik yang berisi intruksi atau pemanggilan aksi yang telah didefinisikan. Komponen teks algoritmik dalam pemrograman prosedural dapat berupa :
-    intruksi dasar seperti input/output, assignment
-    sequential statement
-    analisis kasus
-    pengulangan

Ciri-ciri Algoritma :

-    Terdapat input, yakni permasalahan yang dihadapi dan nantinya akan dicarikan solusinya. Algoritma ini mempunyai nilai nol atau lebih input.
-    Terdapat proses, yakni serangkaian tahapan yang memang harus dikerjakan agar bisa mencapai tujuan akhir
-    Terdapat Output, yakni solusi ataupun tampilan akhir yang bisa diperoleh dari suatu algoritma yang setidaknya mempunyai satu output.
-    Terdapat berbagai instruksi yang jelas, yakni instruksi jelas dalam suatu algoritma agar nantinya tidak akan terjadi kesalahan saat sedang menghasilkan output tertentu.
-    Terdapat tujuan akhir yang memang ingin dicapai, yakni akhir dari suatu program yang mana program tersebut nantinya akan berhenti bila sudah berhasil mencapai tujuan akhir.


Paradigma Pemrograman

    Paradigma adalah sudut pandang atau "sudut serang" tertentu yang diprioritaskan, terhadap kelompok problema, realitas, keadaan, dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir kita, mengarahkan kita terhadap beberapa atribut dan membuat kita mengabaikan atribut yang lain. Karena itu, jelas bahwa sebuah paradigma hanya memberikan pandangan yang terbatas terhadap sebuah realitas, karena itu fanatisme terhadap sebuah paradigma, mempersempit wawasan dan kadang berbahaya.

Beberapa paradigma dalam pemrograman :

1. Paradigma Prosedural atau Imperatif

    Paradigma ini didasari oleh konsep mesin Von Newmann (stored program concept), yaitu sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori instruksi dan memori data; masing-masing dapat diberi nama dan harga. Instruksi akan dieksekusi satu per satu secara sekuensial oleh sebuah pemroses tunggal.

2. Paradigma Fungsional

    Paradigma fungsional didasari oleh konsep pemetaaan dan fungsi pada matematika. Fungsi dapat berbentuk sebagai fungsi "primitif", atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Pemrogram mengasumsikan bahwa ada fungsi-fungsi dasar yang dapat dilakukan. Penyelesaian masalah didasari atas aplikasi dari fungsi-fungsi tersebut. Jadi, dasar pemecahan persoalan adalah transformasional. Semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara.

    Paradigma fungsional tidak lagi mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang "variabel". Pemrogram tidak perlu lagi mengetahui bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi adalah "kotak hitam", yang menjadi perhatiannya hanya keadaan awal dan akhir. Dengan merakit kotak hitam ini, pemrogram akan menghasilkan program besar.

3. Paradigma Deklaratif, Predikatif, atau Lojik

    Paradigma ini didasari oleh pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah program lojik adalah kumpulan aksioma (fakta dan aturan deduksi).

    Pada paradigma ini, pemrogram menguraikan sekumpulan fakta dan aturan-aturan (inference rules). Ketika program dieksekusi, pemakai mengajukan pertanyaan (query), dan program akan menjawab apakah pernyataan itu dapat dideduksi dari aturan dan fakta yang ada. Program akan memakai aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk menjawab pertanyaan.

4. Paradigma Berorientasi Objek (Object Oriented)

    Paradigma ini didasari oleh objek. Sebuah objek mempunyai atribut (kumpulan sifat) dan mempunyai kelakuan (kumpulan reaksi, metoda). Objek yang satu dapat berkomunikasi dengan objek yang lain lewat "pesan", dengan tetap terjaga integritasnya. Kelas adalah objek mempunyai atribut yang sama dan diturunkan ke semua pbjek yang berada dalam kelas yang sama. Kelas-kelas mempunyai hirarki, anggota dari sebuah kelas juga mendapatkan turunan atribut dari kelas di atasnya. Paradigma ini menawarkan konsep classgenericinheritancepolymorphism, dan menekankan pentingnya pendefinisian statik kelas untuk melahirkan (menciptakan) objek pada saat runtime, yang kemudian dimanipulasi atau saling berinteraksi. Definisi kelas memungkinkan adanya penurunan kelas dengan objek pada saat runtime yang dapat "berubah" bentuk dengan kelakuan yang disesuaikan.

Pengertian flowchart

    Flowchart atau bagan alur adalah diagram yang menampilkan langkah-langkah dan keputusan untuk melakukan sebuah proses dari suatu program. Setiap langkah digambarkan dalam bentuk diagram dan dihubungkan dengan garis atau arah panah
    Flowchart berperan penting dalam memutuskan sebuah langkah atau fungsionalitas dari sebuah proyek pembuatan program yang melibatkan banyak orang sekaligus. Selain itu dengan menggunakan bagan alur proses dari sebuah program akan lebih jelas, ringkas, dan mengurangi kemungkinan untuk salah penafsiran. Penggunaan flowchart dalam dunia pemrograman juga merupakan cara yang bagus untuk menghubungkan antara kebutuhan teknis dan non-teknis.

Fungsi flowchart

    Fungsi utama dari flowchart adalah memberi gambaran jalannya sebuah program dari satu proses ke proses lainnya. Sehingga, alur program menjadi mudah dipahami oleh semua orang. Selain itu, fungsi lain dari flowchart adalah untuk menyederhanakan rangkaian prosedur agar memudahkan pemahaman terhadap informasi tersebut.

Jenis flowchart

    Flowchart sendiri terdiri dari lima jenis, masing-masing jenis memiliki karakteristik dalam penggunaanya. Berikut adalah jenis-jenisnya:
  1. Flowchart dokumen
    Pertama ada flowchart dokumen (document flowchart) atau bisa juga disebut dengan paperwork flowchart. Flowchart dokumen berfungsi untuk menelusuri alur form dari satu bagian ke bagian yang lain, termasuk bagaimana laporan diproses, dicatat, dan disimpan.

  2. Flowchart program
    Selanjutnya kita akan membahas flowchart program. Flowchart ini menggambarkan secara rinci prosedur dari proses program. Flowchart program terdiri dari dua macam, antara lain: flowchart logika program (program logic flowchart) dan flowchart program komputer terinci (detailed computer program flowchart).

  3. Flowchart proses
    Flowchart proses adalah cara penggambaran rekayasa industrial dengan cara merinci dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem.

  4. Flowchart sistem
    Yang keempat ada flowchart sistem. Flowchart sistem adalah flowchart yang menampilkan tahapan atau proses kerja yang sedang berlangsung di dalam sistem secara menyeluruh. Selain itu flowchart sistem juga menguraikan urutan dari setiap prosedur yang ada di dalam sistem.

  5. Flowchart skematik
    Terakhir ada flowchart skematik. Flowchart ini menampilkan alur prosedur suatu sistem, hampir sama dengan flowchart sistem. Namun, ada perbedaan dalam penggunaan simbol-simbol dalam menggambarkan alur. Selain simbol-simbol, flowchart skematik juga menggunakan gambar-gambar komputer serta peralatan lainnya untuk mempermudah dalam pembacaan flowchart untuk orang awam.

Notasi Algoritmik

    Algoritma adalah solusi detail secara prosedural dari suatu persoalan dalam notasi algoritmik. Program adalah program komputer dalam suatu bahasa pemrograman yang tersedia di dunia nyata. Bahasa komputer mempunyai pemroses sehingga dapat dieksekusi mesin, sehingga teks program dibuat untuk dieksekusi mesin (dan untuk kepentingan pemeliharaan program sebaiknya dapat dibaca dengan mudah oleh manusia). 

Teks algoritma selalu terdiri dari tiga bagian, yaitu :
- Judul (Header)
- Kamus
- Algoritma


Mengapa Notasi itu Penting?

    Notasi ini dianggap perlu untuk menjembatani keragaman dan kompleksitas bahasa sehingga mahasiswa mampu melakukan “abstraksi”. Notasi ini akan merangkum semua konsep pemrograman prosedural yang harus dapat dengan mudah dituliskan di atas kertas. Notasi ini lebih berorientasi kepada detail design dibandingkan coding. Notasi ini hanyalah alat untuk menuangkan rancangan secara prosedural yang selanjutnya dengan mudah dapat ditranslasi menjadi salah satu program dalam bahasa tertentu.
    Suatu saat, jika permogram menghadapi dunia profesional yang membutuhkan hasil yang siap pakai, notasi dapat disesuaikan dan dibuat lebih dekat dengan bahasa pemrograman yang dipakai.

Komentar