Arsip: Tanya tentang interface

more 12 years ago
mambamaestro
Dear temen-temen,
Assalaamu'alaikum wr wb
Selama saya memprogram database, saya tidak pernah bersinggungan dengan yang namanya interface. saya tidak pernah merasa butuh untuk membuat dll, jika harus memisahkan fungsi-fungsi tertentu, saya lebih suka bikin unit tersendiri. jika tidak ingin fungsi-fungsi dilihat source codenya, cukup di jadikan dcu saja, apalagi harus membuat com. intinya, saya merasa sudah cukup tanpa interface.
Dalam buku marco cantu ato di help delphi, sepertinya(contoh-contohnya) interface cuma berkaitan dengan yang namanya com. Namun, ada beberapa orang yang saya denger sering menggunakan interface di aplikasi database mereka.
Nah, buat temen-temen yang terbiasa menggunakan interface (bahkan dalam aplikasi database 'biasa'), tolong sharing dong, snippet codenya, or, saat kapan dan dimana kita harus sering menggunakan interface dalam aplikasi 'biasa', or kasus apa saja dari temen-temen yang terpaksa harus pake interface (selain dari yang berhubungan dengan com).
Trims.
Abdellah

more 12 years ago
betamax
Banyak Tuh... Sistem Parkir & Absensi, Apalagi yang udah support GetPicture.
pengembangan aja. kalo absensi udah bisa sidik jari / barcode di tambahin lagi GetPic. jadi bener bener ga bisa titip absen..
hehe...

more 12 years ago
DelphiExpert
@betamax: Banyak Tuh... Sistem Parkir & Absensi, Apalagi yang udah support GetPicture. pengembangan aja. kalo absensi udah bisa sidik jari / barcode di tambahin lagi GetPic. jadi bener bener ga bisa titip absen.. hehe...lha... lha... ini hubungannya apa? "interface" yg lain kali' tuuuh... wakakak :mrgreen:

more 12 years ago
DelphiExpert
confirm: interface yg dimaksud bukan "interfacing dengan perangkat keras", namun teknik interface dlm pemrograman (OOP).
salah satu kelebihan "interface" adalah tingkat abstraksi yg lebih tinggi dari pada abstract method / class.
baik interface (skeleton) maupun abstract class harus diimplementasikan, implementasinya disebut implementator class.
dalam konteks ini (Delphi), ada banyak kelebihan penggunaan interface daripada abstract class, sekalipun tujuannya sama, namun pemanfaatannya jauh lebih luas interface.
beberapa keunggulan interface adalah
(1). dapat dimanfaatkan sebagai implementasi teknik reference-counting, yakni teknik paling sederhana yg digunakan Delphi dalam me-manage life-cycle object, jika RefCount = 0, implementasi class otomatis akan di release (destroy). Class dasar yg disediakan Delphi dalam hal ini adalah TInterfacedObject, jadi semua class yg anda turunkan dari TInterfacedObject otomatis akan mendukung reference-counting dng catatan, 100% penggunaannya harus menggunakan interface-based assignment.
Namun tidak harus, anda bisa melakukannya secara manual dng memanggil langsung method dasar yg disediakan IInterface, yakni _AddRef dan _ReleaseRef;
(2). Suatu interface dapat diperoleh hanya dng melakukan QueryInterface terhadap unknown type instance, misal reference yg anda dapatkan adalah TObject, atau Pointer, atau sebuah class. Berbekal dng IID (GUID) (harus diketahui), anda dapat melakukan ekstrac-si sebuah interface dng GUID xxx misal ['{F9F1F73F-51E9-44B7-8C8B-B82D533E5433}'].
contoh:
type
{ interface skeleton }
ISimple = inteface
['{F9F1F73F-51E9-44B7-8C8B-B82D533E5433}']
procedure SomeMethod; stdcall;
function SomeFunction: SmallInt; stdcall;
end;
{ implementator class }
TSimple = class(TInterfacedObject, ISimple)
protected
{ ISimple }
procedure SomeMethod; stdcall;
function SomeFunction: SmallInt; stdcall;
end;
implementation
{ TSimple }
procedure TSimple.SomeMethod;
begin
// DoSomething here
end;
function TSimple.SomeFunction: SmallInt;
begin
// do some calculation here
Return:= 1000;
end;
berbekal contoh diatas, tidak harus namun kebetulan interface declaration & implementator class dalam 1 unit.
anda dapat melakukan hal sebagai berikut:
const
SimpleIID: TGUID = '{F9F1F73F-51E9-44B7-8C8B-B82D533E5433}';
var
Obj: TObject;
Simple: ISimple;
begin
Obj:= TSimple.Create;
// Anggap saja TSimple dibuat dalam module / unit lain.
// Dengan demikian yg kita ketahui cuma sebuah ref Obj yg bertipe TObject
if Supports(Obj, SimpleIID, Simple) then
// yes, the Obj instance has an ISimple implementation
Simple.SomeMethod;
end;
dalam 1 block contoh diatas, anda tidak perlu melakukan Free secara manual terhadap Obj (dlm hal ini adalah sebuah TSimple instance), disinilah reference-counting bekerja ;)
(3). kelebihan lain adalah, anda dapat menggunakan interface terhadap versi Delphi / compiler berbeda. contoh lingkup paling simple adalah interface dapat digunakan pada Delphi dng versi berbeda, misal: Delphi 5, Delphi 7 & Delphi 2007. Untuk kasus ini tentu anda harus membungkusnya dalam sebuah DLL (Dynamic Link Library), hal ini tidak dapat anda lakukan jika hanya melakukan share DCU saja, karena format DCU antar versi Delphi adalah berbeda...
pembahasan lain akan dilanjutkan kalau dirasa menarik... masukkan coint Rp.1000 untuk melanjutkan... :mrgreen:
more 12 years ago
mambamaestro
confirm: interface yg dimaksud bukan "interfacing dengan perangkat keras", namun teknik interface dlm pemrograman (OOP).
betul itu. maksud saya bukan perangkat keras. trims mas indra. sayang master yang laen diam :D saya pikir penting oei.

