Kategori
Telekomunikasi

Algoritma Pemrograman

Tingkatan Bahasa Pemrograman

Bahasa Tingkat Tinggi : Bahasa pemrograman masuk tingkat ini karena bahasa tersebut mendekati bahasa manusia. Contohnya bahasa Basic, Visual Basic, Pascal, Java, PHP.

Bahasa Tingkat Menengah : Disebut tingkat menengah karena bisa masuk ke dalam bahasa tingkat tinggi maupun rendah. Contohnya bahasa C.

Bahasa Tingkat Rendah : Bahasa pemrograman masuk tingkat ini karena bahasanya masih jauh dari bahasa manusia. Contohnya bahasa Assembly.

Definisi Algoritma

Algoritma pemrograman adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Hal ini ditekankan pada urutan langkah logis, yang artinya algoritma harus mengikuti suatu urutan tertentu, dan langkah-langkahnya tidak boleh diloncat. 

Pengertian lainnya dari algoritma adalah urutan langkah-langkah logis dalam penyelesaian masalah yang disusun secara sistematis.

Proses Pembuatan Program

  1. Kompilasi : Dalam proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga program bisa dijalankan. Program yang melakukan tugas ini disebut Compiler. Program hasil kompilasi akan berbentuk executable. Program bisa langsung dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program tersebut. Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++, Pascal, Assembly dan masih banyak lagi.
  2. Interpretasi (Interpretation): Bahasa yang menggunakan teknik interpretasi akan membaca kode sumber perbaris dan dieksekusi perbaris. Jika ditemukan kesalahan dalam penulisan program maka di baris kesalahan itulah program akan dihentikan. Program yang melakukan tugas ini disebut Interpreter. Pada teknik interpretasi tidak ada akan dihasilkan program standalone, artinya untuk menjalankan program kita harus mempunyai kode sumbernya sekaligus interpreter program tersebut. Bahasa yang menggunakan teknik interpretasi misalnya bahasa Perl, Python, Ruby dan masih banyak lagi.
  3. Hybrid: Ada juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi sekaligus interpretasi. Misalnya bahasa java. Dalam pembuatan program java kode sumber diubah menjadi bytecode. Meskipun tampak seperti bahasa mesin namun ini bukanlah bahasa mesin dan tidak executable. Untuk menjalankan bytecode tersebut kita membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai interpreter sehingga menghasilkan program dari bytecode tersebut.

Penulisan 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.

Ciri-ciri Algoritma

  • Finitness (keterbatasan) : Algoritma harus berakhir setelah mengerjakan sejumlah Langkah proses
  • Definitness (kepastian) : Setiap Langkah harus didefinisikan secara tepat dan tidak berarti ganda
  • Input (masukan) : Algoritma memiliki nol atau lebih data masukkan
  • Output (Keluaran) : Algoritma mempunyai nol atau lebih hasil keluaran
  • Effectiveness (efektivitas) : Algoritma harus efektif, Langkah-Langkah algoritma dikerjkan dalam waktu yang wajar.

Sifat Algoritma

  1. Tidak menggunakan simbol atau sintaks dari suatu Bahasa pemrograman tertentu
  2. Notasi-notasinya dapat digunakan untuk seluruh bahasa pemrograman manapun.
  3. Tidak tergantung pada suatu bahasa pemrograman tertentu.
  4. Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat diterapkan di semua kejadian sehari-hari

Jenis Algoritma

Penulisan algoritma sendiri tidak tergantung dari spesifikasi bahasa pemrograman dan kemampuan komputer yang mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman, namun algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. 

  1. Algoritma Narasi
  2. Algoritma Pseudo Code
  3. Algoritma Flowchart

Algoritma Narasi

Contoh: Algoritma Kelulusan_mhsPersoalan: Diberikan data berupa nama dan nilai mahasiswa. Jika nilai mahasiswa lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus. Sedangkan jika nilainya lebih kecil dari 60, maka mahasiswa tersebut dinyatakan tidak lulus.Algoritmanya akan seperti berikut:baca nama dan nilai mahasiswa.jika nilai >= 60 makaketerangan = lulustetapi jikaketerangan = tidak lulus.tulis nama dan keterangan

