Senin, 07 Desember 2009

MATERI PEMROGRAMAN KOMPUTER 1

A.BAHASA PEMROGRAMAN KOMPUTER

Komputer hanya mempunyai bahasa dasar yang berupaya bahasa mesin. Bahasa mesin adalah bahasa yang mengenal kode biner, yaitu kode yang berisi angka 1 dan 0 saja. Pada dasarnya ada dua golongan bahasa pemrograman komputer, yaitu:
Bahasa pemrograman beraras rendah (low level language).
Bahasa pemrograman beraras tinggi (high level language).

Langkah-Langkah dalam Pemrograman

Tahap pada penulisan program adalah sebagai berikut:
1.Menulis program.
2.Menjalankan program untuk menguji kebenaran program.
Jika ada kesalahan (logika maupun kaidah), program diperbaiki dan kembali ke langkah 2.
Tipe-Tipe Data
1.Integer/ Bilangan bulat
-Terdiri dari ragkaian angka/digit 0 sampai 9.
-Penulisan bilangan bulat negative diawali dengan symbol minus.
2.Real
-Terdiri dari rangkaian digit 0 sampai 9, dilengkapi dengan satu buah titik desimal -diantara rangkaian digit tersebut.
-Penulisan bilangan real negative diawali dengan symbol minus.
-Notasi penulisan: fixed point dan floating point.
3.String / Charakter
-Terdiri dari satu / beberapa rangkain karakter / symbol.
-Penulisan dengan diapit tanda petik tunggal.
-Simbol-simbol yang dapat digunakan diatur label kode ASCII/EBDIC.
4.Boolean / Logikal
-Hanya bernilai true atau false.
-Umumnya diperoleh dari operasi pembandingan dua nilai. Contohnya pernyataan benar salah pada logika.

B.ALGORITMA DAN DIAGRAM ALIR (FLOW CHART)

1.ALGORITMA
Algoritma adalah rangkaian terurut intruksi-intruksi yan disusun untuk menyelesaikan suatu masalah dn mempunyai karakteristik. Karakteristik tersebut antara lain:
a.Setiap intruksi dalam algoritma harus jelas dan bermakna unik/tunggal.
b.Seluruh rangkain intruksi harus selesai dalam waktu yang berhingga.
c.Bersifat umum, artinya dapat dipakai untuk menyelesaikan berbagai masalah yang tipenya serupa tanpa perlu modifikasi.
Sebuah algoritma memuat komponen-komponen antara lain:
a.Masukkan (input)
b.Lankah-langkah
c.Keluaran (output)
Contoh : Buat algoritma untuk menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap.
Algoritmanya :
1. Bagi bilangan dengan bilangan 2
2. Hitung sisa hasil bagi pada langkah 1.
3. Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah bilangan genap tetapi bila sisa hasil bagi sama dengan 1 maka bilangan itu adalah bilangan ganjil.
Penulisan algoritma dapat dilakukan dengan dengan dua cara, yaitu:
i.Kode semu (pseudu code)
Contoh: Menghitung sisi miring dengan menggunakan pseudo code.
1.[masukkan / input berupa kedua sisi siku-siku]
Read [siku_1, siku_2]
2.[masukkan kuadrat dari masing-masing sisi siku-siku]
SQ1:=siku_1^2
SQ2:=siku_2^2
3.[menghitung panjang sisi miring]
Hypotenusa
:=SQRT(SQ1+SQ2)
4.[keluaran / output]
Write(‘panjang sisi miring=’,hypotenusa)
5.[mengakhiri allgoritma]
Exit
ii.Diagram alir (flowchart)
Diagram alir (flowchart) akan dijelaskan lebih lanjut pada uraian selanjutnya.

2.DIAGRAM ALIR (FLOWCHART)
Flowchart adalah untain simbol gambar (chart) yang menunjukkan aliran (flow) dari proses terhadap data.
Menurut bentuknya flowchart di bedakan menjadi tiga jenis:
1.Flowchart runtutan, yaitu bentuk flowchart yang bentuknya runtun ke bawah dan biasanya hanya menyelesaikan satu persoalan dengan satu penyelesain.
2.Flowchart memilih, yaitu bentuk flowchart yang bentuknya digunakan untuk menyelesaikan persoalan dengan penelesaian lebih dari satu, biasa memilih satu diantara dua penyelesaian.
3.Flowchart berulang (loop), yaitu bentuk flowchart yang bentuknya digunakan untuk menyelesaikan persoalan dengan bentuk berulang (loop).
Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart :


