<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="id">
	<id>https://wiki.unissula.ac.id/index.php?action=history&amp;feed=atom&amp;title=Komplemen_dua</id>
	<title>Komplemen dua - Riwayat revisi</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.unissula.ac.id/index.php?action=history&amp;feed=atom&amp;title=Komplemen_dua"/>
	<link rel="alternate" type="text/html" href="https://wiki.unissula.ac.id/index.php?title=Komplemen_dua&amp;action=history"/>
	<updated>2026-09-15T20:33:53Z</updated>
	<subtitle>Riwayat revisi halaman ini di wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.unissula.ac.id/index.php?title=Komplemen_dua&amp;diff=10535&amp;oldid=prev</id>
		<title>Maintenance script: Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi</title>
		<link rel="alternate" type="text/html" href="https://wiki.unissula.ac.id/index.php?title=Komplemen_dua&amp;diff=10535&amp;oldid=prev"/>
		<updated>2026-08-25T13:57:27Z</updated>

		<summary type="html">&lt;p&gt;Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi&lt;/p&gt;
&lt;a href=&quot;https://wiki.unissula.ac.id/index.php?title=Komplemen_dua&amp;amp;diff=10535&amp;amp;oldid=10135&quot;&gt;Lihat perubahan&lt;/a&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://wiki.unissula.ac.id/index.php?title=Komplemen_dua&amp;diff=10135&amp;oldid=prev</id>
		<title>Maintenance script: Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 29209403; atribusi sumber disertakan.</title>
		<link rel="alternate" type="text/html" href="https://wiki.unissula.ac.id/index.php?title=Komplemen_dua&amp;diff=10135&amp;oldid=prev"/>
		<updated>2026-08-25T13:18:12Z</updated>

		<summary type="html">&lt;p&gt;Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 29209403; atribusi sumber disertakan.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Halaman baru&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Komplemen dua&amp;#039;&amp;#039;&amp;#039; adalah metode paling umum untuk merepresentasikan [[bilangan biner bertanda|bilangan bertanda]] (positif, negatif, dan nol) [[Integer (ilmu komputer)|bilangan bulat]] pada komputer, dan secara lebih umum, nilai [[Aritmetika titik tetap|biner titik tetap]]. Seperti pada sistem [[Komplemen satu]] dan [[bilangan biner bertanda|Tanda-magnitudo]], komplemen dua menggunakan [[Bit paling signifikan]] sebagai &amp;#039;&amp;#039;tanda&amp;#039;&amp;#039; untuk menunjukkan bilangan positif (0) atau negatif (1), dan bilangan tak-negatif diberikan representasi tak bertanda (6 adalah 0110, nol adalah 0000); tetapi, dalam komplemen dua, bilangan negatif direpresentasikan dengan mengambil [[Komplemen bit]] dari magnitudonya lalu menambahkan satu (−6 adalah 1010). Jumlah bit dalam representasi dapat ditingkatkan dengan menambahkan semua bit tinggi tambahan dari bilangan negatif atau positif dengan 1 atau 0 masing-masing, atau dikurangi dengan menghapus 1 atau 0 terdepan tambahan.&lt;br /&gt;
