Senin, 10 Januari 2011

ANALISA STRUKTUR PROGRAM



I.                   Struktur Program
A. Struktur Berurutan (Sequence Structure)
Struktur Berurutan adalah struktur program yang paling sederhana. Setiap baris
program akan dikerjakan secara urut dari atas ke bawah maka hanya ada satu cara
memulainya yaitu dari bagian atas, dan cara untuk keluarnya yaitu dari bagian bawah.

Contoh Program Struktur berurutan menghitung luas empat persegi panjang
Program persegi panjang;
Uses crt;
Var
luas,panjang,lebar:integer;
Begin
clrscr;
write(‘Masukan Panjang:’);
Readln(panjang);
write(‘Masukan Lebar:’);
Readln(Lebar);
Luas:=Panjang * Lebar;
writeln(‘luas Persegi Panjang: ‘, Luas);
Readln;
Start
Baris Program
Baris Program
Baris Program
Selesai
End.
B. Struktur Seleksi(Selection Structure)
Struktur seleksi untuk melakukan proses pengujian pada kondisi dalam mengambil
suatu keputusan. Kondisi adalah suatu syarat yang mempunyai nilai True dan False.
Contoh bentuknya adalah sebagai berikut :
................
................
Begin
Perintah 1;
If Kondisi Then
Perintah 2;
Else
Perintah 3;
...................
...................
End.
Ada beberapa macam struktur instruksi IF atau Sruktur Seleksi yaitu :
1. Statement/perintah IF ... THEN ( Seleksi Tunggal )
Bentuk umumnya
IF THEN
Begin
............
............
End.
Contoh Program Seleksi if then menentukan bilangan positif)
Program Bilpositif;
Uses crt;
Var
bil:integer;
Begin
write(‘Masukan sebuah bilangan:’);
Readln(bil);
if bil>0 then
writeln(‘Bilangan Positif’’);
Readln;
End.
2. Statement/Perintah IF ... THEN ... ELSE
Bentuk Umumnya
IF THEN
Begin
............
............
End;
Start
Perintah 1
Selesai
Kondi
si
Else
Begin
............
............
End.
Contoh Program Seleksi if-then-else menentukan bilangan positif atau negatif
Program Bilpositif;
Uses crt;
Var
bil:integer;
Begin
write(‘Masukan sebuah bilangan:’);
Readln(bil);
if bil>0 then
writeln(‘Bilangan Positif’’);
else
wiriteln(‘Bilangan Negatif’);
Readln;
End.
Start
Perintah 1
Selesai
Kondi
si
Perintah 2
True
False
3. Statement/Perintah IF ... THEN ... ELSE IF
Bentuk umumnya :
IF Then
Begin
..........
..........
End
Else If Then
Begin
..............
..............
End;
True
False
Start
Selesai
Kondis
i1
Perintah 1
Kondis
i2
Kondis
i3
Perintah 4
Perintah 2
Perintah 3
False
False
True
True
Contoh Program Seleksi if-then-else if menentukan nilai mahasiswa)
Uses crt;
Var NA:integer;Grade: Char;
Begin
write(‘Masukan Nilai Akhir:’);
Readln(NA);
if NA<=45 then
Grade :=‘E’
else if NA<=55 then
Grade :=‘D’
else if NA<=70 then
Grade :=‘C’
else if NA<=84 then
Grade :=‘B’
else Grade := ‘A’;
wiriteln(‘Nilai grade anda =‘, Grade);
End.
Selain menggunakan instruksi IF, Struktur Seleksi juga dapat menggunakan instruksi CASE ... OF
(Seleksi Ganda).
Untuk masalah tertentu instruksi Case...Of lebih memberi kejelasan dibandingkan dengan
instruksi IF.
Bentuk umum dari CASE ..OF
Case ungkapan Of
Daftar label 1 : perintah 1;
Daftar label 2 : perintah 2;
Daftar label 3 : perintah 3;
..........................
End;
End;
Contoh Program Seleksi Case .. of menentukan Grade mahasiswa)
Uses crt;
Var NA:integer;Grade: Char;
Begin
write(‘Masukan Nilai Akhir:’);
True
Start
Nilai pemilih
pada daftar
konst 1
Perintah 1
Pernyataan yang
mengikuti else
Perintah 3
True
False
True
End
False
Perintah 2
Nilai pemilih
pada daftar
konst 2
False
Nilai pemilih
pada daftar
konst 3
Readln(NA);
0..45 :Grade :=‘E’
46..55 : Grade :=‘D’
56..70 : Grade :=‘C’
71..84 : Grade :=‘B’
85.100 : Grade :=‘A’
end;
writeln(‘Nilai grade anda =‘, Grade);
End.
C. Struktur Perulangan ( Looping Structure )
Struktur perulangan akan melakukan proses berulang ulang selama selama Kondisi bernilai
True atau selama kondisi perulangan terpenuhi.
Dan Kondisi akan berhenti jika hanya keadaan berubah menjadi false atau kondisi
perulangan tidak terpenuhi.
Struktur Perulangan terdiri dari :
1. FOR .. DO
Bentuk umumnya perulangan yang menaik:
For {Batas Awal} To {Batas Akhir} DO
Begin
{Statement 1};
{Statement 2};
------------------
------------------
{Statement N};
End;
contoh:
For I;=1 to 5 do
Begin
writeln(‘BINA SARANA INFORMATIKA’);
End.
Bentuk umumnya perulangan yang menurun:
For {Batas Awal} DownTo {Batas Akhir} DO
Begin
{Statement 1};
{Statement 2};
------------------
------------------
{Statement N};
End;
Start
Tentukan Nilai awal
dan nilai akhir
Selesai
Benar Nilai
Pencacah> Nilai
Akhir
Pencacah diberi nilai
sebesar nilai awal
pernyataan
Nilai pencacah
dinaikkan sebesar 1
contoh:
For I;=5 downto 1 do
Begin
writeln(‘BINA SARANA INFORMATIKA’);
End.
2. While .. Do
Perulangan digunakan unutk melaksanakan blok statement selama kondisinya benar. Dalam
perulangan ini kondisi diuji terlebih dahulu.
Bentuk umum :
WHILE Do
Begin
…………
…………
End;
Selesai
Salah
Ungkapan
Nalar
pernyataan
True
contoh:
I:=1
While N<=5 do
Begin
Writelb(‘Bina Sarana Informatika’);
I ; I+ 1;
End;
3. REPEAT .. UNTIL
Perulangan ini melakukan uji kondisi pada akhir perulangan. Artinya perulangan (loop)
dikerjakan terlebih dahulu, kemudian baru kondisi diuji. Proses akan diulang sampai suatu
kondisi yang diberikan bernilai benar.
Bentuk umum:
REPEAT
……………
……………
UNTIL;
Ungkapan
Nalar
pernyataan
Salah
Benar
contoh:
I:=1
Repeat
Writeln(‘Bina Sarana Informatika’);
I ; I+ 1;
Until I>5;
Biasanya didalam pembuatan program, perulangan tidak hanya satu kali saja. Bahkan
didalam sebuah perulangan terdapat perulangan yang lain. Perulangan yang terdapat dalam
perulangan yang lain disebut perulangan tersarang atau Nested Loop.
Contoh nested loop dengan For .. Do
Var I,J : integer;
Begin
For I:= 1 to 5 do
Begin
For J:=1 to 5 Do
Write(I:10, J:5);
Writeln;
end;
end.
II. Konsep Pemrograman Terstruktur
Ide Pemrograman Terstruktur pertama kali di ungkapkan oleh Profesor Edsger Djikstra
dari Universitas Eindhoven tahun 1965. Profesor Djikstra mengusulkan yaitu pernyataan
GOTO seharusnya tidak dipergunakan di dalam pemrograman terstruktur .
Pernyataan tersebut ditanggapi oleh HD. Millis bahwa pemrograman terstruktur tidak
hanya dihubungkan dengan perintah GOTO tetapi oleh struktur program.
Dari kesimpulan diatas maka Pemrograman Terstruktur adalah “Pemrograman terstruktur
merupakan suatu tindakan untuk mengorganisasikan dan membuat kode-kode program
supaya mudah untuk dimengerti, mudah ditest dan mudah dimodifikasi”.
A. Ciri-ciri pemrograman terstruktur.
1. Mengandung teknik pemecahan masalah yang tepat dan benar
2. Memiliki algoritma pemecahan masalah yanag sederhana, standar da efektif.
3. Penulisan program memiliki struktur logika yang benar dan mudah dipahami
4. Program hanya terdiri dari 3(tiga) struktur dasar, yaitu struktur berurutan, struktur
seleksi dan struktur perulangan.
5. Menghindari penggunaan pernyataan GOTO, yang akan menjadikan program tidak
terstruktur dengan baik.
6. Biaya pengujian yang dibutuhkan rendah.
7. Memliki dokumentasi yang baik
8. Biaya perawatan dan dokumentasi yang dibutuhkan rendah.
B. Tujuan Pemrograman Terstruktur
1. Meningkatkan kehandalan program
2. Program mudah dibaca dan ditelusuri
3. Menyederhanakan kerumitan program
4. Lebih mudah dalam pemeliharaan program
5. Meningkatkan produktivitas pemrograman
C. Compiller Dan Interpreter
Source program yang telah ditulis dengan bahasa pemrograman tingkat tinggi, tidak
dimengerti oleh komputer karena komputer hanya mengerti bahasa mesin. Oleh sebab itu source
program harus di terjemahkan ke dalam bahasa mesin terlebih dahulu sebelum dijalankan
Terdapat 2(dua) jenis penterjemah yaitu :
1. Compiller
Compiller merupakan penerjemah bahasa pemrograman yang menterjemahkan instruksiinstruksi
dalam satu kesatuan modul ke dalam bahasa mesin sehingga dihasilkan suatu file
executable.
2. Interpreter
Interpreter merupakan penerjemah bahasa pemrograman yang menterjemahkan instruksi
demi instruksi pada saat eksekusi program.
III. Debugging Dan Bentuk Kesalahan program
Debugging adalah penghilangan semua kesalahan yang ditemukan pada saat pengujian.
Kesalahan terjadi karena kecerobohan desain logika dan pengkodean.
Adapun macam-macam bentuk kesalahan program yaitu
· SYNTAX ERROR
Bentuk kesalahan program yang disebabkan karena kesalahan didalam hal penulisan
instruksi didalam program.
Contoh.
- Writ ( dalam bahasa PASCAL )
- Use ( dalam bahasa PASCAL )
- dan lain-lain
· RUN TIME ERROR
Bentuk kesalahan program yang disebabkan karena adanya proses arithmathic yang
ILLEGAL / tidak bisa diproses.
Contoh.
- B = ( 0 / 3 )
- Akar Minus
- dan lain-lain
· LOGIC ERROR
Bentuk kesalahan program yang disebabkan karena HUMAN-ERROR-LOGIC
(kesalahan logika program yang dibuat oleh programmer)
Contoh.
- Hasil / output program yang tidak sesuai
- Kesalahan program yang tidak dapat dideteksi
- dan lain-lain















