Lompat ke isi

Kohesi (ilmu komputer): Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
Aldo samulo (bicara | kontrib)
Tidak ada ringkasan suntingan
InternetArchiveBot (bicara | kontrib)
Add 1 book for Wikipedia:Pemastian (20240709)) #IABot (v2.0.9.5) (GreenC bot
 
(23 revisi perantara oleh 20 pengguna tidak ditampilkan)
Baris 1: Baris 1:
{{disambiginfo|Kohesi (disambiguasi)}}
{{rapikan|date=15 September 2010}}
{{rapikan|date=15 September 2010}}
{{wikify|date=15 September 2010}}
{{wikify|date=15 September 2010}}
{{no footnotes}}
{{tanpa_kategori|date=15 September 2010}}
'''Kohesi''' (ilmu komputer/''computer science'') merupakan tingkat saling keterkaitan antara [[komponen]]-komponen (seperti ''[[data]]'' ''member'' dan ''member function'') yang terdapat pada sebuah kelas (biasa juga disebut modul) dalam suatu [[pemrograman berorientasi objek]] (PBO).
{{tanpa_referensi|date=15 September 2010}}
Sebuah kelas dalam PBO dibuat bertujuan merepresentasikan suatu objek, oleh karena itu semua komponen dalam sebuah kelas seharusnya menggambarkan komponen yang dimiliki oleh [[objek]] tersebut. Semakin tinggi keterkaitan antara komponen-komponen dalam sebuah kelas maka akan semakin baik kelas tersebut, semakin tinggi kohesi yang ada maka akan semakin baik.
{{paragraf_pembuka|date=15 September 2010}}
'''Kohesi'''(ilmu komputer/computer science) merupakan tingkat saling keterkaitan antara komponen-komponen(seperti data member dan member function) yang terdapat pada sebuah kelas(biasa juga disebut modul) dalam suatu [[pemrograman berorientasi objek]](PBO).
Sebuah kelas dalam PBO dibuat dengan tujuan merepresentasikan suatu objek, oleh karena itu semua komponen dalam sebuah kelas seharusnya menggambarkan komponen yang dimiliki objek tersebut. Dengan kata lain semakin tinggi keterkaitan anatara komponen-komponen dlam sebuah kelas maka kan semakin baik pula kelas tersebut, semakin tinggi kohesi yang ada maka akan semakin baik.
Kohesi dibagi menjadi beberapa tingkatan, antara lain:


Kohesi sering dikontraskan dengan sambungan. Kohesi yang tinggi sering kali berkorelasi dengan penggabungan yang longgar, dan sebaliknya.<ref name="Ingeno_2018" /> [[Metrik perangkat lunak]] untuk penggabungan dan kohesi ditemukan oleh [[Larry Constantine]] pada akhir tahun 1960an sebagai bagian dari Desain Terstruktur, berdasarkan dari praktik pemrograman “baik” yang mengurangi biaya pemeliharaan dan modifikasi. [[Analisis terstruktur#Desain terstruktur|Desain Terstruktur]], kohesi, dan penggabungan dipublikasikan dalam artikel tersebut ''Stevens, Myers & Constantine'' (1974)<ref name="Stevens_1974" /> dan buku ''Yourdon & Constantine'' (1979);<ref name="Yourdon_1979" /> dua istilah terakhir kemudian menjadi istilah standar dalam [[rekayasa perangkat lunak]].
*Kohesi berdasarkan kebetulan
Saat bagian dari satu class dibagi-bagi secara acak dan bagian-bagian tersebut tidak mempunyai hubungan yang penting.
*Kohesi berdasarkan logika
Saat bagian-bagian dari satu class dikelompokkan berdasarkan kategori tertentu karena secara logika bagian tersebut melakukan suatu fungsi/hal yang sama.
*Kohesi berdasarkan waktu
Saat bagian-bagian dari sebuah class dikelompokkan berdasarkan waktu pemrosesan. Bagian-bagian yang diproses dalam waktu bersamaan dikelompokan dalam satu tempat.
*Kohesi berdasarkan cara/urutan
Saat bagian-bagian dari sebuah class dikelompokan karena bagian-bagian tersebut pasti dieksekusi secara berurutan. Misal fungsi mengecek izin file selau dilakukan sebelum membuka file
*Kohesi berdasarkan pengelolaan data
Saat bagian-bagian dari sebuah class dikelompokan karena mereka mengelola data yang sama
*Kohesi berdasarkan sebab akibat/sambungan
Saat bagian-bagian dari sebuah class dikelompokan karena output dari satu bagian adalah input dari bagian lainnya.
*Kohesi berdasarkan fungsi
Saat bagian-bagian dari sebuah class dikelompokan karena mereka semua berperan dalam sebuah tugas dari class


== Jenis-jenis kohesi ==
Referansi:


===Kohesi berdasarkan kebetulan ===
Halaman 352,Bennet,Simon.2002. OBJECT-ORIENTED SYSTEM ANALYSIS &DESIGN USING UML (second edition). Mc Graw Hill, UK
Saat bagian dari satu ''class'' dibagi-bagi secara acak dan bagian-bagian tersebut tidak mempunyai hubungan yang penting.
===Kohesi berdasarkan logika ===
Saat bagian-bagian dari satu ''class'' dikelompokkan berdasarkan kategori tertentu karena secara logika bagian tersebut melakukan suatu fungsi/hal yang sama.
=== Kohesi berdasarkan waktu ===
Saat bagian-bagian dari sebuah ''class'' dikelompokkan berdasarkan waktu pemrosesan. Bagian-bagian yang diproses dalam waktu bersamaan dikelompokkan dalam satu tempat.
=== Kohesi berdasarkan cara/urutan ===
Saat bagian-bagian dari sebuah ''class'' dikelompokkan karena bagian-bagian tersebut pasti dieksekusi secara berurutan. Misal fungsi mengecek izin [[file]] selalu dilakukan sebelum membuka ''file''
=== Kohesi berdasarkan pengelolaan data ===
Saat bagian-bagian dari sebuah ''class'' dikelompokkan karena mereka mengelola data yang sama
=== Kohesi berdasarkan sebab akibat/sambungan ===
Saat bagian-bagian dari sebuah ''class'' dikelompokkan karena ''output'' dari satu bagian adalah ''input'' dari bagian lainnya.
=== Kohesi berdasarkan fungsi ===
Saat bagian-bagian dari sebuah ''class'' dikelompokkan karena mereka semua berperan dalam sebuah tugas dari ''class''

== Pranala luar ==

* [http://www.ndepend.com/Metrics.aspx#RelationalCohesion Definisi Cohesion metrics]
* [http://www.aivosto.com/project/help/pm-oo-cohesion.html Cohesion metrics]
* [https://github.com/mschwager/cohesion Pengukuran Kohesi dengan Python]

== Referensi ==
{{reflist|refs=
<ref name="Ingeno_2018">{{cite book |author-last=Ingeno |author-first=Joseph |title=Software Architect's Handbook |url=https://archive.org/details/softwarearchitec0000jose |publisher=[[Packt Publishing]] |date=2018 |pages=[https://archive.org/details/softwarearchitec0000jose/page/175 175] |isbn=978-178862406-0}}</ref>
<ref name="Stevens_1974">{{Cite journal |doi=10.1147/sj.132.0115 |title=Structured design |journal=[[IBM Systems Journal]] |volume=13 |issue=2 |pages=115–139 |date=June 1974 |author-last1=Stevens |author-first1=Wayne P. |author-link1=Wayne Stevens (software engineer) |author-last2=Myers |author-first2=Glenford J. |author-link2=Glenford J. Myers |author-last3=Constantine |author-first3=Larry LeRoy |author-link3=Larry LeRoy Constantine}}</ref>
<ref name="Yourdon_1979">{{Cite book |title=Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design |url=https://archive.org/details/structureddesign0000your |author-last1=Yourdon |author-first1=Edward |author-link1=Edward Yourdon |author-last2=Constantine |author-first2=Larry LeRoy |author-link2=Larry LeRoy Constantine |date=1979 |orig-year=1975 |publisher=Yourdon Press |isbn=978-0-13-854471-3 |bibcode=1979sdfd.book.....Y}}</ref>
<ref name="Marsic_2012">{{cite book |author-last=Marsic |author-first=Ivan |date=2012 |title=Software Engineering |publisher=[[Rutgers University]]}}</ref>
<ref name="McConnell">{{cite book |author-first=Steve |author-last=McConnell |author-link=Steve McConnell |title=Code Complete |title-link=Code Complete |edition=2 |date=June 2004 |orig-year=1993 |isbn=978-0-7356-1967-8 |pages=[https://archive.org/details/codecomplete0000mcco/page/168 168-171] }}</ref>
}}

== Bacaan lanjutan ==

* {{Cite book|last=Dennis|first=Alan|last2=Wixom|first2=Barbara Haley|last3=Tegarden|first3=David|date=2005|url=https://www.academia.edu/3724602/System_Analysis_and_Design_with_UML_Version_2_0|title=System Analysis and Design with UML Version 2.0|publisher=WILEY|isbn=0-471-34806-6|url-status=live}}
{{Authority control}}

[[Kategori:Pemrograman berorientasi objek]]


{{komputer-stub}}

Revisi terkini sejak 10 Juli 2024 19.25

Kohesi (ilmu komputer/computer science) merupakan tingkat saling keterkaitan antara komponen-komponen (seperti data member dan member function) yang terdapat pada sebuah kelas (biasa juga disebut modul) dalam suatu pemrograman berorientasi objek (PBO). Sebuah kelas dalam PBO dibuat bertujuan merepresentasikan suatu objek, oleh karena itu semua komponen dalam sebuah kelas seharusnya menggambarkan komponen yang dimiliki oleh objek tersebut. Semakin tinggi keterkaitan antara komponen-komponen dalam sebuah kelas maka akan semakin baik kelas tersebut, semakin tinggi kohesi yang ada maka akan semakin baik.

Kohesi sering dikontraskan dengan sambungan. Kohesi yang tinggi sering kali berkorelasi dengan penggabungan yang longgar, dan sebaliknya.[1] Metrik perangkat lunak untuk penggabungan dan kohesi ditemukan oleh Larry Constantine pada akhir tahun 1960an sebagai bagian dari Desain Terstruktur, berdasarkan dari praktik pemrograman “baik” yang mengurangi biaya pemeliharaan dan modifikasi. Desain Terstruktur, kohesi, dan penggabungan dipublikasikan dalam artikel tersebut Stevens, Myers & Constantine (1974)[2] dan buku Yourdon & Constantine (1979);[3] dua istilah terakhir kemudian menjadi istilah standar dalam rekayasa perangkat lunak.

Jenis-jenis kohesi

[sunting | sunting sumber]

Kohesi berdasarkan kebetulan

[sunting | sunting sumber]

Saat bagian dari satu class dibagi-bagi secara acak dan bagian-bagian tersebut tidak mempunyai hubungan yang penting.

Kohesi berdasarkan logika

[sunting | sunting sumber]

Saat bagian-bagian dari satu class dikelompokkan berdasarkan kategori tertentu karena secara logika bagian tersebut melakukan suatu fungsi/hal yang sama.

Kohesi berdasarkan waktu

[sunting | sunting sumber]

Saat bagian-bagian dari sebuah class dikelompokkan berdasarkan waktu pemrosesan. Bagian-bagian yang diproses dalam waktu bersamaan dikelompokkan dalam satu tempat.

Kohesi berdasarkan cara/urutan

[sunting | sunting sumber]

Saat bagian-bagian dari sebuah class dikelompokkan karena bagian-bagian tersebut pasti dieksekusi secara berurutan. Misal fungsi mengecek izin file selalu dilakukan sebelum membuka file

Kohesi berdasarkan pengelolaan data

[sunting | sunting sumber]

Saat bagian-bagian dari sebuah class dikelompokkan karena mereka mengelola data yang sama

Kohesi berdasarkan sebab akibat/sambungan

[sunting | sunting sumber]

Saat bagian-bagian dari sebuah class dikelompokkan karena output dari satu bagian adalah input dari bagian lainnya.

Kohesi berdasarkan fungsi

[sunting | sunting sumber]

Saat bagian-bagian dari sebuah class dikelompokkan karena mereka semua berperan dalam sebuah tugas dari class

Pranala luar

[sunting | sunting sumber]

Referensi

[sunting | sunting sumber]

Kesalahan pengutipan: Tag <ref> dengan nama "Marsic_2012" yang didefinisikan di <references> tidak digunakan pada teks sebelumnya.

Kesalahan pengutipan: Tag <ref> dengan nama "McConnell" yang didefinisikan di <references> tidak digunakan pada teks sebelumnya.

Bacaan lanjutan

[sunting | sunting sumber]