You are on page 1of 5

8/30/2009

Review:
Algoritme dan Program
Algoritme dan
Pemrograman † Program Komputer:
„ Instruksi terstruktur yang disusun dan diberikan
kepada komputer untuk dilaksanakan dengan
menggunakan bahasa pemrograman tertentu,
misalnya C,
C Pascal,
Pascal Basic,
Basic dsb.
dsb
Kuliah #3 „ Implementasi dari algoritme yang telah disusun
• Implementasi algoritme sebelumnya.
• Struktur program C
• Elemen program

DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR

Bahasa mesin
Bahasa Pemrograman (machine language)

† Bahasa pemrograman adalah notasi yang † Bahasa mesin berupa micro-instruction atau
digunakan untuk menulis program (komputer) hardwire
dengan aturan tertentu. † Programnya sangat panjang dan sulit dipahami
† Bahasa ini dibagi menjadi tiga tingkatan yaitu g tergantung
† Sangat g gp
pada arsitektur mesin
„ bahasa mesin,
† Prosesnya sangat cepat dan tidak perlu
„ bahasa tingkat rendah dan
interpreter atau penterjemah
„ bahasa tingkat tinggi.

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

Bahasa tingkat rendah Bahasa tingkat tinggi


(low level language) (high level language)

† Bahasa tingkat rendah berupa macroinstruction † Bahasa tingkat tinggi lebih menyerupai bahasa
(assembly) sehingga sering disebut sebagai manusia sehingga mudah dipahami
bahasa rakitan (assembly language) † Tidak tergantung pada arsitektur mesin tetapi
† Bahasa tingkat rendah tergantung pada memerlukan penterjemah berupa compiler
arsitektur mesin atau interpreter
† Programnya panjang dan sulit dipahami † Terdiri dari banyak model
walaupun prosesnya cepat † Contoh: C, Java, Pascal, dsb
† Jenis bahasa tingkat ini perlu penterjemah
berupa assembler

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

ILKOM IPB 1
8/30/2009

Compiler dan
Interpreter Compiler

† Bahasa program dianalisis dan selanjutnya


Lexical  Syntactic  Type Code  Code 
diterjemahkan ke dalam bentuk yang dapat analyzer analyzer checker optimizer generator
dipahami mesin.
† Proses penterjemahan: Source 
Source
Machine 
code
„ Dijalankan oleh komputer (compiler) – real machine program
Æ compiling (*.c) Computer 
„ Dijalankan oleh interpreter – software yang (*.exe)
mensimulasikan virtual machine dan menjalankan Input
dalam real machine Æ interpreting
Output

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

Interpreter Bahasa C

Abstract  † Bahasa C disusun berdasarkan dua bahasa terdahulu,


syntax yaitu BCPL dan B.
Lexical  Syntactic  Type
Interpreter † BCPL dikembangkan tahun 1967 oleh Martin Richards.
analyzer analyzer checker
† Ken Thompson memodelkan beberapa fitur di dalam
bahasa B bersama rekan-rekannya yang menggunakan
b h
bahasa BCPL untuk
t k membuat
b t sistem
i t operasii UNIX yang
Source  Input pertama di Bell Laboratories pada tahun 1970 dengan
program menggunakan komputer DEC PDP-7.
Computer † Bahasa C dikembangkan lebih lanjut dari bahasa B oleh
Dennis Ritchi di Bell Laboratories dan pertama kali
diimplementasikan dalam komputer DEC PDP-11 pada
tahun 1972 yang menggunakan sistem operasi UNIX.
Output † C pertama kali dipublikasikan oleh Kernighan dan Ritchi
pada tahun 1978

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

Tahapan pemrosesan Struktur program C


program C (contoh 1)

• Edit (menulis program di Text editor: Program menuliskan teks “HELLO” ke layar.
komputer) -- coding, dan NotePad, vi,
hasilnya disebut source code …
/* Program hello.c */
Turbo C,

• Preprocess atau Compile Æ Compiler: #include <stdio.h>


object module (obj) Turbo C, Borland C,
Borland C,
• Link Æ executable file (exe) gcc, …
Bloodshed main()
Dev-C++ {
• Load Command
printf("HELLO\n"); // print
prompt
• Execute -- running program return 0;
}
DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

ILKOM IPB 2
8/30/2009

Struktur program C
(contoh 2) Data

Program menjumlahkan dua bilangan bulat. † Setiap program umumnya mempunyai data,
dan setiap data memiliki tipe tertentu.
/* Program jumlah */ † Suatu nilai data di dalam program dituliskan
#include <stdio.h> dalam bentuk literal constant (literal: hanya
main()
i () berupa nilai, constant: tidak berubah).
{
int a, b, jumlah; † Setiap literal mempunyai tipe, misalnya: 3
scanf("%d %d", &a, &b); bertipe integer, 4.15 bertipe floating point.
jumlah=a+b; † Nilai literal bersifat nonaddressable, yaitu tidak
printf("%d\n", jumlah); // print memiliki alamat dalam memori komputer.
return 0;
}
DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

Literal Constant Tipe data


