Anda di halaman 1dari 10

KB.

1 KONSEP DAN STRUKTUR ALGORITMA

algoritma adalah urutan langkah-langkah penyelesaian masalah yang disusun secara sistematis dan logis
(masuk akal) yang memiliki awalan (start) dan akhiran (end) untuk menyelesaikan suatu masalah. Struktur
algoritma secara umum adalah :
 Judul Algoritma / Nama_Algoritma : { Penjelasan mengenai algoritma, yang berisi uraian singkat
mengenai apa yang dilakukan oleh algoritma }
 Deklarasi : { Semua bahan dan alat yang dibutuhkan selama algoritma dijalankankan, atau dalam algoritma
meliputi variabel yang dipakai, nama tipe, konstanta, nama prosedur dan nama fungsi didefinisikan di sini }
 Deskripsi : { Semua langka, proses, atau statement algoritma dituliskan di sini, biasanya langkah-langkah
diberikan penomoran untuk memudahkan penelusuran dan organisasi. }

KB.2 ALGORITMA MENGGUNAKAN BAHASA NATURAL

Secara garis besar, algoritma dapat disajikan dengan 3 cara, yaitu :


1. Menggunakan bahasa natural (bahasa sehari-hari)
2. Menggunakan Pseudocode
3. Menggunakan Flowchart
Penyajian algoritma dalam bahasa natural, menggunakan kalimat deskriptif, yaitu menjelaskan secara
detail suatu algoritma dengan bahasa atau kata-kata yang mudah dipahami. Penyajian algoritma ini cocok untuk
algoritma yang singkat namun sulit untuk algoritma yang besar. Selain itu algoritma ini akan sulit dikonversi ke
bahasa Pemrograman.
Ciri-ciri algoritma menggunakan bahasa natural yaitu :
a. Penyajiannya menggunakan kalimat deskriptif.
b. Dalam penyajian operasi-operasi / langkah-langkah dijelaskan dengan kata-kata
c. sedikit menggunakan simbol-simbol untuk mewakili pernyataan
Penyajian Algoritma yang Baik menurut Donald Ervin Knuth harus memiliki kriteria berikut ini:
1. Input (masukan). Setiap algoritma pasti memiliki input. Ada 2 jenis input dalam algoritma, yaitu:
 nol input : hal ini terjadi jika algoritma tidak mendapatkan masukan dari pengguna karena nilai input-an
sudah dibatasi dan langsung dituliskan pada algoritma.
Contoh : algoritma menghitung 100 bilangan genap. Algoritma ini tidak memerluakan input dari
pengguna karena sudah diketahui bahwa banyaknya bilangan genap yang akan dicari adalah 100
bilangan.
 input dari pengguna : algoritma yang memrlukan masukan nilai input dari pengguna.
contoh algoritma menghitung bilangan genap dari nilai n.algoritma ini digunakan untuk menghitung n
bilangan genap, dengan nilai n ditentukan oleh pengguna. Berarti ada masukan dari pengguna yaitu n.
2. Output (keluaran). Algoritma minimal harus memiliki 1 output. Tujuan dari algoritma adalah memberikan
penyelesaian dari suatu masalah dengan langkah-langkah tertentu. Output dapat berupa apa saja, teks, file,
video, suara, atau suatu nilai yang disimpan untuk digunakan algoritma lain atau disimpan di basis data.
3. Finite (Terbatas). Algoritma yang baik haruslah mempunyai langkah-langkah terbatas, yang berhenti pada
suatu titik dan menghasilkan suatu output. Algoritma tidak boleh berjalan terus –menerus tanpa titik henti,
hingga menyebabkan hang atau not responding pada komputer.
4. Definite (pasti). Makna dari langkah logis pada definisi algoritma terdahulu tercermin dari langkah-langkah
yang pasti, tidak ambigu atau bermakna ganda. Suatu program harus mempunyai arah dan tujuan yang jelas
,kapan mulai dan kapan berakhir.
5. Efisien. Algoritma disebut efisien jika untuk mendapatkan suatu solusi tanpa memerlukan memori yang
banyak, proses yang berbelit-belit dan waktu yang lama.

Contoh algoritma dengan bahasa natural :