Dari contoh algoritma di atas tentang menentukan apakah suatu bilangan adalah bilangan ganjil atau bilangan genap, flowchart dari program adalah sebagai berikut :



C.INTRUKSI UTAMA

Secara garis besar hanya ada tiga macam kategori instruksi utama, yaitu:
1. Instruksi Runtutan
Instruksi runtutan adalah instruksi yang dikerjakan secara beruntun atau berurutan baris per baris mulai dari baris pertama hingga baris terakhir, tanpa ada loncatan atau perulangan.
Contoh: (meghitung luas sebuah segitiga)
program luas_segitiga;
uses wincrt;
var
a,t,L:real;
begin
write('masukkan alas segitiga=');readln(a);
write('masukkan tinggi segitiga=');readln(t);
L:=0.5*a*t;
writeln('Luas segitiga adalah=',L:0:2);
end.

2.Intrusi Pemilihan
Instruksi pemilihan adalah instruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu persyaratan. Ada dua bentuk instruksi pemilihan yang sering digunakan, yaitu if/then/else dan case.
a.Instruksi if/then/else
Instruksi if/then/else digunakan untuk memilih alternatif apabila suatu syarat atau kondisi dipenuhi (1 kasus), atau memilih satu alternatif dari dua kemungkinan berdasarkan apakah syarat terpenuhi atau tidak (2 kasus).
Contoh: (Nilai Mahasiswa)
program nilai_mahasiswa;
uses wincrt;
var nama,nim:string;
nt,nm,nf,na:real;
begin
write('nama=');readln(nama);
write('nim=');readln(nim);
write('nilai tugas=');readln(nt);
write('nilai mid=');readln(nm);
write('nilai final=');readln(nf);
na:=(0.20*nt)+(0.30*nm)+(0.50*nf);
writeln('nilai akhir=',na:0:2);
begin
if na>85 then write('nilai A')else
if na<86 then write('nilai B')else
if na<71 then write('nilai C')else
if na<56 then write('nilai D')else
write('nilai C')
end;
end.

b.Instruksi Case
Instruksi case digunakan sebagai instruksi pemilihan di mana aksi akan dilakukan hanya bergantung pada nilai dari satu macam variabel.
Contoh: (Menu Makanan)
program menu;
uses wincrt;
var
x:integer;
begin
gotoxy(20,5);writeln('menu warung top=');
gotoxy(20,6);writeln('================');
gotoxy(20,9);writeln('1.penyet');
gotoxy(20,10);writeln('2.bakso');
gotoxy(20,11);writeln('3.mie ayam');
gotoxy(20,12);writeln('4.pindang tetel');
gotoxy(20,16);writeln('apa menu favorit anda?');
readln(x);
case x of
1:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('penyet');
end;
2:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('bakso');
end;
3:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('mie ayam');
end;
4:begin
clrscr;
writeln('menu yang anda pilih adalah....');
writeln('pindang tetel');
end;
5:begin
clrscr;
writeln('kembali ke menu');
end;
end;
end.

3.Instruksi Perulangan (Looping)
Instruksi perrulangan adalah instrusi yang dapat mengulang pelaksanaan sederetan instruksi-instruksi lainnya berulang-ulang sesuai persyaratan yang ditetapkan.
a.Perulangan Repeat-Until
Makna dari bentuk instruksi repeat-until adalah ulangi pelaksanaan instruksi hingga kondisi terpenuhi.
Contoh 1:
program jumlah_bilangan;
uses wincrt;
var
x,y,jum:integer;
begin
x:=1;
jum:=0;
write('masukkan y=');readln(y);
repeat
write(x);
if x jum:=jum+x;
x:=x+1;
until x>y;
write('=');
write(' ',jum);
end.
Contoh 2:
program perulangan;
uses wincrt;
var
x:integer;
begin
x:=1;
repeat
writeln(x,'. Pemrograman Komputer');
x:=x+1;
until x>5;
end.

b.Perulangan For-to-do
Makna dari bentuk instruksi for-to-do adalah ulangi instruksi-instruksi tersebut berdasarkan variabel perulangan mulai nilai awal hingga nilai akhir dengan perubahan nilai sebesar n.
Contoh:
program perulangan;
uses wincrt;
var
n:integer;
begin
for n:=1 to 5 do
writeln(n,'. Pemrograman Komputer');
end.

