PENJUMLAHAN dalam BINER Seperti bilangan desimal, bilangan biner juga dijumlahkan dengan cara yang sama. Pertama-tama yang harus dicermati adalah aturan pasangan stelle biner berikut: 1 1 0 - gt menyimpan 1 sebagai catatan bahwa jumlah dua yang terachhir adalah: 1 1 1 - gt dengan menyimpan 1 Dengan hanya menggunakan penjumlahan-penjumlahan, kita dapat melakukan penjumlahan biner Seperti ditunjukkan di bawah ini: 1 1111 8211gt simpanan 1 ingat kembali aturan di atas 01011011 8211gt bilangan biner untuk 91 01001110 8211gt bilangan biner untuk 78 10101001 8211gt Jumlah dari 91 78 169 Kita akan menghitung penjumlahan biner yang terdiri dari 5 bilangan: 11101 bilangan 1) 10110 bilangan 2) 1100 bilangan 3) 11011 bilangan 3) 1001 bilangan 2) 1100 bilangan 3) Veröffentlicht in Algotima C gehören in den vergangenen Jahren in den vergangenen Jahren in den vergangenen Jahren Ltstio. hgt include ltconio. hgt include ltiostream. hgt definieren MAXSTACK 100 typedef int itemType typedef struct int itemMAXSTACK int jml Stack int kosong (Stack s) return (s-gtjml0) int penuh (Stack s) return (s-gtjmlMAXSTACK) void isi (Pos. X, Stack s) if (penuh (s)) printf (8220nMaaf data sudah penuhn8221) sonst s-gtitems-gtjmlx (s-gtjml) void ambil (Stack s, itemType x) if (kosong (s)) printf ( 8220nMaaf-Daten masih kosongn8221) sonst 8211 (s-gtjml) xs-gtitems-gtjml s-gtitems-gtjml0 printf (8220nData i berhasil diambiln8221, x) void tampil (Stapel s) if (kosong (s)) printf (8220nMaaf Daten masih kosongn8221 (8220Data: dn8221, s-gtitemi) void hapus (Stapel s) s-gtjml0 printf (8220nSemua data berhasil dihapusn8221) void main () int pil Stack tumpukan itemType (8220nMENU: n 1. Isin 2. Ambiln 3. Lihatn 4. Hapusn 5. Keluarn8221) printf (8220Masukkan pilihan: 8220) scanf (8220i8221, amppil) Schalter (pil) Fall 1: printf (8220nMasukkan Daten: 8220) scanf (8220i8221, ampdata) isi (Daten, amptumpukan) Pause Fall 2: ambil (amptumpukan, ampdata) Pause Fall 3: Tampil (amptumpukan) Pause Fall 4: Hapus (amptumpukan) Pause, während (Pil5) ada Beberapa Algoritma Sortierung, yaitu: 1.Insertion Salah satu algoritma sortieren yang paling sederhana adalah einfügung sort. Ide idei algoritma ini dapat dianalogikan seperti mengurutkan kartu Penjelasan berikut ini menerangkan bagaimana algoritma Einfügung sort bekerja dalam pengurutan kartu. Anggaplah und ein ingin mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga yang paling besar. Seluruh kartu diletakkan pada meja, sebutlah meja ini sebagai meja pertama, disusun dari kiri ke kanan dan atas ke bawah. Kemudian kita mempunyai meja yang lain, meja kedua, dimana kartu yang diurutkan akan diletakkan. Ambil kartu pertama yang terletak pada pojok kiri atas meja pertama dan letakkan pada meja kedua. Ambil kartu kedua dari meja pertama, bandingkan dengan kartu yang berada pada meja kedua, kemudian letakkan pada urutan yang sesuai setelah perbandingan. Proses tersebut akan berlangsung hingga seluruh kartu pada meja pertama telah diletakkan berurutan pada meja kedua Algoritma Einfügung sortieren pada dasarnya memilah Daten yang akan diurutkan menjadi dua bagian, yang belum diurutkan (meja pertama) dan yang sudah diurutkan (meja kedua). Elemen Pertama Diambil Dari Bagian Array Yang Belum Diurutkan Dan Kemudian Diletakkan Sesuai Posisinya Pada Bagian Lain Dari Array Yang Telah Diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan 2.Selection Sortieren Jika anda diminta untuk membuat algoritma sortieren tersendiri, und ein mungkin akan menemukan sebuah algoritma yang mirip dengan auswahl sort. Layaknya Einfügung sortieren, algoritma ini sangat rapat dan mudah untuk diimplementasikan. Mari kita kembali menelusuri bagaimana algoritma ini berfungsi terhadap satu paket kartu Asumsikan bahwa kartu tersebut akan diurutkan secara aufsteigend Pada awalnya, kartu tersebut akan disusun secara linier pada sebuah meja dari kiri ke kanan, dan dari atas ke bawah. Pilih nilai kartu yang paling rendah, kemudian tukarkan posisi kartu ini dengan kartu yang terletak pada pojok kiri atas meja. Lalu cari kartu dengan nilai paling rendah diantara sisa kartu yang tersedia Tukarkan kartu yang baru saja terpilih dengan kartu pada posisi kedua Ulangi langkahlangkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan dan dapat digerer dengan kartu yang bernilai lebih rendah. Ide utama dari algoritma auswahl sortieren adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 3.Merge sortieren Sebelum mendalami algoritma merge sortieren, mari kita mengetahui garis besar dari konsep teilen und erobern karena merge sortieren mengadaptasi pola tersebut. Pola Divide und Conquer Beberapa algoritma mengimplementasikan konsep rekursi untuk menyelesaikan permasalahan. Permasalahan utama kemudian dipecah menjadi sub-masalah, kemudian solusi dari sub-masalah akan Membrane menuju solusi Permasalahan utama. Pada setiap tingkatan rekursi, pola tersebut terdiri atas 3 langkah. 8211 Divide Memilah masalah menjadi sub masalah 8211 Erobern Selesaikan sub masalah tersebut secara rekursif. Jika sub-masalah tersebut cukup ringkas dan sederhana, pendekatan penyelesaian secara langsung akan lebih efektif 8211 Kombinasi Mengkombinasikan solusi dari sub-masalah, yang akan Membranen menuju penyelesaian atas permasalahan utama 4.Quicksort Quicksort ditemukan oleh C. A.R Hoare. Seperti Pada verschmelzen sortieren, algoritma ini juga berdasar pada pola teilen und erobern. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah langkah sebagai berikut: 1. Divide Memilah rangkaian Daten menjadi dua sub-rangkaian Apq-1 dan Aq1r dimana setiap elemen Apq-1 adalah kurang dari atau sama dengan Aq dan setiap elemen pada Aq1r adalah lebih Besar atau sama dengan elemen pada Aq. Aq erkannt sebagai elemen Pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan 2. Erobern Mengurutkan elemen pada sub-rangkaian secara rekursif Pada algoritma quicksort, langkah kombinasi tidak di lakukan karena telah terjadi pengurutan elemen elemen pada sub-array Algoritma Binär Suche Binär Suche adalah algoritma pencarian yang lebih efisien daripada algorima Sequentielle Suche. Hal ini dikarenakan algoritma ini tidak perlu menjelajahi setiap elemen dari tabel. Kerugiannya adalah algoritma ini hanya bisa digunakan pada tabel yang elemennya sudah terurut baik menaik maupun menurun. Pada intinya, algoritma ini menggunakan prinsip teilen und erobern, dimana sebuah masalah atau tujuan diselesaikan dengan cara mempartisi masalah menjadi bagian yang lebih kecil. Algoritma ini membagi sebuah tabel menjadi dua dan memproses satu bagian dari tabel itu saja. Algoritma ini bekerja dengan cara memilih record dengan indeks tengah dari tabel dan membandingkannya dengan record yang hendak dicari. Jika Rekord tersebut lebih rendah atau lebih tinggi, maka tabel tersebut dibagi dua dan bagian tabel yang bersesuaian akan diproses kembali secara rekursif. Contoh Programm sortieren, binär, sequentiell pada C Ini adalah Programm Sortierung paling lengkap. Include ltiostream. hgt enthalten ltconio. hgt int data100, data2100 int n void tukar (int a, int b) int tt datenbank datab dataa dataa t void exchangesort () für (int i0 iltn-1 i) für (int j (i1) Jltn j) if (data i gt dataj) tukar (i, j) coutltltexchange sortieren selesailtltendl void selectionsort () int pos, i, j für (i0iltn-1i) pos i für (j i1jltnj) if (dataj lt datapos) pos j If (pos i) tukar (pos, i) coutltltselection sort selesailtltendl void insertionsort () int temp, i, j für (i1iltni) temp datai ji -1 während (datajgttemp ampamp jgt0) dataj1 dataj j dataj1 temp coutltltinsertion sortieren selesailtltendl void QuickSort ( Int L, int R) die beste Art ive jemals int i, j int mid i L j R mittlere Daten (LR) 2 do während (datai lt mid) i while (dataj gt mid) j if (L lt j) QuickSort (L, j) if (i lt R) QuickSort (i, R) void Input () coutltltMasukkan jumlah Daten cingtgtn für (int i0iltni) coutltltMasukkan Daten ke-ltlt (i1) ltlt cingtgtdatai data2i datai void AcakLagi () für (int i0iltni ) Datai data2i coutltltData sudah teracakltltendl void main () int pil clrscr () do clrscr () coutltltProgrammsortierung Komplit. Ltltendl coutltltltltendl coutltlt 1. Eingabe Dataltltendl coutltlt 2. Bubble Sortltltendl coutltlt 3. Tausche Sortltltendl coutltlt 4. Auswahl Sortltltendl coutltlt 5. Insertion Sortltltendl coutltlt 6. Quick Sortltltendl coutltlt 7. Tampilkan Dataltltendl coutltlt 8. Acak Dataltltendl coutltlt 9. Exitltltendl coutltlt Pilihan Anda cingtgtpil Schalter () Fall 1: Eingang () Break Case 2: Bubblesort () Break Case 3: Exchangesort () Break Case 4: Selectionort () Break Case 5: Einfügungort () Break Case 6: QuickSort (0, n-1) Coutltltquick sort selesailtltendl break case 7: Tampil () break case 8: AcakLagi () break getch () while (pil9) contoh programmsuche (binary) pada c: int binarysearch (int cari) int l, r, m int n 10 l 0 r n-1 int ketemu 0 while (lltr ampamp ketemu0) m (lr) 2 if (datam cari) ketemu 1 sonst if (cari lt datam) r m-1 sonst l m1 if (ketemu 1) return 1 sonst return 0 Void main () clrscr () int cari, hasil coutltltmasukkan Daten yang ingin dicari cingtgtcari hasil binarysearch (cari) if (hasil 1) coutltltData adaltltendl sonst if (hasil 0) coutltltData Tidak adaltltendl getch () contoh programmsuche (sequentiell) pada c: Include ltiostream. hgt include ltconio. hgt void main () clrscr () int data8 int cari, index int ketemu0 coutltltmasukkan Daten yang ingin dicari cingtgtcari für (int i0ilt8i) if (datai cari) ketemu1 index Ich breche wenn (ketemu 1) coutltltData adaltltendl CoutltltData terletak di index ke ltltindex sonst coutltltData Tidak adaltltendl getch () Penjelasan tentang Zeiger Zeiger Adalah eingebaut Typ di C dan C, dimana C mengambil konsep Zeiger dari C. Zeiger sebenarnya sangat terkait dengan Zusammenfassung C Maschine, yaitu Modell mesin abstrak dimana Programm C bekerja Abstrakt C Maschine Adalah Mesin abstrakt Dimana Mesin Tersebut Memiliki Prosesor untuk menginterpretasikan Stream der Anweisung, dan adressierbare Speicher yang terbagi kedalam 3 bagian. Automatischer Speicher, statischer Speicher als freier Speicher. Adressierbares Gedächtnis adalah Gedächtnis yang konten-nya dapat diambil jika diketahui alamatnya. Lebih jauh lagi, terdapat asumsi bahwa konten memori dapat di ambil dengan waktu konstan, tidak peduli berapa nilai alamat. Hal ini disebut dengan Random Access Memory. Penggunaan Awal Zeiger Jika variabel merupakan isi memori, dan untuk mengakses isi memori tersebut diperlukan Adresse, lalu bagaimana cara kita mengetahui alamat dari suatu variabel. Jawabannya Adalah Untuk kebanyakan kasus kita sama sekali tidak perlu tahu alamat dari sebuah variabel. Untuk mengakses sebuah variabel kita hanya perlu nama dari variabel tersebut. Tugas kompiler lah yang mentranslasikan nama ke alamat mesin yang diperlukan oleh komputer. Akan Tetapi Terdapat Beberapa Kasus Dimana Kita Tidak Mungkin Mitglied Nama Pada Sebuah Entitas Di Programm Kita. Hal ini terjadi terutama saat kita menggunakan Daten struktur dinamis seperti verknüpfte Liste, resizeable Array, Baum dan lain sebagainya. Hal ini karena kita tidak mungkin memberi nama terhadap entitas yang mungkin ada atau tidak ada. Struktur seperti verknüpfte Liste hampir mustahil dibuat tanpa Zeiger tanpa harus mendefinisikan LISP-ähnliche Liste. Inilah awal mula penggunaan Zeiger sebagai Moniker. Istilah Moniker di Sini Berarti Sesuatu Yang Menunjuk Atau Mengacu Kepada Entitas Lain. Istilah Moniker Ini Bukanlah Istilah Standard Dan Lazim. Tetapi sesuatu yang saya pilih impromptu untuk membedakan dengan zeiger atau referenz yang sudah memiliki arti tersendiri. Penggunaan Lain Pointer Sebagai Moniker Adalah Untuk Mengatasi Kelemahan Bahasa C AwAL. Dahulu fungsi fungsi di C hanya mengerti passiert Wert. Zeiger digunakan untuk mengemulasi passieren durch Referenz Karena Zeiger berisi alamat ke objek lain, sehingga fungsi tersebut dapat mengubah objek tersebut dengan memanipulasi Zeiger. Pertanyaanya Siapa yang bertugas menentukan alamat objek yang di tunjuk oleh pointer dalam kasus ini. Jelas bukan kompiler karena objek tersebut tidak bernama. Apakah kita sebagai programmierer menentukannya sendiri. Ternyata tidak Hal tersebut ditentukan oleh fungsi malloc dan sejenisnya (dan juga new di C), atau untuk kasus passing pointer ke dalam fungsi, Operatorverstärker. Jadi dalam hal ini kita tidak juga menentukan alamat sebuah objek. Builtin Array di C dan C Sebelum Membranen Array di C dan di C, Ada Baiknya Kita Membranen Tentang Array. Array Adalah Asosiasi Antara Sebuah Index Dengan Nilai. Jika Diketahui Sebuah Index, Kita Akan Mengetahui Nilainya. Dari definisi ini: 1. Tidak disebutkan bahwa index harus integer, atau tipe tertentu. 2. Tidak disebutkan Bereich dari indexnya dimulai dari nilai tertentu, Bahkan tidak disebutkan bahwa indeks nya memiliki batas bawah maupun batas atas. 3. Tidak disebutkan bahwa nilai harus disimpan secara contigous, bahkan tidak disebutkan bahwa nilainya harus di simpan sama sekali. Akan tetapi: 1. Banyak bahasa pemrograman yang di desain tahun 60-ein hingga tahun 70-ein menentukan bahwa index array adalah integer atau sesuatu yang bisa dikonversi menjadi integer atau sesuatu yang memiliki nilai berurutan seperti integer. 2. Beberapa bahasa menentukan bahwa array dimulai dengan Post navigationBilangan Biner merupakan bilangan yang memiliki radiksbasis 2, dengan notasi. (N) 2 Sistem bilangan biner adalah sebuah sistem penulisan angka dengan menggunakan dua simbol yaitu 0 dan 1. Untuk simbol angka 0 (nol) maka berarti False dan untuk simbol angka 1 (satu) maka berarti True. Ternyata Sistem bilangan biner modern ini ditemukan oleh Gottfried Wilhelm Leibniz pada abad ke-17. Dan Sistem bilangan ini merupakan dasar dari semua sistem bilangan berbasis digital Berikut tabel yang berupa contoh nilai bilangan desimal yang dinyatakan sebagai bilangan biner. Desimal Biner (8 Bit) 0 0000 0000 1 0000 0001 2 0000 0010 3 0000 0011 4 0000 0100 5 0000 0101 6 0000 0110 7 0000 0111 8 0000 1000 9 0000 1001 10 0000 1010 11 0000 1011 12 0000 1100 13 0000 1101 14 0000 1110 15 0000 1111 16 0001 0000 Catatan: 2 0 1, 2 1 2, 2 2 4, 2 3 8, 2 4 16, 2 5 32, 2 6 64 dst Pembahasan sistem bilangan biner tuh gak hanya sampai di catatan terakhir diatas Tapii82308230 bilangan biner bisa mengalami konversi kebentuk bilangan oktal, bilangan desimal, dan bilangan heksadesimal. Nah, berikut merupakan pembahasan untuk pengkonversian bilangan biner ke bilangan lainnya. KONVERSI DARI BINER KE OKTAL Kalo8217 bilangan biner itu radiksbasis nya 2, nah8230 sekarang akan dibahas konversi dari bilangan biner ke bilangan oktal yang memiliki radiksbasis 8 (Notasi (n) 8 dengan bilangan 0, 1, 2, 3, 4, 5, 6 , Dan 7). Misal: Ubahlah bilangan biner 11110011001 kedalam bilangan oktal 011 110 011 001 3 6 3 1 Jadi hasil konversi bilangan biner 11110011001 adalah 3631. Cara8230nya8230. A8230da8230lah82308230 (tu-wa-ga-pat): Karena biner nya 11 digit dan konversinya ke bilangan oktal, maka harus dikelompokkan masing-masing 3 stellig, nah ternyata hasil pengelompokkan mengalami kekurangan stelle jadii82308230 stellige yang paling kiri ditambahkan stelle 0 (nol) dan Setelah dikelompokkan menjadi 3 digit, lalu perhitungannya dilakukan pro kelompok dan memulai perhitungan pro kelompoknya tetap dimulia dari lajur yang paling kanan ke kiri. Sehingga hasil konversinya adalah 11110011001 2 3631 8 KONVERSI BINER KE HEXADESIMAL Metode konversinya hampir sama dengan Biner ke Oktal. Namun pengelompokkannya sejumlah 4 bit Empat kelompok bit paling kanan adalah posisi satuan, empat bit kedua dari kanan adalah puluhan, dan seterusnya. Contohnya: 11100011 2 82308230 16 Solusi: kelompok bit paling kanan: 0011 3 kelompok bit berikutnya: 1110 E Hasil konversinya adalah: E3 16. KONVERSI DARI BINER KE DESIMAL Misal: 0000 0101 2 (merupakan biner 8 digit) 82308230 10 Cara menghitung: Langkah 1: Let8217s zu wissen, bahwa perhitungan untuk bilangan biner, harus dimulai dari lajur paling kanan ke kiri, nah perhitungannya seperti yang diuraikan dibawah ini nih8230 0 0 0 0 0 1 0 1 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Langkah 2: Yang angka biner 0 tidak dilakukan perhitungan sedangkan angka biner 1 dihitung, jadinya: (02152 7) (02152 5) (02152 5) (02152 3) (12152 2) (02152 1) (12152) 0) 0 0 0 0 0 4 0 1 5 10 Jadi bilangan biner dengan nilai 0000 0101 2 jika dikonversikan ke bilangan desimal maka nilai nya menjadi 5 10. Jika bilangan biner nya 4 stellig, maka konversi ke desimalnya juga menggunakan cara yang sama dengan bilangan biner 8 stellig, yaitu menghitungnya dimulai dari lajur yang paling kanan ke kiri. Mudah kan8230 Seperti pada bilangan desimal, dalam bilangan biner dapat dilakukan operasi aritmatika seperti penjumlahan, pengurangan, perkalian dan pembagian. Penjumlahan bilangan biner serupa dengan penjumlahan pada bilangan desimal. Dua bilangan yang akan dijumlahkan disusun secara vertikal als digit-digit yang mempunyai signifikansi sama di tempatkan pada kolom yang sama. Digit-digit ini kemudian dijumlahkan dan jika jumlahnya lebih besar dari 1, maka ada bilangan yang disimpan, selanjutnya bilangan yang disimpan tersebut dijumlahkan dengan bilangan di sebelah kirinya. Aturan dasar untuk penjumlahan pada bilangan biner adalah seperti berikut: 0 0 0 0 1 1 1 0 1 1 1 0, simpan 1 Sebagai contoh akan dijumlah dua bilangan biner 0101 2 0011 2 hasilnya 1000 2 Terkadang hasil penjumlahan bilangan lebih besar dari 2 jika hal Tersebut terjadi, maka bilangan dapat disimpan lebih dari satu tempat, misalnya 1 1 1 1 0 yang disimpan 10. Contoh soal 0001 2 0011 2 0101 2 0111 2 hasilnya 10000 2 Pada kolom ke 3, bilangan yang disimpan ada dua bilangan yang berasal dari hasil Penjumlahan pada kolom ke 5 yang nilai penjumlahannya adalah (100) dan kolom ke 4 yang nilai penjumlahannya adalah (10). Sedangkan bilangan yang disimpan pada kolom 1 dan 2 merupakan bilangan hasil dari penjumlahan pada kolom 3 yang nilai penjumlahannya adalah (100). Metode yang digunakan dalam pengurangan bilangan biner juga sama dengan metode yang digunakan untuk pengurangan pada bilangan desimal. Dalam metode ini, jika diperlukan sebuah angka diperbolehkan meminjam 1 dari kolom yang mempunyai derajat lebih tinggi atau yang biasanya berada di sebelah kiri. Aturan dasar untuk pengurangan bilangan biner adalah sebagai berikut: 0 8211 0 0 1 8211 0 1 1 8211 1 0 0 8211 1 1, pinjam 1 Sebagai contoh terdapat dua bilangan biner x dan y bilangan x 0101 2. Bilangan y 0011 2 Jika dilakukan operasi pengurangan maka 0101 2 8211 0011 2 hasilnya 0010 2. Berikut penjelasannya: - Pengurangan pada Ziffer ke 4 dari x 8211 y adalah 1 8211 1 hasilnya 0. - Pengurangan pada Ziffer ke 3 dari x 8211 y adalah 0 8211 1 hasilnya 1, setelah angka 0 dari bilangan x meminjam angka 1 dari digit ke 2 Dari bilangan x, sehingga digit ke 2 bilangan x berubah menjadi 0. - Pengurangan pada Ziffer ke 2 dari x 8211 y adalah 0 8211 0 hasilnya 0 - Pengurangan pada Ziffer ke 1 dari x 8211 y adalah 0 8211 0 hasilnya 0 Metode yang digunakan dalam Perkalian biner juga pada dasarnya sama dengan perkalian desimal, akan terjadi pergeseran ke kanan setiap dikalikan 1 bit pengali. Setela proses perkalian masing-masing bit pengali selesai, dilakukan penjumlahan masing-masing kolom bit hasil. Contoh: Serupa dengan perkalian, pembagian pada bilangan biner juga menggunakan metode yang sama dengan pembagian desimal. Bit-Bit Yang Dibagi Diambil Bit pro Bit Dari Sebelah Kiri. Apabila nilainya lebih dari bit pembagi, maka bagilah bit-bit tersebut, tetapi jika setelah bergeser 1 bit nilainya masih dibawah nilai pembagi maka hasilnya adalah 0. Contoh:
Comments
Post a Comment