Nama Algoritma : {VolumeBalok} Nama Algoritma : {HitungRerata}
Deklarasi : Deklarasi :
{ Input panjang, lebar, dan tinggi Balok dalam cm, { Input: n data berupa bilangan, Output : nilai rata-rata}
panjang = 8, lebar = 5, dan tinggi = 4, Output = Deskripsi :
berupa Volume Balok } {
Deskripsi : Langkah-langkah:
{ 1) Baca data ke-1, data ke-2, hingga data ke-n
Langkah-langkah: 2) Jumlahkan data ke-1, data kedua hingga data ke-n,
1) Baca panjang = 8 simpan dengan nama JUM
2) Baca lebar = 5 3) Bagi JUM dengan banyak data, atau n. Simpan
3) Baca tinggi = 4 dengan nama RERATA
4) Hitung volume balok adalah hasil panjang x lebar x 4) Tuliskan RERATA sebagai keluaran.
tinggi = 8 x 5 x 4 }
5) Tuliskan Volume Balok = 160
}

KB.3 PENGENALAN VARIABEL

variabel adalah suatu nama simbolik, bisa dinyatakan dengan alfabet (huruf) tunggal atau rangkaian
huruf, atau rangkaian huruf dan angka atau simbol-simbol, yang akan diberikan informasi atau nilai tertentu serta
menetukan lokasi penyimpanan datanya pada memori komputer.

Contoh soal 1 untuk penentuan variabel :


a) Tentukan variabel-variabel pada Algoritma mengkonversi suhu dalam derajat Celcius menjadi Farenheit,
Reamur, dan Kelvin.
b) Penyelesaian:
1. Tentukan input-nya. Pada soal di atas yang menjadi masukan/input data adalah celcius.
2. Tentukan output-nya. Yang menjadi keluaran dari soal tersebut adalah farenheit, Reamur dan kelvin.
3. Tentukan prosesnya. Setiap inputan nilai suhu celcius akan dikonversikan ke dalam suhu suhu Farenheit,
suhu Reamur, dan suhu Kelvin.
4. Tentukan variabelnya. Dengan demikian ada 4 variabel yang harus dibuat misalkan diberi nama
suhuCelcius, suhuFarenheit, suhuReamur, dan suhuKelvin. Yang kemudian diberi simbol variabel :
 SC adalah suhuCelcius
 SF adalah suhuFarenheit
 SR adalah suhuReamur
 SK adalah suhuKelvin

Contoh soal 2 untuk penentuan variabel :


a) Tentukan variabel-variabel pada Algoritma menentukan kelulusan seorang murid ketika ujian nasional
(UAN).
b) Penyelesaian:
1. Tentukan input. Input yang dibutuhkan antara lain :
 nama anak,
 nilai matematika,
 nilai bahasa indonesia
 nilai bahasa Inggris.
2. Tentukan proses. Langkah yang diperlukan untuk menentukan anak murid dinyatakan lulus jika nilai rata-
rata ketiga mata pelajarannya lebih dari 60. Sehingga nilai rata-rata>60 = lulus namun jika rata-
rata<60=gagal.
3. Tentukan output. Outputnya adalah status=LULUS atau GAGAL.
4. Sehingga dapat ditentukan, ada 6 buah nilai yang harus diberi variabel, yaitu :
 nama anak diberi lambang Nama
 nilai matematika diberi lambang MTK
 nilai bahasa indonesia diberi lambang BIND
 nilai bahasa Inggris diberi lambang BING
 Nilai rata-rata diberi lambang RATA
 Nilai status diberi lambang STAT

KB.4 PENGENALAN TIPE DATA

Tipe data adalah jenis data yang akan diolah oleh algoritma atau program komputer
untuk diharapkan. Secara garis besar 3 macam tipe data yaitu:

1. Tipe Data Sederhana

Tipe data sederhana adalah tipe data yang hanya memuat data tunggal saja. Yang termasuk tipe
data ini adalah :
A. Numeric. Tipe data numeric digunakan pada variabel atau konstanta untuk menyimpan nilai dalam bentuk
angka.
 Integer. Merupakan tipe data berupa bilangan bulat, terbagi atas beberapa kategori. Contoh variabel
yang dapat menggunakan tipe data ini misalkan, banyaknya data, tinggi badan, panjang kata, suku ke-n
dari sebuah barisan, jumlah anak, tahun, bulan (dalam angka), dan sebagainya.
Tipe Data Ukuran Tempat Rentang Nilai
Byte 1 byte 0 s/d +255
Shortint 1 byte -28 s/d +127
Integer 2 bytes -32768 s/d 32767
Word 2 bytes 0 s/d 65535
Longint 4 bytes 2147483648 s/d 2147483647
 Real. Merupakan bilangan yang berisi titik desimal atau jenis bilangan pecahan. Contoh variabel yang
