Professional Documents
Culture Documents
BAHAN AJAR
X
PEMROGRAM
AN DASAR
Algoritma Pemrograman
Tipe Data
0
1
BAHAN AJAR
PEMROGRAMAN DASAR X
A. KOMPETENSI DASAR
1. Memahami penggunaan data dalam algoritma dan konsep algoritma pemrograman
2. Menggunakan algoritma pemrograman untuk memecahkan permasalahan
B. INDIKATOR
1. Menganalisis konsep algoritma, struktur algoritma dan algoritma menggunaan
bahasa natural, pseudocode dan flowchart.
2. Mengumpulkan dan menganalisis contoh-contoh algoritma pada bahasa
pemrogrmaan
3. Menganalisis tipe data, variabel dan operator
4. Mengimplementasikan tipe data, variabel dan operator pada algoritma dengan
pseudocode dan flowchart untuk memecahkan permasalahan
5. Memecahkan permasalahan sehari-hari dengan algoritma bahasa natural,
pseudocode dan flowchart
C. TUJUAN
1. Siswa dapat menganalisis konsep algoritma, struktur algoritma dan algoritma
menggunaan bahasa natural, pseudocode dan flowchart.
2. Siswa dapat mengumpulkan dan menganalisis contoh-contoh algoritma.
3. Siswa dapat menganalisis tipe data, variabel dan operator.
4. Siswa dapat mengimplementasikan tipe data, variabel, operator untuk membuat
algoritma.
5. Siswa dapat memecahkan permasalahan sehari-hari dengan algoritma bahasa
natural.
6. Siswa dapat memecahkan permasalahan sehari-hari dengan menerapkan flowchart
algoritma pemrograman.
D. WAKTU
Alokasi Waktu : 16 jam pertemuan
E. MATERI
1. ALGORITMA PEMROGRAMAN
1.1. Sejarah Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai
sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses
menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung
menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini
namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika
menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang
terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi. AlKhuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis
buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya Buku
pemugaran dan pengurangan (The book of restoration and reduction). Dari
judul buku itu kita juga memperoleh akar kata Aljabar (Algebra). Perubahan
kata dari algorism menjadi algorithm muncul karena kata algorism sering
dikelirukan dengan arithmetic, sehingga akhiran sm berubah menjadi thm.
Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka
lambat laun kata algorithm berangsur-angsur dipakai sebagai metode
perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya.
Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
1.2. Definisi Algoritma
Terdapat beberapa definisi mengenai kata Algoritma :
1. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis (Rinaldi Munir :2002).
2. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan
masalah (KBBI :1988).
3. Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara
jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan
suatu masalah tertentu, atau suatu kelas masalah tertentu, dengan dituntut
pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik
(Team Gunadarma :1988).
1.3. Konsep Dasar Algoritma
1.3.1. Ciri Algoritma
Menurut Donald E. Knuth, algoritma mempunyai lima ciri penring :
1. Finiteness (Keterbatasan)
Algoritma harus berakhir setelah melakukan sejumlah langkah proses
2. Definiteness (Kepastian)
Setiap langkah algoritma harus didefinisikan dengan tepat dan tidak
menimbulkan makna ganda
3. Input (Masukan)
Sebuah algoritma memiliki nol atau lebih masukan (input) yang diberikan
kepada algoritma sebelum dijalankan
4. Output (Keluaran)
Setiap algoritma memberikan satu atau beberapa hasil keluaran
5. Effectiveness (Efektivitas)
Langkah-langkah algoritma dikerjakan dalam waktu yang wajar
1.3.2.Syarat Algoritma
Beberapa persyaratan untuk menjadi algoritma yang baik adalah:
a. Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari
proses harus berakurasi tinggi dan benar.
b. Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat
mungkin dan frekuensi kalkulasi yang sependek mungkin.
c. Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu
kasus saja, tapi juga untuk kasus lain yang lebih general.
d. Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita
kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
e. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami
algoritma Anda. Susah dimengertinya suatu program akan membuat susah
di-maintenance (kelola).
Contoh :
Deklarasi :
Panjang = integer {tipe data bilangan bulat}
Lebar = integer
Luas = real {tipe data bilangan pecahan}
3. Deskripsi
Deskripsi adalah bagian terpenting dari struktur algoritma. Bagian ini berisi
uraian langkah-langkah penyelesaian masalah. Langkah-langkah ini
dituliskan dengan notasi yang lazim dalam penulisan algoritma. Setiap
langkah algoritma dibaca dari langkah paling atas hingga langkah paling
bawah. Urutan penulisan menentukan urutan pelaksanaan perintah.
Contoh :
Deskripsi :
Read (nama)
Read (NIM)
Read (nilai)
If (nilai < 45) then
Grade = E
Else if (nilai >= 45) and (nilai < 60) then
Grade = D
Else if (nilai >= 60) and (nilai < 70) then
Grade = C
Else if (nilai >= 70) and (nilai < 80) then
Grade = B
Else
Grade = A
Write (nama)
Write (NIM)
Write (nilai)
Deskripsi :
Read (Bil1,Bil2)
If Bil1 >= Bil 2 then
Bil1 = MAX
Else Bil2 = MAX
Read (Bil3)
If Bil3 >= MAX then
Bil3 = MAX
Write (MAX)
3.2. TRANSLASI TEKS ALGORITMA KE TEKS BAHASA
PEMROGRAMAN
Program Menghitung_Nilai_Rata_Rata
{Menghitung nilai rata-rata sekumpulan bilangan bulat dari piranti
Masukan}
(* DEKLARASI*)
Var
x : integer ; {variabel bilangan bulat}
N : integer ; {banyaknya bilangan bulat, N> 0}
k : integer ; {Pencacah jumlah pengulangan}
jumlah : integer ;
rata: real
(* DESKRIPSI *)
begin
write( Jumlah data); readln (N); {baca banyaknya data }
k := 1;
{mulai dari data pertama}
jumlah := 0;
while k <= N do
begin
write(x = ?}; readln X;
jumlah := jumlah + X;
k := k + 1;
end;
rata := jumlah / N;
writeln (Rata-rata = , rata);
end.
2.
Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum
menangani pemecahan persoalan.
READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan
input.
PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai
dengan data yang dibaca.
WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun
ada beberapa anjuran:
Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga
jalannya proses menjadi singkat.
Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah
untuk memperjelas.
Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia
pemrograman:
Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus
sederhana.
Kasus:
Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas
persegi panjang.
Solusi:
Perumusan untuk mencari luas persegi panjang adalah:
L = p. l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah
lebar persegi.
Keterangan 1:
1. Simbol pertama menunjukkan dimulainya sebuah program.
2. Simbol kedua menunjukkan bahwa input data dari p dan l.
3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan
perumusan L = p. l
4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda
End.
Contoh : Algoritma Bilangan_Maksimum dalam flow char
tertentu agar nilai pada lokasi tersebut dapat diakses. Alamat lokasi memori
sebenarnya berupa angkaangka heksadesimal, namun pada bahasa pemrograman
setingkat C++ (middle level programming language) dan di atasnya, telah
mengubahnya dalam bentuk identifier (pengenal) yaitu berupa suatu huruf atau
kata (label) sehingga kita tidak perlu mengetahu alamat yang sesungguhnya dan
dengan identifier (label) akan lebih mudah untuk diingat.
Ukuran
1 byte
2 bytes
2 bytes
4 bytes
4 bytes
2 bytes
4 bytes
2 bytes
4 bytes
1 byte
4 bytes
8 bytes
Yang dimaksud dengan konstanta literal adalah suatu nilai yang ditulis
pada kode program. Sebagai contoh misalnya :
int usiaku = 42;
Nilai 42 tidak dapat menerima nilai lain dan nilai tersebut bersifat tetap.
Perhatikan dalam hal ini identifier usiaku adalah variabel (bukan konstanta),
yang dinamakan konstanta literal adalah nilai 42 tersebut.
Konstanta simbolik adalah konstanta yang direpresentasikan dengan suatu
nama, sama seperti variabel, namun berbeda dengan variabel setelah suatu
konstanta diinisialisasi dengan suatu nilai maka nilainya tidak dapat diubah. Ada
2 cara untuk mendeklarasikan konstanta simbolik, yaitu dengan menggunakan
preprocessor directive #define dan yang kedua adalah dengan memakai kata kunci
const. Berikut ini contoh mendeklarasikan dan menginisialisasi konstanta :
#define kapasitas 15
Perhatikan bahwa kapasitas tidak mempunyai tipe data tertentu (int, char
dsb.). Preprosessor akan melakukan substitusi berupa teks, setiap ada akses
terhadap kata kapasitas, akan digantikan dengan teks 15. Karena preprosesor
bekerja sebelum kompiler, kompiler tidak mengenal konstanta kapasitas, yang
dikenal hanyalah bilangan 15.
TIPS
Statement
Dalam bahasa C++, sebuah statement mengontrol urutan pengerjaan
eksekusi, mengevaluasi ekspresi atau tidak mengejakan apapun (null statement).
Semua statement C++ diakhiri dengan titik koma (;), sebagai contoh misalnya :
x = a + b;
Penjelasan :
-
Pada baris pertama dan kedua di atas digunakan hanya sebuah operator =
(yaitu jenjang ke 14), arah proses dari kanan ke kiri, sehingga yang dilakukan :
Ekspresi : 15, diberikan kepada variabel panjang (dibaca dari kanan ke kiri).
Ekspresi : 12, diberikan kepada variabel lebar (dibaca dari kanan ke kiri).
Pada baris ketiga terdapat 2 operator, yaitu operator = (jenjang ke 14) dan
*operator = (yaitu jenjang ke 3). Jenjang menunjukkan operator yang akan
dikerjakan terlebih dahulu, jika dalam sebuah ungkapan terdapat lebih dari satu
jenis operator. Jenjang nomor 1 adalah jenjang yang paling tinggi, maka pada
pernyataan di atas yang akan dikerjakan terlebih dahulu adalah orator * baru
kemudian operator =, sehingga yang dilakukan:
Ekspresi : panjang * lebar , berarti panjang dikalikan lebar (dibaca dari kiri
ke kanan), menghasilkan nilai integer 180.
Berikutnya operator = mengoperasikan hasil ekspresi tersebut, yaitu nilai
integer 180 diberikan kepada variabel luas (dibaca dari kanan ke kiri).
TIPS
Operator Pengerjaan
Operator pengerjaan atau disebut assignment operator, digunakan untuk
menempatkan nilai dari suatu ekspresi ke suatu pengenal. Operator yang umum
dipakai pada bahasa pemrograman adalah operator pengerjaan =. Selain
operator pengerjaan =, bahasa C++ menyediakan beberapa operator pengerjaan
yang lain seperti tabel di bawah ini.
Berikut ini contoh hasil ekspresi jika a bernilai 5, b bernilai 7 dan c bernilai a
Operator Logika
Jika operator hubungan membandingkan hubungan antara dua buah
operand, maka operator logika (logical operator) digunakan untuk
menggabungkan logika hasil dari operator-operator hubungan. Operator logika
menggabungkan dua buah nilai logika. Nilai logika adalah nilai benar (True)
atau salah (False).
Selain dua operator logika ini, operator unary ! (logika NOT) dapat
digunakan untuk operasi logika.
Contoh :
Misalnya A bernilai 5, B bernilai 7 dan C bernilai a maka ungkapan
dibawah ini mempunyai hasil akhir benar (True).
A < B || B == 7 && C > z
Hasil akhir benar (True) dari ekspresi logika tersebut didapat dari
langkah-langkah sebagai berikut:
1. Jenjang operator hubungan lebih tinggi dibandingkan dengan operator logika,
jadi operator hubungan dikerjakan terlebih dahulu.
2. Operator logika && mempunyai jenjang lebih tinggi dari operator ||,
sehingga operator && dikerjakan terlebih dahulu.
3. Bagian yang paling akhir dikerjakan adalah operator ||, sehingga hasil akhir
logika bernilai logika benar atau True.
- Selamat Belajar -