Algoritma adalah langkah-langkah sistematis yang digunakan untuk menyelesaikan suatu masalah atau melakukan suatu tugas. Dalam pemrograman, algoritma digunakan untuk mengembangkan solusi yang dapat diterapkan dalam kode komputer.
Menyediakan langkah yang jelas untuk menyelesaikan masalah.
Mempermudah debugging dan perbaikan kesalahan dalam kode.
Mengoptimalkan efisiensi program agar berjalan lebih cepat.
Menyusun program dengan struktur yang mudah dipahami.
Jelas (Definiteness): Instruksi harus jelas dan tidak ambigu.
Terbatas (Finiteness): Algoritma harus memiliki akhir.
Masukan (Input): Bisa memiliki nol atau lebih input.
Keluaran (Output): Menghasilkan setidaknya satu hasil.
Efektif (Effectiveness): Harus dapat dilakukan dalam waktu yang wajar.
Pemrograman adalah proses menulis, menguji, dan memperbaiki kode agar komputer dapat menjalankan suatu tugas.
Bahasa pemrograman digunakan untuk menulis algoritma agar bisa dieksekusi oleh komputer. Contoh:
Tingkat Rendah: Assembly, Machine Code
Tingkat Menengah: C, C++
Tingkat Tinggi: Python, Java, JavaScript
Flowchart adalah diagram yang menggambarkan alur logika program dengan simbol tertentu, seperti:
Oval: Simbol mulai dan akhir.
Parallelogram / Jajar Genjang: Input/Output data.
Persegi Panjang: Proses yang dilakukan.
Belah Ketupat: Percabangan atau keputusan.
Pseudocode adalah representasi algoritma menggunakan bahasa yang menyerupai kode pemrograman tetapi lebih mudah dibaca.
Contoh pseudocode:
Mulai
Masukkan nilai a dan b
Jumlahkan a dan b
Tampilkan hasil
Selesai
Dalam algoritma, variabel adalah sebuah entitas yang digunakan untuk menyimpan data yang dapat berubah selama eksekusi program. Variabel berfungsi sebagai wadah untuk menyimpan nilai yang dapat digunakan dan dimanipulasi oleh program sesuai dengan kebutuhan.
Nama Variabel – Setiap variabel memiliki nama unik untuk mengidentifikasinya.
Tipe Data – Menentukan jenis nilai yang dapat disimpan dalam variabel (misalnya integer, float, string, boolean).
Nilai – Data yang disimpan dalam variabel dan dapat diubah selama program berjalan.
Lingkup (Scope) – Menentukan bagian program yang dapat mengakses variabel.
Deklarasi dan Inisialisasi – Beberapa bahasa pemrograman memerlukan deklarasi sebelum digunakan, sementara yang lain langsung menginisialisasi variabel saat pertama kali diberikan nilai.
Deklarasi:
integer umur
string nama
float tinggi
Inisialisasi:
umur ← 25
nama ← "Andi"
tinggi ← 170.5
Proses:
umur ← umur + 1 // Menambah umur satu tahun
Output:
Cetak(nama, " berumur ", umur, " tahun dan memiliki tinggi ", tinggi, " cm")
Algoritma berjalan secara berurutan dari awal hingga akhir.
Contoh dalam Python:
a = 5
b = 10
c = a + b
print("Hasil:", c)
Digunakan untuk mengambil keputusan berdasarkan kondisi tertentu.
Contoh dalam Python:
nilai = 80
if nilai >= 75:
print("Lulus")
else:
print("Tidak Lulus")
Dalam algoritma, percabangan (kondisional) adalah struktur yang memungkinkan program memilih salah satu dari beberapa jalur eksekusi berdasarkan suatu kondisi. Berikut adalah macam-macam percabangan dalam algoritma:
Percabangan ini digunakan untuk mengeksekusi suatu perintah jika kondisi bernilai true (benar). Sintaks Pseudocode:
IF kondisi THEN
perintah
ENDIF
Contoh:
IF nilai >= 75 THEN
Cetak("Lulus")
ENDIF
Digunakan untuk menjalankan satu blok kode jika kondisi benar, dan blok lain jika kondisi salah. Sintaks Pseudocode:
IF kondisi THEN
perintah_1
ELSE
perintah_2
ENDIF
Contoh:
IF nilai >= 75 THEN
Cetak("Lulus")
ELSE
Cetak("Tidak Lulus")
ENDIF
Digunakan untuk memeriksa beberapa kondisi secara berurutan. Sintaks Pseudocode:
IF kondisi_1 THEN
perintah_1
ELSE IF kondisi_2 THEN
perintah_2
ELSE
perintah_3
ENDIF
Contoh:
IF nilai >= 90 THEN
Cetak("A")
ELSE IF nilai >= 75 THEN
Cetak("B")
ELSE
Cetak("C")
ENDIF
Digunakan ketika ada banyak kondisi yang harus diperiksa berdasarkan satu variabel. Sintaks Pseudocode:
SWITCH variabel
CASE nilai_1:
perintah_1
CASE nilai_2:
perintah_2
DEFAULT:
perintah_default
ENDSWITCH
Contoh:
SWITCH hari
CASE "Senin":
Cetak("Hari kerja")
CASE "Sabtu":
CASE "Minggu":
Cetak("Hari libur")
DEFAULT:
Cetak("Hari tidak valid")
ENDSWITCH
Ini adalah bentuk singkat dari IF-ELSE, sering digunakan dalam bahasa pemrograman tertentu. Sintaks Pseudocode:
variabel ← (kondisi) ? nilai_jika_benar : nilai_jika_salah
Contoh:
status ← (nilai >= 75) ? "Lulus" : "Tidak Lulus"
Cetak(status)
Dalam algoritma, perulangan (looping) adalah proses yang memungkinkan suatu blok kode dieksekusi berulang kali selama kondisi tertentu masih terpenuhi. Berikut adalah macam-macam perulangan dalam algoritma:
Perulangan ini digunakan ketika jumlah pengulangan sudah diketahui sebelumnya. Sintaks Pseudocode:
FOR variabel ← nilai_awal TO nilai_akhir DO
perintah
ENDFOR
Contoh:
FOR i ← 1 TO 5 DO
Cetak("Iterasi ke-", i)
ENDFOR
Hasil Output:
Iterasi ke-1
Iterasi ke-2
Iterasi ke-3
Iterasi ke-4
Iterasi ke-5
Perulangan ini digunakan ketika jumlah pengulangan tidak diketahui secara pasti, tetapi berdasarkan suatu kondisi. Sintaks Pseudocode:
WHILE kondisi DO
perintah
ENDWHILE
Contoh:
i ← 1
WHILE i <= 5 DO
Cetak("Iterasi ke-", i)
i ← i + 1
ENDWHILE
Perulangan ini mirip dengan WHILE, tetapi kondisi diperiksa setelah perintah dijalankan minimal sekali. Sintaks Pseudocode:
REPEAT
perintah
UNTIL kondisi
Contoh:
i ← 1
REPEAT
Cetak("Iterasi ke-", i)
i ← i + 1
UNTIL i > 5
Ini adalah perulangan di dalam perulangan, biasanya digunakan untuk mengolah data dalam bentuk tabel atau matriks. Contoh:
FOR i ← 1 TO 3 DO
FOR j ← 1 TO 3 DO
Cetak("i=", i, " j=", j)
ENDFOR
ENDFOR
Output:
i=1 j=1
i=1 j=2
i=1 j=3
i=2 j=1
i=2 j=2
i=2 j=3
i=3 j=1
i=3 j=2
i=3 j=3
==========================================================================================================
CATATAN:
Untuk mencoba bahasa pemrograman phyton kalian dapat menggunakan sofrware online colab.google <-- klik disini
Untuk mencoba bahasa pemrograman C++ Online kalian dapat menggunakan software online C++ Tutorial (w3schools.com) <-- klik disini
==========================================================================================================
Apa yang dimaksud dengan algoritma?
a. Sebuah bahasa pemrograman
b. Sekumpulan langkah-langkah untuk menyelesaikan masalah
c. Perangkat keras komputer
d. Jenis data dalam pemrograman
e. Software komputer
Jawaban: b
Berikut ini yang bukan merupakan karakteristik algoritma adalah...
a. Jelas dan tidak ambigu
b. Tidak memiliki akhir
c. Memiliki input
d. Efektif
e. Memiliki output
Jawaban: b
Simbol flowchart yang digunakan untuk proses adalah...
a. Oval
b. Persegi panjang
c. Belah ketupat
d. Panah
e. Lingkaran
Jawaban: b
Perulangan dalam bahasa pemrograman disebut juga dengan...
a. Looping
b. Branching
c. Sequencing
d. Debugging
e. Testing
Jawaban: a
Memahami Aturan Flowchart dan Contoh Soal
Dalam menggambarkan algoritma yang mudah dipahami dan terstruktur dibutuhkan alat bantu yaitu flowchart atau diagram alir. Flowchart berguna untuk menggambarkan urutan logika dari prosedur penyelesaian masalah. Tujuan flowchart untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi, dan jelas menggunakan simbol-simbol standar. Selain itu flowchart dibutuhkan untuk dokumentasi dan alat komunikasi.
Aturan Flowchart
Mengutip dari buku Cara Mudah Belajar Bahasa Pemrograman C++, berikut aturan flowchart atau perancangan diagram alir:
1. Semua simbol flowchart dihubungkan dengan suatu garis alir. Pengertian garis alir adalah suatu garis dengan tanda panah
2. Simbol dari suatu flowchart memiliki titik masuk di atas simbol. Sedangkan titik keluar dari simbol flowchart ada di bagian bawah, kecuali untuk decision.
3. Decision mempunyai dua titik keluar yang menyatakan benar atau salah. Titik keluar ini berada di sisi atau di bawah.
4. Umumnya, aliran data suatu flowchart dari atas menuju ke bawah, tetapi ada juga aliran yang mengalir dari bawah ke atas.
5. Konektor digunakan untuk menyatakan hubungan jeda pada flowchart
6. Program sub program dan interrupt memiliki flowchart yang mandiri
7. Semua diagram alir diawali oleh simbol terminator atau predeftones process (untuk sub program)
8. Setiap flowchart selalu diakhir menggunakan simbol terminator
Contoh Soal Flowchart
1. Buat flowchart untuk menampilkan bilangan 1 sampai 100:
Input : -
Proses: Bilangan Cetak bilangan
Naikkan bilangan sebesar 1
Jika bilangan <= 100, maka ulangi mulai cetak
Output: Bilangan
2. Dibaca nama karyawan dan gaji pokok. Gaji bersih yang diterima pegawai adalah gaji bersih= gaji pokok+tunjangan-pajak. Tunjangan karyawan dihitung 20 % dari gaji pokok, sedangkan pajak 15 % dari gaji pokok ditambah tunjangan. Nama karyawan dan gaji bersihnya dicetak ke piranti keluaran. Buatlah flowchart-nya:
Input: Nama, Gaji_Pokok
Proses: Tunjangan = 20 % x Gaji_Pokok Pajak = 15 % x (Gaji_Pokok+Tunjangan) Gaji_Bersih = Gaji+Pokok + Tunjangan - Pajak
Output: Nama, Gaji_Bersih,
3. Buatlah sebuah flowchart untuk menghitung komisi yang diterima salesman berdasarkan hasil penjualan yang dicapainya. Seorang salesman mendapatkan 5 % komisi dari hasil penjualan. Masukan bagi algoritma adalah nama salesman dan nilai penjualan yang dicapainya. Tampilkan ke piranti keluaran nama salesman, nilai penjualan yang dicapainya besar komisi yang diperolehnya.
Input: Nama_Salesman, Penjualan
Proses: Komisi = 5% x Penjualan
Output: Nama_Salesman, Penjualan, Komisi
a. Mengelola basis data
b. Membuat tampilan grafis
c. Menyusun algoritma dan membuat program komputer
d. Mengedit gambar dan video
e. Memodifikasi hardware
Jawaban: c
a. C++ memiliki konsep pemrograman berorientasi objek
b. C lebih mudah dibanding C++
c. C++ hanya digunakan untuk game development
d. C++ tidak mendukung struktur data
e. C++ tidak bisa dijalankan di Windows
Jawaban: a
a. printf("Hello, World!");
b. cout << "Hello, World!";
c. print("Hello, World!");
d. System.out.println("Hello, World!");
e. Console.WriteLine("Hello, World!");
Jawaban: b
a. Menghapus file
b. Menyediakan fungsi input dan output
c. Menjalankan program tanpa error
d. Mengubah warna tampilan program
e. Menghubungkan ke internet
Jawaban: b
a. Menggunakan library standar tanpa harus menuliskan std::
b. Menjalankan program lebih cepat
c. Menghapus error dalam program
d. Memudahkan debugging
e. Menampilkan hasil secara otomatis
Jawaban: a
a. cout
b. cin
c. print
d. scan
e. input
Jawaban: b
a.
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!";
}
b.
main() {
print("Hello, World!");
}
c.
#include <stdio.h>
void main() {
printf("Hello, World!");
}
d.
import java.util.*;
class Program {
public static void main(String args[]) {
System.out.println("Hello, World!");
}
}
e.
void program() {
print("Hello, World!");
}
Jawaban: a
a. char
b. float
c. int
d. double
e. string
Jawaban: c
int a = 10, b = 4;
cout << a / b;
a. 2.5
b. 2
c. 3
d. 10/4
e. Error
Jawaban: b
a. for
b. if
c. switch
d. case
e. goto
Jawaban: a
for(int i=1; i<=3; i++) {
cout << "C++ ";
}
a. C++
b. C++ C++
c. C++ C++ C++
d. C++C++C++
e. Error
Jawaban: c
a. int arr[5];
b. array<int> arr[5];
c. int[] arr = new int[5];
d. arr = int(5);
e. int arr;
Jawaban: a
a. length()
b. sizeof()
c. strlen()
d. size()
e. count()
Jawaban: c
a. /* ini komentar */
b. -- ini komentar
c. // ini komentar
d. # ini komentar
e. \* ini komentar *\
Jawaban: c
a. Mengakhiri program tanpa error
b. Menampilkan hasil
c. Menjalankan program
d. Menghapus memori yang digunakan
e. Menjalankan kode lebih cepat
Jawaban: a
int x = 5;
cout << ++x;
a. 4
b. 5
c. 6
d. Error
e. Tidak ada output
Jawaban: c
a. while akan dijalankan minimal satu kali meskipun kondisi salah
b. while tidak memiliki kondisi
c. while akan terus berjalan selama kondisi benar
d. while hanya bisa digunakan dengan angka
e. while bisa digunakan tanpa batasan
Jawaban: c
a. Menghentikan program sepenuhnya
b. Mengakhiri loop saat kondisi tertentu terpenuhi
c. Melompati iterasi berikutnya
d. Memulai ulang program
e. Membuat error dalam loop
Jawaban: b
a.
int myFunction() {
return 0;
}
b.
function myFunction() {
return 0;
}
c.
def myFunction():
return 0
d.
void myFunction()
return 0;
e.
method myFunction()
return 0;
Jawaban: a
int x = 10, y = 5;
cout << (x > y ? "Besar" : "Kecil");
a. Besar
b. Kecil
c. Error
d. Tidak ada output
e. 10
Jawaban: a