Menjadi bukt bahwaSeparation of Concerns menjadi gagasan salah satu yang dapat diterima. Serta dalampenggunaan SoC untuk mengukur seberapa besar tingkat pemisahan domain padaperangkat lunak dapat menggunakan matrik berupa Coupling dan Cohesion· Coupling sendirimerupakan tingkat ketergantungan antara satu modul dengan modul lainnya.Semakin sedikit ketergantungan suatu modul dengan modul lainnya maka sistemyang dibuat semakin baik.· Cohesion tingkat dimanaelemen-elemen saling membentuk dan memiliki relasi yang baik. Apabila kelasmemiliki banyak aksi dan tidak memiliki satu tujuan fokus yang sama maka itudinamakan LowCohesion, sedangkan apabila suatu kelas memiliki suatu metode yangsama atau saling berhubungan sehingga kelas tersebut memiliki sebuah tujuantugas yang jelas dinamakan HighCohesion. 1.
Separationpada Tingkat ArsitekturSoC pada tingkat arsitektur ini adalahpemisahan domain bermasalah pada tingkat arsitektur sistem dimana pemisahanpermasalah dapat dilakukan dengan cara tiering, layering, dan penggunaan designpattern· TieringDalam hal ini menggunakan dua cara yaituclient-server dan N- tirr systema) Client-servermerupakan sebuah sistem atau aplikasi yang memisahkan antara penyedia sumberdaya (server) dan pemohon (client)b) N-tiersistem pada bagian ini prinsipnya merupakan pengidentifikasian pemisahankomponen -komponen secara fisik seperti EXE, dll· Layeringpemisahan permasalahan menjadi 3 buahlayer yang berbeda. Seperti pemisahan mengunakan nama yang berbeda pada class.Perbedaan antara layer dan tier ialah tier merupakan pemisahan secara fisik,pada server brbeda-beda sedangkan layer hanya merupakan pemisahan secara logikdan semuanya masih ada pada hardware yang sama. 2.
Socpada Tingkat PerangcangPada tingkat ini, dapat dilakukan denganbeberapa langkah perancangan yang memperhatikan prinsip yang akan mempermudahdalam memodifikasi dan pengekapsulasian sebuah domain, dengan cara menggunakanprinsip SRP dan OCP yang merupakan lima prinsip dasar perancang berorientasiobjek. Hal ini disampaikan oleh Robert C. Martin dalam bukunya “principlesof OOD”· SRP ( singleresponsibility principles )Prinsip ini menekankan bahwa sebuahkelas hanya harus bertanggung jawab atas satu permasalahan yang terjadi dikelasnyasehingga perubahan hanya akan terjadi pada kelas tersebut dan hanyamempengaruhi tugas yang bersangkutan tanpa harus mempengaruhi tugas yanglainnya· OCD ( open closeprinciples )Prinsip OCD menekankan pada 2 hal sebagaiberikut yaitu:a) Openfor ExtensionYaitu perilaku dari suatu modul atauclass yang dapat diperluas. Kita dapat membuat suatu modul memiliki perilakubaru atau berbeda berdasarkan perubahan pada equirementb) Closefor ModificationSource code dari sebuah modul tidakboleh berubah dan tidak ada seorang pun yang diijinkan untuk mengubahnya. Untukmeminimalisir anomali yang diakibatkan perubahan pada suatu class. 3.
SeparationOf Concerns ada Design PatternPada bagian ini merupakan sebuah solusiuntuk permasalahan-permasalahan yang mirip. Seperti memisahkan antarmukaberdasarkan implementasi yang memungkinkan, membungkus kelas yang lama agarbisa berbaur dengan kelas yang baru dan juga melindungi dari perubahan yangterjadi akibat perbedaan platform. Design pettern ini sendiri terdiri daribeberapa kelas keci yang melalui pendelagasian dan pewarisan. Kelas-kelas inidapat beradaptasi dan diperbaiki sesuai dengan sistem yang dibangun.
Ada beberapa Design pattern yangberkaitan dengan Separation of concerns:· Abstrac factoryDigunakan pada sistem yang berupaclient-server. Yang berfungsi sebagai penyedia implementasi yang berbeda-bedauntuk suatu kumpulan konsep yang sama dari platform client-server yangberbeda-beda· CommandBerfungsi sebagai pengekapsulasipermintaan sehingga permintaan itu dapat dieksekusi, ditunda, atau bahkandibatalkan secara independen terhadap permintaan lainnya· CompositeMempresentasikan hirarki dari suatuvariabel class hingga cabang dan kompsitnya dapat dilakukan secara seragammelalu satu interface yang sama· FaçadeBerfungsi sebagai pengurang Couplingdalam suatu class yang saling terhubung dalam keseluruhan sistem.· ObserverBerguna sebagai pemelihara konsistensistate dari banyaknya Publisher atau objek yang berguna sebagai pemelihara statedan Subscriber objek yang menggunakan suatu state dari publisher.· ProxyBerfungsi untuk meningkatkan keamanan danperforma dari suatu sistem denganmenggunakan cara penundaan komputasi yangmemakan banyak sumber daya, ataumemeriksa suatu objek sebelum melakukan load ke dalam memori· StrategiMenghilangkancouple antara class yang mungkin dapat mempengaruhi keputusan sehinggamekanisme yang berbeda dapat diubah secara transparant oleh client.
4. SistemBerorientasi ObjekBerbeda dengan paradigma pembangunanperangkat lunak lainnya seperti prosedural maupun struktural, pada pembangunansistem berorientasi objek, satu entitas tunggal yang disebut class mencakupstate dan behaviour. Pada pemrograman struktural, antara atribut dan methodterpisah dalam entitas yang berbeda sedangkan pada pemrograman berorientasiobjek, antara atribut dan method digabungkan dengan cara melakukan abstraksientitas ke dalam suatu objek.
Sedangkan class sendiri merupakan suatu cetakbiru dari kumpulan objek-objek yang seragam. Ø Classmerupakan sebuah cetak biru dimana sebuah objek akan dibuat.Ø Inheritanceclass-class yang memiliki state dan behavior yang sama dapat dikelompokkansedemikian rupa sehingga sebuah class dapat menjadi turunan dari class yanglain. Class yang ada di atas hierarki disebut superclass sedangkan class yangberupa turunannya disebut dengan sub-class.Ø Interfacekontrak antara class dengan dunia luar .
Ketika sebuah class mengplementasikansebuah interface. Class tersebut harus menyediakan behavior yang sama denganyang dihasilkan interface tersebut.