Keblinger

Keblinger
Tampilkan postingan dengan label Materi Kuliah TI. Tampilkan semua postingan
Tampilkan postingan dengan label Materi Kuliah TI. Tampilkan semua postingan

Object-Oriented Programming (OOP)


Topik pemrograman yang sedang ramai dibahas pada saat ini adalah pemograman berbasis objek atau object oriented programming (OOP). Sesuai dengan namanya, segala sesuatu yang dimanipulasi adalah objek. Banyak bermunculan bahasa pemrograman yang berorientasi objek baik berbasis Text ataupun Visual. Diantara bahasa pemrograman tersebut diantaranya C++, C#, Pascal, Java, Delphi, PHP, VB.Net, SIMULA, Ruby, Smaltalk, Python, Eiffel, dan Perl.
Konsep OOP sebenarnya menirukan kehidupan nyata, dimana semuanya adalah objek.
Objek = Data + Metode
Data
• Analogikan = Variabel
• Karakteristik dari objek – Aksi Terhadap data
Metode
• Function/Procedure
• Aksi Terhadap Data
Contoh :
Objek Mobil, Motor => Kelas Kendaraan
Kelas Kendaraan
Objek Mobil
Data :
• Stir
• Ban
• Mesin
Metode :
• Belok
• Berputar
• Maju
• Mundur
• Ngerem
• Nyala
Pemograman berbasis objek harus mendukung 3 konsep :
1. Pengkapsulan (encapsulation)
2. Pewarisan (inheritance)
3. Polimorfisme (polymorphism)
Untuk penulisan contoh pada bahasa pemrograman penulis akan menggunakan syntak Borland Delphi karena oleh penulis dianggap lebih mudah dan terstruktur dengan mudah dan tidak mengenal perbedaan penggunaan huruf seperti pada C++ ataupun Java. Selain itu penulis sudah terbiasa menggunakan Delphi sejak tahun 1994 sampai Sekarang.
Pembuatan Kelas dan Objek
Sintaks :
Type nama_kelas = object
{data dan metode}
End;
Contoh Dalam Delphi:
Type Titik = Objek
x,y, warna : Integer; {Data}
constructor Inits; {Metode}
End;
Contoh penggunaan :
Var A,B : Titik;
Begin
A.X := 1;
A.Y := 2;
A.Warna := 3;
A.Inits;
End.
Constructor & Destructor
Dalam pembuatan objek atau kelas terdapat metode selain procedure dan function adalah Konstruktor dan Destruktor. Konstruktor digunakan untuk menginisialisasi objek, dipanggil pada saat objek diciptakan. Sedangkan destruktor biasanya setelah objek tidak digunakan lagi. Pembuatan konstruktor dengan menggunakan key word “Constructor” sedangkan dekonstruktor menggunakan “Destructor”.
Contoh :
Type
Titik = Objek
x,y,Warna : Integer;
constructor Inits
destructor done
procedure SetX(newx:Integer)
function GetX:Integer;
End;
Constructor Titik.Inits
Begin
X := 0;
Y := 0;
Warna := 1;
End;
Destructor Titik.Done
Begin
X := 0;
Y := 0;
Warna := 1;
End;
Procedure Titik.SetX(NewX:Integer)
Begin
X := NewX;
End;
Function Titik.GetX:Integer;
Begin
GetX := X;
End;
Var A : Titik;
Begin
A.Inits;
A.SetX(3);
Writeln(A.GetX);
A.Done;
End.
Konsep Dasar OOP

1. Pengkapsulan
Penggabungan data dan metode menjadi satu kesatuan yang disebut kelas. Pada konsep ini terdapat konsep untuk menyembunyikan infomasi. Konsep penyembunyian informasi ini dalam hal kontrol akses (AC), yang terdiri dari Public dan Private. Public, anggota kelas tersebut hanya dapat diakses dari kelas/procedure yang lain, sedangkan Private, hanya dapat diakses pada kelas/procedure pada unit yang sama.