Algoritma Pseudo Code

Contoh; Algoritma Kelulusan_mhsPersoalan: Diberikan data berupa nama dan nilai mahasiswa. Jika nilai mahasiswa lebih besar atau sama dengan 60 maka mahasiswa tersebut dinyatakan lulus. Sedangkan jika nilainya lebih kecil dari 60, maka mahasiswa tersebut dinyatakan tidak lulus.Deklarasi dari tipe datanya akan seperti berikut:Nama = stringNilai = integerKeterangan = stringAlgoritmanya akan seperti berikut:read (nama, nilai)if nilai >= 60 thenketerangan = ‘lulus’elseketerangan = ‘tidak lulus’write(nama, keterangan)

Algoritma Flowchart

Flowchart merupakan pengertian dari apa yang kita kenal dengan nama diagram alur.

Menunjukkan atau menggambarkan alur dari sebuah program, mulai dari pertama kali dijalankan, hingga program tersebut ditutup.

Flowchart ini merupakan sebuah sistem standar yang sudah umum digunakan oleh para programmer dan juga pengembang aplikasi dalam menyusun atau membuat sebuah program dan juga aplikasi.

Fungsi Flowchart

  • Untuk memastikan bahwa setiap program yang dibuat sudah memiliki alurnya tersendiri secara dinamis.
  • Untuk menguniversalkan sebuah rancangan program
  • Untuk menggambarkan dan juga menjelaskan proses – proses yang akan terjadi pada tiap – tiap sesi di dalam sebuah program atau aplikasi
  • Sebagai pedoman dalam menyusun dan mengembangkan sebuah program atau aplikasi

Jenis Diagram Alir (Flowchart)

  1. Flowchart Sistem (System Flowchart) Flowchart sistem menggambarkan alur kerja suatu sistem secara keseluruhan. Menjelaskan urutan prosedur-prosedur dalam suatu sistem. Contohnya Flowchart Sistem suatu suatu pabrik, alur kerja produksi suatu barang, dll
  2. Flowchart Paperwork / Flowchart Dokumen (Document Flowchart) Bagian dari Flowchart Sistem namun lebih spesifik kepada manajemen dokumen, laporan, surat-surat, serta termasuk tembusannya.
  3. Flowchart Skematik (Schematic Flowchart) Flowchart ini lebih teknis dengan tambahan gambar-gambar teknis yang lebih detail.
  4. Flowchart Program (Program Flowchart) Diagram alir program lebih detail menggambarkan logika dari algoritma pemrograman.
  5. Flowchart Proses (Process Flowchart) Sedangkan Flowchart Proses merupakan penggambaran rekayasa industrial yang memecah dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem.

Simbol Flowchart

Flowchart bilangan ganjil atau genap

Bilangan genap adalah sebuah bilangan bulat yang akan habis atau tidak memiliki sisa jika dibagi 2 (dua). Sedangkan bilangan ganjil adalah sebuah bilangan bulat yang tidak akan habis apabila dibagi 2 (dua) atau ada sisa pembagian.

Flowchart Tahun Kabisat

Tahun kabisat adalah sebuah tahun yang memiliki tambahan 1 hari yang bertujuan agar kalender dapat menyesuaikan dengan keadaan astronomi. Saat tahun kabisat, bulan Februari memiliki 29 hari. Tahun yang dapat untuk dibagi dengan 4 adalah tahun kabisat.

Flowchart Diskon Barang

Algoritma untuk menentukan biaya yang harus dibayar oleh pembeli sesudah mendapat diskon 10%. Syarat untuk mendapatkan diskon tersebut adalah jumlah dari total pembelian sebesar Rp.1.500.000,-.Jumlah barang memiliki sifat yang dinamik sesuai dengan masukan dari pengguna. Intinya, jika total pembeliannya kurang dari 1500000, maka pembeli tidak akan mendapatkan diskon.

Pedoman Pembuatan Diagram Alir (Flowchart)

  • Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
  • Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
  • Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
  • Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja misalkan Nilai Akhir Mahasiswa.
  • Setiap langkah dari aktivitas harus berada pada urutan yang benar.
  • Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan–percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
  • Gunakan simbol-simbol flowchart yang standar.