ORGANISASI dan AKSES FILE



I.                   ORGANISASI & AKSES FILE

Salah satu hal penting yang tidak dapat ditinggalkan di dalam perencanan suatu program computer adalah data-data yang diperoleh dari berbagai sumber. Mereka dapat diperoleh dari hasil pengukuran di laboratorium, hasil survey, angket dan sebagainya.

Data sederhana dapat kita himpun kedalam suatu struktur organisasi data file yang memuat informasi tentang hubungan antara item yang terdapat didalamnya, dan dikenal sebagai suatu organisasi file. Tipe organisasi data file diantaranya adalah: organisasi file sequential, organisasi file relative(random) serta organisasi file index sequential.

Ada beberapa tipe organisasi file data yang digunakan, yaitu susunan berurutan (sequential), berurutan diindeks (indexed sequential), acak (random), dan acak diindeks ( indexed random ). Tujuan organisasi data di dalam pemrograman terstruktur adalah :

1. Untuk menyediakan sarana pencarian record bagi pengolahan, seleksi, atau penyaringan.

2. Memudahkan penciptaan atau pemeliharaan file .

Organisasi file data harus mempertimbangkan beberapa hal penting, yaitu sebagai berikut :

1. Kemudahan dalam penyimpanan dan pengambilan data.

2. Kecepatan akses data/ efisiensi akses.

3. Efisiensi penggunaan media penyimpanan (storage device).

Terdapat dua jenis alat penyimpanan data file yang digunakan, yaitu

1. Piransi Akses Serial ( Squential Access Storage Device atau SASD). Contoh peralatan yang termasuk jenis ini adalah

magnetic tape dan pita magnetic. Ciri – ciri dari piranti ini adalah sebagai berikut :

a. Proses pembacaan rekaman harus berurutan.

b. Tidak ada pengamatan.

c. Data disimpan dalam blok – blok.

d. Proses write hanya bisa dilakukan sekali saja.

e. Kecepatan akses datanya, sangat tergantung pada:

1. Kerapatan pita ( char/inci ).

2. Kecepatan pita ( inci/detik ).

3. Lebar celah / gap antar blok.

2. Piranti Akses Direct ( Direct Access Storage Device atau DASD). Contoh piranti akses tipe direct adalah cakram magnetic (magnetic disk) yang terdiri dari hard disk atau floppy disk. Piranti ini mempunyai ciri :

a. Pembacaan rekaman tidak harus urut.

b. Mempunyai alamat.

c. Data dapat disimpan dalam karakter atau blok.

d. Proses write dapat dilakukan beberapa kali

Tiga metode susunan organisasi data file dalam media penyimpanan fisik yang lazim untuk digunakan, yaitu sebagai berikut :

1. Sequential.

Metode ini mempunyai ciri – ciri sebagai berikut :

a. Rekaman disimpan berdasarkan suatu kunci.

b. Pencarian rekaman tertentu dilakukan record demi record sesuai kuncinya.

Metode ini baik untuk digunakan apabila pengolahan terhadap basis data bersifat periodik dan menyeluruh.

2. Random.

Dalam metode ini kunci rekaman ditransformasikan ke alamat penyimpanan dalam media fisik secara acak (random). Metode ini akan menimbulkan beberapa masalah, yaitu adanya alamat yang muncul lebih dari satu kali, dan ada alamat yang tidak pernah muncul sama sekali. Permasalahan seperti ini diatasi dengan teknik overflow location, yaitu dengan menggunakan alamat yang ada disampingnya.

3. Indexed Sequential.

Metode ini mempunyai ciri – ciri sebagai berikut :

a. Merupakan gabungan antara metode sequential dan random.

b. Record disimpan secara berurutan dengan menggunakan kunci.

c. Masing – masing record diberi indeks.

d. Pengalamatan dilakukan secara acak.

e. Perlu penyimpanan tambahan, yaitu untuk file indeks.










Tipe File



I.                   Tipe dari file

A. File Master

a. File Referensi

Data yang tetap dimana pengolahan terhadap data tersebut memerlukan waktu yang lama. Data yang terdapat pada file referensi ini sebagai contoh adalah file Mahasiswa,

yang apabila akan diperbaiki (di edit) untuk jangka waktu yang lama, misalnya jika terjadi perbaikan pada pengisian data untuk alamat (jika mahasiswa tersebut pindah alamat rumah) maka isi data pada alamat untuk mahasiswa yang bersangkutan harus diperbaiki

b. File Dinamik

Data yang ada dalam file berubah tergantung transaksi. Misalkan saja file mata kuliah yang didalamnya terdapat informasi tentang seluruh mata kuliah yang terdapat di suatu lembaga pendidikan. Isi dari file mata kuliah dapat di perbaiki (di edit) jika kondisi yang ada dimasa depan mengharuskan adanya pergantian mata kuliah dengan nama mata kuliah yang baru dan sks yang juga baru, maka perbaikan data untuk isi file mata kuliah mutlak dilakukan. Hal ini yang disebut dengan penyetaraan mata kuliah.

B. File Input (Transaksi)

Berisi data masukkan yang berupa data transaksi dimana data-data tersebut akan diolah oleh komputer. Macam file transaksi yang ada pada lembaga pendidikan adalah file ujian, file nilai dan file pembayaran kuliah. File transaksi akan senatiasa mengalami perubahan sesuai dengan periode waktu tertentu

C. File Laporan

Berisi informasi yang akan ditampilkan. File ini berisi informasi yang akan ditampilkan dalam sebuah laporan. Isi dari Laporan yang dihasilkan biasanya berasal dari penggabungan file master dan file transaksi, tetapi tidak semua isi dari file-file tersebut ditampilkan, melainkan hanya informasi tertentu saja yang ditampilkan sesuai dengan laporan yang diinginkan.

E. File Backup (Pelindung)

Berisi salinan data-data yang masih aktif di database pada suatu waktu tertentu. File ini berisikan salinan (Copy) dari suatu file entah file master maupun file transaksi. Adapun isi (informasi) dari file backup ini sama persis dengan file aslinya. Jika ada yang diperbaiki maka hasil perbaikan data tersebut harus dibuatkan kembali backup dari file yang diperbaiki.

F. File Kerja (Temporary File)

Berisi data-data hasil pemrosesan yang bersifat sementara. File ini berisi data yang sifatnya sementara (tidak permanent) dalam arti hanya numpang lewat saja, tetapi file ini dapat berfungsi untuk mempercepat dan optimalisasi dari pengolahan data.

G. File Library

Berisi program-program aplikasi atau utility program. File ini berisi program-program bantu yang dapat berfungsi untuk mempercepat dan optimalisasi dari pengolahan data. Misalkan dalam file gaji yang mana mempunyai keterhubungan dengan file pendidikan pegawai (untuk mencari jenjang pendidikan dari seorang karyawan), file absensi (untuk megetahui data kehadiran pegawai) dan file lembur (untuk mengetahui intensitas kelebihan jam kerja yang dimiliki oleh seorang pegawai).



















ANALISA STRUKTUR PROGRAM LANJUTAN


I.                   Struktur Program
A. Struktur Berurutan (Sequence Structure)
Struktur Berurutan adalah struktur program yang paling sederhana. Setiap baris
program akan dikerjakan secara urut dari atas ke bawah maka hanya ada satu cara
memulainya yaitu dari bagian atas, dan cara untuk keluarnya yaitu dari bagian bawah.