Contoh :
Type
Titik = Objek
Private
x,y,Warna : Integer;
Public
constructor Inits
destructor done
procedure SetX(newx:Integer)
function GetX:Integer;
End;
2. Pewarisan (Inheritance)
Konsep pewarisan memungkin membuat kelas baru dari data dan metode dari kelas lain, tetapi memiliki data dan metode sendiri.
Contoh :
Binatang à Mamalia : Data(Alat pernapasan, Alat Pencernaan)
Sehingga dikenal pengkelas :
Kelas Dasar/Induk
Kelas Turunan/Anak
Contoh :
Type
Titik = Objek
x,y,Warna : Integer;
constructor Inits
destructor done
procedure SetX(newx:Integer)
function GetX:Integer;
End;
Lingkaran = Object(Titik)
R : Real;
End;
Bahwa kelas lingkaran mewarisi data dan metode dari kelas Titik, sehingga Lingkaran memiliki data x,y, dan warna serta ditambah r.
3. Polimorfisme
Banyak bentuk, merupakan dua kelas yang diturunkan dari satu kelas mempunyai metode sama tetapi implementasinya berbeda. Atau dengan kata lain nama metode sama kode berbeda. Metode ini sering disebut metode Virtual. Penggunaannya dengan menggunakan kata “Virtual”
Contoh :
Type
Titik = Objek
x,y,Warna : Integer;
constructor Inits
destructor done
procedure gambar; virtual;
End;
Lingkaran = Object(Titik)
R : Real;
constructor Inits
destructor done
procedure gambar; virtual;
End;
Metode gambar pada titik dam lingkaran adalah Virtual, artinya implementasinya bisa berbeda tergantung kelasnya.
Contoh :
Procedure Titik.Gambar;
Begin
Writeln(‘Titik’);
End;
Procedure Lingkaran.Gambar;
Begin
Writeln(‘Lingkaran’);
End;

Konversi Bilangan Desimal, Biner, Oktal dan Heksadesimal


Didalam dunia komputer kita mengenal empat jenis bilangan, yaitu bilang biner, oktal, desimal dan hexadesimal. Bilangan biner atau binary digit (bit) adalah bilangan yang terdiri dari 1 dan 0. Bilangan oktal terdiri dari 0,1,2,3,4,5,6 dan 7. Sedangkan bilangan desimal terdiri dari 0,1,2,3,4,5,6,7,8 dan 9. Dan bilangan hexadesimal terdiri dari 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E dan F.
Biner Oktal Desimal Hexadesimal
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F