&lt;br /&gt;
Berbeda dengan skema [[Komplemen satu]], skema komplemen dua hanya memiliki satu representasi untuk nol, dengan ruang untuk satu bilangan negatif tambahan (rentang bilangan 4-bit adalah −8 hingga +7). Selain itu, implementasi aritmetika yang sama dapat digunakan pada bilangan bulat bertanda maupun tak bertanda, dan hanya berbeda dalam situasi [[Luapan bilangan bulat]], karena jumlah representasi bilangan positif dan negatifnya adalah 0 (dengan bit carry diset).&lt;br /&gt;
&lt;br /&gt;
== Prosedur ==&lt;br /&gt;
Berikut prosedur untuk memperoleh representasi komplemen dua dari suatu bilangan &amp;#039;&amp;#039;negatif&amp;#039;&amp;#039; dalam digit biner:&lt;br /&gt;
&lt;br /&gt;
* Langkah 1: mulai dengan representasi biner absolut dari bilangan, dengan bit awal sebagai bit tanda;&lt;br /&gt;
* Langkah 2: balikkan (atau ubah) semua bit – setiap 0 menjadi 1, dan setiap 1 menjadi 0;&lt;br /&gt;
* Langkah 3: tambahkan 1 ke seluruh bilangan yang sudah dibalik, abaikan [[Integer overflow|luapan]]. Memperhitungkan luapan akan menghasilkan nilai yang salah.&lt;br /&gt;
&lt;br /&gt;
Sebagai contoh, untuk menghitung bilangan &amp;#039;&amp;#039;&amp;#039;−6&amp;#039;&amp;#039;&amp;#039; dalam biner dari bilangan &amp;#039;&amp;#039;&amp;#039;6&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* Langkah 1: &amp;#039;&amp;#039;+6&amp;#039;&amp;#039; dalam desimal adalah &amp;#039;&amp;#039;0110&amp;#039;&amp;#039; dalam biner; bit signifikan paling kiri (0 pertama) adalah [[Tanda (matematika)|tanda]] (hanya 110 dalam biner akan menjadi −2 dalam desimal).&lt;br /&gt;
* Langkah 2: balik semua bit dalam &amp;#039;&amp;#039;0110&amp;#039;&amp;#039;, menghasilkan &amp;#039;&amp;#039;1001&amp;#039;&amp;#039;.&lt;br /&gt;
* Langkah 3: tambahkan nilai tempat 1 ke bilangan yang dibalik &amp;#039;&amp;#039;1001&amp;#039;&amp;#039;, menghasilkan &amp;#039;&amp;#039;1010&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Untuk memverifikasi bahwa &amp;#039;&amp;#039;1010&amp;#039;&amp;#039; memang bernilai &amp;#039;&amp;#039;−6&amp;#039;&amp;#039;, jumlahkan nilai tempatnya, tetapi &amp;#039;&amp;#039;kurangi&amp;#039;&amp;#039; nilai tanda dari perhitungan akhir. Karena nilai paling signifikan adalah nilai tanda, maka harus dikurangkan untuk menghasilkan hasil yang benar: &amp;#039;&amp;#039;&amp;#039;1010&amp;#039;&amp;#039;&amp;#039; = &amp;#039;&amp;#039;&amp;#039;−&amp;#039;&amp;#039;&amp;#039;(&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;×2&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;) + (&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;×2&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) + (&amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;×2&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;) + (&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;×2&amp;lt;sup&amp;gt;0&amp;lt;/sup&amp;gt;) = &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;×−8 + &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; + &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039;×2 + &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; = −6.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Perhatikan bahwa langkah 2 dan 3 bersama-sama merupakan metode yang valid untuk menghitung [[Invers aditif]] &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; dari bilangan bulat (positif atau negatif) &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; di mana input dan output keduanya dalam format komplemen dua. Alternatif untuk menghitung &amp;lt;math&amp;gt;-n&amp;lt;/math&amp;gt; adalah menggunakan pengurangan &amp;lt;math&amp;gt;0-n&amp;lt;/math&amp;gt;. Lihat di bawah untuk pengurangan bilangan bulat dalam format komplemen dua.&lt;br /&gt;
&lt;br /&gt;
== Teori ==&lt;br /&gt;
&lt;br /&gt;
Komplemen dua adalah contoh dari [[Metode komplemen|komplemen basis]]. “Dua” dalam namanya mengacu pada bilangan  – &amp;quot;dua pangkat N&amp;quot;, yang merupakan nilai acuan terhadap mana komplemen dihitung dalam sistem -bit (satu-satunya kasus di mana tepat menghasilkan “dua” adalah , untuk sistem 1-bit, tetapi ini tidak memiliki kapasitas untuk tanda dan nol). Dengan demikian, definisi tepat dari &amp;#039;&amp;#039;komplemen dua&amp;#039;&amp;#039; dari bilangan -bit adalah [[Metode komplemen|komplemen]] bilangan itu terhadap .&lt;br /&gt;
&lt;br /&gt;
Sifat utama dari “komplemen terhadap ” adalah bahwa penjumlahan bilangan ini dengan bilangan asalnya menghasilkan . Misalnya, menggunakan biner hingga tiga bit ( dan , di mana &amp;#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&amp;#039; menunjukkan representasi biner), komplemen dua dari bilangan 3 () adalah 5 (), karena jika dijumlahkan dengan bilangan asalnya memberikan . Ketika korespondensi ini digunakan untuk merepresentasikan bilangan negatif, hal ini berarti bahwa ruang bilangan 0 sampai 7 dibagi dua: empat bilangan pertama (0–3) tetap sama, sementara empat sisanya mewakili bilangan negatif, dengan urutan yang sama, sehingga 4 mewakili −4, 5 mewakili −3, 6 mewakili −2, dan 7 mewakili −1. Representasi biner juga memiliki kegunaan tambahan, karena bit paling signifikan menunjukkan kelompok (dan tanda): 0 untuk kelompok bilangan tak-negatif pertama, dan 1 untuk kelompok negatif kedua. Tabel di bawah menunjukkan sifat ini.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Perhitungan komplemen dua biner dari bilangan positif pada dasarnya berarti mengurangkan bilangan itu dari . Namun, seperti pada contoh tiga-bit dan empat-bit  (), bilangan  sendiri tidak dapat direpresentasikan dalam sistem terbatas  bit, karena berada tepat di luar ruang  bit (bilangan ini tetap menjadi titik acuan dari &amp;quot;komplemen dua&amp;quot; dalam sistem -bit). Karena itu, sistem -bit harus memecah pengurangan menjadi dua operasi: pertama kurangi dari bilangan maksimum dalam sistem -bit, yaitu  (bilangan ini dalam biner merupakan bilangan sederhana yang terdiri dari &amp;#039;semua 1&amp;#039;, dan pengurangan dari bilangan tersebut dapat dilakukan hanya dengan membalik semua bit, yang juga dikenal sebagai [[Operasi bitwise|operasi bitwise NOT]]), lalu tambahkan satu. Kebetulan, bilangan antara sebelum penambahan satu ini juga digunakan dalam ilmu komputer sebagai metode lain dari representasi bilangan bertanda dan disebut [[Komplemen satu]] (disebut demikian karena penjumlahan bilangan seperti itu dengan bilangan asal menghasilkan &amp;#039;semua 1&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Dibandingkan dengan sistem lain untuk merepresentasikan bilangan bertanda (misalnya [[Komplemen satu]]), komplemen dua memiliki keunggulan karena operasi aritmetika dasar [[Penjumlahan]], [[Pengurangan]], dan [[Perkalian]] identik dengan bilangan biner tak bertanda (selama input diwakili dalam jumlah bit yang sama dengan output, dan setiap [[Luapan bilangan bulat|luapan]] di luar bit tersebut dibuang dari hasilnya). Sifat ini membuat sistem lebih mudah diimplementasikan, terutama untuk aritmetika presisi tinggi. Selain itu, tidak seperti sistem komplemen satu, komplemen dua tidak memiliki representasi untuk [[Nol bertanda|nol negatif]], sehingga bebas dari kesulitan yang terkait dengannya. Jika tidak, kedua skema memiliki sifat yang diinginkan bahwa tanda bilangan bulat dapat dibalik dengan mengambil komplemen dari representasi binernya, tetapi komplemen dua memiliki satu pengecualian – bilangan negatif terkecil, seperti terlihat pada tabel.&lt;br /&gt;
&lt;br /&gt;
== Sejarah ==&lt;br /&gt;
[[Metode komplemen]] telah lama digunakan untuk melakukan pengurangan dalam [[mesin hitung]] dan [[kalkulator mekanik]] desimal. [[John von Neumann]] menyarankan penggunaan representasi biner komplemen dua dalam proposal tahun 1945-nya &amp;#039;&amp;#039;[[First Draft of a Report on the EDVAC]]&amp;#039;&amp;#039; untuk komputer digital berbasis program tersimpan. [[EDSAC]] tahun 1949, yang terinspirasi dari &amp;#039;&amp;#039;First Draft&amp;#039;&amp;#039; tersebut, menggunakan representasi komplemen dua untuk bilangan bulat biner negatif.&lt;br /&gt;
&lt;br /&gt;
Banyak komputer awal, termasuk [[CDC 6600]], [[LINC]], [[PDP-1]], dan [[UNIVAC 1107]], menggunakan notasi [[Komplemen satu]]; turunan dari UNIVAC 1107, yaitu [[Seri UNIVAC 1100/2200]], terus menggunakannya. Mesin ilmiah [[Seri IBM 700/7000]] menggunakan notasi tanda-magnitudo, kecuali untuk register indeks yang menggunakan komplemen dua. Komputer komersial awal yang menyimpan nilai negatif dalam bentuk komplemen dua termasuk [[English Electric DEUCE]] (1955) dan [[Digital Equipment Corporation]] [[PDP-5]] (1963) serta [[PDP-6]] (1964). [[IBM System/360|System/360]], yang diperkenalkan pada 1964 oleh [[IBM]], kemudian menjadi representasi biner paling luas digunakan dalam industri komputer. [[PDP-8]] yang diperkenalkan pada 1965, menggunakan aritmetika komplemen dua, demikian juga [[Data General Nova]] tahun 1969, [[PDP-11]] tahun 1970, dan hampir semua [[komputer mini]] serta [[mikrokomputer]] sesudahnya.&lt;br /&gt;
&lt;br /&gt;
== Lihat pula ==&lt;br /&gt;
* [[Komplemen satu]], konvensi bilangan biner alternatif&lt;br /&gt;
* [[Algoritma pembagian]], termasuk pembagian pemulihan dan tanpa pemulihan dalam representasi komplemen dua&lt;br /&gt;
* [[Offset binary]]&lt;br /&gt;
* [[Bilangan p-adik|Bilangan &amp;#039;&amp;#039;p&amp;#039;&amp;#039;-adik]]&lt;br /&gt;
* [[Metode komplemen]], generalisasi ke basis bilangan lain, digunakan pada kalkulator mekanik&lt;br /&gt;
&lt;br /&gt;
== Referensi ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bacaan lanjutan ==&lt;br /&gt;
* [https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html Penjelasan Komplemen Dua] (Thomas Finley, 2000)&lt;br /&gt;
*&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Pranala luar ==&lt;br /&gt;
* [http://www.ecs.umass.edu/ece/koren/arith/simulator/ArrMlt/ Simulator pengali array komplemen dua berbasis JavaScript]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sumber dan atribusi ==&lt;br /&gt;
&lt;br /&gt;
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Komplemen+dua&amp;amp;oldid=29209403 Wikipedia bahasa Indonesia], revisi 29209403 (2026-05-10T05:38:37Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>