Contoh Program Struktur berurutan menghitung luas empat persegi panjang
Program persegi panjang;
Uses crt;
Var
luas,panjang,lebar:integer;
Begin
clrscr;
write(‘Masukan Panjang:’);
Readln(panjang);
write(‘Masukan Lebar:’);
Readln(Lebar);
Luas:=Panjang * Lebar;
writeln(‘luas Persegi Panjang: ‘, Luas);
Readln;
Start
Baris Program
Baris Program
Baris Program
Selesai
End.
B. Struktur Seleksi(Selection Structure)
Struktur seleksi untuk melakukan proses pengujian pada kondisi dalam mengambil
suatu keputusan. Kondisi adalah suatu syarat yang mempunyai nilai True dan False.
Contoh bentuknya adalah sebagai berikut :
................
................
Begin
Perintah 1;
If Kondisi Then
Perintah 2;
Else
Perintah 3;
...................
...................
End.
Ada beberapa macam struktur instruksi IF atau Sruktur Seleksi yaitu :
1. Statement/perintah IF ... THEN ( Seleksi Tunggal )
Bentuk umumnya
IF THEN
Begin
............
............
End.
Contoh Program Seleksi if then menentukan bilangan positif)
Program Bilpositif;
Uses crt;
Var
bil:integer;
Begin
write(‘Masukan sebuah bilangan:’);
Readln(bil);
if bil>0 then
writeln(‘Bilangan Positif’’);
Readln;
End.
2. Statement/Perintah IF ... THEN ... ELSE
Bentuk Umumnya
IF THEN
Begin
............
............
End;
Start
Perintah 1
Selesai
Kondi
si
Else
Begin
............
............
End.
Contoh Program Seleksi if-then-else menentukan bilangan positif atau negatif
Program Bilpositif;
Uses crt;
Var
bil:integer;
Begin
write(‘Masukan sebuah bilangan:’);
Readln(bil);
if bil>0 then
writeln(‘Bilangan Positif’’);
else
wiriteln(‘Bilangan Negatif’);
Readln;
End.
Start
Perintah 1
Selesai
Kondi
si
Perintah 2
True
False
3. Statement/Perintah IF ... THEN ... ELSE IF
Bentuk umumnya :
IF Then
Begin
..........
..........
End
Else If Then
Begin
..............
..............
End;
True
False
Start
Selesai
Kondis
i1
Perintah 1
Kondis
i2
Kondis
i3
Perintah 4
Perintah 2
Perintah 3
False
False
True
True
Contoh Program Seleksi if-then-else if menentukan nilai mahasiswa)
Uses crt;
Var NA:integer;Grade: Char;
Begin
write(‘Masukan Nilai Akhir:’);
Readln(NA);
if NA<=45 then
Grade :=‘E’
else if NA<=55 then
Grade :=‘D’
else if NA<=70 then
Grade :=‘C’
else if NA<=84 then
Grade :=‘B’
else Grade := ‘A’;
wiriteln(‘Nilai grade anda =‘, Grade);
End.
Selain menggunakan instruksi IF, Struktur Seleksi juga dapat menggunakan instruksi CASE ... OF
(Seleksi Ganda).
Untuk masalah tertentu instruksi Case...Of lebih memberi kejelasan dibandingkan dengan
instruksi IF.
Bentuk umum dari CASE ..OF
Case ungkapan Of
Daftar label 1 : perintah 1;
Daftar label 2 : perintah 2;
Daftar label 3 : perintah 3;
..........................
End;
End;
Contoh Program Seleksi Case .. of menentukan Grade mahasiswa)
Uses crt;
Var NA:integer;Grade: Char;
Begin
write(‘Masukan Nilai Akhir:’);
True
Start
Nilai pemilih
pada daftar
konst 1
Perintah 1
Pernyataan yang
mengikuti else
Perintah 3
True
False
True
End
False
Perintah 2
Nilai pemilih
pada daftar
konst 2
False
Nilai pemilih
pada daftar
konst 3
Readln(NA);
0..45 :Grade :=‘E’
46..55 : Grade :=‘D’
56..70 : Grade :=‘C’
71..84 : Grade :=‘B’
85.100 : Grade :=‘A’
end;
writeln(‘Nilai grade anda =‘, Grade);
End.
C. Struktur Perulangan ( Looping Structure )
Struktur perulangan akan melakukan proses berulang ulang selama selama Kondisi bernilai
True atau selama kondisi perulangan terpenuhi.
Dan Kondisi akan berhenti jika hanya keadaan berubah menjadi false atau kondisi
perulangan tidak terpenuhi.
Struktur Perulangan terdiri dari :
1. FOR .. DO
Bentuk umumnya perulangan yang menaik:
For {Batas Awal} To {Batas Akhir} DO
Begin
{Statement 1};
{Statement 2};
------------------
------------------
{Statement N};
End;
contoh:
For I;=1 to 5 do
Begin
writeln(‘BINA SARANA INFORMATIKA’);
End.
Bentuk umumnya perulangan yang menurun:
For {Batas Awal} DownTo {Batas Akhir} DO
Begin
{Statement 1};
{Statement 2};
------------------
------------------
{Statement N};
End;
Start
Tentukan Nilai awal
dan nilai akhir
Selesai
Benar Nilai
Pencacah> Nilai
Akhir
Pencacah diberi nilai
sebesar nilai awal
pernyataan
Nilai pencacah
dinaikkan sebesar 1
contoh:
For I;=5 downto 1 do
Begin
writeln(‘BINA SARANA INFORMATIKA’);
End.
2. While .. Do
Perulangan digunakan unutk melaksanakan blok statement selama kondisinya benar. Dalam
perulangan ini kondisi diuji terlebih dahulu.
Bentuk umum :
WHILE Do
Begin
…………
…………
End;
Selesai
Salah
Ungkapan
Nalar
pernyataan
True
contoh:
I:=1
While N<=5 do
Begin
Writelb(‘Bina Sarana Informatika’);
I ; I+ 1;
End;
3. REPEAT .. UNTIL
Perulangan ini melakukan uji kondisi pada akhir perulangan. Artinya perulangan (loop)
dikerjakan terlebih dahulu, kemudian baru kondisi diuji. Proses akan diulang sampai suatu
kondisi yang diberikan bernilai benar.
Bentuk umum:
REPEAT
……………
……………
UNTIL;
Ungkapan
Nalar
pernyataan
Salah
Benar
contoh:
I:=1
Repeat
Writeln(‘Bina Sarana Informatika’);
I ; I+ 1;
Until I>5;
Biasanya didalam pembuatan program, perulangan tidak hanya satu kali saja. Bahkan
didalam sebuah perulangan terdapat perulangan yang lain. Perulangan yang terdapat dalam
perulangan yang lain disebut perulangan tersarang atau Nested Loop.
Contoh nested loop dengan For .. Do
Var I,J : integer;
Begin
For I:= 1 to 5 do
Begin
For J:=1 to 5 Do
Write(I:10, J:5);
Writeln;
end;
end.
II. Konsep Pemrograman Terstruktur
Ide Pemrograman Terstruktur pertama kali di ungkapkan oleh Profesor Edsger Djikstra
dari Universitas Eindhoven tahun 1965. Profesor Djikstra mengusulkan yaitu pernyataan
GOTO seharusnya tidak dipergunakan di dalam pemrograman terstruktur .
Pernyataan tersebut ditanggapi oleh HD. Millis bahwa pemrograman terstruktur tidak
hanya dihubungkan dengan perintah GOTO tetapi oleh struktur program.
Dari kesimpulan diatas maka Pemrograman Terstruktur adalah “Pemrograman terstruktur
merupakan suatu tindakan untuk mengorganisasikan dan membuat kode-kode program
supaya mudah untuk dimengerti, mudah ditest dan mudah dimodifikasi”.
A. Ciri-ciri pemrograman terstruktur.
1. Mengandung teknik pemecahan masalah yang tepat dan benar
2. Memiliki algoritma pemecahan masalah yanag sederhana, standar da efektif.
3. Penulisan program memiliki struktur logika yang benar dan mudah dipahami
4. Program hanya terdiri dari 3(tiga) struktur dasar, yaitu struktur berurutan, struktur
seleksi dan struktur perulangan.
5. Menghindari penggunaan pernyataan GOTO, yang akan menjadikan program tidak
terstruktur dengan baik.
6. Biaya pengujian yang dibutuhkan rendah.
7. Memliki dokumentasi yang baik
8. Biaya perawatan dan dokumentasi yang dibutuhkan rendah.
B. Tujuan Pemrograman Terstruktur
1. Meningkatkan kehandalan program
2. Program mudah dibaca dan ditelusuri
3. Menyederhanakan kerumitan program
4. Lebih mudah dalam pemeliharaan program
5. Meningkatkan produktivitas pemrograman
C. Compiller Dan Interpreter
Source program yang telah ditulis dengan bahasa pemrograman tingkat tinggi, tidak
dimengerti oleh komputer karena komputer hanya mengerti bahasa mesin. Oleh sebab itu source
program harus di terjemahkan ke dalam bahasa mesin terlebih dahulu sebelum dijalankan
Terdapat 2(dua) jenis penterjemah yaitu :
1. Compiller
Compiller merupakan penerjemah bahasa pemrograman yang menterjemahkan instruksiinstruksi
dalam satu kesatuan modul ke dalam bahasa mesin sehingga dihasilkan suatu file
executable.
2. Interpreter
Interpreter merupakan penerjemah bahasa pemrograman yang menterjemahkan instruksi
demi instruksi pada saat eksekusi program.
III. Debugging Dan Bentuk Kesalahan program
Debugging adalah penghilangan semua kesalahan yang ditemukan pada saat pengujian.
Kesalahan terjadi karena kecerobohan desain logika dan pengkodean.
Adapun macam-macam bentuk kesalahan program yaitu
· SYNTAX ERROR
Bentuk kesalahan program yang disebabkan karena kesalahan didalam hal penulisan
instruksi didalam program.
Contoh.
- Writ ( dalam bahasa PASCAL )
- Use ( dalam bahasa PASCAL )
- dan lain-lain
· RUN TIME ERROR
Bentuk kesalahan program yang disebabkan karena adanya proses arithmathic yang
ILLEGAL / tidak bisa diproses.
Contoh.
- B = ( 0 / 3 )
- Akar Minus
- dan lain-lain
· LOGIC ERROR
Bentuk kesalahan program yang disebabkan karena HUMAN-ERROR-LOGIC
(kesalahan logika program yang dibuat oleh programmer)
Contoh.
- Hasil / output program yang tidak sesuai
- Kesalahan program yang tidak dapat dideteksi
- dan lain-lain








Elemen-elemen Bahasa Pemrograman


A.    Aturan Leksikal
1. Token
Unit terkecil dari teks dalam program Pascal yang mempunyai arti khusus dan dikelompokan menjadi simbol-simbol / sejumlah karakter.
Menggunakan = simbol alphabet, angka dan karakter khusus.
2. Komentar
Adalah kalimat yang digunakan untuk menjelaskan antara lain kegunaan dari program, dokumentasi program (agar program mudah dipahami).


Komentar tidak mempengaruhi proses program (bersifat unexecutable statement)
Contoh penulisan :
{* isi komentar *}
3. Identifier (Pengenal)
Digunakan untuk menjelaskan Tipe Data, Fungsi dan Prosedur Program.
Ketentuan identifier :
- Gabungan Huruf dan angka dengan karakter pertama Huruf.
- Tidak boleh ada spasi
- Tidak boleh ada simbol khusus kecuali garis bawah (under line)
- Penggunaan panjang karakter maksimal 63 karakter.
Contoh :
Program_Penjualan  penggunaan underline untuk memisahkan kataß
DataMahasiswa
 gabungan huruf dan angkaßProgramP3K

4. Keyword/Reserved word (Kata Tercadang)
Bentuk kata-kata yang sudah di definisikan oleh Bahasa Program yang mempunyai maksud tertentu.
Contoh :
AND BEGIN DO DOWNTO ELSE END FOR
IF GOTO TO OPEN SET THEN WHILE

5. Operator
Bentuk Operasi perhitungan dalam instruksi program.
a. Arithmatik Operator
Operator Operasi level
Sqrt Pangkat I
* Perkalian II
/ Pembagian II
Mod Sisa pembagian II
Div Pembagian II
+ Penjumlahan III
- pengurangan III

b. Assigment Operator
Operator pemberi nilai , dalam pascal “ :=”

c. Bit wise / Logika Operator
Operator yang digunakan untuk operasi bit per bit pada nilai integer;
Contoh : and, or, shl, shr
1010 and 1100 = 1000
1010 or 1100 = 1110
1010 shl 1 = 10100
1010 shr 1 = 101

d. Boolean Operator
Operator yang menggunakan nilai true (1) dan false (0).
A B Not A A and B A or B A xor B
1 1 0 1 1 0
1 0 0 0 1 1
0 1 1 0 1 1
0 0 1 0 0 0

e. Relation Operator
Operator yang digunakan untuk membandingkan hubungan antara 2 operand yang menghasilkan nilai true atau false

Operator Operasi
= Sama dengan
<> Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan
>= Lebih besar atau sama dengan