Daftar isi

 [sembunyikan

[sunting] Konversi Antar Basis Bilangan

Sudah dikenal, dalam bahasa komputer terdapat empat basis bilangan. Keempat bilangan itu adalah biner, oktal, desimal dan hexadesimal. Keempat bilangan itu saling berkaitan satu sama lain. Rumus atau cara mencarinya cukup mudah untuk dipelajari. Konversi dari desimal ke non-desimal, hanya mencari sisa pembagiannya saja. Dan konversi dari non-desimal ke desimal adalah:
1. Mengalikan bilangan dengan angka basis bilangannya.
2. Setiap angka yang bernilai satuan, dihitung dengan pangkat NOL (0). Digit puluhan, dengan pangkat SATU (1), begitu pula dengan digit ratusan, ribuan, dan seterusnya. Nilai pangkat selalu bertambah satu point.

[sunting] Konversi Biner ke Oktal

Metode konversinya hampir sama. Cuma, karena pengelompokkannya berdasarkan 3 bit saja, maka hasilnya adalah: 1010 (2) = ...... (8) Solusi: Ambil tiga digit terbelakang dahulu. 010(2) = 2(8) Sedangkan sisa satu digit terakhir, tetap bernilai 1. Hasil akhirnya adalah: 12.

[sunting] Konversi Biner ke Hexadesimal

Metode konversinya hampir sama dengan Biner ke Oktal. Namun pengelompokkannya sejumlah 4 bit. Empat kelompok bit paling kanan adalah posisi satuan, empat bit kedua dari kanan adalah puluhan, dan seterusnya. Contoh: 11100011(2) = ...... (16) Solusi: kelompok bit paling kanan: 0011 = 3 kelompok bit berikutnya: 1110 = E Hasil konversinya adalah: E3(16)

[sunting] Konversi Biner ke Desimal

Cara atau metode ini sedikit berbeda. Contoh: 10110(2) = ......(10) diuraikan menjadi: (1x24)+(0x23)+(1x22)+(1x21)+(0x20) = 16 + 0 + 4 + 2 + 0 = 22 Angka 2 dalam perkalian adalah basis biner-nya. Sedangkan pangkat yang berurut, menandakan pangkat 0 adalah satuan, pangkat 1 adalah puluhan, dan seterusnya.

[sunting] Konversi Oktal ke Biner

Sebenarnya, untuk konversi basis ini, haruslah sedikit menghafal tabel konversi utama yang berada di halaman atas. Namun dapat dipelajari dengan mudah. Dan ambillah tiga biner saja. Contoh: 523(8) = ...... (2) Solusi: Dengan melihat tabel utama, didapat hasilnya adalah: 3 = 011 2 = 010 5 = 101 Pengurutan bilangan masih berdasarkan posisi satuan, puluhan dan ratusan. Hasil: 101010011(2)

[sunting] Konversi Hexadesimal ke Biner

Metode dan caranya hampir serupa dengan konversi Oktal ke Biner. Hanya pengelompokkannya sebanyak dua bit. Seperti pada tabel utama. Contoh: 2A(16) = ......(2)
Solusi:
  • A = 1010,
  • 2 = 0010
caranya: A=10
  • 10:2=5(0)-->sisa
  • 5:2=2(1)
  • 2:2=1(0)
  • 1:2=0(1)
ditulis dari hasil akhir
hasil :1010
  • 2:2=1(0)-->sisa
  • 1:2=0(1)
ditulis dari hasil akhir
hasil:010
jadi hasil dan penulisannya 0101010 sebagai catatan angka 0 diawal tidak perlu di tulis.

[sunting] Konversi Desimal ke Hexadesimal

Ada cara dan metodenya, namun bagi sebagian orang masih terbilang membingungkan. Cara termudah adalah, konversikan dahulu dari desimal ke biner, lalu konversikan dari biner ke hexadesimal. Contoh: 75(10) = ......(16) Solusi: 75 dibagi 16 = 4 sisa 11 (11 = B). Dan hasil konversinya: 4B(16)

[sunting] Konversi Hexadesimal ke Desimal

Caranya hampir sama seperti konversi dari biner ke desimal. Namun, bilangan basisnya adalah 16. Contoh: 4B(16) = ......(10) Solusi: Dengan patokan pada tabel utama, B dapat ditulis dengan nilai "11". (4x161)+(11x160) = 64 + 11 = 75(10)

[sunting] Konversi Desimal ke Oktal

Caranya hampir sama dengan konversi desimal ke hexadesimal. Contoh: 25(10) = ......(8) Solusi: 25 dibagi 8 = 3 sisa 1. Hasilnya dapat ditulis: 31(8)
25 : 8 sisa 1 3 -------- 3 hasilnya adalah 31

[sunting] Konversi Oktal ke Desimal

Metodenya hampir sama dengan konversi hexadesimal ke desimal. Dapat diikuti dengan contoh di bawah ini: 764(8) = ......(10) Solusi: (3x81)+(1x80) = 24 + 1 = 25(10)

Pesan Error di Pascal Dan C++


Pesan error di pascal


# Out Of Memory : Memory tak cukup untuk melakukan proses (misalnya mengkomplikasi) kalau sedang berada dalam IDE dianjurkan mengkomplikasi program ke disk.

#Identifier Expected : Pengenal (variable) diperlukan pada posisi yang ditunjukkan kemungkinan disebabkan yang dipakai adalah reserved word (kata tercadang).

# Unknow Identifier : Pengenal belum dideklarasikan.

# Duplikate Identifier : Ada pengenal dengan nama yang sama.

 # Sintax Error : Ada karakter yang tidak diperkenankan, biasanya disebabkan kekurangan tanda petik pada string.

# Error In Real Constant : Salah dalam penulisan konstanta real.

 # Error In Integer Constant : Salah dalam penulisan konstanta integer.

# String Constant Exred Line : Salah karena string belum diakhiri dengan tanda petik.

# To Many Masted Files : File include yang memanggil file include perlu dikurangi.

 # Unexpeted End Of File : Biasanya disebabkan salah penulisan Begin dan End atau ada suatu kompentar yang belum ditutup.

 # Line To Long : Panjang karakter dalam baris melebihi 126 karakter. kampusti

# Type Identifier Expected : Pengenal type belum diberikan.

# Too Many Open File : Terlalu banyak file yang dibuka (dapat diatur melalui file CONFIG.SYS).

# Infalid File Name : Nama file salah.

 # File Not Found : File tidak ditemukan.

 # Disk Full : Disk penuh.

# Infalid Compiler Directive : Pengarah computer yang ditunjukkan tidak dikenal.

# Too Many Files : Terlalu banyak file yang dilibatkan sewaktu melibatkan komplikasi unit atau program.

 # Undifined Type In Pointer Definition : Type yang digunakan pada pendenifisian pointer belum dideklarasikan.

 # Variable Identifier Expected : Pengenal yang ditunjuk seharusnya menyatakan sebuah variable.

# Error In Type : Kesalahan dalam pendefinisian type.

 # Structure Too Large : Type struktur terlalu besar (ukuran maksimal yang diperkenankan yaitu 65520 byte).

# Set Base Type Out Of Range : Type dasar dari himpunan harus berbeda dalam kawasan 0 sampai 255 atau berupa type enumerasi yang jumlah kemungkinannya tidak lebih dari 256 buah.

# File Compotitions My Not Be Files : Komponen dari file tidak boleh berupa file.

# Invalid String Length : Panjang string dalam pendeklarasian haruslah terletak antara 1 sampai 155.

# Type Mismach : Type tidak cocok.

 # Invalid Subrange Base Type : Kesalahan pada type dasar subrange.

# Lower Bound Greater Than Upper Bound : Dalam mendeklarasikan subrange, nilai awal harus lebih kecil daripada nilai akhir.

 # Ordinal Type Expected : Type yang diperkenalkan adalah type original.

# Integer Constant Expected : Mengharapkan suatu konstanta.

# Constant Expected : Mengharapkan suatu konstanta.

 # Integer Or Real Constant Expected : Mengharapkan konstanta real/integer.

 # Type Identifier Expected : Mengharapkan pengenal type.

 # Infalid Function Result Type : Type keluaran fungsi salah (seharusnya berupa type sederhana, string / pointer).

# Label Identifier Expected : Mengharapkan pengenalan label.

 # Begin Expected : Kurang Begin

# End Expected : Kurang End.

# Integer Expression Expected : Mengaharapkan ungkapan integer.

# Ordinal Expression Expected : Mengharapkan ungkapan ordinal.

# Boolean Expression Expected : Mengaharapkan ungkapan Boolean.

 # Operand Types Do Not Match Oprator : Type operand tidk sesuai dengan operator.

 # Error In Expression : Kesalahan dalam penulisan ungakapan .

# Illegal Usignment : Kesalahan dalam pernyataan penugasan.

# Field Identifier Expected : Mengaharapkan field dari record.

# Object File Too Large : File object yang berukuran lebih dari 64 kb tidak dapat di link oleh turbo pascal.

# Undefined External : Prosedur / fungsi eksternal belum di definisikan.

# Invalid Object File Record : Ada suatu object record dalam file object yang tidak sah.

 # Code Segment Too Large : Kode dalam segment kode terlalu besar prosedur / fungsi perlu dipecah dalam beberapa unit.

 # Data Segment Too Large : Data dalam segmen data terlalu besar tempatkan data dalam heap.

# Do Expected : Kurang Do.

# Invalid Public Definition : Kesalahan yang berkaitan dengan bahasa assembly.

# Invalid Extrn Definition : Kesalahan yang berkaitan dengan bahasa assembly.

# Too Many Extrn Definition : Kesalahan yang berkaitan dengan bahasa assembly.

# Of Expected : Kurang Of. # Interface Expected : Kurang Interface.

# Then Expected : Kurang Then.

 # To Or Down To Expected : Kurang To atau DownTo.

# Underfined Forward : Definisi dari prosedur / fungsi belum diberikan.

 # Too Many Procedures : Terlalu banyak prosedur / fungsi jumlah fungsi.

# Invalid TypeCast : Kesalahan dalam melakukan typecast (konversi type).

# Division By Zero : Kesalahan karena pembagian bilangan dengan nol (0).

# Invalid File Type : Type file yang digunakan tidak mengenal prosedur . fungsi penangan file yang ditunjuk (misalnya file teks tidak mengenal prosedur seek).

# Cannot Read Or Write Variables Of This Type : Type dari variable yang ditunjuk tidak dapat dikenalkan pada instruksi Write dan Writeln atau Read dan Readln

 # Pointer Variable Expected : Mengaharapkan variable pointer.




Pesan error di C++

1.      Argument List syntax eror
Yaitu adanya kesalahan pada daftar  argument fungsi

2.      Array bounds missing ]
Array pada program harus di akhiri dengan kurung siku

