Re: [JUG-Indonesia] Re: mengapa interface?
yup, ini adalah kekecewaan pertama kali belajar java, pada saat dibilang bisa multiple inheritance pake interface ternyata ga bisa :(. so sebaiknya istilah multiple inheritance jangan dipake, jauh lebih tepat multiple implementation, yang ini setuju. On Tue, Dec 23, 2008 at 1:53 PM, Arif Rachim a.ari...@gmail.com wrote: Si penulis tidak menulis bahwa multiple inheritance bisa dicapai dengan interface. Koreksi, maksudnya menjelaskan. On Tue, Dec 23, 2008 at 1:52 PM, Arif Rachim a.ari...@gmail.com wrote: Dilihat dari tulisannya, yang dimaksud Multiple Inheritance sebenernya adalah multiple implementation. Sebab si penulis ingin menjelaskan kasusnya untuk meningkatkan efisiensi, lebih prefer menggunakan sebuah class yg implement beberapa interface, dibandingkan menggunakan sub2class yg meng-inherit parent classnya, atau dengan cara delegation. Si penulis tidak menulis bahwa multiple inheritance bisa dicapai dengan interface. Atau mungkin bisa jadi kita berbeda menanggapi apa artinya inheritance :). Kalau menurut saya inheritance berhubungan dengan state/attribute dari sebuah class, yang bisa diturunkan ke subclassnya. Sedangkan interface tidak masuk kategori ini :). Best Regards, On Tue, Dec 23, 2008 at 11:10 AM, Aldian Fajri Hadi a...@aldian.net wrote: --- In jug-indonesia@yahoogroups.com, ahmad kundzori khi...@... wrote: para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan...manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang? terima kasih atas tanggapannya. :) Jaroslav Tulach, Architect-nya Netbeans, di bukunya Practical API Design bilang begini: Comparing Java Interfaces and Classes After the analysis of the previous sections, it might be the right time to resolve the neverending fight between Java interface lovers and Java class lovers. The most profound feature of Java interfaces is multiple inheritance. In fact, many claim that it's also the most important one. However, the NetBeans API experience shows that multiple inheritance in APIs is almost never actually needed. The only real reason to strive for it is performance—that is, to minimize the amount of occupied memory. With multiple inheritance, you need just one object to implement an unlimited number of interfaces from an API. In the case of classes, you would need to create one subclass for each API class, and if these classes are related to one another, join their instances by means of delegation. This can significantly increase the amount of occupied memory: a single instance of an object implementing an unlimited number of interfaces can fit into 8 bytes of memory on most common 32-bit JVMs on Intel processors. However, in the other case, where API classes are implemented by different instances interconnected with references among one another, you need at least 16 bytes per instance to implement each API class. The whole collection of implementation objects could require significantly more memory than if you were using interfaces. However, this only has a significant effect if you create many objects, certainly more than one or two. For example, the abstract syntax tree data structures used in compilers might benefit from this. For most existing scenarios, performance considerations aren't significant enough to outweigh the evolution problems of interfaces. Salam, Aldian -- __ rEEk 'o hEEk Xinix Technology Geek Email / GTalk / Jabber: reekoh...@gmail.com YM!: reeko_fing...@yahoo.com Website: http://reekoheek.wordpress.com/ http://reekodezz.wordpress.com/ Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke jug-indonesia-unsubscr...@yahoogroups.com. Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id Yahoo! Groups Links * To visit your group on the web, go to: http://groups.yahoo.com/group/jug-indonesia/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/jug-indonesia/join (Yahoo! ID required) * To change settings via email: mailto:jug-indonesia-dig...@yahoogroups.com mailto:jug-indonesia-fullfeatu...@yahoogroups.com * To unsubscribe from this group, send an email to: jug-indonesia-unsubscr...@yahoogroups.com * Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
Re: [JUG-Indonesia] Re: mengapa interface?
Rif, Setelah gw baca-baca lagi pertanyaan si penanya yang paling awal di thread ini adalah apa itu interface dan apa sih guna interface. Pertanyaan yang simple banget, yang mana hanya bisa dijawab oleh yang bersangkutan sendiri dengan memahami polymorphism di java. Pembicaraan mengenai Multiple Inheritance hanya perluasan kontext bahasan. Tentang metodologi penggunaannya, gw rasa lebih pada intuisi developernya. Mana yang lebih efisien, lebih mudah digunakan, lebih readable, lebih understandable. As long as it works dan maintainable. Relasi antara interface dengan interface turunannya adalah masalah menurunkan (inherit) signature satu atau beberapa interface pada suatu interface baru. Walaupun kalau dilihat lihat lagi, ini gak sepenuhnya inheritance, melainkan extending the signature. Relasi antara interface dengan class yang mengimplementasi adalah, menurut saya, masalah implementasi. Mengimplementasikan method2 dari suatu interface. Tidak ada issue inheritance dalam hal implementasi. Bener kata elo... yang dimaksud adalah Implementation of multiple interface. Hmm... makin di pikirin makin aneh dan membingungkan... bener lagi kata arif, harus disamakan dulu persepsi, apakah itu Inheritance. Salam. On Tue, Dec 23, 2008 at 1:52 PM, Arif Rachim a.ari...@gmail.com wrote: Dilihat dari tulisannya, yang dimaksud Multiple Inheritance sebenernya adalah multiple implementation. Sebab si penulis ingin menjelaskan kasusnya untuk meningkatkan efisiensi, lebih prefer menggunakan sebuah class yg implement beberapa interface, dibandingkan menggunakan sub2class yg meng-inherit parent classnya, atau dengan cara delegation. Si penulis tidak menulis bahwa multiple inheritance bisa dicapai dengan interface. Atau mungkin bisa jadi kita berbeda menanggapi apa artinya inheritance :). Kalau menurut saya inheritance berhubungan dengan state/attribute dari sebuah class, yang bisa diturunkan ke subclassnya. Sedangkan interface tidak masuk kategori ini :). Best Regards, On Tue, Dec 23, 2008 at 11:10 AM, Aldian Fajri Hadi a...@aldian.net wrote: --- In jug-indonesia@yahoogroups.com, ahmad kundzori khi...@... wrote: para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan...manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang? terima kasih atas tanggapannya. :) Jaroslav Tulach, Architect-nya Netbeans, di bukunya Practical API Design bilang begini: Comparing Java Interfaces and Classes After the analysis of the previous sections, it might be the right time to resolve the neverending fight between Java interface lovers and Java class lovers. The most profound feature of Java interfaces is multiple inheritance. In fact, many claim that it's also the most important one. However, the NetBeans API experience shows that multiple inheritance in APIs is almost never actually needed. The only real reason to strive for it is performance—that is, to minimize the amount of occupied memory. With multiple inheritance, you need just one object to implement an unlimited number of interfaces from an API. In the case of classes, you would need to create one subclass for each API class, and if these classes are related to one another, join their instances by means of delegation. This can significantly increase the amount of occupied memory: a single instance of an object implementing an unlimited number of interfaces can fit into 8 bytes of memory on most common 32-bit JVMs on Intel processors. However, in the other case, where API classes are implemented by different instances interconnected with references among one another, you need at least 16 bytes per instance to implement each API class. The whole collection of implementation objects could require significantly more memory than if you were using interfaces. However, this only has a significant effect if you create many objects, certainly more than one or two. For example, the abstract syntax tree data structures used in compilers might benefit from this. For most existing scenarios, performance considerations aren't significant enough to outweigh the evolution problems of interfaces. Salam, Aldian -- Ferdinand Neman Cows who loves java http://www.jroller.com/page/newm4n Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke jug-indonesia-unsubscr...@yahoogroups.com. Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id Yahoo! Groups Links * To visit your group on the web, go to: http://groups.yahoo.com/group/jug-indonesia/ * Your email settings: Individual Email | Traditional * To change settings online go to: http://groups.yahoo.com/group/jug-indonesia/join
Re: [JUG-Indonesia] Re: mengapa interface?
sekarang2 saya lebih sering pake interface yang ada keongnya di depan (@) :P On Tue, Dec 23, 2008 at 11:10 AM, Aldian Fajri Hadi a...@aldian.net wrote: --- In jug-indonesia@yahoogroups.com, ahmad kundzori khi...@... wrote: para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan...manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang? terima kasih atas tanggapannya. :) -- __ rEEk 'o hEEk Xinix Technology Geek Email / GTalk / Jabber: reekoh...@gmail.com YM!: reeko_fing...@yahoo.com Website: http://reekoheek.wordpress.com/ http://reekodezz.wordpress.com/
Re: [JUG-Indonesia] Re: mengapa interface?
Dilihat dari tulisannya, yang dimaksud Multiple Inheritance sebenernya adalah multiple implementation. Sebab si penulis ingin menjelaskan kasusnya untuk meningkatkan efisiensi, lebih prefer menggunakan sebuah class yg implement beberapa interface, dibandingkan menggunakan sub2class yg meng-inherit parent classnya, atau dengan cara delegation. Si penulis tidak menulis bahwa multiple inheritance bisa dicapai dengan interface. Atau mungkin bisa jadi kita berbeda menanggapi apa artinya inheritance :). Kalau menurut saya inheritance berhubungan dengan state/attribute dari sebuah class, yang bisa diturunkan ke subclassnya. Sedangkan interface tidak masuk kategori ini :). Best Regards, On Tue, Dec 23, 2008 at 11:10 AM, Aldian Fajri Hadi a...@aldian.net wrote: --- In jug-indonesia@yahoogroups.com, ahmad kundzori khi...@... wrote: para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan...manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang? terima kasih atas tanggapannya. :) Jaroslav Tulach, Architect-nya Netbeans, di bukunya Practical API Design bilang begini: Comparing Java Interfaces and Classes After the analysis of the previous sections, it might be the right time to resolve the neverending fight between Java interface lovers and Java class lovers. The most profound feature of Java interfaces is multiple inheritance. In fact, many claim that it's also the most important one. However, the NetBeans API experience shows that multiple inheritance in APIs is almost never actually needed. The only real reason to strive for it is performance—that is, to minimize the amount of occupied memory. With multiple inheritance, you need just one object to implement an unlimited number of interfaces from an API. In the case of classes, you would need to create one subclass for each API class, and if these classes are related to one another, join their instances by means of delegation. This can significantly increase the amount of occupied memory: a single instance of an object implementing an unlimited number of interfaces can fit into 8 bytes of memory on most common 32-bit JVMs on Intel processors. However, in the other case, where API classes are implemented by different instances interconnected with references among one another, you need at least 16 bytes per instance to implement each API class. The whole collection of implementation objects could require significantly more memory than if you were using interfaces. However, this only has a significant effect if you create many objects, certainly more than one or two. For example, the abstract syntax tree data structures used in compilers might benefit from this. For most existing scenarios, performance considerations aren't significant enough to outweigh the evolution problems of interfaces. Salam, Aldian
Re: [JUG-Indonesia] Re: mengapa interface?
Si penulis tidak menulis bahwa multiple inheritance bisa dicapai dengan interface. Koreksi, maksudnya menjelaskan. On Tue, Dec 23, 2008 at 1:52 PM, Arif Rachim a.ari...@gmail.com wrote: Dilihat dari tulisannya, yang dimaksud Multiple Inheritance sebenernya adalah multiple implementation. Sebab si penulis ingin menjelaskan kasusnya untuk meningkatkan efisiensi, lebih prefer menggunakan sebuah class yg implement beberapa interface, dibandingkan menggunakan sub2class yg meng-inherit parent classnya, atau dengan cara delegation. Si penulis tidak menulis bahwa multiple inheritance bisa dicapai dengan interface. Atau mungkin bisa jadi kita berbeda menanggapi apa artinya inheritance :). Kalau menurut saya inheritance berhubungan dengan state/attribute dari sebuah class, yang bisa diturunkan ke subclassnya. Sedangkan interface tidak masuk kategori ini :). Best Regards, On Tue, Dec 23, 2008 at 11:10 AM, Aldian Fajri Hadi a...@aldian.net wrote: --- In jug-indonesia@yahoogroups.com, ahmad kundzori khi...@... wrote: para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan...manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang? terima kasih atas tanggapannya. :) Jaroslav Tulach, Architect-nya Netbeans, di bukunya Practical API Design bilang begini: Comparing Java Interfaces and Classes After the analysis of the previous sections, it might be the right time to resolve the neverending fight between Java interface lovers and Java class lovers. The most profound feature of Java interfaces is multiple inheritance. In fact, many claim that it's also the most important one. However, the NetBeans API experience shows that multiple inheritance in APIs is almost never actually needed. The only real reason to strive for it is performance—that is, to minimize the amount of occupied memory. With multiple inheritance, you need just one object to implement an unlimited number of interfaces from an API. In the case of classes, you would need to create one subclass for each API class, and if these classes are related to one another, join their instances by means of delegation. This can significantly increase the amount of occupied memory: a single instance of an object implementing an unlimited number of interfaces can fit into 8 bytes of memory on most common 32-bit JVMs on Intel processors. However, in the other case, where API classes are implemented by different instances interconnected with references among one another, you need at least 16 bytes per instance to implement each API class. The whole collection of implementation objects could require significantly more memory than if you were using interfaces. However, this only has a significant effect if you create many objects, certainly more than one or two. For example, the abstract syntax tree data structures used in compilers might benefit from this. For most existing scenarios, performance considerations aren't significant enough to outweigh the evolution problems of interfaces. Salam, Aldian
Re: [JUG-Indonesia] Re: mengapa interface?
Kalau api yg kita buat untuk kita sendiri sih seenak hatinya juga gpp. Tapi kalau api buat konsumsi orang lain, ada baiknya kita meninggalkan bad practice. Prinsip utama: 1. Konstanta di interface adalah bad practice. (mengkotori semua subclass, dan konstanta memang bukan di interface seharusnya) 2. Di java lebih baik menggunakan enum ketimbang membuat konstanta (sejak java 5) Best Regards, 2008/12/18 Aldian Fajri Hadi a...@aldian.net: Jangan samain interface untuk method polymorphism dengan definisi konstan. Definisi konstan di interface cuma untuk memanfaatkan konsistensi atau estetika namespace-nya. Orang yang berniat baik akan ngakses data tadi di bawah dengan A.hello atau B.hello. salam Aldian . Lebih parahnya lagi bisa terjadi kalau 2 interface memiliki konstanta dengan datatype dan nama yang sama. Ini benar2 fatal akibatnya. Coba lihat contoh ini. public interface A{ final String hello = thisIsA; } public interface B{ final String hello = thisIsB; } public class Hello implements A,B{ public void hello(){ System.out.println(hello); } } // tebak apa yang terjadi ?? Moreover balik ke statement joshua, rasanya kita ga pernah denger istilah type inheritance, type inherited memang make sense. Tapi type inheritance rasanya belum pernah denger deh ?? Cek di google juga gw ga nemu istilah ini.
[JUG-Indonesia] Re: mengapa interface?
--- In jug-indonesia@yahoogroups.com, ahmad kundzori khi...@... wrote: para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan...manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang? terima kasih atas tanggapannya. :) Jaroslav Tulach, Architect-nya Netbeans, di bukunya Practical API Design bilang begini: Comparing Java Interfaces and Classes After the analysis of the previous sections, it might be the right time to resolve the neverending fight between Java interface lovers and Java class lovers. The most profound feature of Java interfaces is multiple inheritance. In fact, many claim that it's also the most important one. However, the NetBeans API experience shows that multiple inheritance in APIs is almost never actually needed. The only real reason to strive for it is performancethat is, to minimize the amount of occupied memory. With multiple inheritance, you need just one object to implement an unlimited number of interfaces from an API. In the case of classes, you would need to create one subclass for each API class, and if these classes are related to one another, join their instances by means of delegation. This can significantly increase the amount of occupied memory: a single instance of an object implementing an unlimited number of interfaces can fit into 8 bytes of memory on most common 32-bit JVMs on Intel processors. However, in the other case, where API classes are implemented by different instances interconnected with references among one another, you need at least 16 bytes per instance to implement each API class. The whole collection of implementation objects could require significantly more memory than if you were using interfaces. However, this only has a significant effect if you create many objects, certainly more than one or two. For example, the abstract syntax tree data structures used in compilers might benefit from this. For most existing scenarios, performance considerations aren't significant enough to outweigh the evolution problems of interfaces. Salam, Aldian
Re: [JUG-Indonesia] Re: mengapa interface?
sy inget (anti) pattern tentang 'constant interface' ini dikemukakan oleh joshua bloch. setelah tadi googling dan baca lagi ada point dari joshua yg bagus IMO. byk developer taruh constant di interface karena: 1. ga perlu ketik 'public static final' di depan setiap constant yang mau di-declare 2. interface bisa di-implement oleh class yg akan memakainya. dengan begitu yg mau pake constant tersebut ga perlu mengetik nama class/interface sebagai namespace dari constant-nya, contoh (EXIT_ON_CLOSE instead of SwingConstants.EXIT_ON_CLOSE). sebenernya ini teknik yg cukup bagus untuk mengurangi jumlah code yg musti diketik. masalahnya ada harga yg harus dibayar dengan itu. interface sedianya untuk mendeklarasikan sebuat type. kalau ada class meng-implement interface berarti anggapannya class tersebut memiliki behaviour dari si interface. kalau interface-nya dibuat HANYA karena untuk taruh constant maka secara teori salah, tapi implementasi bisa saja (tidak ada error). interface yg dibuat jadinya tidak punya behaviour, hanya dummy holder buat constant tersebut. ini yang dianggap bad practice oleh joshua bloch. 2008/12/22 xsalefter xsalef...@yahoo.com: IMO, interface yang mendefinisikan tipe itu karena jdk 5 ga support enum, yang secara nature dipake buat mendefinisikan tipe. As long as I know, sebelum munculnya enum java itu mendefinisikan tipe dimana-mana. Yang paling gue inget: JFrame.EXIT_ON_CLOSE; // JFrame is a class! Sekarang setelah ada enum, setauku ga ada lagi tipe yang didefinisiin di inteface/class. statement elo bertolak belakan ma source jdk.. dimana banyak interface mendefinisikan type... ie: SwingConstants javax.sql.Statement kalo mo benerin statement Malah bukan best practice yang lebih tepat bad practice bikin JDK ndiri sana... hue he he... soal JDK sebenernya ga semua code JDK itu sesuai dengan best practice. namanya manusia kadang kan bisa aja salah design, walaupun sekelas JDK developer. lagian ga semua best practice sudah diketahui, jadi masih terus evolving. masalahnya karena ini JDK yang notabene adalah API public kesalahannya ga bisa diubah secara sembarangan. backward compatibility jadi isu yang penting sekali, ga kaya code rumahan yg dipake hanya 1 ato 2 orang bisa diubah semau kita kalo tau ada bad practice. moral of the story: jangan hanya mengacu ke code di JDK sebagai best practice. compare dengan sumber2 lain. regards
[JUG-Indonesia] Re: mengapa interface?
komputer ga ngerti OOP, krn OOP kan cuman konsep yg ada di kepala Klo yg ak baca di bab 1 Thinking in Java, 3rd ed. Revision 4.0 mesti dibedakan interface yang konsep dan interface yg keyword, klo yg dikutip arif dari wikipedia, sptnya interface yg konsep, di mana An object has an interface yg dari Ferdinand adalah interface yg keyword cmiiw regards, Nasrul -- Menikmati Hidup Mempersembahkan yang Terbaik -Nashroulloh
Re: [JUG-Indonesia] Re: mengapa interface?
Ahhh sebenernya apa sih yang diributin ? Yang kita bahas tuh apa sih ? Kalo gw sih pragmatic aja. Facts : 1. Interface bisa inherit dari interface yang lain. Ini yang dimaksud interface inheritance. 2. Interface itu gw pake untuk mendefine contract of expected behaviour dari class class yang bakal implement. Jadi gw yakin, implementasi dapat bertindak atau harusnya bertindak seperti apa yang sudah di predict by calling the contract. Contract can be propagated with other contract, bener gak sih kalimatnya... pokoknya gitulah maksudnya, kontraknya bisa ditambah-tambahin gituu... 3. Multiple interface can be implemented on one concrete or abstract class. How simple is that ??? 4. Interface bisa berisi static values, konstanta ya. Toch best practicenya, konstanta tersebut harus di call dengan menyebutkan interface yang bersangkutan. Bukan lewat implementasinya. 5. Umm.. apa lagi.. interface lebih erat ke polymorphism. Karena toh gak ada information hiding. Setau otak sederhana gw, Encapsulation itu kan yang ada public, private, protected, gitu gituan yak. Toch di interface semua methodnya public. Jadi, konteks nya bukan di information hiding atau apalah, tapi to define the contract. Lalu berdasarkan kontrak itulah kita bisa bermain-main dengan beberapa implementasi. You know what i mean. Stick to the fact. Then you are safe. Philosophical talk may lead to wrong interpretation. Just 2 dollar from my rusty brain. I cant buy anything with only 2 cents. kidding. Regards, On Thu, Dec 18, 2008 at 2:56 PM, Arif Rachim a.ari...@gmail.com wrote: Mungkin yang biasa pake .Net masih pada bingung, jadi gw coba quote dari website .Net http://msdn.microsoft.com/en-us/library/ms973861.aspx Although the phrase interface inheritance is often used, the correct term is interface implementation. It is possible for one interface to inherit from another, thereby extending its mandated set of methods to include those of the interface from which it inherits. However, to use interfaces in a Visual Basic .NET class, you implement them rather than inherit them -- Ferdinand Neman Cows who loves java http://www.jroller.com/page/newm4n
[JUG-Indonesia] Re: mengapa interface?
Hi Ferdinan, Di dunia IT ini ada yang namanya konsep dan implementasi , dari konsep kita akan menuju implementasi , begitulah yang benar . Kalu dari argument yang anda sodorkan ini adalah berangkat dari fakta yang ada , kemudian mencoba untuk di implementasi kan , dan tentunya ini akan membuat pemikiran anda menjadi pragmatis . --- In jug-indonesia@yahoogroups.com, Ferdinand Neman new...@... wrote: Ahhh sebenernya apa sih yang diributin ? Yang kita bahas tuh apa sih ? Kalo gw sih pragmatic aja. Facts : 1. Interface bisa inherit dari interface yang lain. Ini yang dimaksud interface inheritance. bening kalimat diatas ini hanya mengulang definisi , terus apa konsekuensi nya ? 2. Interface itu gw pake untuk mendefine contract of expected behaviour dari class class yang bakal implement. Jadi gw yakin, implementasi dapat bertindak atau harusnya bertindak seperti apa yang sudah di predict by calling the contract. Contract can be propagated with other contract, bener gak sih kalimatnya... pokoknya gitulah maksudnya, kontraknya bisa ditambah-tambahin gituu... bening dari kata interface di hubungkan dengan istilah contract , apakah definisi contract disini ? 3. Multiple interface can be implemented on one concrete or abstract class. How simple is that ??? bening ini definisi / pernyataan atau ambil copy paste dari kutipan orang lain ? 4. Interface bisa berisi static values, konstanta ya. Toch best practicenya, konstanta tersebut harus di call dengan menyebutkan interface yang bersangkutan. Bukan lewat implementasinya. bening interface bisa berisi static values , apakah ini berarti constanta juga bagian dari interface ? lalu kenapa bisa begini ? 5. Umm.. apa lagi.. interface lebih erat ke polymorphism. Karena toh gak ada information hiding. bening apa artinya interface lebih erat dari polymorphism ? apakah mereka adalah pasangan suami-istri ? :-) Setau otak sederhana gw, Encapsulation itu kan yang ada public, private, protected, gitu gituan yak. Toch di interface semua methodnya public. Jadi, konteks nya bukan di information hiding atau apalah, tapi to define the contract. Lalu berdasarkan kontrak itulah kita bisa bermain-main dengan beberapa implementasi. You know what i mean. bening saya sangat tidak ngerti yang anda ungkapan :-) Stick to the fact. Then you are safe. Philosophical talk may lead to wrong interpretation. bening Anda mungkin adalah orang yang mempunyai prinsip easy going Just 2 dollar from my rusty brain. I cant buy anything with only 2 cents. kidding. Regards, On Thu, Dec 18, 2008 at 2:56 PM, Arif Rachim a.ari...@... wrote: Mungkin yang biasa pake .Net masih pada bingung, jadi gw coba quote dari website .Net http://msdn.microsoft.com/en-us/library/ms973861.aspx Although the phrase interface inheritance is often used, the correct term is interface implementation. It is possible for one interface to inherit from another, thereby extending its mandated set of methods to include those of the interface from which it inherits. However, to use interfaces in a Visual Basic .NET class, you implement them rather than inherit them -- Ferdinand Neman Cows who loves java http://www.jroller.com/page/newm4n
Re: [JUG-Indonesia] Re: mengapa interface?
Hi Benny, 2008/12/19 Benny Iskandar liauwsiauwl...@yahoo.com: Hi Ferdinan, Di dunia IT ini ada yang namanya konsep dan implementasi , dari konsep kita akan menuju implementasi , begitulah yang benar . Benar menurut anda ? Menurut saya beda lagi, IT itu berangkat dari Dream or Demand. Bagi yang mau mewujudkannya, barulah bikin konsep. Abis bikin konsep, bikin proove. Kalo sudah Prooven baru deh bikin implementasi yang benar. Benar atau salah... di test dooong. Ini adalah benar menurut saya. Dream/Demand - Concept - Prove - Implementation - Test. Hi hi.. gw ada perasaan bakal banyak yang comment ini. Wong development methodology itu banyak ragamnya.. ke ke ke. Lagian kok bisa nyambung ke sini sih. Ngomongin interface kok bisa nyambung ke konsep-implementation ? Banyak yang bisa saya pikirkan sebagai kemungkinan kenapa pak Benny disini nyambung-nyambungin. Apakah 1. Interface aka Konsep - Class/Abstract Class aka Implementasi ? mungkin ini maksudnya ya pak ? 2. Konsep of interface - implementasi dari interface ? heh bingung gw. 3. Iseng aja menyulut diskusi tentang development life cycle. Harusnya Different thread ya pak ? 4. A phylosopher has spoken. Ooohhh.. master (bow). 5. He don't like me being pragmatic. Why oh why, maap ya pak ? 6. He is trolling me. Well.. he succeeded... sukses pak !!. Kalu dari argument yang anda sodorkan ini adalah berangkat dari fakta yang ada , kemudian mencoba untuk di implementasi kan , dan tentunya ini akan membuat pemikiran anda menjadi pragmatis . Lah... saya bukan orang yang bisa menentukan arah kemana bahasa Java akan menjadi apa. Saya hanya user. Dan user dari bahasa yang secara leksikal dan syntatical sudah di define oleh JCP atau si penemu java atau SUN sebagai pemiliki trademark Java. So... pragmatis saja. Pak Benny ada masalah dengan saya yang berfikir pragmatis ? --- In jug-indonesia@yahoogroups.com, Ferdinand Neman new...@... wrote: Ahhh sebenernya apa sih yang diributin ? Yang kita bahas tuh apa sih ? Kalo gw sih pragmatic aja. Facts : 1. Interface bisa inherit dari interface yang lain. Ini yang dimaksud interface inheritance. bening kalimat diatas ini hanya mengulang definisi , terus apa konsekuensi nya ? Konsekwensinya ya... he he... anda pikirin aja sendiri. KAlo anda sering merasakannya (develop app dengan banyak menggunakan interface, app yang high extensibility, develop app yang mengikuti kata orang programming to interface) ya anda taulah konsekwensinya. Saya gak ngomong sama newbies disini kan ? Sorry ya, untuk para newbies. sebaiknya anda mengerti essensi dari interface dulu, baru bisa ngomong pada level yang sama. Tanpa bermaksud merendahkan. Tapi emang itu apa adanya. Kalau anda mengerti benar apa yang saya katakan, anda tidak akan bertanya apa konsekwensi dari interface atau interface inheritance. :) 2. Interface itu gw pake untuk mendefine contract of expected behaviour dari class class yang bakal implement. Jadi gw yakin, implementasi dapat bertindak atau harusnya bertindak seperti apa yang sudah di predict by calling the contract. Contract can be propagated with other contract, bener gak sih kalimatnya... pokoknya gitulah maksudnya, kontraknya bisa ditambah-tambahin gituu... bening dari kata interface di hubungkan dengan istilah contract , apakah definisi contract disini ? Ugh... Agh... sudah terlalu banyak diskusi yang membahas interface sebagai contract antara implementator dan implementator. Malah sempet ada dulu, yang bahas interface vs annotation. Ya gak rif ? Silahkan ada dig back the old stories. 3. Multiple interface can be implemented on one concrete or abstract class. How simple is that ??? bening ini definisi / pernyataan atau ambil copy paste dari kutipan orang lain ? Saya waktu ngetik itu sama sekali gak liat reference lain. Cukup dari apa yang saya mengerti. Wong emang bener sih... implementasi dari interface itu gak akan ke yang lain. Cuma ke concrete sama abstract class doang. Gimana sih ? ck ck ck. 4. Interface bisa berisi static values, konstanta ya. Toch best practicenya, konstanta tersebut harus di call dengan menyebutkan interface yang bersangkutan. Bukan lewat implementasinya. bening interface bisa berisi static values , apakah ini berarti constanta juga bagian dari interface ? lalu kenapa bisa begini ? He he he... ini pertanyaan yang kudu dijawab sama yang bikin nih bahasa. JAnga tanya saya kenapa bumi itu bundar ya gak ? Aduuhh... literaly, anda bisa taro static variables di interface. Gitu aja. Jangan di kabur kan lagi apakah konstanta bagian dari interface ini bikin kabur. 5. Umm.. apa lagi.. interface lebih erat ke polymorphism. Karena toh gak ada information hiding. bening apa artinya interface lebih erat dari polymorphism ? apakah mereka adalah pasangan suami-istri ? :-) Waduh... analoginya suami-istri euy... silahkan yang lain menilai. Analoginya bagus juga... ha ha ha ha. On interface level, everything is polymorphic. You will never know
Re: [JUG-Indonesia] Re: mengapa interface?
Hi Hi, Saya yakin maksud Pak Benny purely trying to express his analysis of the reason why you become a pragmatic software engineer (architect juga termasuk). Jadi nggak perlu tersinggung nih, dimana2 semua orang tau kalo pragmatic nggak berarti buruk sama sekali. Malah banyakan orang bangga being a pragmatic person as it is often correlate to a person who is able to think and solve problems fast and just according to the requirements. Saya yakin Pak Benny juga tau ttg ini dan tidak berusaha menyinggung atau menyudutkan anda. Mengenai pemikiran anda yang ini : Menurut saya beda lagi, IT itu berangkat dari Dream or Demand. Bagi yang mau mewujudkannya, barulah bikin konsep. Abis bikin konsep, bikin proove. Kalo sudah Prooven baru deh bikin implementasi yang benar. Benar atau salah... di test dooong. Ini adalah benar menurut saya. Dream/Demand - Concept - Prove - Implementation - Test. Saya rasa tidak ada bedanya dengan apa yang sudah di sebut oleh Benny. Hanya saja anda lebih detail dan Benny lebih general. Dream/Demand - Concept (Ferdinand) = Concept ( Benny ) Prove - Implementation - Test (Ferdinand) = Implementation ( Benny ) Ketika kita keluar dengan suatu konsep, sudah pasti diawali dengan adanya Dream/Demand. Dan sewaktu kita coba untuk prove konsep kita itu, bisa dibilang kita mencoba untuk implement konsep tersebut. Terserah orang mau di test sampai sempurna atau hanya dicoba asal jalan saja, tapi tetap saja itu disebut implementation of concept. Semoga anda mengerti bahwa tidak perlu mendebat satu sama lain karena kalian berdua sebenarnya searah, cuman mungkin pemilihan kata2nya menyebabkan sedikit salah paham. --- On Fri, 12/19/08, Ferdinand Neman new...@gmail.com wrote: From: Ferdinand Neman new...@gmail.com Subject: Re: [JUG-Indonesia] Re: mengapa interface? To: jug-indonesia@yahoogroups.com Date: Friday, December 19, 2008, 3:04 AM Hi Benny, 2008/12/19 Benny Iskandar liauwsiauwl...@yahoo.com: Hi Ferdinan, Di dunia IT ini ada yang namanya konsep dan implementasi , dari konsep kita akan menuju implementasi , begitulah yang benar . Benar menurut anda ? Menurut saya beda lagi, IT itu berangkat dari Dream or Demand. Bagi yang mau mewujudkannya, barulah bikin konsep. Abis bikin konsep, bikin proove. Kalo sudah Prooven baru deh bikin implementasi yang benar. Benar atau salah... di test dooong. Ini adalah benar menurut saya. Dream/Demand - Concept - Prove - Implementation - Test. Hi hi.. gw ada perasaan bakal banyak yang comment ini. Wong development methodology itu banyak ragamnya.. ke ke ke. Lagian kok bisa nyambung ke sini sih. Ngomongin interface kok bisa nyambung ke konsep-implementation ? Banyak yang bisa saya pikirkan sebagai kemungkinan kenapa pak Benny disini nyambung-nyambungin. Apakah 1. Interface aka Konsep - Class/Abstract Class aka Implementasi ? mungkin ini maksudnya ya pak ? 2. Konsep of interface - implementasi dari interface ? heh bingung gw. 3. Iseng aja menyulut diskusi tentang development life cycle. Harusnya Different thread ya pak ? 4. A phylosopher has spoken. Ooohhh.. master (bow). 5. He don't like me being pragmatic. Why oh why, maap ya pak ? 6. He is trolling me. Well.. he succeeded... sukses pak !!. Kalu dari argument yang anda sodorkan ini adalah berangkat dari fakta yang ada , kemudian mencoba untuk di implementasi kan , dan tentunya ini akan membuat pemikiran anda menjadi pragmatis . Lah... saya bukan orang yang bisa menentukan arah kemana bahasa Java akan menjadi apa. Saya hanya user. Dan user dari bahasa yang secara leksikal dan syntatical sudah di define oleh JCP atau si penemu java atau SUN sebagai pemiliki trademark Java. So... pragmatis saja. Pak Benny ada masalah dengan saya yang berfikir pragmatis ? --- In jug-indonesia@yahoogroups.com, Ferdinand Neman new...@... wrote: Ahhh sebenernya apa sih yang diributin ? Yang kita bahas tuh apa sih ? Kalo gw sih pragmatic aja. Facts : 1. Interface bisa inherit dari interface yang lain. Ini yang dimaksud interface inheritance. bening kalimat diatas ini hanya mengulang definisi , terus apa konsekuensi nya ? Konsekwensinya ya... he he... anda pikirin aja sendiri. KAlo anda sering merasakannya (develop app dengan banyak menggunakan interface, app yang high extensibility, develop app yang mengikuti kata orang programming to interface) ya anda taulah konsekwensinya. Saya gak ngomong sama newbies disini kan ? Sorry ya, untuk para newbies. sebaiknya anda mengerti essensi dari interface dulu, baru bisa ngomong pada level yang sama. Tanpa bermaksud merendahkan. Tapi emang itu apa adanya. Kalau anda mengerti benar apa yang saya katakan, anda tidak akan bertanya apa konsekwensi dari interface atau interface inheritance. :) 2. Interface itu gw pake untuk mendefine contract of expected behaviour dari class class yang bakal implement. Jadi gw
[JUG-Indonesia] Re: mengapa interface?
interface A { void methodOfA(); } interface B { void methodOfB(); } interface C extends A, B { } Valid. Mau disebut multiple inheritance ataupun nggak. Nyari artinya di wikipedia juga gak bisa diakui 100% bisa dipercaya. Ngobrolnya mesti dibantu pakai source code bahasa java, bahasa persatuan di sini. --- In jug-indonesia@yahoogroups.com, Arif Rachim a.ari...@... wrote: Coba balik ke statement awal yg saya tulis : Tidak ada yang namanya multiple inheritance bagi interface ini keliru. Sebab memang tidak ada yg di inherit. Yang lebih tepat adalah multiple implementation dari interface. Sedangkan kalau kita bilang interface juga inheritance. interface inheritance dan interface juga inheritance adalah 2 makna yang berbeda. Yang satu menujukkan bahwa interface bisa memiliki fungsi yg meng inherit parentnya. Yang satu lagi menunjukkan bahwa inheritance bisa dicapai dengan interface ! Analoginya sama juga seperti bilang jus mangga,mangga juga jus Nah ini beda banget arti keduanya. Adabaiknya coba pelajari maknanya dulu. Nah sekarang kalau ada yg bilang multiple inheritance bagi interface itu artinya inheritance dengan multiple interface. Ini jelas keliru, yg tepat multiple implementaion dengan interface. Best Regards, 2008/12/18 Hendry Luk hendrym...@...: Oya? Gw kira interface juga inheritance?... Di sastra OO classic kan inheritance dipecah 2: class inheritance, interface inheritance. 2008/12/18 Arif Rachim a.ari...@... Tidak ada yang namanya multiple inheritance bagi interface ini keliru. Sebab memang tidak ada yg di inherit. Yang lebih tepat adalah multiple implementation dari interface.
[JUG-Indonesia] Re: mengapa interface?
Jangan samain interface untuk method polymorphism dengan definisi konstan. Definisi konstan di interface cuma untuk memanfaatkan konsistensi atau estetika namespace-nya. Orang yang berniat baik akan ngakses data tadi di bawah dengan A.hello atau B.hello. salam Aldian . Lebih parahnya lagi bisa terjadi kalau 2 interface memiliki konstanta dengan datatype dan nama yang sama. Ini benar2 fatal akibatnya. Coba lihat contoh ini. public interface A{ final String hello = thisIsA; } public interface B{ final String hello = thisIsB; } public class Hello implements A,B{ public void hello(){ System.out.println(hello); } } // tebak apa yang terjadi ?? Moreover balik ke statement joshua, rasanya kita ga pernah denger istilah type inheritance, type inherited memang make sense. Tapi type inheritance rasanya belum pernah denger deh ?? Cek di google juga gw ga nemu istilah ini.
Re: [JUG-Indonesia] Re: mengapa interface?
Kode ini contoh dari interface inheritance. interface A { void methodOfA(); } interface B { void methodOfB(); } interface C extends A, B { } Kode ini contoh dari implementation interface A { void methodOfA(); } class C implements A { } Kode ini contoh dari inheritance class A { void methodOfA(){} } class C extends A { } Kode ini contoh dari implementation interface A { void methodOfA(){} } class C implements A { } Kode ini contoh dari multiple implementation interface A { void methodOfA(){} } interface B { void methodOfB(){} } class C implements A,B { } I hope this will make it clear. Cheers !
Re: [JUG-Indonesia] Re: mengapa interface?
Mungkin yang biasa pake .Net masih pada bingung, jadi gw coba quote dari website .Net http://msdn.microsoft.com/en-us/library/ms973861.aspx Although the phrase interface inheritance is often used, the correct term is interface implementation. It is possible for one interface to inherit from another, thereby extending its mandated set of methods to include those of the interface from which it inherits. However, to use interfaces in a Visual Basic .NET class, you implement them rather than inherit them
[JUG-Indonesia] Re: mengapa interface?
Saya akan mencoba menjawab, mudah2an bisa berguna dan mudah dipahami. Ini sebuah analogi: Ketika kita pergi ke sebuah restoran, ketika akan memesan sebelumnya akan disodorkan menu makanan. Setelah kita membaca menu tersebut, barulah kita tau apa yang akan kita pesan. Setelah memesan, maka beberapa saat kemudian makanan tersebut dihidangkan sesuai dengan pesanan. Restoran adalah system kita, pemesan adalah user, menu makanan tersebut adalah interface, proses memasaknya adalah bisnis prosesnya, sedangkan makanan tersebut adalah return dari hasil bisnis proses yang direquest. Seandainya tidak ada interface (Menu makanan) maka restorant harus memasak semua masakan yang ada didalam menu untuk menawarkan makanan ke 1 user. Bisa dibayangkan alangkah beratnya kerja dari system tersebut. Dengan interface tersebut maka sang user dapat tahu fungsi apa saja yang ada, parameter apa yang perlu dimasukkan, dan apa yang akan dia dapatkan. Sebagai contoh lain, bagaimana cara kerja berbagai macam hardware dapat bekerja dengan windows. Karena adanya Driver dari hardware tersebut yang diinstallkan. Sang pembuat hardware tidak perlu tau bagaimana cara bekerjanya si Windows. Windows sudah memiliki beberapa interface yang dapat diakses. Hal itulah yang digunakan sang pembuat hardware untuk membuat Driver dari hardware-nya agar hardware-nya dapat dikenali oleh Windows. Sekian. Semoga dapat membantu pemahaman Anda tentang interface. Mohon maaf jika ada kesalahan, mohon koreksi dari para master. Terima kasih Salam, Dhani Y. --- In jug-indonesia@yahoogroups.com, ahmad kundzori khi...@... wrote: para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan...manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang? terima kasih atas tanggapannya. :)
[JUG-Indonesia] Re: mengapa interface?
nambahin contoh interface sebagai contract. coba lihat class JDBC Connection, Driver, ResultSet itu interface semua .. artinya apa .. artinya Sun yang buat spesifikasi, menentukan interface untuk jdbc adalah seperti kontrak spec jdbc itu. Sehingga ketika orang dari oracle, mysql, postgre, sybase, sql server, etc, etc mau bikin driver jdbc, mereka yang bikin concrete classnya .. enaknya dimana ? kalau bikin program, kita tinggal declare koneksi pake interface standar, lalu setting dengan driver yang sesuai .. mau ganti database, tinggal ganti jar yang sesuai dbms tujuan, coba kalau ngga pake interface, ini ga bakal kejadian. atau mau lihat JMS, mirip2 juga .. --- In jug-indonesia@yahoogroups.com, Reza Alaudin t_l...@... wrote: ada juga kegunaan laen interface sebagai kontrak(perjanjian) yang sangat membantu apabila para master2 java (apa ga' perlu master untuk jawab ini...?), mau tanya... mengapa interface itu dibuat, apakah manfaat (yang signifiakan. ..manfaat yang nendang) dari interface? why interface? bukankah langsung dibuat class biasa aja juga bisa, dari pada membuat class yang mempunyai method tanpa implementasi (kalo langsung diisi implementasi kenapa?) ada contoh yang nendang?