Algoritma vs Flowchart vs Pseudocode

Unsur-Unsur Diagram Alir

  • Percabangan secara sederhananya adalah pilihan alur yang diambil dari beberapa opsi yang ada, tergantung dari kondisi yang dicapai.
  • Perulangan digunakan untuk mengulang suatu proses. Perulangan dapat dilakukan terus-menerus selama program berjalan, sampai didapatkan kondisi untuk keluar dari perulangan tersebut. Contohnya perulangan untuk menampilkan angka 1 sampai 100, kondisi untuk berhentinya adalah jika angka tersebut sudah mencapai 100.

Flowchart Percabangan

Dalam pemrograman, percabangan merupakan salah struktur kendali yang memungkinkan pemilihan atas perintah yang akan dijalankan.Percabangan sering disebut juga dengan decisions atau pengambilan keputusan.Ada beberapa jenis percabangan yang sering dipakai dalam pemrograman, yaitu:

  1. Percabangan Sederhana
  2. Percabangan Bersarang
  3. Percabangan Kompleks

Percabangan Sederhana

Secara sederhana percabangan dapat digambarkan seperti dalam flowchart berikut:

Pada flowchart di atas “perintah 1” akan dilakukan jika “kondisi benar”, sedangkan “perintah 2” akan dilakukan jika ”kondisi salah“.

Percabangan Bersarang

Bentuk dari percabangan bersarang  (Nested IF) sederhanaPada flowchart, “perintah 1” dilakukan saat “kondisi 1” bernilai benar, sedangkan jika nilainya salah, maka akan dijalankan “kondisi 2”.Selanjutnya pada “kondisi 2”, jika nilainya benar maka “perintah 2” akan dijalankan, sedangkan jika salah maka “perintah 3” yang akan dijalankan.Kedua bentuk percabangan di atas merupakan dasar dari bentuk percabangan selanjutnya, yaitu percabangan kompleks.

Percabangan Kompleks

Sebuah percabangan dapat mempunyai percabangan lain didalamnya, hal ini akan sangat dibutuhkan dalam sebuah program yang kompleks.Saat “kondisi 1” bernilai benar, maka akan dilakukan pengecekan pada “kondisi 2” jika benar maka “perintah 1” akan dilakukan, jika salah maka “perintah 2” yang akan dilakukan.Sedangkan pengecekan pada “kondisi 3” akan dilakukan jika hasil pengecekan pada “kondisi 1” bernilai salah, selanjutnya hasil pengecekan dari “kondisi 3” akan menentukan perintah yang akan dilakukan, apakah “perintah 3” atau “perintah 4”.Dari gambar flowchart percabangan kompleks tersebut juga dapat dipilah bahwa “kondisi 1” dan “kondisi 3” mewakili percabangan bersarang, sedangkan “kondisi 2” mewakili percabangan sederhana.

Syntax Percabangan

Syntax yang umum digunakan dalam percabangan adalah :IF dan IF… ELSE untuk percabangan sederhanaIF… ELSE IF… untuk percabangan bersarang
Selain itu ada syntax alternatif lain yang dalam bahasa pascal dikenal dengan CASE…OF atau SWITCH dalam bahasa C,

Perulangan (Loop)

  • Perulangan Iteratif merupakan struktur kontrol perulangan yang umumnya menggunakan perintah-perintah yang telah tersedia pada bahasa pemrograman, setiap bahasa pemrograman mempunyai perintah perulangan yang berbeda-beda, tetapi secara umum ada tiga perintah perulangan yang digunakan yaitu: For, While dan Repeat.Dalam perulangan iteratif, proses perulangan akan dilakukan jika kondisi untuk memulai proses perulangan terpenuhi dan akan berhenti jika kondisi untuk menghentikan perulangan terpenuhi. 
  • Perulangan Rekursif adalah sebuah metode perulangan dengan menggunakan fungsi. Dalam metode ini terdapat proses fungsi melakukan pemanggilan dirinya sendiri, tetapi dalam fungsi tersebut juga dibutuhkan keadan untuk menghentikan proses.

Ref : [1][2][3][4][5][6]