Mata kuliah Logika dan Pemrograman membahas konsep dasar pemrograman seperti algoritma, struktur data, tipe data, operator, pemilihan, dan pengulangan. Mahasiswa diajak membuat algoritma penyelesaian masalah dan mengimplementasikannya dalam bahasa pemrograman tertentu. Program komputer adalah rangkaian perintah yang dimengerti komputer untuk menyelesaikan masalah secara logis berdasarkan bahasa pemrograman. Algoritma dan pseudocode
2. Tujuan mata kuliah ini adalah untuk memberi
kemampuan pada mahasiswa tentang konsep dasar
pemrograman.
Mahasiswa diharapkan dapat menyelsaikan
persoalan dengan cara membuat dan menulis
algoritma penyelesaian masalah dan men-translate-
kan algoritma tersebut ke bahasa pemrograman
tertentu (seperti Pascal, Basic, Fortran dll)
3. 1. Pengertian algoritma dan pemrograman
2. Struktur dasar algoritma
3. Notasi algoritmik
4. Tipe, operator dan ekspresi
5. Runtunan
6. Pemilihan
7. Pengulangan
8. Contoh contoh pemecahan masalah
4. PROGRAM KOMPUTER
Program komputer adalah rangkaian kata perintah yang telah
dimengerti oleh komputer untuk dikerjakannya. Kata-kata
perintah tersebut membentuk suatu bahasa yang disebut dengan
bahasa pemrograman.
Sebagaimana bahasa pada manusia, bahasa pemrograman juga
terdiri atas banyak macam bahasa, dan memiliki aturannya
masing-masing.
Komputer saat ini tidak memiliki hak inisiatif, sehingga jika ada
sedikit saja kesalahan penulisan perintah oleh pemrogram, ia
tidak bisa memakluminya atau berusaha memperbaiki sendiri
kesalahan tersebut. Dengan sendirinya komputer akan
“ngambek” dan tidak mau mengerjakan perintah-perintah
lainnya.
Komputer diciptakan melalui logika manusia, karenanya, ia bekerja
secara logis, tanpa campur-tangan “perasaan.”
5. ALGORITMA PEMROGRAMAN
Orang yang telah mahir menggunakan satu bahasa pemrograman tertentu,
biasanya tidak lagi memerlukan kertas coret-coretan untuk membuat suatu
program komputer. Namun bagi pemula, atau yang belum mahir, diperlukan kertas
coret-coretan tersebut.
Kertas coret-coretan itu akan digunakan untuk menyusun algoritma (langkah-
langkah penyelesaian masalah), flowcharting (alur logika perintah, yang merupakan
aplikasi dari Algoritma), maupun menuliskan perintah sesuai dengan kaidah dari
bahasa pemrograman yang akan digunakannya.
Sewaktu menyusun algoritma, kita tidak perlu tahu (atau tidak perlu menyesuaikan
dengan) bahasa pemrograman yang nanti akan kita gunakan. Hal utama yang
kita pikirkan adalah kaidah (hirarki) dari komputer itu sendiri, yaitu input-
proses-output.
Input adalah data yang harus ada (sudah ada/ sudah tersedia), yang dapat
diproses dengan aturan-aturan tertentu untuk menghasilkan output seperti yang
dikehendaki. Data yang ada harus logis (masuk akal) bahwa “ia” dapat diproses
untuk menghasilkan output.
6. Kehidupan manusia pada hakikatnya adalah
serangkaian aktivitas penyelesaian masalah
(persoalan).
Problem (persoalan)
Pertanyaan atau tugas yang kita cari
jawabannya [R.R. Neapolitan, 1996]
Contoh:
Parkir kendaraan bermotor, bagaimana cara menetapkan harga
per kendaraan yang parkir?
Susunan daftar nama mahasiswa, bagaimana cara melacak nama-
nama mahasiswa yang tidak aktif dalam semester ini?
Pengisian KRS, bagaimana cara menentukan SKS dan pengisian
KRS?
8. Penjabaran permasalahan (problem
description)
Dengan menggunakan beberapa parameter
(ukuran)
Contohnya yaitu:
1.Masalah pengurutan, dibuat dalam bentuk daftar (list)
2.Masalah pencarian,
3.Masalah mencari elemen terbesar/terkecil
9. Algoritma yaitu urutan langkah-langkah
logis untuk menyelesaikan sebuah masalah
yang disusun dengan sistematis.
Program yaitu kumpulan instruksi/perintah
komputer dengan bahasa tertentu yang
berfungsi menghubungan pemakai (user)
dengan komputer, atau bisa juga disebut
implementasi dari bahasa pemrograman
10. - Setiap langkah/step harus jelas dan pasti
- Boleh tidak ada input-an tetapi harus
memiliki output minimal 1 output, output ini
merupakan solusi akhir dari penyelesaian
masalah
- Efektif/tepat guna dan efisien/membutuhkan
waktu singkat dan memori sedikit
- Jumlah langkah/step harus ada batasannya,
baik ada solusi ataupun tidak
- Terstruktur/runtun, jelas (ipo)
11. Mendefinisaikan masalah
Menentukan solusi
Memilih algoritma
Menulis program
Menguji program
Menulis dokumentasi
Merawat program
13. Menggunakan untaian kalimat untuk
menjelaskan langkah – langkah
Contoh
PROGRAM GanjilGenap
Diberikan sebuah bilangan bulat positif X
untuk dicek apakah termasuk ganjil atau
genap
ALGORITMA
1.Jika X habis dibagi 2 maka tulis “Genap”,
jika tidak maka tulis “Ganjil”
14. Menggunakan simbol – simbol untuk
menggambarkan aliran atau langkah –
langkah
Contoh
mulai
baca X
X mod 2 =X mod 2 =
0
selesai
Tulis “Genap
Tulis “Ganjil”
tidak
ya
15. Menggunakan kode – kode untuk menyatakan
langkah – langkah
Mirip bahasa pemrograman
Contoh
DEKLARASI
X : integer
ALGORITMA
read(X)
if X mod 2 = 0 then {apakah X habis dibagi 2}
write(“Genap”) {jika ya}
else
write(“Ganjil) {jika tidak}
16. KETERANGAN SIMBOL
Mulai / Selesai (Terminator)
Aliran Data
Input / Output
Proses
Percabangan (Decision)
Pemberian nilai awal suatu
variabel
(Preparation)
Memangggil prosedur / fungsi
(Call)
17. Connector (di halaman yang
sama)
Connector (di halaman lain)
Sequence process
Perulangan
18. - Kasus : menghitung luas segitiga
- Algoritma :
§ Masukkan alas (a)
§ Masukkan tinggi (t)
§ Hitung luas (L), yaitu 0.5 * alas * tinggi
§ Cetak luas (L)
19.
20. Algoritma Pseudo-code
Masukkan panjang Input panjang
Masukkan lebar Input lebar
Nilai luas adalah panjang x
lebar
Luas panjang x lebar
Tampilkan luas Print luas
21. Contoh lain:
Algoritma Pseudo-code
Jika sudah selesai, cetak
invoice
IF KONDISI_SELESAI = “DONE” THEN
PRINT INVOICE
Nilai A dibagi dengan 2 A ← A / 2
Jika nilai A lebih besar dari
2
maka nilai A dikalikan 3
IF A > 2 THEN A ← A x 3
Dari dua bilangan A dan B,
cari
bilangan yang terbesar
IF A > B THEN PRINT A ELSE PRINT B
Masukkan semua mata
kuliah
yang ingin diambil pada
semester
ini
DARI MATKUL = 0 SAMPAI MATKUL
<= MATKUL_DIINGINKAN, MASUKAN
DATA MATKUL
22. Sebenarnya tidak ada aturan mengikat
tentang penulisan algoritma dan pseudo-
code, karena fungsi kedua hal ini adalah
untuk memudahkan seseorang untuk
menggambarkan urutan suatu kejadian.
Sedangkan untuk para programmer, kedua
hal ini berfungsi sebagai dasar alur
pembuatan program. Di mana dapat
merepresentasikan alur cerita dari client
tentang kebutuhan dasar dari sebuah
program, sehingga lebih mudah untuk
dipahami.
Jadi pseudo-code bisa dikatakan juga sebagai
algortima yang sudah sedikit digabungkan
dengan bahasa pemrograman yang akan
digunakan.
23. Terdapat 2 buah ember A dan B masing – masing
memiliki isi yang berbeda. Tuliskan algoritma
untuk menukarkan isi masing – masing ember
tersebut.
24. ALGORITMA
- untuk menukar air dari ember A ke ember
B,dibutuhkan satu ember kosong yaitu C.
- air yang ada di ember A kita pindah dahulu
ke ember C.
- sekarang ember A kosong, kemudian isi yang
ada di ember B kita pindah ke ember A.
- sekarang ember A terisi dan ember B
kosong.
- kemudian isi yang ada di ember C kita
pindah ke ember B.
- sehingga ember A dan B sudah terisi dan
tertukar sedang ember C menjadi kosong.
26. Pseudo code
DEKLARASI
A,B,C : integer
ALGORITMA
A = 2
B = 5
C A isi di variabel A sudah pindah ke
variabel C
A B isi yang ada di variabel B sudah
pindah ke variabel A
B C isi yang ada di variabel C sudah
pindah ke variabel B
sehingga
A 5
B 2
27. Tahapan Pembuatan Program
• Mendefinisikan masalah dan menganalisanya.
Mencakup: tujuan pembuatan program,
parameter yang digunakan,fasilitas yang
disediakan, algoritma yang diterapkan dan bahasa
program yang digunakan.
• Merealisasikan dengan langkah-langkah dalam
notasi algoritma.
28. ATURAN PENULISAN ALGORITMA
• Judul Algoritma
Berisi nama penjelasan algoritma
• Deklarasi
Mendefinisikan semua tipe, variable, fungsi dan prosedur
• Algoritma
• Bagian utama Algoritma
• Sekumpulan perintah untuk penyelesaian
permasalahan
• Ditulis dengan notasi tertentu (standar)
29. STRUKTUR PENULISAN ALGORITMA
PROGRAM Nama_Algoritma
{Judul Program}
DEKLARASI
{Deklarasi semua variabel, function dan procedure}
ALGORITMA
{ isi dari algoritma}
Contoh :
Tuliskan Algoritma untuk menuliskan atau mencetak
”Selamat Datang”.
PROGRAM SelamatDatang
{Program untuk mencetak ”Selamat Datang”}
DEKLARASI
{tidak ada}
ALGORITMA
write(’Selamat Datang’)
30. A. TIPE DATA DASAR
1. Tipe Data Logika (Boolean)
Nama tipe ini diambil dari nama matematikawan yaitu bernama George
Boole
Domain (jangkauan) Nilai : [true, false]
Nama tipe ditulis sebagai: Boolean
Contoh: 52 > 61 hasilnya false
A B A and B A or B Not A
False False False False True
False True False True True
True False False True False
31. 2. Bilangan Bulat
Bilangan yang sudah umum digunakan dalam kehidupan sehari-hari.
Bilangan bulat: adalah bilangan yang tidak mengandung pecahan
desimal, misal : 10, 32, -38, 123567, dst.
Domain Nilai : Integer [-32768..32767]
Nama tipe ditulis : Integer atau Int
Operasi Bilangan Bulat
a. Operasi Aritmatika
+ (Tambah)
- (Kurang)
* (Kali)
div (bagi)
mod (sisa hasil bagi)
b. Operasi Pembandingan
< lebih kecil
≤ lebih kecil atau sama dengan
> lebih besar
≥ lebih besar atau sama dengan
= sama dengan
≠ tidak sama dengan
32. 3. Bilangan Riil
Bilangan Riil adalah bilangan yang mengandung pecahan desimal,
misal 3.65, 3.45, 0.0004, dst
Domain Nilai: tidak terbatas
Tipe ditulis sebagai: Real
Operasi Bilangan Riil
a. Operasi Aritmatika
+ (Tambah)
- (Kurang)
* (Kali)
div (bagi)
mod (sisa hasil bagi)
b. Operasi Pembandingan
< lebih kecil
≤ lebih kecil atau sama dengan
> lebih besar
≥ lebih besar atau sama dengan
= sama dengan
≠ tidak sama dengan
33. Karakter
Tipe ini adalah tipe yang termasuk dalam semua huruf-huruf abjad, semua
tanda baca, angka ’0’...’9’, dan karakter-karakter khusus seperti ’&’,
’^’,’%’,’#’, ..dst.
Domain Nilai : ’a’,..,’z’,’A’,..’Z’,’0’,..’9’, dan karakter khusus lainnya
Tipe ditulis sebagai : Char
Operasi karakter
Operasi Pembandingan
< lebih kecil
≤ lebih kecil atau sama dengan
> lebih besar
≥ lebih besar atau sama dengan
= sama dengan
≠ tidak sama dengan
34. B. TIPE DATA BENTUKAN
Tipe data bentukan adalah tipe data yang berasal atau disusun dari tipe
data dasar
1. String
String adalah urutan karakter dengan panjang tertentu yang
membentuk satu kata atau kalimat. String merupakan gabungan dari
tipe karakter yang biasanya diapit oleh dua tanda kutip.
Domain Nilai : nilai yang didefinisikan pada domain karakter
Nama Tipe yang ditulis : String
Contoh: nama, alamat, judul
Operasi String
a. Operasi Penggabungan: +
b. Operasi Pembandingan:
< lebih kecil
≤ lebih kecil atau sama dengan
> lebih besar
≥ lebih besar atau sama dengan
= sama dengan
≠ tidak sama dengan
35. 2. Record
Tipe terstruktur adalah tipe yang berbentuk rekaman
(record). Rekaman disusun oleh satu atau lebih dua field
yang tipe datanya tersusun dari tipe data dasar.
Deklarasi : type variabelRekaman : < var1 : tipe data dasar,
var2: tipe data dasar,
........
>
Contoh:
Type DataMhsw : record
< nim : integer,
nama_mhsw : string,
umur : integer,
jenis_kelamin: char
>
36. 3. Array (larik)
Array adalah tipe data bentukan yang merupakan wadah
untuk menampung beberapa nilai data yang sejenis.
Kumpulan bilangan bulat adalah: Array Integer
Kumpulan bilangan tidak bulat adalah: Array Real
Cara mendefinisikan:
Nilai_ujian : array [1 .. 10] of integer; atau
int nilai_ujian[10]
37. 1. MATLAB Windows
The MATLAB Command Window is the main window where you type commands
directly to the MATLAB interpreter. The MATLAB Editor Window is a simple text
editor where you can load, edit and save complete MATLAB programs. The Editor
window also has a menu command (Debug/Run) which allows you to submit the
program to the command window. The MATLAB Help Window gives you access to
a great deal of useful information about the MATLAB language and MATLAB
computing environment. It also has a number of example programs and tutorials.
2. A first program
The command
disp(argument);
displays the value of the argument. This can be a number, a string in single
quotes, or an expression. For simple numbers, the arithmetic operators are: +, -,
*, / and ^. Try
disp(2*3+1);
or
disp(’Hello World!’);
Try these programs out first on the command line; then practise using the editor
to enter the commands, saving them to a file, loading the file and running the
program from inside the editor.
38. 3. Variables and assignment
Variables are named locations in memory where numbers, strings and
other elements of data may be stored while the program is
working. Variable names are combinations of letters and digits, but
must start with a latter. MATLAB does not require you to declare the
names of variables in advance of their use. This is actually a common
cause of error, since it allows you to refer accidentally to variables that
don’t exist. To assign a variable a value, use the assignment
statement. This takes the form
variable=expression;
for example
a=6;
or
name=’Mark’;
To display the contents of a variable, use
disp(variable);
39. 4. Arrays
MATLAB is particularly powerful in the way it deals with tables of data, called
arrays. An array is simply a variable that can contain a number of values arranged
in tabular form. Arrays may be one dimensional (like a list), two dimensional (like
a table), or have more dimensions. To set the value of one element of a one
dimensional array, use the notation
variable(index)=expression;
for example
table(1)=3;
table(2)=6;
Note that indexes must be expressions evaluating to positive integers. The
smallest index is 1. To access one element from a one dimensional array, use the
notation
variable(index)
for example
a=table(2);
disp(table(2));
For two dimensional arrays, use
variable(index,index)=expression;
to set the value and
variable(index,index)
to retrieve its value. You can store strings in tables, but each string occupies a
row, and all rows must be the same length (think of a two-dimensional array of
characters).
40. You can assign a whole array in one operation using a notation involving square
brackets: for example:
array = [ v11 v12 v13; v21 v22 v23];
where v11 is the value in row 1 col 1; v21 is the value in row 2 col 1; etc. The ‘;’
marks the end of a row.
You can generate arrays containing sequences very easily with the ‘:’
operator. The expression
start:stop
generates a sequence of integers from start to stop. The expression
start:increment:stop
generates a sequence from start to stop with the specfied increment. Try
disp(1:10);
disp(1:2:10);
41. You can also select sub-parts of the array with the ‘:’ operator. For example,
x(3:5)
represents the array consisting of the third through fifth elements of x. Also
y(2:2:100)
represents the array containing the even number elements of y below index
100.
You can also add subtract, multiply and divide arrays of data using the operators
we’ve mentioned previously. However MATLAB makes a difference between
operations that work on a cell-by-cell basis (so-called “dot” operations) as
opposed to operations that work on the arrays as a whole. For example, if you
want to multiply two arrays of equal size to give a third array in which each cell
contains the product of the corresponding cells in the input, then you need to
use the “dot-multiply” operator .* for example
C = A.*B;
Finally you can transpose rows and columns of a matrix with the ' operator, for
example
disp(A')
42. Exercises
For these exercises, use the editor window to enter your code, and save
your answers to files under your account on the central server. To run the
programs, use the Debug/Run menu option or cut and paste the code into
the command window. When you save the files, give them the file
extension of ".m".
1. Write a program (ex21.m) to assign the following expressions to a
variable A and then to print out the value of A.
a)
b)
c)
d) (0.0000123 + 5.67×10
-3) × 0.4567×10-4
% ex21.m
A = (3+4)/(5+6);
disp(A);
A=2*pi*pi;
disp(A);
A=sqrt(2);
disp(A);
A=(0.0000123+5.67E-3)*0.4567E-4;
disp(A);