Data Type Range Keyword
† Literal integer constant – bilangan bulat
Char or Signed Char -128 to 127 char
„ Desimal : 24, 103, -5, …
Unsigned Char 0 to 255 unsigned char
„ Oktal : 024, 0103, …
Int or Signed int -32768 to 32767 int
„ Heksadesimal : 0X24, 0X103, …
Unsigned int 0 to 65535 unsigned
† Literal floating point constant – bilangan riil
Short int or Signed short int -128 to 127 short
„ Desimal floating point : 3.14, -90.254, …
„ Eksponensial : 1.0E-3 Unsigned short int 0 to 255 unsigned short

† Literal character constant – kode ASCII Long int or signed long int -2147483648 to
2147483647
long int

„ Printable character : '', 'a', '4', '0', '*', … Unsigned long int 0 to 4294967295 unsigned long
„ Escape sequence : '\n', '\t', '\r', '\0', '\a', '\\', '\"' int

† Literal string constant – beberapa character Float 3.4 e-38 to 3.4 e+38 float

„ Contoh : "ipb", "", "5", "a", "HELLO\n",… Double 1.7e-308 to 1.7e+308 double
Long Double 3.4 e-4932 to 3.4 e+4932 long double
DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

Variabel Deklarasi Variabel

† Literal constant disimpan ke dalam suatu variabel, † Setiap variabel yang digunakan dalam program C
agar dapat diakses di dalam program. harus dideklarasikan dengan menentukan tipe
† Variabel merupakan suatu identifier, suatu identitas variabel yang bersangkutan.
yang dibuat sendiri dengan aturan: † Tipe variabel menunjukkan tipe data yang yang
„ Terdiri atas satu atau lebih karakter disimpan.
p
„ Dimulai dengan huruf, dan dapat diikuti oleh † Format:
alphanumeric atau underscore (_) keyword v1, v2, ..., vn;
„ Dapat dimulai dengan underscore, tetapi umumnya
digunakan oleh library C † Contoh:
† Contoh penamaan identifier: int jumlah;
„ Benar : n, x1, jumNegatif, … int n, tahun;
„ Salah : 1x, jumlah bilangan, … double rataan, tinggiBadan;

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

ILKOM IPB 3
8/30/2009

Format Menuliskan output ::


untuk output dan input printf
Data type Format † Format:
Char or Signed Char or Unsigned Char %c printf(ekspresi);
Int or Signed int %d printf("format", ekspresi);
Unsigned int %u
† Contoh (apa outputnya?):
Sh t int
Short i t or Signed
Si d short
h t int
i t %hd
int a=5; b=10; c=15;
Unsigned short int %hu
float x=12.56;
Long int or signed long int %ld
printf("Output Program\n");
Unsigned long int %lu
Float or Double %f
printf("%d-%d=%d\n", b, a, b-a);
Long Double %lf printf("Nilai x adalah %.2f\n", x);
printf("a=%d\nb=%d\nc=%d", a, b, c);

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

Membaca input ::
scanf Latihan 1

† Format: #include <stdio.h>


main()
scanf("format", &variabel); {
† Contoh int a, b, c;
((bagaimana
g contoh data y
yang
g dibaca?):
) scanf("%d%d", &a, &b);
c = a; a = b; b = c;
printf("%d %d\n", a, b);
int a, b; return 0;
}
float x;
scanf("%d", &a); Jika diberi input 35 200, apa output program
scanf("%d%d%f", &a, &b, &x); tersebut? Apa sebenarnya yang dilakukan program
tersebut?

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

Latihan 2 :: Latihan 2 ::
Menghitung luas segitiga Menghitung luas segitiga

† Masalah † Algoritme
Program menuliskan nilai luas segitiga yang
memiliki panjang alas dan tinggi tertentu, procedure luasSegitiga {
dengan format dua digit di belakang koma.
read a, t
† Perumusan masalah
luas = 0.5*a*t
Input program adalah dua nilai floating point,
yaitu panjang alas dan tinggi. Misalkan print luas
panjang alas=a, dan tinggi=t, maka dapat }
dihitung luas=0.5 a t

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

ILKOM IPB 4
8/30/2009

Latihan 2 :: Latihan 3 ::
Menghitung luas segitiga Menghitung berat benih jagung

† Program C Pak Jalal memiliki kebun berbentuk Contoh, jika


segiempat dengan panjang dan lebar panjang=4m, dan
dalam satuan meter dan selalu berupa
bilangan bulat. Kebun akan ditanami lebar=3m, maka
/* Program luas segitiga */ jagung dengan jarak tanam masing- dibutuhkan benih
#include <stdio.h> masing 0.5 meter membentuk jagung seberat 4.50
segiempat. Jagung selalu ditanam 1 gram (15 x 2 x 0
0.15)
15)
main() { meter dari batas pinggir kebun, tidak
pernah ditanam di batas pinggirnya. Di
float a, t, luas; setiap lubang tanam, selalu dimasukkan 4m
scanf("%f %f", &a, &t); dua biji benih jagung. Setiap benih
memiliki berat yang sama, yaitu 0.15
luas = 0.5*a*t; gram. Bantulah Pak Jalal menghitung
printf("%.2f\n", luas); berapa berat benih jagung yang 3m
dibutuhkan, dengan membuat program
return 0; C. Berat dituliskan dalam satuan gram
} dengan dua digit di belakang koma.

DEPARTEMEN ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER


INSTITUT PERTANIAN BOGOR INSTITUT PERTANIAN BOGOR

ILKOM IPB 5