Install Web App

Belajar Typescript #41 | Konsep OOP - Abstraction

profil-penulis

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.

Apa Itu Abstraksi?

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:

  1. Penyederhanaan: Memungkinkan pengembang untuk fokus pada fitur yang penting dan mengabaikan detail yang kompleks.

  2. Pemisahan Concerns: Memisahkan logika bisnis dari detail implementasi, sehingga Anda dapat mengelola perubahan dengan lebih mudah.

  3. Peningkatan Keterbacaan: Mengurangi kompleksitas kode, sehingga lebih mudah untuk dibaca dan dimengerti oleh pengembang lain.

Menerapkan Abstraksi dalam TypeScript

Dalam TypeScript, Anda dapat menerapkan abstraksi dengan beberapa cara:

1. Penggunaan Interface

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.

2. Kelas Abstrak (Abstract Class)

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.

3. Enkapsulasi

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.

Kesimpulan

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

45. Belajar Typescript #45 | Konsep OOP Polymorphism

46. Interfaces TypeScript

Masuk Terlebih dahulu untuk berkomentar

Paling baru
Lihat Lainnya