3.      Array size too large
Ukuran harga yang di deklarasikan terlampau pembesar.

4.      Assember statemen too long
Kode dalam bahasa mesin / tidak boleh lebih dari dari 480 byte.

5.      Bad file name format include directive
Nama file yang akan disertakan dalam satu program melalui # include,harus di apit oleh tanda khusus.contoh “nama.h” atau (nama file.h)

6.      Bit file field 100 large
Sebuah bit file field harus didefinisikan dengan dengan lebar berupa angkapan kostanta bernilai antara 1 (satu) dan 16 (enam belas)

7.      Call of-nan fungtion
Fungsi yang di pangil ternyata di deklarasikan bukab sebagai fungsi,melainkan misalnya dideklarasikan sebagai variable.

8.      Connot modify a const object
Nilai objek yang dideklarasikan dengan kata-kata cost,tidak dapat diubah.ada ungkapan atau pernyataan yang mengubah nilainya.

9.      Cost syntax eror
Ada type cost (konvensi type) yang symbol tadak tepat.

10.  Caracter constant too long
Panjang constant karakter maksimal hanya dua karakter.

11.  Compound statement missing }
Kekurangan tanda kurung kurawal penutup pada program.periksa jika ada kesalahan meletakkan tanda kurug kurawal.

12.  Conflicting type modifier
Dua buah modifier (modifikasi type) seperti near dan far tidak boleh digunakan secara bersamaan untuk modifikasi type.