more 12 years ago
n3o_cybertech
@DelphiExpert: confirm: pembahasan lain akan dilanjutkan kalau dirasa menarik... masukkan coint Rp.1000 untuk melanjutkan... :mrgreen:wah...manarik tuh mas indra...bisa dilanjutin gak tuh pembahasannya...aq juga ngerasa hal ini berguna banget buat kita2 yang masih newbie dalam delphi...tak masukin ya coint Rp.1000...cring...cring...cring...Lanjuuuuuuut.... :D

more 12 years ago
peucang
coint selanjutnya Rp.1000
Cring...
Cring....
Cring.....
.....LOADING.....
Pres any key.. :)

more 12 years ago
Kecret
langsung ditambah koin 1 juta......... ayo lanjut mangggggg.........................

more 12 years ago
Kecret
harusnya DE bikin buku dunk....... OOP with ObjectPascal, dibahas mengenai konsep OOP di FreePascal atopun di delphi terbaru dan penerapannya dalam pembuatan aplikasi, dan juga perbandingan (penerapan) dgn java atopun C#......
more ...
- Pages:
- 1
- 2
reply |
Report Obsolete
Last Articles
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
- Mengenal OXYGENE – Pascal For .NET
- PascalTalk #5: UX: Research, Design and Engineer
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 8 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 8 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 8 years ago
Random Topic
- steganography (update pertanyaan) ???
by dannytux in Enginering more 13 years ago - (URGENT)menjumlahkan dalam satu field yg telah di sortir
by sp1d3r_n3tz in MsSQL more 13 years ago - minta saran
by Kijokotopo in Hal umum tentang Pascal Indonesia more 13 years ago - Tolongin cara akses ke Folder pake Delphi...pliss..
by arise in Tip n Trik Pemrograman more 12 years ago - Cek Conneksi Server
by kabie in Lain-lain more 11 years ago - Membuat aplikasi tetap terlihat pada saat fullscreen
by reza_elka in Tip n Trik Pemrograman more 9 years ago - Kode dengan font beda style
by EkoIndri in Tip n Trik Pemrograman more 15 years ago - menempatkan icon dalam sistem tray
by marvel in MySQL more 15 years ago - Query penjumlahan data and sort Date
by ekopranoto in Lain-lain more 10 years ago - tentang ocx
by w11 in Network, Files, I/O & System more 9 years ago