menggunakan tipe data ini, LuasLingkaran, Rerata, VolumeTabung, suhu, dan sebagainya.
Tipe Data Ukuran Tempat Rentang Nilai
Real 6 bytes 2.9 x 10-39 s/d 1.7 x1038
single 4 bytes 1.5 x 1045 s/d 3.4 x 1038
Double 8 bytes 5.0 x 10-324 s/d 1.7 x 10308
extended 10 bytes 3.4 x 10-4932 s/d 1.1 x 104932
comp 8 bytes -9.2x 1018 s/d 9.2x 1018

B. Karakter (char)
Karakter merupakan tipe data yang hanya mampu menyimpan 1 digit karakter. Ukuran untuk tipe data
karakter adalah 1 byte (1 byte = 8 bit). Untuk penulisan karakter menggunakan tanda petik tunggal (‘ ) di depan
dan belakang karakter yang ditulis.
Nilai-nilai yang termasuk karakter adalah :
 Karakter huruf : ‘a’..’z’,’A’..’Z’
 Karakter angka : ‘0’..’9’
 Karakter tanda baca : titik, koma, titik koma, titik dua dan sebagainya
 Karakter khusus : $, %, #, @ dan sebagainya.
Contoh variabel yang menggunakan tipe data ini adalah JenisKelamin, bisa “L” atau “P”, persetujuan bisa
“Y” atau “N, Inisial nama depan, dan sebagainya.

C. String
Tipe data string merupakan susunan dari satu atau lebih karakter. Sebagai contoh: “abc”, “HAPPY”,
“100102001”. Biasanya untuk mendefinisikan tipe data string ini harus diberikan batasan maksimal berapa
ukuran atau panjang maksimal string yang bisa dialokasikan.
Sebagai contoh: variabel nama bertipe data String[30], artinya maksimal panjang nama adalah 30 huruf.
Variabel lain yang menggunakan tipe data ini adalah Alamat, TempatLahir, NomorHP, Sekolah, dan sebagainya.
D. Boolean
Boolean adalah tipe data yang digunakan untuk menyatakan status Benar atau Salah dari
suatau variabel. Jadi hanya dua nilai pada tipe data ini yaitu Benar dan Salah.
Sebagai contoh variabel yag dapat digunakan tipe data ini adalah: statusKelulusan (bisa Benar atau Salah),
StatusPrima, StatusMenikah (bisa benar atau salah).

2. Tipe Data Terstruktur

adalah tipe data yang menampung banyak nilai dan merupakan kumpulan dari data-data tunggal. Sebagai
contoh, Data Seorang Siswa yang terdiri dari Nama, Nomor Induk Siswa, Alamat, Tempat Lahir, tanggal lahir,
Nama Orang Tua, Kelas dan sebagainya apakah harus diberikan nama variabel yang berbeda beda? Tentu tidak.
Data seorang siswa dapat dikumpulkan dalam satu wadah dengan mengatur data-data tersebut secara terstruktur.

A. Array
Array dapat diartikan sebagai larik, atau barisan. Array digunakan untuk menyimpan banyak
data dengan tipe data yang sama (homogen) dalam sebuah variabel. Sebagai ilustrasi, array mampu menampung
banyak data namun dengan satu tipe data yang sama, misalnya data dengan tipe integer semua atau real semua.
Sebagai contoh, dalam sebuah algoritma diberikan input sejumlah data ulangan anak, misalkan 100
anak.karena semua nilai ulangan anak memiliki tipe data yang sama, yaitu integer, maka dapat dibuatkan array-
nya menjadi : Daftar Nama merupakan array[1..100] of string[25]
Artinya DaftarNama merupakan barisan 100 data yang bertipe string dengan ukuran karakter maksimal 25.
Jika dituliskan daftarNama[ i ], artinya isi dari daftarNama ada pada indeks/urutan ke-i.

