Belajar Typescript #41 | Konsep OOP - Abstraction
Achmad Yoga Bactiar Teguh Suseno
28 Februari 2023
Abstraksi adalah salah satu konsep utama dalam pemrograman berorientasi objek (OOP) yang memungkinkan pengembang untuk menyembunyikan detail yang kompleks dari suatu objek dan hanya mengekspos fitur yang diperlukan. Abstraksi mempermudah pengembangan, memungkinkan pemisahan antara apa yang sebuah objek lakukan dan bagaimana itu melakukannya. Artikel ini akan menjelaskan konsep abstraksi dalam OOP, bagaimana cara menerapkannya dalam TypeScript, dan mengapa abstraksi penting dalam pengembangan aplikasi.
Abstraksi adalah konsep yang memungkinkan Anda untuk mengidentifikasi fitur penting dari suatu objek dan mengabaikan detail yang tidak relevan atau kompleks. Ini melibatkan penyederhanaan objek dan penghilangan kompleksitas internal dari pandangan luar. Dalam OOP, abstraksi memungkinkan Anda untuk mendefinisikan antarmuka objek yang hanya mengekspos metode atau properti yang relevan, sambil menyembunyikan logika internalnya.
Konsep abstraksi penting dalam OOP karena:
Penyederhanaan: Memungkinkan pengembang untuk fokus pada fitur yang penting dan mengabaikan detail yang kompleks.
Pemisahan Concerns: Memisahkan logika bisnis dari detail implementasi, sehingga Anda dapat mengelola perubahan dengan lebih mudah.
Peningkatan Keterbacaan: Mengurangi kompleksitas kode, sehingga lebih mudah untuk dibaca dan dimengerti oleh pengembang lain.
Dalam TypeScript, Anda dapat menerapkan abstraksi dengan beberapa cara:
Interface adalah cara utama untuk menerapkan abstraksi dalam TypeScript. Dengan menggunakan interface, Anda dapat mendefinisikan kontrak antarmuka objek yang hanya mengungkapkan metode atau properti yang relevan.
interface Shape {
area(): number;
}
Dalam contoh di atas, kita mendefinisikan interface Shape
yang hanya memiliki satu metode, area()
. Detail implementasi dari objek yang mengimplementasikan interface ini disembunyikan.
Kelas abstrak adalah class yang tidak dapat diinstansiasi dan digunakan sebagai kerangka dasar untuk kelas-kelas turunannya. Dalam kelas abstrak, Anda dapat mendefinisikan metode abstrak yang harus diimplementasikan dalam kelas turunannya.
abstract class Shape {
abstract area(): number;
}
Dalam contoh di atas, Shape
adalah kelas abstrak dengan metode abstrak area()
. Kelas yang mewarisi Shape
harus mengimplementasikan metode ini.
Enkapsulasi adalah konsep yang melibatkan penyembunyian properti dan method dalam suatu objek, sehingga hanya metode yang relevan yang dapat diakses dari luar objek. Dalam TypeScript, Anda dapat menggunakan access modifiers seperti public
, private
, dan protected
untuk mengontrol akses ke properti dan method.
class Person {
private name: string;
constructor(name: string) {
this.name = name;
}
public getName(): string {
return this.name;
}
}
Dalam contoh di atas, name
adalah properti yang hanya dapat diakses melalui method getName()
, sehingga detail internal objek tersembunyi.
Abstraksi adalah konsep penting dalam OOP yang memungkinkan penyederhanaan, pemisahan concerns, dan peningkatan keterbacaan dalam kode. Dalam TypeScript, Anda dapat menerapkan abstraksi dengan menggunakan interface, kelas abstrak, dan enkapsulasi. Dengan abstraksi yang baik, Anda dapat mengembangkan aplikasi yang lebih terstruktur dan mudah dimengerti.
Artikel Lainnya Dengan Kategori Terkait :
1. Belajar Typescript #01 | Memahami apa itu Typescript
2. Belajar Typescript #02 | Setup project Typescript
3. Belajar Typescript #03 | Konfigurasi compiler Typescript
4. Belajar Typescript #04 | Membuat code dan menjalankan Typescript
5. Belajar Typescript #05 | Basic types pada Typescript
6. Belajar Typescript #06 | Type data Boolean pada Typescript
7. Belajar Typescript #07 | Type data Number pada Typescript
8. Belajar Typescript #08 | Type data String pada Typescript
9. Belajar Typescript #09 | Type data Null dan Undefined pada Typescript
10. Belajar Typescript #10 | Type data Any pada Typescript
11. Belajar Typescript #11 | Type data Void pada Typescript
12. Belajar Typescript #12 | Object types pada Typescript
13. Belajar Typescript #13 | Object Literal pada Typescript
14. Belajar Typescript #14 | Type data Void pada Typescript
15. Belajar Typescript #15 Object types pada Typescript
16. Belajar Typescript #16 | Memahami dan menerapkan type aliases
17. Belajar Typescript #17 | Memahami dan menerapkan union types
18. Belajar Typescript #18 | Memahami dan menerapkan intersection types
19. Belajar Typescript #19 | Basic types lanjutan - Array
20. Belajar Typescript #20 | Basic types lanjutan - Tuples
21. Belajar Typescript #21 | Basic types lanjutan - Null
22. Belajar Typescript #22 | Basic types lanjutan - Undefined
23. Belajar Typescript #23 | Basic types lanjutan - Void
24. Belajar Typescript #24 | Basic types lanjutan - Never
25. Belajar Typescript #25 | Mengenal teknik lanjutan pada Typescript
26. Belajar Typescript #26 | Optional Parameter
27. Belajar Typescript #27 | Default Parameter
28. Belajar Typescript #28 | Return Type
29. Belajar Typescript #29 | Mendeklarasikan Fungsi - Tanpa Parameter
30. Belajar Typescript #30 | Mendeklarasikan Fungsi - Dengan Parameter
31. Belajar Typescript #31 | Mendeklarasikan Fungsi - Dengan Return Type
32. Belajar Typescript #32 | Mendeklarasikan Fungsi - Sebagai Variabel
33. Belajar Typescript #33 | Mendeklarasikan Fungsi - Sebagai Tipe Data
34. Belajar Typescript #34 | Function Call Signature
35. Belajar Typescript #35 | Menerapkan Types ke dalam class
36. Belajar Typescript #36 | Class declaration
37. Belajar Typescript #37 | Properties dan Methods
38. Belajar Typescript #38 | Object dan Properti dari sebuah class
39. Belajar Typescript #39 | Constructor
40. Belajar Typescript #40 | Konsep OOP - Inheritance
41. Belajar Typescript #41 | Konsep OOP - Abstraction
42. Belajar Typescript #42 | Konsep OOP - Encapsulation
43. Belajar Typescript #43 | Accessors
44. Belajar Typescript #44 | Member visibility / Access modifier
Ahmad Dika Zulfahmi - 18 Februari 2025
Jungler Tank Bisa Kembali? Update yang Bisa Membawa Jungler Tank ke Meta Lagi
Ahmad Dika Zulfahmi - 06 Februari 2025
Setting Sensitivitas Auto Headshot Free Fire Terbaik
Ahmad Dika Zulfahmi - 03 Februari 2025
Flash Sale Minaplay! Top Up Diamond Free Fire Murah & Cepat!