13.  Constant expression required
Ukuran array harus dinyatakan dengan suatu konstanta

14.  Could not find file ‘xxx’
Artinya file ‘xxx’ tidak ditemukan.

15.  Declaration missing ;
Pendeklarasian file struk atau union harus diikuti dengan tanda titik koma(;).

16.  Declaration needs type or strange class
Suatu deklarasi harus memiliki palinh tidak satu tipe dan satu kolos penyimpanan.

17.  Declaration syntax error
Ada pernyataan yang simbolnya kurang atau terlalu banyak.

18.  Default outside of switch
Ada perintah default yang terletak di luar pernyataan switch.Biasanya hal ini di sebabkan kesalahan penempatan penempatan kurung kurawal (}).

19.  Define directive needs an identifier.
Define harus diikuti dengan identifier atau krakter spasi,selain itu tidak di benarkan.

20.  Division by zero
Ada pembagian suatu bilangan konstanta dengan nol (0).

21.  Do statement must have while
Pernyataan do harus memiliki while.

22.  Do-while statement missing(
Sesudah while pada pernyataan do,harus diberi tanda kurung buka.

23.  Do-while statement missing )
Ungkapan kondisi dalam do-while harus di akhiri dengan ).

24.  Do-while statement missing ;
Kurang tanda ; pada pernyataan do-while.

