Algoritma Pemrograman I

advertisement
Algoritma
Pemrograman I
KONSEP DASAR
Apakah Algoritma itu?
• Masalah adalah pertanyaan atau tugas yang kita cari
jawabannya.
• Untuk masalah yang kecil, dapat ditemukan solusi dengan
mudah dan cepat.
• Jika masalah berukuran besar? Perlu dilakukan langkahlangkah pengurutan untuk menghasilkan solusi.
• Prosedur yang berisi langkah-langkah penyelesaian masalah
disebut algoritma
Pengertian Algoritma
Algoritma adalah urutan langkah-langkah untuk memecahkan
suatu masalah
Definisi lain algoritma menurut:
1. Anany Levitin, algoritma adalah deretan instruksi yang jelas
untuk memecahkan masalah yaitu untuk memperoleh
keluaran yang diinginkan dari suatu masukan dalam jumlah
waktu yang terbatas.
2. Thomas H. Cormen, algoritma adalah prosedur komputasi
yang terdefinisi dengan baik yang menggunakan beberapa
nilai sebagai masukan dan menghasilkan beberapa nilai yang
disebut keluaran.
3. Microsoft Bookshelf, algoritma adalah urutan langkah
berhingga untuk memecahkan masalah logika atau
matematika
Apakah Pemrograman itu?
• Algoritma baru efektif jika dijalankan oleh sebuah pemroses
(processor)
• Menurut Les Goldschlager, suatu pemroses harus:
1.
2.
Mengerti setiap langkah dalam algoritma
Mengerjakan operasi yang bersesuaian dengan langkah
tersebut
• Algoritma yang ditulis dalam bahasa komputer dinamakan
program
• Bahasa komputer yang digunakan dalam menulis program
disebut bahasa pemrograman
• Orang yang membuat program komputer dinamakan
pemrogram (programmer)
• Kegiatan merancang dan menulis program disebut
pemrograman
Langkah-langkah pemrograman
1.
2.
3.
4.
5.
6.
7.
Mendefinisikan masalah
Menentukan solusi
Memilih algoritma
Menulis program
Menguji program
Menulis dokumentasi
Merawat program
Contoh algoritma sederhana 1
Menulis Surat:
1. Mempersiapkan kertas dan amplop
2. Mempersiapkan alat tulis
3. Mulai menulis
4. Memasukkan kertas ke dalam amplop
5. Pergi ke kantor pos untuk mengirimkan surat
Contoh algoritma matematika 1
• Menghitung luas lingkaran:
𝐿 = πœ‹π‘Ÿ 2
1. Masukkan R
2. Pi οƒŸ 3.14
3. L οƒŸ Pi * R * R
4. Tulis L
Contoh algoritma matematika 2
• Menuliskan nilai absolut:
π‘₯ = π‘₯ π‘—π‘–π‘˜π‘Ž π‘₯ ≥ 0
π‘₯ = π‘₯ π‘—π‘–π‘˜π‘Ž π‘₯ < 0
1. Masukkan x
2. Jika (π‘₯ < 0) maka kerjakan baris 3, jika tidak kerjakan baris 4
3. π‘₯οƒŸ -π‘₯
4. Tulis π‘₯
Contoh algoritma matematika 3
• Menghitung rata-rata:
π‘₯=
𝑁
𝑖=1 π‘₯𝑖
𝑁
1. Masukkan N
2. π‘–οƒŸ 1
3. π‘—οƒŸ 0
4. Selama (𝑖<=N) kerjakan baris 4 sampai dengan 7
5. Masukkan 𝑑𝑑
6. π‘–οƒŸ 𝑖 + 1
7. π‘—οƒŸ 𝑗 + 𝑑𝑑
8. Rata-rata οƒŸ 𝑗/N
9. Tulis rata-rata
Catatan Akhir..
• Algoritma sebenarnya digunakan untuk membantu kita dalam
mengonversikan suatu permasalahan ke dalam bahasa
komputer.
Tipe Data
• Variabel adalah tempat dimana mengisi atau mengosongkan
nilai dan memanggil kembali. Setiap variabel memiliki nama
(identifier) dan nilai. Misal:
Username = “Ryan”;
Password =“123456”;
• Konstanta adalah variabel yang nilai datanya bersifat tetap
dan tidak bisa diubah. Misal:
pi = “3.14”;
• Tipe data adalah jenis data yang dapat diolah komputer untuk
memenuhi kebutuhan dalam pemrograman.
• Setiap variabel atau konstanta dalam kode program, tentukan
dengan pasti tipe datanya.
Macam-macam Tipe Data
1. Tipe Sederhana
a)
Tipe Ordinal
•
•
•
•
•
Tipe Bilangan Bulat
Tipe Boolean
Tipe Karakter
Tipe Terbilang
Tipe Subjangkauan
b) Tipe Real
2.
3.
4.
5.
6.
Tipe String
Tipe Terstruktur
Tipe pointer
Tipe Prosedural
Tipe Objek
Tipe Bilangan Bulat
Digunakan untuk menyimpan bilangan bulat.
Tipe
Range
Ukuran
Shortint
Integer
Longint
Byte
Word
128...127
-32768..32767
-2147483648..2147483647
0..255
0..65535
8 bit
16 bit
32 bit
8 bit
16 bit
Contoh:
• Mendeklarasikan dua variabel bertipe integer yaitu x dan y
var
x, y : integer;
Tipe Boolean
Tipe yang hanya dapat bernilai benar atau salah.
Tipe Data
Ukuran
Boolean
ByteBool
WordBool
LongBool
1 Byte
1 Byte
2 Byte
4 Byte
• Yang paling sering digunakan adalah tipe boolean.
• Mendeklarasikan variabel bertipe boolean
var
b1: boolean;
• Ada dua macam nilai yang diberikan
b1:= true;
b1:= false;
Tipe Karakter
• Digunakan untuk menyimpan data alfanumeris
• Tipe karakter dideklarasikan dengan kata kunci char
var
ch: char;
• Cara memberi nilai pada variabel bertipe karakter:
οƒΌMenuliskan karakter didalam tanda petik
ch := ‘A’;
οƒΌMenuliskan tanda # diikuti dengan nomor ASCII
ch := #65;
οƒΌMengonversikan nomor ASCII ke karakter menggunakan fungsi
chr
ch := chr(65);
Tipe Subjangkauan
• Mendeklarasikan tipe yang berada pada jangkauan tertentu
• Pendeklarasian dilakukan dengan menuliskan batas bawah dan
batas atas jangkauannya.
type
Bulan = 1 . . . 12;
• Mendeklarasikan tipe Bulan yang memiliki jangkauan 1
sampai 12, maka variabel bertipe Bulan, seperti:
var
januari : Bulan;
• Tidak bisa memberikan nilai kurang dari 1 atau lebih dari 12
Januari := 1;
Tipe Terbilang
• Memberi nama pada nilai tertentu. Contoh:
type
TipeHari = (Minggu, Senin, Selasa, Rabu, Kamis,
Jumat, Sabtu);
• Dengan pendeklarasian TipeHari, tidak perlu menggunakan
angka 0 sampai 6 untuk menjelaskan hari.
• Dapat menuliskan variabel Hari yang bertipe TipeHari
var
Hari : TipeHari;
Tipe Real
• Digunakan untuk menyimpan bilangan real
Tipe Data
Range
Ukuran
Real
Single
Double
Extended
Comp
2.9*10−39 .. 1.7*1038
1.5*10−45 .. 3.4*1038
5.0*10−324 .. 1.7*10308
3.4*10−4932 .. 1.1*104932
−263 +1 .. 263 -1
6 byte
4 byte
8 byte
10 byte
8 byte
• Mendeklarasikan dua variabel bertipe real, yaitu x dan y, serta
satu variabel bertipe double yaitu z
var
x, y : real;
z : double;
• Cara pemberian nilai:
οƒΌMenuliskan nilai dengan tanda titik eksponen x := 123.45;
οƒΌMenuliskan nilai dengan eksponen x := 1.2345E+2;
Tipe String
• Digunakan untuk menyimpan data yang berupa untaian
karakter
• Mendeklarasikan digunakan kata string
var
kalimat : string;
• Pemberian nilai pada string dilakukan dengan meletakkan
untaian karakter diantara tanda petik tunggal
kalimat := ‘Algoritma Pemrograman’;
Tipe Larik
• Mendeklarasikan kumpulan variabel yang bertipe sama
• Bentuk umum:
var
nama_larik: array [batas_bawah .. batas_atas]
of tipe_larik;
• Membuat delapan variabel bertipe Longint. Tanpa
menggunakan larik, mendeklarasikan variabel dengan cara:
var
a1, a2, a3, a4, a5, a6, a7, a8 : longint;
• Dengan larik sederhanakan deklarasi kedelapan variabel
menjadi
var
a: array [1 .. 8] of longint;
Tipe Himpunan
• Digunakan untuk menyimpan kumpulan nilai yang bertipe
sama. Contoh:
type
HimpunanKarakter = set of char;
• Mendeklarasikan tipe HimpunanKarakter sebagai himpunan
dari karakter. Contoh variabel yang dideklarasikan;
var
Vokal : HimpunanKarakter
Huruf : HimpunanKarakter
• Pemberian nilai pada tipe himpunana dilakukan dengan
menuliskan anggota himpunan dalam kurung siku ([dan ])
Vokal : = [‘A’, ‘I’, ‘U’, ‘E’, ‘O’]
Huruf := [‘A’ .. ‘Z’]
Macam-macam Operator
1.
2.
3.
4.
5.
6.
7.
Operator pemberian nilai
Operator aritmetik
Operator pemanipulasi bit
Operator boolean
Operator pembanding
Operator himpunan
Operator string
Operator Pemberian Nilai
• Pemberian nilai dilakukan dengan menggunakan tanda :=
• Contoh:
A := 12 ;
(untuk tipe bilangan bulat)
B := ‘Halo’ ;
(untuk tipe string)
C := 3.14;
( untuk tipe real)
D := [3, 4, 5]; (untuk tipe himpunan)
Operator Aritmetik
• Dapat dikenakan pada operan bertipe bilangan bulat atau real
1. Operator aritmetik tunggal
Operator
Operasi
Tipe Operan
Tipe hasil
+
Identitas
Bilangan bulat
Bilangan real
Bilangan bulat
Bilangan real
-
Invers
Bilangan bulat
Bilangan real
Bilangan bulat
Bilangan real
2. Operator aritmetik biner
Operator
Operasi
+
Penjumalahan
-
Pengurangan
*
Perkalian
/
Pembagian
div
Pembagian bilangan bulat
mod
Sisa pembagian modulus
Operator Aritmetik lanj.
• Contoh pegunaan Operator Aritmetik Tunggal
x := -y ; οƒ  yang artinya nilai x sama dengan invers dari nilai y.
x := +y; οƒ  yang sama artinya dengan x := y
• Contoh penggunaan Operator Aritmetik Biner:
x := y + z;
x := a – b – c – d;
x := 5 * 9 * 3.14;
x := a / b ;
x := 10 div 2;
x := i mod j;
Operator Pemanipulasi Bit
• Berhubungan dengan pemanipulasian bit pada operan,
misalnya menggeser bit ke kanan, memutar bit kekiri, dll.
Operator
Operasi
not
and
or
xor
shl
shr
Invers
Logika and
Logika or
Logika xor
Penggeseran bit ke kiri
Penggeseran bit ke kanan
• Operator and, or dan xor mengevaluasi bit pada operannya.
Hasilnya:
A
B
not A
not B
A and B
A or B
A xor B
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
Operator Boolean
• Dikenakan pada tipe operan bernilai boolean
Operator
Operasi
not
and
or
xor
Negasi
Logika and
Logika or
Logika xor
• Hasil operator not, and, or dan xor untuk berbagai kombinasi
kondisi
A
B
not A
not B
A and B
A or B
A xor B
false
false
true
true
false
true
false
true
true
true
false
false
True
false
true
false
false
false
false
true
false
true
true
true
false
true
true
false
Operator Pembanding
• Digunakan untuk membandingkan dua buah operan
• Hasil dari operator bernilai benar atau salah
Operator
=
<>
<
>
<=
>=
• Contoh:
a:= 5 = 6;
a:= 5 <>6;
a:= 5 < 6;
a:= (3<4) and (5 > 6);
Operasi
Sama dengan
Tidak sama dengan
Kurang dari
Lebih dari
Kurang dari sama dengan
Lebih dari sama dengan
( a = false karena 5 tidak sama dengan 6)
( a= true)
( a= true)
(a=false karena 5 < 6)
Operator Himpunan
• Digunakan pada tipe himpunan
Operator
+
*
In
Operasi
Union
Selisih
Interseksi
Anggota dari
• Contoh:
A := B + C;
menggabungkan semua anggota himpunan B dan C ke dalam A.
Jika A, B dan C bertipe set of char dan nilai A dan b masingmasing adalah [‘A’], [‘B’] dan [‘C’], maka variabel C bernilai
[‘A’, ‘B’, ‘C’],
Operator String
• Hanya mengenal satu macam operator string yaitu
penggabungan
• Digunakan untuk menggabungkan dua atau lebih operan
string menjadi sebuah string yang lebih panjang
• Simbolnya adalah ( + )
• Contoh:
S:= ‘Turbo’ + ‘Pascal’;
Sama artinya dengan Turbo Pascal
Soal..
1. Jika x=integer, mana nilai yang bisa diberikan ke x?
a.
b.
c.
d.
$a
10.1
4000
Alpro
2. Jika y=real, mana nilai yang bisa diberikan ke y?
a.
b.
c.
d.
.3
1E2
3E+4.2
3,14
3. Ubah bentuk ekspresi matematika ke dalam bahasa
program
a. 𝐸 = π‘š. 𝑐 2
b. 𝐿 =
c.
𝑐=
1
. πœ‹. 𝑑 2
4
π‘Ž2 + 𝑏 2
1
d. 𝐿 = 2 π‘Ž. 𝑏 sin πœƒ
1
2
e.
𝑆 = 𝑣. 𝑑 + π‘Ž. 𝑑 2
f.
−𝑏+ 𝑏2 −4.π‘Ž.𝑐
2.π‘Ž
π‘₯=
Download