B. Record
Record adala tipe data yang bisa menampung data-data dengan tipe yang berbeda (heterogen). Sebagai
contoh data seorang siswa, bisa terdiri dari Nama, Nomor Induk Siswa, Alamat, Tempat Lahir, Jenis Kelamin,
Kelas Umur. Agar data tersebt menjadi satu kesatuan informasi maka dapat dibuatkan tipe data Record –nya
dengan nama DataSiswa, Berikut rincian Record DataSiswa.
Data Tipe Data Keterangan
Data nama bertipe string karena terdiri dari banyak huruf/karakter, dan maksimal 25
Nama String [25]
huruf/karakter. Misal Nama = M. Alfatih (data ini terdirir dari 10 huruf/karakter)
Data NIS bertipe numeric karena terdiri dari banyak angka tapi bukan untuk
NIS numeric [10]
hitungan, dan maksimal 10 angka. Misal NIS = 11070065 (terdiri dari 8 angka)
Tgl.Lahir Date [10] Data nama bertipe date karena terdiri dari tanggal. Misal Tgl.Lahir = 17-01-2000
Data nama bertipe charakter karena hanya membutuhkan 1 huruf saja untuk
JK Character [1]
mewakili jenis kelamin, yaitu L untuk Laki-laki dan P untuk perempuan.
Data nama bertipe integer karena terdiri dari banyak huruf/karakter, contoh untuk
Kelas Integer [10] penulisan kelas sepuluh 1 = X.1, kelas sebelas A = XI.A, kelas dua belas TKJ = XII
TKJ
Umur numeric [2] Data nama bertipe numeric karena terdiri dari dua angka misal umur = 15
C. Set (himpunan)
Tipe data ini mirip dengan array, bedanya adalah pada tipe data ini tidak menggunakan indeks atau
urutan data, dan juga tidak memuat data dengan nilai yang sama.

D. Image
Image, atau gambar, atau citra, merupakan tipe data grafik. Misalnya grafik perkembangan jumlah siswa SMK,
foto keluarga kita, video perjalanan, dan lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang
berbasis visual, tipe data ini telah didukung dengan sangat baik.

E. Date Time
Nilai data untuk tanggal (date) dan waktu (time) secara internal disimpan dalam format yang spesifik. Variabel
atau konstanta yang dideklarasikan dengan tipe data Date dapat digunakan untuk menyimpan, baik tanggal
maupun jam. Tipe data ini masuk dalam kelompok tipe data composite, karena merupakan bentukan dari
beberapa tipe data.

3. Tipe Data Pointer

Pointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memori. Suatu
variabel yang points (menunjuk) ke sesuatu sehingga disebut pointer. Ada dua macam pointer:
a. Typed (tertentu) : merupakan pointer yang menunjuk pada tipe data tertentu pada variabel.
b. Generic (umum) : merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variabel.
================================================================================
KB.5 PENGENALAN OPERATOR
Perhatikan algoritma berikut,

Algoritma HitungDiskon
HargaNormal, BesarDiskon dan HargaAkhir bertipe data Integer
CekDiskon, CekMember bertipe data boolean
Langkah-langkah
1) Masukkan HargaNormal baju, baca sebagai Harga Normal
2) Periksa apakah baju masuk diskon, jika iya CekDiskon bernilai Benar, jika tidak CekDiskon bernilai
Salah
3) Periksa apakah pembeli memiliki kartu member, jika iya CekMember bernilai Benar, jika tidak
CekMember bernilai Salah
4) Jika (CekDiskon AND CekMember) maka hargaDiskon=25% x HargaNormal
5) Jika (CekDiskon AND NOT(CekMember) maka hargaDiskon=20% x HargaNormal
6) Jika (NOT(CekDiskon) dan NOT(CekMember)) maka hargaDiskon=0
7) Hitung HargaAkhir=HargaNormal-HargaDiskon
8) Cetak nilai dari HargaAkhir

Ekspresi adalah sesuatu yang jika dievaluasi menghasilkan suatu nilai

KB.6 PENYAJIAN ALGORITMA DENGAN PSEUDOCODE

Dalam membuat sebuah program, diperlukan sebuah algoritma yang penyajiannya dapat dengan
mudah dibaca dan diterjemahkan ke dalam bahasa program bagi pengembang progam agar pembuatan
program menjadi tepat, efektif dan efisien.

Menggunakan bahasa natural saja justru akan menyulitkan pengembang dalam mengubahnya ke
bahasa program jika ternyata program yang dibuat adalah program besar dan rumit. Untuk itu, agar suatu
algoritma dapat dengan mudah dipahami, maka alangkah baiknya algoritma disajikan dengan bahasa
yang “dekat” atau mirip dengan semua bahasa pemrograman. Penyajian algoritma dalam bentuk bahasa
yang “mirip” dengan bahasa pemrograman disebut dengan pseudocode.