Contoh : 15 >  TRUEà9

B. TIPE DATA
Dalam pemrograman variabel yang digunakan harus ditentukan tipe datanya sehingga bisa menentukan batasan nilai variabel dan jenis operasi yang dilaksanakan.

Tipe Data Sederhana
Tipe data sederhana tunggal : real, integer, boolean,char
Tipe data sederhana majemuk : string

Tipe Data Terstruktur
Struktur data sederhana : array, record

Struktur data majemuk :
1. Linier = stack(tumpukan), queque (antrian), linear linked list (senarai berantai)
2. Nonlinier = Binary Tree.

C. Expression

D. Statement

E. Function dan Procedure

Transfer Parameter
Pada saat program utama memanggil prosedur / fungsi dengan parameter, maka telah terjadi pengiriman parameter yaitu dari :

Parameter aktual/nyata (yang terdapat pada pemanggil prosedur/fungsi yaitu pada  parameter/variabelàprogram utama)  yang memberi nilai
ke
 parameter yang diberi nilai.àparameter Formal (yang terdapat pada prosedur/fungsi tersebut )

Program coba;

Procedure hitung(x:integer);
Begin

End;

Begin {** Program utama **}
A := 10;
Hitung(A);
End.


Berdasarkan hubungannya parameter dibedakan menjadi 2 yaitu parameter nilai & parameter acuan.
 procedure Hitung(a: integer; b: real);àParameter nilai
 procedure Hitung(var a: integer;var b: real);àParameter acuan


Pengiriman Parameter dapat dilakukan dengan 2 cara :
1. Passing By Value ( secara Nilai)
Pengiriman parameter satu arah.
Nilai parameter formal pada prosedur/fungsi akan sama dengan nilai parameter aktual/nyata pada program utama.
2. Passing By Reference (Secara Acuan/lokasi).
Pemgiriman 2 arah.
Perubahan nilai pada parameter formal akan mempengaruhi parameter aktual

Contoh Program

procedure Hitung(a,b : integer;var c: integer);
begin
c := a+b;
end;

var
x,y,z : integer;
begin
z :=0;
write('Nilai X = '); readln(x);
write('Nilai y = '); readln(y);
writeln('----- sebelum prosedur dipanggil ---');
writeln('Nilai X = ',x);
writeln('Nilai Y = ',y);
writeln('Nilai Z = ',z); writeln;
Hitung(x,y,z);
writeln('----- setelah prosedur dipanggil ---');
writeln('Nilai X = ',x);
writeln('Nilai Y = ',y);
writeln('Nilai Z = ',z);
readln;

end.
HASIL EKSEKUSI
Nilai X = 4
Nilai y = 8
----- sebelum prosedur dipanggil ---
Nilai X = 4
Nilai Y = 8
Nilai Z = 0

----- setelah prosedur dipanggil ---
Nilai X = 4
Nilai Y = 8
Nilai Z = 12

Terlihat perubahan pada parameter formal (c) mempengaruhi nilai parameter aktual (z).
Parameter z yang bernilai 0 berubah mengikuti perubahan pada parameter c.

UML


UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen- komponen yang diperlukan dalam sistem software (http://www.omg.org).
Pendekatan analisa & rancangan dengan menggunakan model OO mulai diperkenalkan sekitar pertengahan 1970 hingga akhir 1980 dikarenakan pada saat itu aplikasi software sudah meningkat dan mulai komplek. Jumlah yang menggunakaan metoda OO mulai diuji cobakandan diaplikasikan antara 1989 hingga 1994, seperti halnya oleh Grady Booch dari Rational Software Co., dikenal dengan OOSE (Object-Oriented Software Engineering), serta James Rumbaugh dari General Electric, dikenal dengan OMT (Object Modelling Technique).
Kelemahan saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya standar penggunaan model yang berbasis OO, ketika mereka bertemu ditemani rekan lainnya Ivar Jacobson dari Objectory mulai mendiskusikan untuk mengadopsi masing-masing pendekatan metoda OO untuk membuat suatu model bahasa yang uniform / seragam yang disebut UML (Unified Modeling Language) dan dapat digunakan oleh seluruh dunia.
Secara resmi bahasa UML dimulai pada bulan oktober 1994, ketika Rumbaugh bergabung Booch untuk membuat sebuah project pendekatan metoda yang uniform/seragam dari masing-masing metoda mereka. Saat itu baru dikembangkan draft metoda UML version 0.8 dan diselesaikan serta di release pada bulan oktober 1995. Bersamaan dengan saat itu, Jacobson bergabung dan UML tersebut diperkaya ruang lingkupnya dengan metoda OOSE sehingga muncul release version 0.9 pada bulan Juni 1996. Hingga saat ini sejak Juni 1998 UML version 1.3 telah diperkaya dan direspons oleh OMG (Object Management Group),
Anderson Consulting, Ericsson, Platinum Technology, ObjectTime Limited, dll serta di pelihara oleh OMG yang dipimpin oleh Cris Kobryn. UML adalah standar dunia yang dibuat oleh Object Management Group (OMG), sebuah badan yang bertugas mengeluarkan standar-standar teknologi objectoriented dan software component.
Pengenalan UML
UML sebagai sebuah bahasa yang memberikan vocabulary dan tatanan penulisan kata-kata dalam ‘MS Word’ untuk kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem. Seperti halnya UML adalah sebuah bahasa standard untuk pengembangan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software.
UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database. Begitu juga mengenai pendokumentasian dapat dilakukan seperti; requirements, arsitektur, design, source code, project plan, tests, dan prototypes.
Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model, dan mempelajari 3 (tiga) elemen utama dari UML seperti building block, aturan-aturan yang menyatakan bagaimana building block diletakkan secara bersamaan, dan beberapa mekanisme umum (common).
Building blocks
Tiga macam yang terdapat dalam building block adalah :
Benda/Things adalah hal yang sangat mendasar dalam model UML, juga merupakan bagian paling statik dari sebuah model, serta menjelaskan elemenelemen lainnya dari sebuah konsep dan atau fisik. Bentuk dari beberapa Benda / Things benda / thing adalah sebagai berikut :
Classes, yang diuraikan sebagai sekelompok dari object yang mempunyai atribute, operasi, hubungan yang semantik. Sebuah kelas mengimplementasikan 1 atau lebih interfaces. Sebuah kelas dapat digambarkan sebagai sebuah persegi panjang, yang mempunyai sebuah nama, atribute, dan metoda pengoperasiannya.• Interfaces, merupakan sebuah antar-muka yang menghubungkan dan melayani antar kelas dan atau elemen. Interface / antar-muka mendefinisikan sebuah set / kelompok dari spesifikasi pengoperasian, umumnya digambarkan dengan sebuah lingkaran yang disertai dengan namanya. Sebuah antar-muka berdiri sendiri dan umumnya merupakan pelengkap dari kelas atau komponen.
Gambar1. Sebuah Class dari Model UML
Collaboration, yang didefinisikan dengan interaksi dan sebuah kumpulan / kelompok dari kelas-kelas / elemen-elemen yang bekerja secara bersama-sama. Collaborations mempunyai struktur dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam beberapa collaborations dan digambarkan dengan sebuah ‘elips’ dengan garis terpotong-potong.
Gambar2. Collaboration
Use cases, adalah rangkaian/uraian sekelompok yang saling terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. ‘use case’ digunakan untuk membentuk tingkah-laku benda / things dalam sebuah model serta di realisasikan oleh sebuah collaboration. Umumnya ‘use case’ digambarkan dengan sebuah ‘elips’ dengan garis yang solid, biasanya mengandung nama.

Gambar3. Use Case
Nodes, merupakan fisik dari elemen-elemen yang ada pada saat dijalankannya sebuah sistem, contohnya adalaha sebuah komputer, umumnya mempunyai sedikitnya memory dan processor. Sekelompok komponen mungkin terletak pada sebuah node dan juga mungkin akan berpindah dari node satu ke node lainnya. Umumnya node ini digambarkan seperti kubus serta hanya mengandung namanya.
Gambar4. Nodes
Hubungan/Relationships
Ada 4 macam hubungan didalam penggunaan UML, yaitu;
Dependency, adalah hubungan semantik antara dua benda/things yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency digambarkan sebuah panah dengan garis terputusputus.
Gambar5. Depedency
Association, hubungan antar benda struktural yang terhubung diantara obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya.
Gambar6. Association
Generalizations, adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk. Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah.
Gambar7. Generalizations
Realizations, merupakan hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization.
Gambar8. Realizations
Bagan/Diagrams
Bagan/diagram adalah sebagai kumpulan / group dari benda-benda/things. UML sendiri terdiri atas pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai 9 diagram, yaitu;
Diagram Use Case
Diagram Class
• Diagram Package
Diagram Sequence
• Diagram Collaboration
• Diagram StateChart
• Diagram Activity
• Diagram Deployment
Semakin kompleks bentukan sistem yang akan dibuat, maka semakin sulit komunikasi antara orang-orang yang saling terkait dalam pembuatan dan pengembangan software yang akan dibuat. Pada masa lalu, UML mempunyai peranan sebagai software blueprint (gambaran) language untuk analisis sistem, designer, dan programmer. Sedangkan pada saat ini, merupakan bagian dari software trade (bisnis software). UML memberikan jalur komunikasi dari sistem analis kemudian designer, lalu programmer mengenai rancangan software yang akan dikerjakan.
Salah satu pemecahan masalah Object Oriented adalah dengan menggunakan UML. Oleh karena itu orang-orang yang berminat dalam mempelajari UML harus mengetahui dasar-dasar mengenai Object Oriented Solving (pemecahan masalah OO). Tahap pertama, pembentukan model.
Model adalah gambaran abstrak dari suatu dasar masalah. Dan dunia nyata atau tempat dimana masalah itu timbul bisa disebut dengan domain. Model mengandung obyek-obyek yang beraktifitas dengan saling mengirimkan messages (pesan-pesan). Obyek mempunyai sesuatu yang diketahui (atribut /attributes) dan sesuatu yang dil akukan (behaviors atau operations). Attributes hanya berlaku dalam ruang lingkup obyek itu sendiri (state). Lalu “blue print” dari suatu obyek adalah Classes (kelas). Obyek merupakan bagian-bagian dari kelas.

Konsep Dasar Pemrograman


Algoritma : Langkah-langkah untuk menyelesaikan sesuatu masalah
Pemrograman Terstruktur : “Metode untuk mengorganisasikan dan membuat kode-kode program supaya mudah untuk dimengerti, mudah di test dan di modifikasi.”
Algoritma Pemrograman Yang Baik
Ciri-ciri algoritma pemrograman yang baik adalah :
  1. Memiliki logika perhitungan/metode yang tepat dalam memecahkan masalah
  2. Menghasilkan output yang tepat dan benar dalam waktu yang singkat
  3. Ditulis dengan bahasa yang standar secara sistematis dan rapi sehingga tidak menimbulkan arti ganda.
  4. Ditulis dengan format yang mudah dipahami dan diimplementasikan ke dalam bahasa pemrograman.
  5. Semua operasi yang dibutuhkan terdefinisi dengan jelas.
  6. Semua proses harus berakhir setelah sejumlah langkah dilakukan.
Standar Suatu Program Yang Baik
A. Standar Pemecahan masalah
teknik untuk dapat membantu memecahkan masalah antara lain teknik Top Down dan teknik Modular.
B. Standar Penyusunan Program
1. Kebenaran logika dan penulisan
Program yang disusun harus memiliki logika dalam pemecahan masalah. Program yang dibuat harus memiliki ketepatan, ketelitian dan kebenaran sehingga menghasilkan program yang baik.
2. Waktu penulisan dan eksekusi program
3. Perawatan dan pengembangan program
Penyusunan program harus mempunyai sifat kesederhanaan dan kejelasan dari program yang nantinya akan dikembangkan dan membantu dalam perawatan.
4. Portabilitas
Bahasa pemrograman dan program yang disusun sebaiknya bisa dipakai pada berbagai tipe komputer yang berbeda-beda dan berbagai jenis sistem operasi.
Standar Perawatan Program
1. Dokumentasi
2. Penulisan Instruksi
a. Berikan keterangan untuk awal statement atau instruksi yang tergabung dalam sekelompok statement.
b. Awal dan akhir statement dari sekumpulan statement ditulis pada kolom yang sama.
c. Gunakan sebaris atau beberapa baris kosong sebagai pemisah.
d. Hindari pernyataan untuk Percabangan
(IF statement ) yang sangat rumit dan Nested Loop (Loop disalam Loop lain) yang berlebihan.
e. Gunakan “kurung buka dan tutup” dalam menulis suatu ekspresi Aritmatika atau logika.
f. Gunakan “Spasi” dalam menulis statement atau instruksi.
Sifat Penulisan Program
a. Program Oriented
Penulisan program yang struktur programnya selalu berubah, apabila kondisi data yang diproses di dalam program tersebut, bertambah volume datanya. Selain itu penulisan program ini bersifat statis dan tidak fleksibel (program animasi)
b. Data Oriented
Penulisan program yang struktur programnnya tidak selalu berubah, walaupun volume data yang diproses di dalam program tersebut, dalam jumlah besar. Selain itu pula penulisan program ini bersifat dinamis dan mempunyai tingkat fleksibilitas yang tinggi.
Kualitas Bahasa Pemrograman
1. Ekspresifitas
Bahasa pemrograman yang baik harus jelas dalam menggambarkan algoritmanya yang dibuat.
2. Definitas (dapat didefinisikan dengan baik)
Bahasa Pemrograman dapat didefinisikan dari adanya sintak dan semantic baik. Sintak dan semantic ini haruslah konsisten dan tidak bermakna ganda.
3. Tipe data dan Strukturnya
Bahasa pemrograman yang baik harus berkemampuan dalam mendukung berbagai tipe data (integer, string,real). Serta struktur data (array, record,file)
4. Modularitas
Bahasa pemrograman yang baik harus memiliki fasilitas sub program. Program yang besar dapat dikerjakan oleh beberapa pemrogram secara bersama-sama yang nantinya dengan mudah dapat digabungkan menjadi sebuah modul saja.
5. Adanya Input Output
Bahasa pemrograman yang baik harus dapat mendukung berbagai jenis model file seperti sequential, random, index dsb dalam proses masukan dan keluaran.
6. Portabilitas
Bahasa pemrograman yang dapat digunakan pada berbagai tipe mesin computer yang berbeda-beda.
7. Efisiensi
Bahasa pemrograman yang dapat mengatur banyaknya instruksi program dalam membatasi waktu tempuh pemrosesan, mengatur jumlah memori yang digunakan program,.
8. Interaktif
Bahasa pemrograman yang baik harus mudah dipelajari dan diajarkan pada user. Serta dimengerti tentang proses yang sedang dilakukannya.
9. Umum
Bahasa pemrograman yangn baik harus memiliki jangkauan yang luas untuk berbagai aplikasi pemrograman sehingga dapat bersifat bahasa serbaguna.

OOP (Object oriented Programing)


OOP adalah paradigma pemrograman yang cukup dominan saat ini, karena mampu memberikan solusi kaidah pemrograman modern. Meskipun demikian, bukan berarti bahwa pemrograman prosedural sudah tidak layak lagi .

OOP diciptakan karena dirasakan masih adanya keterbatasan pada bahasa pemrograman tradisional. Konsep dari OOP sendiri adalah, semua pemecahan masalah dibagi ke dalam objek. Dalam OOP data dan fungsi-fungsi yang akan mengoperasikannya digabungkan menjadi satu kesatuan yang dapat disebut sebagai objek. Proses perancangan atau desain dalam suatu pemrograman merupakan proses yang tidak terpisah dari proses yang mendahului, yaitu analisis dan proses yang mengikutinya. Pembahasan mengenai orientasi objek tidak akan terlepas dari konsep objek seperti inheritance atau penurunan, encapsulation atau pembungkusan,
dan polymorphism atau kebanyakrupaan. Konsep-konsep ini merupakan fundamental dalam orientasi objek yang perlu sekali dipahami serta digunakan dengan baik, dan menghindari penggunaannya yang tidak tepat.
Class dan Objek
Dalam lingkungan program berorientasi objek, pemrogram mendefinisikan class secara statik. Pada saat run-time, class akan diinstantiasi menjadi objek. Ada pun objek yang merupakan instantiasi dari suatu class selalu dapat diacu melalui current objek, apa pun nama instant-nya.
Dapat didefinisikan bahwa class merupakan struktur data dari suatu objek, lebih jelasnya adalah sebuah bentuk dasar atau blueprint yang mendefinisikan variabel method umum pada semua objek dari beberapa macam. Objek sendiri adalah kumpulan variabel dan fungsi yang dihasilkan dari template khusus atau disebut class. objek adalah elemen pada saat run-time yang akan diciptakan, dimanipulasi, dan dihancurkan ketika eksekusi. Ada pun class merupakan definisi statik dari himpunan objek yang mungkin diciptakan sebagai instantiasi dari class. Sederhananya adalah kumpulan objek yang mempunyai atribut sama. Dengan demikian, pada saat run-time maka yang kita miliki adalah objek.
Class biasany dibuat seperti ini
Class nama_classnya{
//berisi sekumpulan fungsi,variabel dan
//statement-statement lainnya
}
Agar class tersebut dpt digunakan maka perlu memiliki atribut-atribut contonya dalam php/c++
//di php
class NamaClass {
var $atribut1;
var $atribut2;
function operasi(){}
}
//di c++
class NamaClass {
public:
int atribut1;
int atribut2;
int operasi(){retun nilai_int}
};
Pada bahasa pemerograman web lain ex. Java file harus disimpan dengan nama class berbeda dengan PHP kita dapat memberikan nama yang tidak mesti sama dengan nama classnya
Inheritance
Inheritance atau pewarisan adalah kalimat yang pasti ada di dalam pemerograman berorientasi objek disebut juga dengan istilah reusable.
Ketika kita menggunakan kembali atau mengganti method dari class yang sudah ada, serta ketika menambahkan field instant dan method baru, maka pada saat itulah Anda bekerja dengan inheritance. Konsep ini merupakan konsep yang fundamental dalam orientasi objek dan harus digunakan dengan baik, ada beberapa macam Inheritance atau pewarisan yang ada di dalam OOP Single Inheritance dan Multple Inheritance
- Single Inheritance

- Multiple Inheritance

dalam penggunaan inheritance class Induk akan mewariskan semua atribut yang ia miliki sehingga class bawahnya akan memilki atribut yang sama dengan class induk, bahkan dapat memilki kebabasan untuk memilki atribut berbeda dengan class induknya berikut ilustrasi dalam php
catatan :
sampai sekarang PHP belum mendukung multiple inheritance seperti C++ walapun PHP dan c/c++ begitu banyak kemiripannya, dan perubahan PHP versi 5 ditekankan pada OOP salah satunya adalah beberapa tambahan untuk kemampuan inheritance
/* inheritance.php */
class Bapak {
var $nama =”Bapak”;
function Bapak($n) {
$this->nama = $n;
}
function Hallo() {echo “Halo, saya $this->nama
”;}
}
class Anak extends Bapak {}
$test = new Anak(”Anak dari Bapak”);
$test->Hallo();
?>
Hasil tampilan dari listing program di atas adalah “Halo, saya Anak dari Bapak” dan bukannya “Halo, saya Bapak”. Mengapa demikian? Memang di dalam class Bapak didefinisikan variabel nama dengan nilai Bapak, selanjutnya kita membuat objek dari class Anak yang merupakan turunan dari class Bapak. Lihat bahwa instantiasi sekaligus mengisikan parameter baru “Anak dari Bapak”, sehingga ketika dipanggil maka mengisikan $this->nama dengan parameter tersebut. Ada pun di dalam implementasi pemrograman, kebanyakan pemrogram merasakan beberapa manfaat dari inheritance atau pewarisan, diantaranya:
Subclass mampu menyediakan perilaku khusus dari elemen dasar yang disediakan oleh superclass.
Pemrogram dapat mengimplementasikan superclass untuk memanggil class abstrak yang menyatakan perilaku umum.

Pemograman adalah Suatu kumpulan urutan pemrintah ke computer untuk mengerjakan sesuatu,dimana intruksi tersebut menggunakan bahasa yang

dimengerti oleh computer atau di kenal dengan bahasa pemograman.

Konsep Objec Oriented sebenarnya bukanlah barang baru dalam dunia bahasa pemograman. Konsep ini sudah lama ada di mulai dari bahasa pemograman Small Talk,LISP,C++,dan beberapa bahasa pemogaran lainnya.

Pemoograman Object Oriented di maksudkan adalah membuat suatu program yang terdiri dari berbagai object yang saling berinteraksi. Dalam mebangun program yang masih sederhana konsep object oriented ini akan terasa sangat menyusahkan, akan tetapi ketika kita membuat Sebuah program yang ruaang lingkupnya luas konsep object oriented akan terasa sangat membantu karena akan terasa lebih mudah untuk mengorganisir program yang telah kita buat.

Dalam konsep object oriented akan kita temukan kaata object dn class,class merupakan pola atau teamplate yang menggambarkan kumpulan object yang mempunyai sifat yang sama,perilaku,atu disebut dengan himpunan object sejenis. Sementara object adalah implementasi dari class. Sebagai contoh : dalam pembangunan suatu gedung tentunya seorang arsitek akaan menggunakan gambar desain gedung,dan kemudian akan di buat gedung nyatanya, Dalam contoh ini gambar desain gedung dapat kita kategorikan sebagai class dan gedungnyata sebagai implementasi dari gambar gedung yang dapat kita kata gorikan sebagai object,Dari suatu class dapat di buat beberapa object yang sama.


• OOP (Object oriented Programing)

Pemograman Object Oriented adalah membuat suatu program yang terdiri dari berbagai oject yang saling beriteraksi (dalam beberapa buku di artikan dengan bertukar pesan antar object). Ketika membuat Sebuah program yang ruang lingkupnya luas konsep object oriented akan terasa sangat membantu karna akan terasa lebih mudah untuk menggorganisir program yang telah kita buat,Dalam konsep object oriented terdapat 2 istilah yaitu objeck dan class,class merupakan pola atau template yang menggambarkan kumpulan object yang mempunyai sifat yang sama,perilaku,atau disebut dengan himpunan object sejenis. Sementara object adalah implementasi dari class. Tujuan utama dari pengembngan perangkat lunak atau program berorientasi oject adalah

1. Mempersingkat waktu dan menurunkan biaya pengembangan
Rekayasa perangkat lunak

2. Menurunkan biaya perwatan perangkat lunak

3. Pemograman beririentasi object memberikan landasan yang sangat berguna untuk pembuatan prototype system secara cepat.


Pedoman yang di sajikaan untuk menentukan Object-object dalam suatu proram:

a Correctness Sufficiency


Dalam mendesain proram sebaiknya kita memperhatikan bahwa object-object yang kita desain dapat menjamin kebenaran informasi dan juga kecukupan informasi yang di butuhkan.

a Robustness


Objetc-object yang kita desain sebaiknya dapat mebuat suatu program menjadi tangguh,dalam hal ini di harapkan program yang di buat meiliki error yang sedikit dan dapat bertahan dalam situasi yang sulit sekalipun.

a Flexibility


Object –object yang didesain sebaiknya mudah untuk di expand atau di kembangkan (bersifat flexbiliaty). Hal ini di butuh kan karena dalam perbuatan program sering kali kita harus merubah desain yang telah kita buat sebelumnya karena adanya perubahan desain yang di ingn kan oleh user ataupengguna.


a Reasbility


Kode-kde pogram yang telah kita buat,dapat kita gunakan kembali.Hal ini haruslah terpenuhi dalam mendesain program yang baik. Karena ketika kita menggunakan point ini maka kita akan lebih mudah untuk me-manage program yang kita buat.



a Efficiency

Desain yang kita buat sebaiknya efesien karena akan berkaitan dengan penggunaan resorce hardware yang kita gunakan. Baik itu dalam factor kecepatan maupun dalam factor penyimpanan data atau program.



• Pemrograman berorientasi Object (OOP)

Pemrograman berorientasi Object merupakan paradigma pemrograman yang menggunakan " objek "- struktur data yang terdiri dari bidang data dan metode bersama dengan interaksi mereka - untuk merancang aplikasi dan program komputer. Programming techniques may include features such as data abstraction , encapsulation , modularity , polymorphism , and inheritance . Pemrograman teknik dapat mencakup fitur seperti data abstraksi , enkapsulasi , modularitas , polimorfisme , dan warisan . Many modern programming languages now support OOP. Banyak modern bahasa pemrograman sekarang mendukung OOP.
• ikhtisar
Sebuah objek adalah bundel diskrit fungsi dan prosedur, seringkali berkaitan dengan konsep dunia nyata tertentu seperti pemegang rekening bank, pemain hoki, atau buldoser. Lain buah perangkat lunak dapat mengakses objek hanya dengan memanggil fungsi dan prosedur yang telah diizinkan untuk dipanggil oleh orang luar Sejumlah besar insinyur perangkat lunak setuju bahwa mengisolasi objek dengan cara ini membuat software mereka lebih mudah untuk mengelola dan melacak. Namun, sejumlah besar insinyur merasa kebalikannya mungkin benar: bahwa perangkat lunak menjadi lebih kompleks untuk mempertahankan dan dokumen, atau bahkan untuk insinyur dari awal Kondisi di mana OOP menang atas teknik alternatif (dan sebaliknya) sering tetap tak tertulis oleh salah satu pihak, bagaimanapun, pembahasan rasional dari topik yang sulit, dan sering menyebabkan perdebatan sengit [ rujukan? ] atas masalah.
Pemrograman berorientasi obyek memiliki akar yang dapat ditelusuri ke tahun 1960-an. Sebagai perangkat keras dan software menjadi semakin kompleks, pengelolaan sering menjadi perhatian. Para peneliti mempelajari cara untuk menjaga kualitas software dan pemrograman berorientasi objek yang dikembangkan sebagian untuk mengatasi masalah-masalah umum dengan sangat menekankan diskrit, unit dapat digunakan kembali logika. Teknologi ini berfokus pada data daripada proses, dengan program yang terdiri dari modul mandiri ("kelas"), setiap contoh yang ("objek") berisi semua informasi yang dibutuhkan untuk memanipulasi data struktur sendiri ("anggota"). Hal ini berbeda dengan yang ada pemrograman modular yang telah dominan selama bertahun-tahun yang difokuskan pada fungsi dari sebuah modul, bukan data spesifik, tetapi juga disediakan untuk penggunaan kembali kode , dan cukup dapat digunakan kembali unit-diri dari logika pemrograman, memungkinkan kolaborasi melalui penggunaan modul terkait ( subrutin ).. Pendekatan yang lebih konvensional, yang masih tetap, cenderung untuk mempertimbangkan data dan perilaku secara terpisah.
Istilah "benda" dan "berorientasi" dalam sesuatu seperti pengertian modern berorientasi objek pemrograman tampaknya membuat penampilan pertama mereka di MIT pada akhir 1950-an dan awal 1960-an "member functions Dalam lingkungan dari kecerdasan buatan kelompok, pada awal 1960, "objek" bisa merujuk ke item diidentifikasi ( LISP atom) dengan sifat (atribut); Alan Kay kemudian mengutip pemahaman rinci internal LISP sebagai pengaruh yang kuat pada pemikirannya pada tahun 1966. Contoh lain MIT awal Sketchpad diciptakan oleh Ivan Sutherland pada tahun 1960-1961, dalam glossary dari laporan teknis 1963 berdasarkan disertasi tentang Sketchpad, Sutherland didefinisikan pengertian dari "objek" dan "contoh" (dengan konsep kelas ditutupi oleh "master" atau "definisi"), walaupun khusus untuk interaksi grafis. [4] Juga, sebuah MIT ALGOL versi, AED-0, terkait struktur data ("plexes", di dialek) secara langsung dengan prosedur, pertanda apa yang kemudian disebut "pesan", "metode" dan "fungsi anggota".
Objek sebagai konsep formal dalam pemrograman diperkenalkan pada tahun 1960 di Simula 67, revisi utama dari Simula I, bahasa pemrograman yang dirancang untuk simulasi kejadian diskrit , diciptakan oleh Ole-Johan Dahl dan Kristen Nygaard dari Norwegia Computing Center di Oslo . [ 7] Simula 67 dipengaruhi oleh SIMSCRIPT dan Hoare's diusulkan "kelas merekam". [5] [8] Simula memperkenalkan gagasan kelas dan contoh atau benda (dan juga subclass, metode virtual, coroutines, dan simulasi kejadian diskrit) sebagai bagian sebuah paradigma pemrograman yang eksplisit. The language also used automatic garbage collection that had been invented earlier for the functional programming language Lisp . Bahasa ini juga digunakan otomatis pengumpulan sampah yang telah diciptakan sebelumnya untuk pemrograman fungsional bahasa Lisp . Simula yang digunakan untuk pemodelan fisik, seperti model-model untuk mempelajari dan meningkatkan pergerakan kapal dan isinya melalui pelabuhan kargo . Ide-ide Simula 67 dipengaruhi bahasa banyak kemudian, termasuk Smalltalk, turunan dari LISP ( CLOS ), Object Pascal , dan C + + .
The Smalltalk bahasa, yang dikembangkan di Xerox PARC (oleh Alan Kay dan lain-lain) pada 1970-an, memperkenalkan pemrograman berorientasi obyek istilah untuk mewakili penggunaan meresap objek dan pesan sebagai dasar untuk perhitungan. . Smalltalk pencipta dipengaruhi oleh ide-ide yang diperkenalkan dalam Simula 67, tapi Smalltalk dirancang untuk menjadi sistem yang dinamis sepenuhnya di mana kelas dapat dibuat dan dimodifikasi secara dinamis, bukan statis seperti dalam Simula 67. [9] Smalltalk dan dengan itu OOP diperkenalkan untuk khalayak yang lebih luas oleh Agustus 1981 edisi majalah Byte .
Pada 1970-an, Smalltalk karya tersebut Kay telah mempengaruhi masyarakat Lisp untuk menggabungkan teknik-teknik berbasis objek yang diperkenalkan untuk pengembang melalui mesin Lisp . . Eksperimen dengan berbagai ekstensi Lisp (seperti Loops dan Rasa memperkenalkan multiple inheritance dan mixin ), akhirnya mengarah pada Common Lisp Object System (CLOS, bagian dari berorientasi obyek bahasa pemrograman standar pertama, ANSI Common Lisp ), yang mengintegrasikan pemrograman fungsional dan pemrograman berorientasi obyek dan memungkinkan perpanjangan melalui protokol Meta-objek . the Linn Smart Rekursiv . Contoh termasuk iAPX Intel 432 dan Linn Smart Rekursiv .
Pemrograman berorientasi obyek yang dikembangkan sebagai metodologi pemrograman dominan di awal dan pertengahan 1990-an ketika bahasa pemrograman yang mendukung teknik menjadi tersedia secara luas. . Ini termasuk Visual FoxPro 3.0 C + + dan Delphi. dominasi semakin ditingkatkan oleh meningkatnya popularitas antarmuka pengguna grafis , yang sangat tergantung pada teknik pemrograman berorientasi-objek.. Sebuah contoh dari GUI dinamis perpustakaan erat kaitannya dan bahasa OOP dapat ditemukan di Kakao kerangka pada Mac OS X , ditulis dalam Objective-C , sebuah berorientasi, dinamis-ekstensi objek pesan ke C berdasarkan Smalltalk.. OOP toolkit juga meningkatkan popularitas pemrograman event-driven (walaupun konsep ini tidak terbatas pada OOP).. Beberapa merasa bahwa hubungan dengan GUI (nyata atau dianggap) adalah apa yang didorong OOP ke dalam arus pemrograman.
, Niklaus Wirth dan rekan-rekannya juga telah menyelidiki topik seperti abstraksi data dan pemrograman modular (walaupun ini telah umum digunakan pada tahun 1960 atau sebelumnya). Modula-2 (1978) termasuk baik, dan berhasil desain mereka, Oberon , termasuk pendekatan khusus untuk objek orientasi, kelas, dan semacamnya Pendekatan ini tidak seperti Smalltalk, dan sangat tidak seperti C + +.
Obyek fitur telah ditambahkan ke banyak bahasa yang ada selama waktu itu, termasuk Ada , BASIC , Fortran , Pascal , dan lain-lain. Menambahkan fitur ini untuk bahasa yang awalnya tidak dirancang untuk mereka sering menyebabkan masalah dengan kompatibilitas dan rawatan kode.
Baru-baru ini, sejumlah bahasa telah muncul yang terutama berorientasi objek belum kompatibel dengan metodologi prosedural, seperti Python dan Ruby .. Mungkin komersial penting baru-baru ini bahasa berorientasi objek yang paling adalah Visual Basic.NET (VB.NET) dan C # , baik yang dirancang untuk Microsoft NET. platform, dan Jawa , yang dikembangkan oleh Sun Microsystems .kedua kerangka menunjukkan manfaat penggunaan OOP dengan membuat sebuah abstraksi dari implementasi dengan cara mereka sendiri.. VB.NET dan C # mendukung warisan lintas bahasa, kelas memungkinkan didefinisikan dalam satu bahasa ke bahasa subclass kelas didefinisikan dalam bahasa lain. Java berjalan dalam mesin virtual, sehingga memungkinkan untuk berjalan di semua sistem operasi yang berbeda.. VB.NET dan C # menggunakan pola Strategi untuk mencapai-bahasa warisan lintas, sedangkan Jawa memanfaatkan pola Adapter
Sama seperti pemrograman prosedural menyebabkan perbaikan teknik seperti pemrograman terstruktur , desain perangkat lunak berorientasi objek metode modern meliputi perbaikan [ rujukan? ] seperti penggunaan pola desain , desain dengan kontrak , dan bahasa pemodelan (seperti UML ).

• Konsep dasar dan fitur
Sebuah survei oleh Deborah J. Armstrong hampir 40 tahun sastra komputasi mengidentifikasi sejumlah "quark", atau konsep mendasar, ditemukan dalam mayoritas kuat definisi dari OOP.
Tidak semua konsep-konsep ini dapat ditemukan dalam semua bahasa pemrograman berorientasi-objek, dan pemrograman berorientasi objek yang menggunakan kelas kadang-kadang disebut pemrograman berbasis kelas . tidak biasanya menggunakan kelas. Akibatnya, secara signifikan berbeda namun terminologi analog digunakan untuk mendefinisikan konsep objek dan contoh.
Cuire Benjamin Pierce dan beberapa peneliti lain melihat sebagai sia-sia setiap usaha untuk menyaring OOP untuk satu set minimal fitur Meskipun demikian, ia mengidentifikasi fitur fundamental yang mendukung gaya pemrograman OOP dalam bahasa berorientasi objek yang paling
• Dynamic dispatch - ketika metode bisa dipanggil pada objek, obyek itu sendiri menentukan kode apa yang dijalankan dengan melihat metode pada waktu berjalan dalam sebuah tabel yang berhubungan dengan objek. Fitur ini membedakan objek dari suatu tipe data abstrak (atau modul), yang memiliki pelaksanaan (statis) tetap operasi untuk semua kasus. Ini adalah metodologi pengembangan program yang memberikan komponen modular sementara pada saat yang sama yang sangat efisien.
• Encapsulation (atau multi-metode , dalam hal ini negara disimpan terpisah)
• Subtipe polimorfisme
• Object inheritance (or delegation ) Objek warisan (atau delegasi )
• rekursi Buka - variabel khusus (sintaktis mungkin kata kunci), biasanya disebut this atau self , yang memungkinkan badan metode untuk memanggil metode tubuh lain objek yang sama Variabel ini akhir-terikat, yang memungkinkan sebuah metode yang didefinisikan dalam satu kelas untuk memanggil metode lain yang ditentukan kemudian, dalam beberapa subclass daripadanya.

Demikian pula, dalam bukunya 2003, Konsep-konsep dalam bahasa pemrograman, John C. Mitchell mengidentifikasi empat fitur utama: dinamis pengiriman, abstraksi , subtipe polimorfisme, dan pewarisan. Michael Lee Scott dalam Bahasa Pemrograman pragmatik hanya mempertimbangkan enkapsulasi, pewarisan dan dinamis pengiriman . [16]

Main article: Class (computer science) Artikel utama: Kelas (ilmu komputer)

. kelas adalah template untuk suatu obyek, suatu datatype ditetapkan pengguna yang berisi variabel, properti, dan metode. kelas mendefinisikan karakteristik abstrak sesuatu (objek), termasuk karakteristiknya (atributnya, ladang atau properti ) dan hal-hal yang bisa dilakukan (perilaku, metode , operasi atau fitur. Orang mungkin mengatakan bahwa kelas adalah cetak biru atau pabrik yang menggambarkan sifat sesuatu Sebagai contoh, kelas Dog akan terdiri dari ciri-ciri yang dimiliki oleh semua anjing, seperti berkembang biak dan warna bulu (karakteristik), dan kemampuan untuk kulit dan duduk (perilaku). Kelas menyediakan modularitas dan struktur dalam sebuah program komputer berorientasi-objek.. kelas A biasanya harus dikenali oleh programmer non-akrab dengan masalah domain, yang berarti bahwa karakteristik kelas harus masuk akal dalam konteks. Selain itu, kode untuk kelas harus relatif self-contained (umumnya menggunakan enkapsulasi Secara kolektif, sifat dan metode yang didefinisikan oleh kelas disebut anggota.
Artikel utama: Instance (ilmu komputer)
Satu dapat memiliki sebuah instance dari kelas; contoh adalah objek yang sebenarnya dibuat pada saat run-time Dalam programmer vernakular, yang Lassie objek merupakan instance dari Dog kelas. Set nilai dari atribut objek tertentu disebut nya negara . Objek ini terdiri dari negara dan perilaku yang didefinisikan di kelas objek.
Artikel utama: Metode (ilmu komputer)
. Metode adalah satu set pernyataan prosedural untuk mencapai hasil yang diinginkan.. Ia melakukan berbagai jenis operasi pada tipe data yang berbeda Dalam bahasa pemrograman, metode (terkadang disebut sebagai "fungsi") adalah verba. Lassie , menjadi Dog , memiliki kemampuan untuk kulit. So bark() is one of Lassie 's methods. Jadi bark() adalah salah satu Lassie metode s '. . Dia mungkin memiliki metode-metode lain juga, misalnya sit() atau eat() atau walk() atau save(Timmy) .. Dalam program tersebut, menggunakan metode biasanya mempengaruhi hanya satu objek tertentu; semua Dog s mengonggong, namun Anda hanya perlu satu anjing tertentu untuk melakukan menggonggong.

Artikel utama: Message passing
. "Proses di mana suatu objek mengirim data ke obyek lain atau meminta objek lain untuk memanggil sebuah metode." [13] Juga dikenal dengan beberapa bahasa pemrograman interfacing. Sebagai contoh, objek yang disebut Breeder dapat memberitahu Lassie objek untuk duduk dengan melewati sebuah "duduk" pesan yang memanggil Lassie's "duduk" metode. Sintaks bervariasi antara bahasa, misalnya: [Lassie sit] di Objective-C. In Java, code-level message passing corresponds to "method calling". Di Jawa, kode-Tingkat kelulusan pesan sesuai dengan "metode panggilan". Beberapa bahasa dinamis menggunakan double-pengiriman atau multi-dispatch untuk menemukan dan lulus pesan.
Artikel utama: Abstraksi (ilmu komputer)
. Abstraksi mengacu pada tindakan yang merupakan fitur penting tanpa termasuk rincian latar belakang atau penjelasan. Classes use the concept of abstraction and are defined as a list of abstract attributes. Kelas menggunakan konsep abstraksi dan didefinisikan sebagai daftar atribut abstrak.
Artikel utama: Encapsulation (pemrograman berorientasi obyek)
Enkapsulasi menyembunyikan rincian fungsional kelas dari objek yang mengirim pesan itu.
. Sebagai contoh, Dog kelas memiliki bark() variabel metode, data Kode untuk mendefinisikan metode persis bagaimana kulit terjadi (misalnya, dengan inhale() dan kemudian, di sebuah lapangan tertentu dan volume). Timmy, teman s ', bagaimanapun, tidak perlu tahu persis bagaimana dia menyalak Enkapsulasi dicapai dengan menetapkan kelas dapat menggunakan anggota objek Hasilnya adalah bahwa setiap objek menghadapkan untuk setiap kelas tertentu antarmuka - para anggota dapat diakses oleh kelas tersebut. Alasan untuk enkapsulasi adalah untuk mencegah klien dari sebuah antarmuka dari tergantung pada bagian-bagian dari implementasi yang mungkin berubah di masa depan, sehingga memungkinkan perubahan tersebut akan dibuat lebih mudah, yaitu, tanpa perubahan untuk klien. Sebagai contoh, sebuah antarmuka dapat memastikan bahwa anak anjing hanya dapat ditambahkan ke sebuah objek dari kelas Dog oleh kode di kelas itu Anggota sering ditetapkan sebagai public, protected atau swasta, menentukan apakah mereka yang tersedia untuk semua kelas, sub-kelas atau hanya kelas mendefinisikan. Beberapa bahasa melangkah lebih jauh: Jawa menggunakan modifier akses standar untuk membatasi akses juga untuk kelas-kelas dalam paket yang sama, C # dan VB.NET cadangan beberapa anggota kelas-kelas dalam majelis yang sama menggunakan kata kunci internal (C #) atau Teman (VB.NET). Eiffel dan C + + membolehkan satu untuk menentukan kelas dapat mengakses setiap anggota.
Artikel utama: Warisan (pemrograman berorientasi obyek)
. Inheritance memungkinkan programmer untuk memperlakukan anggota kelas turunan seperti anggota kelas induk mereka. Jenis hubungan ini disebut anak-orang tua atau-hubungan"Subclass" adalah versi yang lebih khusus dari kelas, yang mewarisi atribut dan perilaku dari kelas orang tua mereka, dan bisa memperkenalkan mereka sendiri.
Sebagai contoh, kelas Dog mungkin memiliki sub-kelas yang disebut Collie , Chihuahua , dan GoldenRetriever. Dalam hal ini, akan menjadi sebuah instance dari Collie subclass. Misalkan Dog kelas mendefinisikan sebuah metode yang disebut bark() dan sifat yang disebut furColor . Masing-masing sub-kelas nya ( Collie , Chihuahua , dan GoldenRetriever ) akan mewarisi para anggota, yang berarti bahwa programmer hanya perlu menulis kode untuk mereka sekali.
. Sebagai contoh, Collie subclass mungkin menetapkan bahwa default furColor untuk collie adalah coklat-putih.. The Chihuahua subclass mungkin menetapkan bahwa metode menghasilkan nada tinggi secara default.. The Chihuahua subclass dapat menambahkan metode yang disebut tremble() Jadi sebuah contoh chihuahua individu akan menggunakan bernada tinggi bark() dari Chihuahua subclass, yang pada gilirannya mewarisi biasa bark() dari Dog .. Objek chihuahua juga akan memiliki tremble() metode, tetapi Lassie tidak mau, karena dia adalah Collie , bukan Chihuahua Pada kenyataannya, warisan adalah "sebuah ... adalah" hubungan antara kelas, sedangkan instantiation adalah sebuah "adalah" hubungan antara suatu objek dan kelas: sebuah adalah Dog ("a ... adalah"), tetapi Lassie adalah Collie ("adalah"). Dengan demikian, objek bernama Lassie memiliki metode dari kedua kelas Collie dan Dog .
. Beberapa warisan adalah warisan dari lebih dari satu kelas leluhur, baik dari nenek moyang menjadi seorang nenek moyang yang lain.. Sebagai contoh, kelas independen dapat mendefinisikan Dog s dan Cat s, dan Chimera objek dapat dibuat dari dua yang mewarisi semua multiple) perilaku (dari kucing dan anjing.. Ini tidak selalu didukung, karena akan sulit untuk melaksanakan.
[
Artikel utama: polimorfisme Subtipe
. Polimorfisme adalah proses di mana kelas memiliki semua negara dan perilaku kelas lain.
. Lebih tepatnya, Polimorfisme dalam pemrograman berorientasi obyek adalah kemampuan benda milik berbagai jenis data untuk menanggapi panggilan dari metode dengan nama yang sama, masing-masing menurut sebuah perilaku tipe yang tepat.. Salah satu metode, atau operator seperti +, -, atau *, bisa abstrak diterapkan dalam berbagai situasi.. Jika Dog diperintahkan untuk) , hal ini dapat mendatangkan. Namun, jika suatu Pig diperintahkan untuk, hal ini dapat menimbulkan suatu Setiap subclass menimpa metode warisan dari orang tua kelas .
. Decoupling memungkinkan untuk pemisahan interaksi objek dari kelas dan warisan ke lapisan yang berbeda dari abstraksi Penggunaan umum dari decoupling adalah untuk memisahkan polymorphically enkapsulasi, ] yang merupakan praktek menggunakan kode dapat digunakan kembali untuk mencegah modul kode diskrit dari berinteraksi satu sama lainNamun, dalam prakteknya sering melibatkan decoupling trade-offs yang berkaitan dengan pola-pola perubahan menguntungkan. Ilmu mengukur trade-off ini sehubungan dengan perubahan yang sebenarnya secara obyektif masih dalam masa pertumbuhan
• Definisi Formal
Ada beberapa upaya memformalkan konsep yang digunakan dalam pemrograman berorientasi obyek. Konsep berikut dan konstruksi telah digunakan sebagai interpretasi konsep OOP:
• datatypes coalgebraic
• abstract data types (which have existential types ) allow the definition of modules but these do not support dynamic dispatch tipe data abstrak (yang memiliki jenis eksistensial ) memungkinkan definisi modul tetapi ini tidak mendukung pengiriman dinamis
• recursive types records catatan menjadi dasar untuk memahami objek jika fungsi literal dapat disimpan dalam bidang (seperti dalam bahasa pemrograman fungsional), tetapi perlu bate sebenarnya jauh lebih kompleks untuk memasukkan fitur penting dari OOP. Beberapa ekstensi dari Sistem F <: yang berhubungan dengan objek bisa berubah telah dipelajari ini memungkinkan kedua polimorfisme subtipe dan polymorphism parametrik (generik)
Upaya untuk menemukan definisi konsensus atau teori di balik benda tidak terbukti sangat sukses (Namun, lihat Abadi & Cardelli untuk definisi formal konsep OOP banyak dan konstruksi), dan sering menyimpang secara luas. Sebagai contoh, beberapa definisi berfokus pada aktivitas mental, dan beberapa program hanya penataan .. Salah satu definisi sederhana adalah bahwa OOP adalah tindakan menggunakan struktur "peta" data atau array yang dapat berisi fungsi dan pointer ke peta lainnya dengan beberapa sintaktis dan gula scoping di atas. Warisan dapat dilakukan oleh kloning peta (kadang-kadang disebut "prototipeOBYEK: =>> Objek adalah entitas run time dalam suatu sistem berorientasi objek. Mereka mungkin mewakili orang, tempat, rekening bank, tabel data atau item apapun bahwa program tersebut telah untuk menangani.
• bahasa OOP


Daftar bahasa pemrograman berorientasi-objek
. Simula (1967) secara umum diterima sebagai bahasa pertama yang memiliki fitur-fitur utama dari sebuah bahasa berorientasi objek. Organisasi ini dibentuk untuk membuat program simulasi , di mana apa yang kemudian disebut objek adalah informasi perwakilan paling penting. Smalltalk (1972-1980) ini bisa dibilang contoh kanonik, dan yang satu dengan yang banyak teori pemrograman berorientasi objek adalah dikembangkan.: Mengenai derajat orientasi objek, berikut perbedaan dapat dibuat:
• . Bahasa disebut "murni" bahasa OO, karena segala isinya diperlakukan secara konsisten sebagai objek, dari primitif seperti karakter dan tanda baca, semua jalan sampai ke seluruh kelas, prototipe, blok, modul, dll Mereka dirancang khusus untuk memfasilitasi, bahkan menegakkan, metode OO. Examples: Smalltalk, Eiffel , Ruby , JADE . Contoh: Smalltalk, Eiffel , Ruby , JADE .
• Bahasa pemrograman yang dirancang terutama untuk OO, tapi
• dengan beberapa elemen prosedural. Examples: C++ , C# , Java , Python . Contoh: C + + , C # , Java , Python .
• Bahasa yang secara historis bahasa prosedural , tetapi telah diperpanjang dengan beberapa fitur OO. Examples: VB.NET (derived from VB), Fortran 2003 , Perl , COBOL 2002, PHP , ABAP . Contoh: VB.NET (berasal dari VB), Fortran 2003 , Perl , COBOL 2002, PHP , ABAP .
• . Bahasa dengan sebagian besar fitur objek (kelas, metode, warisan, usabilitas), tetapi dalam bentuk jelas asli. Examples: Oberon (Oberon-1 or Oberon-2). Contoh: Oberon (Oberon-1 atau Oberon-2).
• . Bahasa dengan tipe data abstrak dukungan, tetapi tidak semua fitur-orientasi obyek, kadang-kadang disebut bahasa berbasis objek. Contoh: Modula-2 (dengan enkapsulasi yang sangat baik dan menyembunyikan informasi), liat , CLU .
• OOP dalam bahasa dinamis
Dalam beberapa tahun terakhir, pemrograman berorientasi objek telah menjadi sangat populer di bahasa pemrograman dinamis . Python , Ruby dan Groovy adalah bahasa dinamis dibangun di atas prinsip-prinsip OOP, sedangkan Perl dan PHP telah menambahkan fitur berorientasi objek sejak Perl 5 dan PHP 4, dan ColdFusion sejak versi 6.
. The Document Object Model dari HTML , XHTML , dan XML dokumen di Internet telah binding ke populer JavaScript / ECMAScript bahasa.. JavaScript mungkin yang paling dikenal prototipe berbasis pemrograman bahasa, yang mempekerjakan kloning dari prototipe daripada mewarisi dari kelas. Lain bahasa scripting yang mengambil pendekatan ini Lua . Versi sebelumnya dari ActionScript (superset sebagian dari R3 ECMA-262, atau dikenal sebagai ECMAScript) juga menggunakan objek berdasarkan model-prototipe. Kemudian versi ActionScript menggabungkan kombinasi klasifikasi dan model obyek berbasis prototipe sebagian besar didasarkan pada spesifikasi-262 R4 ECMA saat ini tidak lengkap, yang berakar dalam 2 JavaScript Proposal awal.. Microsoft JScript.NET juga mencakup mash-up model obyek berdasarkan proposal yang sama, dan juga merupakan superset dari spesifikasi
Bahasa pemrograman yang mendukung OOP antara lain:
1. Visual Foxpro
2. Java
3. C++
4. Pascal (bahasa pemrograman)
5. Visual Basic.NET
6. SIMULA
7. Smalltalk
8. Ruby
9. Python
10. PHP
11. C#
12. Delphi
13. Eiffel
14. Perl


• implementasi OOP dalam Java-contoh program penghitung luas segitiga
Dalam tutorial ini tidak akan saya jelaskan secara terperinci apa maksud kata “implementasi OOP” diatas. Tentang OOP beserta konsep dasarnya, saya anggap anda sudah paham, namun jika belum, pahami terlebih dahulu dan tinggalkan artikel ini. karena dalam belajar selalu butuh tahap.
baiklah para pembaca yang cerdas, seperti biasa, langsung ke source code nya :
class segitigaDgnOOP
—————————————————–begin————————————————
public class segitigaDgnOOP
{
private int alas;
private int tinggi;

public void setAlas(int alas)
{
this.alas = alas;
}
public void setTinggi(int tinggi)
{
this.tinggi = tinggi;
}
public int getAlas()
{
return alas;
}
public int getTinggi()
{
return tinggi;
}
public double hitungLuas()
{
double luas;
luas=0.5*alas*tinggi;
return luas;
}
}