25.  Daplikate case
Setiap case pada pernyataan switch,haru memiliki nilai ungkapan konstanta yang unik (tidak sama dangan yang lain).

26.  Enum syntax error
Kesalahan pada pendeklarasian enum.

27.  Enumaration constant syntax error
Pernyataan yang di berikan sebagai nilai enum,harus berupa konstanta.

28.  Error writing output file
Pesan kesalahan ini akan tampil jika disket penuh atau rusak pada saat ada penulisan ke file.

29.  Expression syntax
Kesalahan ini biasanya di sebabkan adanya dua operator yang berurutan,penampilan tanda kurung yang kurang tepat,atau kurang tanda titik.

30.  File name too long
Nama file pada pengarah # include terlalu panjang,maksimal untuk do,hanya di ijinkan sampai 64 karakter.


31.  If statement missing )
Kurung tanda ( sesudah ungkapan kondisi yag mengikuti kata-kata if.


32.  Illegal character ‘c’ ( oxxx )
Ada karakter yang tidak absah,nilai decimal karakter tersebut di tampilkan keluar.

33.  Illegal in halisation
Ada inisialisasi  harus di berikan suatu konstanta,atau alamat variable extern di tambah atau di kurangi suata konstanta.

34.  Illegal octal digit
Ada konstanta octal yang mengandung digit lebih besar dari 7.

35.  Illegal pointen subtraction
Kesalahan ini biasa timbul jika ada pengurangan suatu pointer dengan non pointer.

36.  Illegal struction operational
Struktur tidak bole di gunakan untuk operator-operator selain titik,alamat dan (&),atau di lewatkan sebagai parameter fungsi.

37.  Illegal use of pointer
Pointer hanya boleh digunakan untuk  menjumlah,pengurangan,perbandingan,operator tak langsung (*) atau (=>)

38.  Improper use of a type dof symbol
Penggunaan symbol type dof tidak tepat

39.  Incorrect number format
Ada tanda pecahanpada bilangan heksa decimal

40.  Incompatible stronge class
Kesalahan timbul karna pemakaian extorn pada pendefinisian fungsi.hanya static (hanya tanpa class penyimpanan sama sekali) yang di isinkan.

41.  Incompatible type conversion
Tipe-tipe yang hendak di konfersikan ,tidak cocok.misalnya konversi suatu fungsi ke non fungsi,nilai pecahan ke type pointer.

42.  Incorrect use of default
Kata kuncu default harus di ikuti ole tanda titik koma

43.  Inisialiser syntax error.
Kaidah penganalisasi tidak benar.penyebabnya bisa berupa kekurangan atau kebanyakan operator atau salah tanda kurung.

44.  Invalid indirection
Operator tak langsung (*) memerlukan operand berupa pointer non-void.

45.  Invalid macro argument
Argument pada makro harus di pisahkan dengan karakter koma.

46.  Invalid pointer addition
Operasi penambahan terhadap dua buah pointer tak di perkenankan.

47.  Invalid use of arrow
Tanda -> harus di ikuti dengan nama pengenal (identifier).

48.  Lvalue required
Yang terletak di sebelah kiri operator (=) haruslah berupa ungkapan yang memiliki alamat.

49.  Macro argument syntax error
Argument dalam pendefinisian makro harus berupa identifier.

50.  Misplaced break
Ada prnyataan break yang letaknya tidak benar.

Salju

 

Copyright © 2010 OMO BLOG Blogger Template by Dzignine