Sesuai dengan namanya pseudocode dapat diartikan sebagai kode bayangan, yaitu bahasa yang
mendekati kode pemrograman yang sesungguhnya. Perbedaanya adalah dalam bahasa pemrograman
aturan penulisan kode harus benar-benar sesuai, jika terjadi kesalahan sedikit saja maka akan
menyebabkan error, atau program tidak bisa dijalankan. Sedangkan dalam pseudocode aturan
penulisannya lebih bebas, dan tidak terikat namun yang paling penting adalah mudah diipahami oleh orang
yang menjalankan algoritma atau orang yang akan mengimplementasikan algoritma tersebut ke bahasa
pemrograman.
Pseudocode yang baik adalah pseudocode yang dapat dipahami dan diterjemahkan oleh
programmer ke bahasa pemrograman yang ada. Meskipun ada juga yang menuliskan pseudocode
berdasarkan kecenderungan perancang algoritma dalam menggunakan bahasa pemrograman.

Untuk memperjelas perbedaan bahasa natural dengan bahasa pseudocode, perhatikanlah dua buah
algoritma berikut ini :
BAHASA NATURAL BAHASA PSEUDOCODE
Algoritma JumlahKuadrat 1 Algoritma JumlahKuadrat 2
{Algoritma ini menghitung jumlah kuadrat {Algoritma ini menghitung jumlah kuadrat
dari dua buah bilangan, a dan b} dari dua buah bilangan, a dan b}

Input : A dan B Bilangan real VARIABEL A,B,C:Bilangan Real


Output: C Bilangan real
start
mulai 1) READ A
1) Masukkan nilai bilangan A 2) READ B
2) Masukkan nilai bilangan B 3) C =A*A + B*B
3) Hitung C=A*A + B*B 4) WRITE C
4) Tuliskan hasil C End
Selesai
Kedua algoritma di atas adalah mempunyai tujuan yang sama yaitu mencari jumlah kuadrat
dari dua buah bilangan. Algoritma pertama menggunakan bahasa natural (sehari-hari), sedangkan
yang kedua sudah menggunakan bahasa yang mirip bahasa pemrograman, algoritma yang kedua
menggunakan bentuk perintah seperti READ dan WRITE. Penggunaan bahasa
ini bukan tanpa alasan, akan tetapi menyesuaikan dengan bahasa-bahasa pemrograman yang ada
yang kebayakan menggunakan Bahasa Inggris sebagai bahasa induknya. Penyajian algoritma
seperti disebut penyajian dengan PSEUDOCODE.
Pada algoritma digunakan beberapa istilah yang mirip dengan Bahasa Pascal, sebagai berikut.
Konstanta, untuk mendeklarasikan konstanta yang digunakan oleh algoritma Variabel, untuk
mendeklarasikan variabel yang akan digunakan oleh algoritma READ, perintah untuk membaca inputan
dari pengguna WRITE, perintah untuk menuliskan nilai suatu variabel atau suatu string END, akhir dari
algoritma.
Selanjutnya perhatikan algoritma menggunakan bahasa pseudocode berikut ini :
Algoritma VolumeTabung
JUDUL / NAMA
{Algoritma ini menghitung volume tabung dengan input jari-jari r, dan tinggi tabung t.
ALGORITMA
Outputnya adalah volume tabung V}
Konstanta Phi=3.14;
DEKLARASI
Variabel r, t, V: bilangan real
START
1) READ r
DESKRIPSI
2) READ t
3) V = Phi*r*r*t
4) WRITE V
END

KB.7 PENYAJIAN ALGORITMA DENGAN FLOWCHART

Contoh :
NATURAL PSEUDOCODE FLOWCHART
Algoritma VolumeTabung Algoritma VolumeTabung
{Algoritma ini menghitung volume {Algoritma ini menghitung volume
tabung dengan input jari-jari, dan tinggi tabung
tabung. Outputnya adalah volume input jari-jari r, tinggi tabung t
tabung } Outputnya volume tabung V}

Konstanta Phi=3.14; Konstanta Phi=3.14;


Variabel r, t, V: bilangan real
1) MULAI
2) BACA jari-jari 1) START
3) BACA tinggi 2) READ: r
4) Hitung volume tabung = hasil 3) READ: t
Phi x jari-jari x jari-jari x tinggi 4) V = Phi*r*r*t
5) TULISKAN Volume tabung 5) WRITE V
6) SELESAI 6) END

KB.8 Penggunaan Tool Pembuatan Flowchart

Anda mungkin juga menyukai