c.Perulangan While-Do
Makna dari bentuk instruksi while-do adalah ulangi pelaksanaan instruksi-instruksi selama kondisi yang diberikan masih terpenuhi. Oleh karena itu, perlu adanya suatu proses yang dapat mengontrol kondisi agar dapat menghentikan proses.
Contoh:
program perulangan;
uses wincrt;
var
x:integer;
begin
x:=1;
while x<6 do
begin
writeln(x,'. Pemrograman Komputer');
x:=x+1;
end;
end.

D.ARRAY (LARIK)
Array adalah suatu bentuk struktur data yang menampung satu atau lebih dari satu data yang sejenis (bertipe data sama), yang diwakili oleh satu nama variabel.
Contoh:
program matriks;
uses wincrt;
var
tabel:array[1..3,1..2] of integer;
i,j:integer;
begin
tabel[1,1]:=50;
tabel[1,2]:=55;
tabel[2,1]:=21;
tabel[2,2]:=26;
tabel[3,1]:=10;
tabel[3,2]:=1;
for i:=1 to 3 do
begin
for j:=1 to 2 do
write(tabel [i,j],' ');
writeln;
end;
end.


E.SUB PROGRAM

Subprogram pada turbo pascal ada 2 macam,yaitu:
1.Prosedur
Prosedur adalah bagian dari suatu program yang disusun secara terpisah unntuk melakukan suatu tugas khusus/fungsi tertentu. Prosedur diawali dengan kata cadangan Procedure di dalam bagian deklarasi prosedur. Prosedur dipanggil dan digunakan di dalam blok program lainnya dengan menyebutkan judul prosedurnya.
Ketika suatu prosedur dipanggil maka pada hakikatnya bisa dilakukan pertukaran data antara program utama dan prosedur. Pertukaran ini dilakukan melalui parameter, diantaranya yaitu:
Parameter Aktual adalah parameter yang yang disertakan pada saat prosedur dipanggil untuk dilaksanakan, sering disebut argumen.
Parameter Formal adalah parameter yang dituliskan pada definisi suatu prosedur/fungsi.
Contoh Prosedur:

Procedure Tanya_hitung ;
Var
X,Y : real ;
Begin
Write (‘Nilai X =’) ;
Readln (X) ;
Y : = X * X ;
End ;
Begin
Tanya_hitung ;
Writeln (‘Nilai Y =’, Y : 6 : 2 ) ;
End.

2.Fungsi
Fungsi adalah bagian dari program yang dibuat terpisah untuk melaksanakan fungsi tertentu yang menghasilkan suatu nilai untuk dikembalikan ke program utama.
Contoh fungsi:
program fungsi_x;
uses wincrt;
var
x:integer;
function fungsi (x:real):real;
var
y:real;
begin
write('masukkan nilai x=');readln(x);
y:=x*x+8*x+10;
fungsi:=y;
end;
begin
clrscr;
writeln('hasil dari nilai y nya adalah=',fungsi(x):2:0);
end.


F.REKURSI

Rekursi yaitu procedure atau function yang memanggil dirinya sendiri.  Gunanya untuk melakukan proses berulang yang sulit diketahui kapan akan berakhir. Banyak bahasa pemrograman modern mendukung proses rekursi, misalnya Turbo Pascal, Visual Basic, dll. Contoh paling terkenal dari rekursi adalah proses menghitung nilai faktorial dan mencari deret Fibonacci.
Contoh listing program:
function faktorial(n : integer):integer;
begin
  if (n = 0) then faktorial := 1
  else faktorial := n * faktorial(n - 1);
end;
Deret Fibonacci didefinisikan sebagai deret integer tak berhingga, di mana suatu bilangan adalah penjumlahan dari dua bilangan sebelumnya.
Contoh: 1, 1, 2, 3, 5,  8, 12, 13, 21, 34, 55, 89, 144, ...
Dari data di atas dapat difahami bahwa angka 5 merupakan hasil penjumlahan dari 2 dan 3, sedangkan 12 merupakan 5 + 8.

function fibonacci(n : integer):integer;
begin
  if (n = 1) or (n = 2) then fibonacci := 1
  else fibonacci := fibonacci(n - 1) + fibonacci(n - 2);
end;
Berikut ini adalah contoh rekursi yang mudah dipahami.
program re;
uses wincrt;

procedure rekursi;
begin
if wherex < 80 then
begin
write(' M ');
rekursi;
end;
end;

begin
clrscr;
rekursi;
end.

1 komentar: