Sejarah dan perkembangan OOP
Inspirasi pembuatan Object Oriented Programming (OOP) atau Pemrograman Berorientasi Objek diawali oleh Ivan Sutherland yang menulis kode program Sketchpad. Kode itu ditulis pada tahun 1961 dan 1962 dan diterbitkan dalam Tesis Sketchpad pada tahun 1963.
Kemudian, OOP diciptakan oleh Alan Kay sekitar tahun 1966 atau 1967 ketika ia masih menjalankan studi di sekolah pascasarjana. Tahun-tahun berikutnya pemahaman tentang best practice pada OOP terus berkembang.
Dimulai dari tahun 1988 hingga awal tahun 2000an, literatur mengenai pemograman OO terus bermunculan. Salah referensi yang cukup fenomenal adalah Refactoring yang ditulis oleh Martin Fowler.
Pada tahun 1999, Martin Fowler menuliskan buku tentang refactoring, terinspirasi oleh disertasi William Opdyke dibimbing oleh Ralph Johnson di Universitas of Illinois at Urbana-Champaign.
Ralph Johnson merupakan bagian dari Gang of Four (GOF) yang menuliskan buku design pattern. Jika kita perhatikan, refactoring dan design pattern memiliki kesamaan isi, yakni katalog cara koding yang benar.

OOP Conference
Konferensi yang fokus membahas OO adalah OOPSLA conference, yang sekarang merupakan bagian dari SPLASH conference.
Jika kita lihat, ide refactoring pun dihasilkan dari OOPSLA conference. Hal ini menandakan pentingnya praktisi dan akademisi untuk bertemu dalam suatu pertemuan, yang biasa disebut konferensi. Kolaborasi antara praktisi dan akademisi dibutuhkan untuk menghasilkan metode dan teknik yang terpercaya dalam mengembangkan perangkat lunak.
Selain Refactoring…
Selain Refactoring, prinsip-prinsip good design pada OOP (atau yang bukan objek) diantaranya :
- Open-Closed Principle [Mey88a],
- Responsibility-Driven Design [WBW89],
- Using of Design Patterns [GHJV95, ABW98],
- Law of Demeter [Lie96],
- Substitution Principle [MGM02, LW93b],
- use refactorings [FBB+99].
- write unit tests first, [BECK00]
- SOLID principles, O nya juga ada di nomor 1 hehe
Salah satu prinsip, SOLID principles, sudah saya tulis, hehe silahkan dibaca.
Perkembangan OOP ?
Artikel ini ditulis pada tahun 2020 yang berarti sudah 54 tahun sejak OOP pertama kali ditemukan.
Apakah pemahaman tentang OOP masih akan terus berkembang ?
Saya sendiri sedang melanjutkan studi tentang smell & refactoring untuk OOP. Sampai tahun 2020, perkembangan topik smell & refactoring cukup menjanjikan.

Untuk lebih detailnya, silahkan baca referensi dibawah. Salam semangat !
- [Mey88] : Bertrand Meyer. Disciplined exceptions. Tr-ei-22/ex, Interactive
Software Engineering, Goleta, CA, 1988. - [WBW89] : Rebecca Wirfs-Brock and Brian Wilkerson. Object-oriented design: A responsibility-driven approach. In Proceedings OOPSLA
’89, pages 71–76, October 1989. ACM SIGPLAN Notices, volume
24, number 10. - [Lie96] : Karl J. Lieberherr. Adaptative Object-Oriented Software: The
Demeter Method. PWS Publishing, 1996. - [LW93] : Barbara Liskov and Jeannette M. Wing. A new definition of the
subtype relation. In Oscar Nierstrasz, editor, Proceedings ECOOP
’93, volume 707 of LNCS, pages 118–141, Kaiserslautern, Germany, July 1993. Springer-Verlag - [GHJV95] : Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
Software. Addison Wesley, Reading, Mass., 1995. - [ABW98] : Sherman R. Alpert, Kyle Brown, and Bobby Woolf. The Design
Patterns Smalltalk Companion. Addison Wesley, 1998. - [FBB+99] : Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts. Refactoring: Improving the Design of Existing Code. Addison Wesley, 1999.
- [BECK00] : Kent Beck. Test-Driven Development by Example. 2000
- [MGM02] :Ludger Martin, Anke Giesl, and Johannes Martin. Dynamic component program visualization. In Proceedings of WCRE 2002
(Working Conference on Reverse Engineering), 2002 - https://en.wikipedia.org/wiki/OOPSLA