Apa itu Abstraction?
abtraction dalam paradigma OOP adalah sebuah konsep dimana kita dapat mengatur sebuah kompleksitas dalam sebuah struktur code kita.Kompleksitas ini dapat kita atur sehingga kita dapat menghandle detail yang tidak diperlukan dan menampilkan data relevan dengan apa yang dibutuhkan.
Contoh kasus Abstraction
saya ambil contoh sederhana dalam kasus di sekitar kita.Saya yakin semua orang didunia ini mayoritas punya hp/smartphone bukan? baik saya ataupun teman teman semuanya, nah kita lihat smartphone kita di bagian depan kita hanya dapat melihat tombol home didalam layar dan juga tombol volume atas bawah, tapi kita tidak dapat mengakses dan melihat seberapa komplek mesin yang ada didalamnya bukan? yaa karena itu emang tidak diperlukan untuk ditampilkan.
Implementasi Abstraction
disini saya akan mencontohkan implementasi abstraction dalam beberapa bahasa pemrograman yang saya kuasai, dalam hal ini saya akan memberikan contoh dari PHP,Typescript dan Ruby.
<?php
Class Phone {
public function VolumeUp(){
return "Volume Up"
}
public function VolumeDown(){
return "Volume Down"
}
private function Battery(){
return "this is battery"
}
}
class Phone
def VolumeUp
"Volume Up"
end
def VolumeDown
"Volume Down"
end
private
def Battery
"this is battery"
end
end
-
Abstraction pada Typescript
class Phone{
VolumeUp(){
return "Volume Up"
}
VolumeDown(){
return "Volume Down"
}
#Battery(){
return "this is battery"
}
}
dari code yang saya tuliskan diatas dapat teman - teman lihat saya mengatur beberapa hak akses terhadap sebuah class, dalam dunia nyata sebuah smartphone tidak akan memperlihatkan seberapa komplek bentuk baterai bukan? dalam kita mengabstraksi sebuah class kita harus mempertimbangkan method - method mana saja yang dapat diakses oleh publik dan method mana saja yang hanya boleh diakses dalam kelas tersebut,perlu teman - teman ketahui kesalahan dalam menentukan method dapat menjadikan indikasi adanya smell code dan kesalahan dalam melakukan testing,serta code kita rawan bug.dalam bahasa pemrograman apapun konsepnya sama kita mengenal yang namanya public method dan private method, hanya saja dalam penulisan syntaxnya yang berbeda.
okee sekian penjelasan materi kali ini, untuk materi selanjutnya masih berhubungan dan erat kaitanya dengan abstraksi yakni Encapsulation,sampai jumpa di materi berikutnya :) .