Dasar Pemrograman Sub pokok bahasan Program

advertisement
1/8/2011
Pertemuan 13-14:
Dasar Pemrograman
Sub pokok bahasan
Penerapan Komputer (KOM201), SKS: 3(2-2)
Departemen Ilmu Komputer, FMIPA-IPB
Program Komputer dan Bahasa
Pemrograman
Program komputer: sekumpulan instruksi yang mengarahkan
komputer untuk melalukan tugas tertentu.
Bahasa pemrograman digunakan untuk menulis instruksi
Bahasa pemrograman: kumpulan dari kata-kata yang sudah
didefinisikan sebelumnya (predefined words) yang dikombinasikan dengan
menggunakan sintaks
Sintaks: suatu aturan yang sudah
didefinisikan sebelumnya
(predefined rules).
Programmer, kadang-kadang
dinamakan developer, membuat
atau memodifikasi program
komputer
Program Komputer
dan Bahasa Pemrograman
Low-level language dan high-level language
Low-level
language
Bersifat machine-dependent
hanya berjalan pada satu tipe
komputer
Contoh: bahasa mesin dan
bahasa assembly
High-level
language
Umumnya bersifat machineindependent
dapat berjalan pada tipe-tipe
komputer yang berbeda
Departemen Ilmu Komputer, FMIPA-IPB
Low-Level Language – bahasa mesin
Departemen Ilmu Komputer, FMIPA-IPB
Bahasa simbolik (symbolic language)
Muncul tahun 1950an
Dibuat oleh Grace hopper,
seorang matematikawan
menggunakan simbol untuk
mewakili instruksi-instruksi
pada bahasa mesin.
symbolic language disebut juga
assembly language.
assembler digunakan untuk
menerjemahkan simbol ke
dalam instruksi yang
sebenarnya dalam bahasa mesin
Bahasa yang dikenali oleh
komputer secara langsung
Muncul sekitar tahun 1940an
Masing-masing jenis komputer
pada masa itu memiliki bahasa
mesinnya sendiri.
Departemen Ilmu Komputer, FMIPA-IPB
1.
2.
3.
4.
5.
entry main, ^m<r2>
subl2 #12, sp
jsb C$MAIN_ARS
movab $CHAR_STRING_CON
pushal -8(fp)
Departemen Ilmu Komputer, FMIPA-IPB
1
1/8/2011
Low-Level Language – Bahasa Assembly
Bahasa Pemrograman Tingkat Tinggi
Muncul tahun 1960an
Bahasa tingkat tinggi dirancang
sehingga programmer tidak lagi
harus memikirkan pengkodean
sebuah instruksi mesin ke dalam
simbol-simbol.
Contoh: BASIC, COBOL, Pascal,
Ada, dan C.
Seperti bahasa simbolik, harus
dikonversi ke dalam bahasa
mesin.
Instruksi-instruksi dibuat
dari kode instruksi simbolik,
singkatan yang memiliki
makna dan kode
Source program mengandung
kode yang dikonversi ke
bahasa mesin
Departemen Ilmu Komputer, FMIPA-IPB
Bahasa Pemrograman Tingkat Tinggi -
Compiler
1. # include <iostream.h>
2. int main (void)
3. {
4. // Local declarations
5. int number1;
6. int number2;
7. int result;
8. // Statements
9. cin >> number1;
10. cin >> number2;
11. result = number1*number2;
12. cout << result;
13. return 0;
14.} //main
Proses penerjemahan ke dalam bahasa mesin disebut proses
kompilasi (compilation)
Departemen Ilmu Komputer, FMIPA-IPB
Langkah mendapat executable (machine
language) file
Program setelah ditulis dan disimpan dalam tempat
penyimpanan disebut sebagai source file.
Source file dikompilasi ke dalam bahasa mesin menjadi object file
Object file kemudian mengalami proses ketiga yang disebut
dengan linking process.
Linker akan menghubungkan semua fungsi yang terdapat dalam
program dengan modul dan library yang diperlukan untuk
menghasilkan executable file.
Program yang mengkonversi
seluruh source program ke
dalam bahasa mesin sebelum
program tersebut dieksekusi
Langkah mendapat executable
(machine language) file:
menulis dan mengedit
program
kompilasi terhadap
program
link program dengan
modul dan library yang
dibutuhkan
Departemen Ilmu Komputer, FMIPA-IPB
Bahasa Pemrograman Tingkat Tinggi -
Interpreter
Departemen Ilmu Komputer, FMIPA-IPB
Kategori dan Contoh Bahasa
Pemrograman tingkat tinggi
Interpreter
1. membaca sebuah pernyataan dan
2. mengkonversinya ke satu atau
lebih instruksi bahasa mesin dan
3. kemudian mengeksekusi instruksi
bahasa mesin tersebut.
Ketika menemukan error pada saat
mengkonverksi satu baris kode
program, pesan error akan segera
ditampilkan pada layar dan program
berhenti dieksekusi.
interpreter tidak menghasilkan object
program.
Bahasa prosedural mengeksekusi setiap baris perintah satu persatu dari awal
sampai akhir sesuai dengan urutan prosedur yang terdapat didalamnya.
Contoh: FORTRAN, COBOL, Pascal, C, dan Ada.
Disebut juga bahasa generasi ketiga (third-generation languange (3GL)
Bahasa berorientasi obyek memiliki pandangan yang berbeda untuk
menyelesaikan masalah.
Bahasa berorientasi obyek memecah masalah menjadi obyek-obyek yang
saling berkaitan.
Contoh: C++ dan Java.
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
2
1/8/2011
Kategori dan Contoh Bahasa
Pemrograman tingkat tinggi
Algoritme
Bahasa fungsional, sebuah program dianggap sebagai sebuah
fungsi matematika.
Contoh: LISP dan Scheme.
Bahasa deklaratif menggunakan prinsip logika matematika
untuk menjawab masalah yang ada.
Program terdiri dari beberapa statement pendahuluan yang memuat
fakta, untuk kemudian diakhiri dengan beberapa kesimpulan.
Contoh: Prolog.
Beberapa bahasa dikembangkan untuk berbagai keperluan
khusus.
Algoritme: urutan langkah-langkah terurut yang digunakan
untuk menyelesaikan masalah.
dibuat untuk membantu penulisan program.
•
Algoritme harus memenuhi sifat-sifat berikut:
Langkah-langkah dalam algoritme harus sederhana dan
tidak memiliki arti ganda.
Algoritme harus efektif bahwa algoritme harus selalu
menyelesaikan masalah dalam sejumlah langkah berhingga.
Contoh: PERL dan SQL.
Departemen Ilmu Komputer, FMIPA-IPB
Tahap penyelesaian masalah
menggunakan komputer
Departemen Ilmu Komputer, FMIPA-IPB
Deskripsi Algoritme
Tahap penyelesaian
masalah
Penyelesaian dalam
bentuk algoritme
Langkah-langkah verbal.
Diagram alur (flow chart), diagram alur menunjukkan logika
dari algoritme yang menekankan langkah-langkah individual
dan hubungannya.
Simbol dalam diagram alur:
Tahap
implementasi
Penyelesaian sebagai
suatu program
komputer
proses
keputusan
input
Departemen Ilmu Komputer, FMIPA-IPB
output
Departemen Ilmu Komputer, FMIPA-IPB
Contoh algoritme sederhana:
Langkah-langkah verbal
Diberikan dua bilangan bulat (dalam variabel a dan b).
Algoritme Tambah menentukan jumlah dari dua bilangan
bulat dan mencetak hasil penjumlahan tersebut.
Hasil penjumlahan disimpan dalam variabel jumlah.
Algoritme Tambah
1 [Input dua bilangan bulat]
baca(a,b)
2 [Hitung penjumlahan dua bilangan]
jumlah ← a + b
3 [Output]
cetak(jumlah)
Keterangan:
•
Kalimat dalam kurung siku adalah
keterangan yang memberikan penjelasan
singkat tentang langkah tertentu.
∀
← menyatakan operator penugasan
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
3
1/8/2011
Contoh 1
Langkah-langkah verbal
Diberikan alas segitiga (dalam variabel alas) dan tinggi
segitiga (dalam variabel tinggi).
Algoritme Segitiga menentukan luas segitiga (disimpan
dalam variabel luas) berdasarkan nilai alas dan tinggi yang
diberikan.
Algoritme volume_balok
1 [Input sisi1,sisi2,sisi3]
baca(sisi1,sisi2,sisi3)
2 [Hitung volume balok]
volume ← sisi1*sisi2*sisi3
3 [Output]
cetak(volume)
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
Contoh 2
Diberikan panjang dari sisi segitiga (dalam variabel sisi1, sisi2).
Algoritme Phytagoras menentukan dan mencetak panjang sisi
ke 3 (sisi3).
sisi1
sisi3
Algoritme Phytagoras
1 [Input sisi yang diketahui]
baca(sisi1, sisi2)
2 [Hitung kuadrat dari panjang sisi yang
diketahui]
SQ1 ← sisi1↑2
SQ2 ← sisi2↑2
(Maksud dari tahap ini adalah untuk mengurangi
kompleksitas dari pernyataan dalam langkah 3)
3 [Hitung panjang sisi miring]
sisi3 ← SQRT(SQ1+SQ2)
(SQRT menunjukkan operasi akar kuadrat)
4 [Output]
cetak(sisi1,sisi2,sisi3)
Latihan: buat diagram alur untuk Algoritme Phytagoras
sisi2
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
Dasar Pemrograman Pascal
Struktur Bahasa Pascal
Sejarah perkembangan Pascal dimulai pada tahun 1960, yaitu ketika
bahasa ALGOL 60 digunakan sebagai algorithmic language.
Nama Pascal diambil dari nama seorang ahli matematika dan ilmu
pengetahuan bangsa Perancis, yaitu Blaise Pascal (1623-1662).
Secara garis besar, Pascal terdiri dari tiga bagian utama,
yaitu :
Bagian Judul Program (Nama Program).
Blok program, terdiri dari 2 bagian:
Bagian Deklarasi : Terdiri dari
Deklarasi / Definisi Tipe Data
Deklarasi / Definisi Konstanta
Deklarasi Label
Deklarasi Variabel
Deklarasi Procedure dan/atau Function
Tampilan Editor Turbo
Pascal for Windows
Versi 1.5
Bagian pernyataan
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
4
1/8/2011
Program hello world
{1}
{2}
{3}
{4}
{5}
{6}
{7}
Contoh 1: Program Tambah
program hello_world; uses wincrt;
var
world_stmt: string;
begin
world_stmt := 'Hello world!';
writeln(world_stmt);
end.
Departemen Ilmu Komputer, FMIPA-IPB
Contoh 2: Program Segitiga
Program Tambah;
{Judul Program}
Var x,y,z : integer;
{Deklarasi Variabel}
Begin
x := 20;
y := 30;
x : = 10;
z := x + y;
End.
{Awal Program }
{Akhir Program}
Departemen Ilmu Komputer, FMIPA-IPB
Contoh 3: Program Volume Balok
Program Segitiga; {Judul Program}
Var alas,tinggi,luas : real;
{Deklarasi Variabel}
Program volume_balok;
{Judul Program}
Var sisi1,sisi2,sisi3,volume : integer;
{Deklarasi Variabel}
Begin
{Awal Program }
alas := 20;
tinggi := 30;
luas := (alas*tinggi)/2;
End.
{Akhir Program}
Begin
{Awal Program }
sisi1:= 20; sisi2:= 25; sisi3:= 30;
volume := sisi1*sisi2*sisi3;
End.
{Akhir Program}
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
Pengertian Identifier
Ketentuan penulisan identifier:
Identifier diperlukan sebagai tanda pengenal untuk mencapai
suatu lokasi memori.
Identifier digunakan untuk :
1. Identifier harus dimulai oleh karakter huruf, yaitu : a ... z,
atau A ... Z , atau karakter garis bawah (underscore) yaitu _
2. Karakter berikutnya boleh menggunakan karakter numerik
yaitu 0 ... 9 atau kombinasi dari karakter huruf dan
numerik.
3. Jumlah karakter yang digunakan tergantung dari versi
Pascal, tetapi umumnya tidak lebih dari 63 karakter, secara
praktis angka ini sudah lebih dari cukup.
4. Tidak boleh menggunakan karakter istimewa.
5. Tidak membedakan huruf besar (kapital) dengan huruf
kecil (Not Case Sensitive).
Nama Program
Nama Variabel, Konstanta, Label dan Tipe Data
Nama Procedure dan Function.
dengan identifier maka objek-objek pemrograman dipanggil
untuk digunakan.
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
5
1/8/2011
Karakter istimewa
Fungsi karakter-karakter istimewa
adalah karakter karakter yang telah dicadangkan untuk
keperluan tertentu seperti sebagai operator atau sebagai
pembatas dan sebagainya.
Karakter istimewa yang dimaksud adalah :
+ - * / = < > [ ] .,( ) 0 :;^ @ { } $ #
+ - * / digunakan untuk operasi aritmatika
= < > digunakan untuk operasi relasional
. ; sebagai delimiter , batas suatu program, statemen
atau procedure
{ } sebagai tanda yang membatasi suatu komentar,
dan sebagainya.
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
Jenis Identifier
Contoh penulisan identifier yang benar
A ; _B ; B2 ; Sudut_A ; LuasLingkaran ;ABC3FG ;
IdentifierYangSangatPanjang
Contoh penulisan identifier yang salah
•
•
•
•
2D, karena karakter numerik tidak boleh ditulis pada posisi awal
Sisi B, karena tidak diijinkan adanya karakter kosong (blank)
Sudut-C, karena tanda - digunakan sebagai operator minus
BC#, karena karakter # adalah karakter istimewa.
Departemen Ilmu Komputer, FMIPA-IPB
Variabel dan Konstanta
Identifier Umum adalah identifier yang dapat ditulis secara
bebas, sepanjang mengikuti aturan-aturan di atas.
Identifier Standar adalah identifier yang pada dasarnya telah
digunakan oleh Pascal di dalam kepustakaannya, walaupun
demikian pemrogram boleh mendeklarasikan kembali. Sebagai
contoh dari identifier standar yang digunakan oleh TURBO
Pascal, adalah : pi, blue, maxint, dsb.
Identifier Terlindung (Kata Terlindung) juga digunakan oleh
Pascal, tetapi sama sekali tidak boleh dideklarasikan kembali
oleh pemrogram , contoh identifier terlindung atau kata
terlindung (reserved word):
program, begin, end, var, const, type, while, do dsb.
Departemen Ilmu Komputer, FMIPA-IPB
Mendeklarasikan variabel adalah
Variabel adalah konsep matematis yang menggunakan
simbol, dimana simbol tersebut dapat dioperasikan
dengan nilai yang berbeda dan boleh berbeda pada
setiap saat tergantung keperluan.
Konstanta, sebuah lokasi memori yang telah diberi
identifier, hanya saja isi dari lokasi tersebut tetap
sepanjang program berjalan.
Variabel dan kosntanta keterkaitan dengan tipe data dan
seperangkat operator.
Departemen Ilmu Komputer, FMIPA-IPB
1. Menentukan atau memberi identitas dengan cara
memberi nama variabel
2. Menentukan tipe data
Contoh deklarasi variabel :
var x,y : integer;
Z: real;
Departemen Ilmu Komputer, FMIPA-IPB
6
1/8/2011
Mendefinisikan konstanta adalah
Tipe Data
1. Menentukan atau memberi identitas dengan cara
memberi nama konstanta
2. Menentukan nilai konstanta, dari nilai konstanta tersebut
dapat diketahui tipe data.
Contoh deklarasi konstanta :
const k = 10;
Const phi = 3.14;
Tipe Data
1. Tipe Data Sederhana
sederhana
Integer (Bilangan Bulat)
Real (Bilangan Pecahan)
Char (Karakter
Integer
alphanumerik dan tandatanda baca)
Boolean (Logika)
2. Tipe Data Terstruktur
Array
Record,
Set dan
File
3. Tipe Data Pointer
Ukuran
Lokasi
Rentang Nilai
2 Byte
- 32768 s/d
32767
Real
6 Byte
29 x 10 -39 s/d
1.7 x 10 38
Char
1 Byte
Boolean
1 Byte
Departemen Ilmu Komputer, FMIPA-IPB
Tabel ASCII
False, True
Departemen Ilmu Komputer, FMIPA-IPB
Tipe Data Char
Tipe Data String dan Boolean
Tipe char merupakan tipe data yang non-numerik, nilai yang
dapat diberikan kepada suatu variabel dengan tipe data char,
adalah semua karakter yang ada di tabel ASCII
Contoh deklarasi variabel char :
var c : char;
Contoh deklarasi konstanta char :
const Tidak = ‘T’;
Penulisan karakter adalah dengan mengapit karakter
dengan tanda petik tunggal ('), sebagai contoh, karakter A harus
ditulis 'A', demikian juga karakter numerik, misalnya karakter
numerik 6 harus ditulis '6'.
Tipe data string
yaitu tipe data yang dapat mendeklarasikan suatu variabel sehingga
dapat menampung lebih dari satu karakter.
Bila suatu variabel direncanakan untuk menampung 10 karakter,
maka ia harus dideklarasikan sebagai tipe string, yaitu dengan
deklarasi variabel :
var s : string[10];
Deklarasi konstanta string :
const E = ‘Tekan Tombol Enter’;
Tipe data Boolean
Mempunyai dua kemungkinan nilai : True atau False.
Contoh deklarasi tipe boolean :
var sukses : boolean;
Departemen Ilmu Komputer, FMIPA-IPB
Operator
Departemen Ilmu Komputer, FMIPA-IPB
Operator Logika
• Beberapa jenis operator standar, yaitu operator aritmatika,
boolean, relational, set dan string,
Operator Aritmetika
Operator
Operasi
Tipe
Operand
Tipe hasil
Operasi
Tipe Operand
Tipe hasil
Not
Negasi
Boolean
Boolean
+
Penambahan
Integer, real
Integer atau real
and
Logika AND
Boolean
Boolean
-
Pengurangan
Integer
real
Integer
Real
or
Logika OR
Boolean
Boolean
*
Perkalian
Integer
real
Integer
Real
Xor
Logika XOR
Boolean
Boolean
/
Pembagian
Integer
Real
Real
Real
mod
Pembagian
Integer
Sisa bagi
Integer
Operator
div
Integer
DepartemenInteger
Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
7
1/8/2011
Operator Relasional
Operator
Tipe Operand
Tipe hasil
Sama Dengan
Sederhana,String
Pointer, dan Set
Boolean
Tidak Sama
Dengan
Idem
<
Lebih Kecil Dari
Sederhana,String
>
Lebih Besar Dari
Idem
Boolean
<=
Lebih Kecil atau
Sama Dengan
Idem
Boolean
Lebih Besar atau
Sama Dengan
Idem
Boolean
=
<>
>=
Operasi
Ekspresi
Boolean
Boolean
kombinasi atau gabungan antara operator dengan
operand (variabel, konstanta, bilangan dsb.), contoh
ekspresi yang paling sederhana adalah sebuah variabel,
misalkan :
var a : integer;
variabel a merupakan ekspresi yang paling sederhana, karena
ekspresi selalu menghasilkan suatu nilai, pada contoh di atas
nilai ekpresi a adalah isi dari variabel a itu sendiri.
Departemen Ilmu Komputer, FMIPA-IPB
Jenis ekspresi sesuai dengan jenis nilai
yang dihasilkan, yaitu :
Ekspresi Numerik, nilainya selalu numerik, integer atau real
Ekspresi Boolean, nilainya selalu boolean, true atau false.
Ekspresi String, dengan nilai string.
Perbandingan Penulisan Ekspresi
Departemen Ilmu Komputer, FMIPA-IPB
Pernyataan seleksi (1)
Konstruksi IF-THEN-ELSE:
IF “kondisi’
THEN “pernyataan 1”
ELSE “pernyataan 2”
Contoh:
Ekspresi Matematika
Ekspresi Pascal
a+b
x(y+z)
b2 - 4.a.c
a+b
x*(y+z)
b*b-4*a*c
IF A > B
Then cetak(A)
Else cetak(B)
Departemen Ilmu Komputer, FMIPA-IPB
Pernyataan seleksi (2)
Departemen Ilmu Komputer, FMIPA-IPB
Masukan dan Keluaran
Pernyataan masukan
read(x);
artinya : masukan data dari papan tombol ke variabel x.
Pernyataan penayangan ke layar
write dan writeln.
write('TEST'); Dengan perintah write, kata TEST akan
ditayangkan di layar monitor,pada posisi kursor sebelum
perintah dijalankan, setelah perintah dijalankan, kursor
pindah ke ujung kata TEST.
writeln('TEST'); Sama seperti perintah write, tetapi
posisi kursor pindah ke baris berikutnya, setelah
perintah writeln dijalankan.
Diagram alur IF-THEN
Diagram alur IF-THEN-ELSE
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
8
1/8/2011
Contoh
Program Rata-rata
Algoritme Rata-rata
1 [Input dua bilangan bulat]
baca(a,b)
2 [Hitung penjumlahan dan rata-rata dua
bilangan]
jumlah ← a + b
rataan ← jumlah/2
3 [Output]
cetak(rataan)
Program rata2;
var a,b,jumlah : integer;
rataan : real;
begin
{1} write('Masukan nilai pertama : ');
readln(a);
{2} write('Masukan nilai kedua : ');
readln(b);
{3} jumlah := a + b;
{4} rataan := jumlah/2;
{4} writeln(‘Rataan = ', rataan:6:2);
end.
Output:
Masukan data pertama : 20
Masukan data kedua : 30
Rataan = 25.00
Departemen Ilmu Komputer, FMIPA-IPB
program phytagoras;
Departemen Ilmu Komputer, FMIPA-IPB
program rataan_nilai;
uses wincrt;
uses wincrt;
var a, b,kuadrat_a, kuadrat_b: integer;
c: real;
begin
write('masukan sisi
write('masukan sisi
kuadrat_a := a*a;
kuadrat_b := b*b;
c:=sqrt(kuadrat_a +
writeln('nilai sisi
1: ');readln(a);
2: ');readln(b);
kuadrat_b);
3: ', c:4:2, ' cm');
end.
var nama : string[10]; nrp: string[9];
n_penkom, n_kimia, rataan:real;
begin
writeln('---------------------------');
write('masukan nama: '); readln(nama);
write('masukan nrp: '); readln(nrp);
write('1. nilai penkom: '); readln(n_penkom);
write('2. nilai kimia: '); readln(n_kimia);
rataan:=(n_penkom+n_kimia)/2;
writeln('rataan : ', rataan:6:2);
writeln('---------------------------');
end.
Departemen Ilmu Komputer, FMIPA-IPB
Tahapan membuat program sederhana
Departemen Ilmu Komputer, FMIPA-IPB
Penutup
1. Definisi masalah
•
IPO chart
2. Pembuatan algoritme
Setelah dibuat, algoritme harus diuji untuk menentukan apakah
algoritme tersebut telah melakukan proses yang benar.
Pengujian algoritme dapat dilakukan dengan memberikan data
untuk variabel input dan mencatat nilai yang diambil oleh variabel
pada setiap langkah dalam algoritme.
Setiap langkah dieksekusi secara berurutan.
3. Implementasi menggunakan bahasa permograman
Departemen Ilmu Komputer, FMIPA-IPB
Departemen Ilmu Komputer, FMIPA-IPB
9
Download