Metode Branch and Bound
Metode Branch and Bound adalah sebuah teknik algoritma yang secara khusus mempelajari bagaimana caranya memperkecil Search Tree menjadi sekecil mungkin.
Metode Branch and Bound
Metode Branch and Bound adalah sebuah teknik algoritma yang secara khusus mempelajari bagaimana caranya memperkecil Search Tree menjadi sekecil mungkin.
Implementasi Algoritma Divide and Conquer
Nama : Fikih Yuhada Sena
NPM : 20312060
Kelas : IF 20B
Algoritma Divide and Conquer adalah algoritma yang sangat populer pada di dunia ilmu komputer. Algoritma Divide and Conquer adalah algoritma yang memiliki prinsip untuk membagi-bagi permasalahan yang terlalu besar menjadi beberapa atau sub-masalah yang lebih kecil sehingga menjadi mudah untuk diselesaikan. sub-sub masalah yang telah dibagi menjadi beberapa bagian yang lebih kecil kemudian akan dicari solusinya, setelah mendapatkan solusinya, solusi dari sub-sub masalah tersebut akan digabung menjadi satu untuk menyelesaikan masalah awal atau masalah utama.
Algoritma Sorting atau algoritma pengurutan adalah suatu langkah yang sistematis dan berurutan. atau algoritma untuk meletakkan kumpulan data ke dalam suatu urutan tertentu berdasarkan satu atau beberapa "kunci" pada tiap-tiap elemen.
Algoritma Searching atau algoritma pencarian adalah algoritma yang menerima suatu argumen "kunci" dan dengan menggunakan suatu langkah-langkah tertentu akan mencari "kunci" tersebut. Setelah proses pencarian dilakukan, akan diperoleh salah satu dari dua kemungkinan, yaitu data berhasil ditemukan, atau data tidak ditemukan.
Divide and Conquer Pada Sorting
1. Selection Sort
Selection Sort adalah sebuah teknik pengurutan dengan cara mencari nilai tertinggi / terendah pada suatu kumpulan data (array) kemudian menempatkan nilai tersebut pada tempatnya. Algoritma ini dibagi menjadi dua berdasarkan urutan datanya, yaitu : dari kecil ke besar (Ascending), dan dari besar ke kecil (Descending). Algoritma ini pada dasarnya memilih nilai yang terbesar/terkecil, dan menukarkan nilai tersebut dengan nilai disebelah kiri/kanan pada data. Dan kemudian langkah tersebut diulang secara terus menerus hingga data tersusun. Algoritma ini tidak efektif bila digunakan pada array yang jumlah nya besar karena kompleksitas dari algoritma ini adalah O(x2) dimana n adalah jumlah item.
2. Insertion Sort
Algoritma Insertion Sort adalah sebuah teknik pengurutan dengan cara membandingkan dan mengurutkan dua data pertama pada suatu kumpulan data (array). Algoritma ini pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, data yang belum diurutkan, dan data yang sudah diurutkan. Elemen data pertama diambil dari bagian data yang belum diurutkan dan diletakkan pada posisinya di bagian data yang telah diurutkan. Algoritma ini dapat mengurutkan data secara ascending dan descending. Algoritma ini tidak efektif bila digunakan pada array dengan jumlah besar, karena kompleksitas algoritma ini adalah O() dimana n adalah jumlah item.
3. Quick Sort
Algoritma Quick Sort adalah salah satu algoritma pengurutan data, algoritma ini menggunakan teknik pemecahan data menjadi beberapa bagian atau partisi, sehingga algoritma ini disebut juga dengan nama partition exchange sort.
Algoritma ini mengambil salah satu elemen pada suatu data secara acak (tengah) yang disebut dengan pivot lalu menyimpan semua elemen yang lebih kecil disebelah kiri pivot dan elemen yang lebih besar pada sebelah kanan pivot. Langkah tersebut dilakukan secara berulang sampai semua elemen menjadi terurut.
Divide and Conquer Pada Searching
1. Binary Search
Algoritma Binary Search atau algoritma pencarian Biner, salah satu teknik pencarian yang dilakukan secara berulang kali membagi setengah dari jumlah data yang dicari sehingga dapat memperkecil lokasi pencarian. Dengan begitu dapat mempercepat waktu pencarian. Jika ditemukan kecocokan pada suatu data dengan data yang dicari maka pencarian akan selesai, jika tidak, pencarian akan terus dilakukan hingga akhir dari bagian data tersebut. Algoritma ini cocok untuk mencari pada jumlah data yang banyak, karena kompleksitas algoritma ini adalah O(log n) dimana n adalah jumlah item. Tetapi sebelum menggunakan algoritma ini, pastikan data sudah terurut. Jika tidak maka pencarian tidak bisa dilakukan.
2. Linear Search
Algoritma Linear Search atau pencarian linear, adalah salah satu teknik dari pencarian data, teknik ini mencari data dengan mengecek semua data secara satu per satu. Apabila ditemukan kecocokan pada data dengan data yang dicari, maka pencarian akan selesai. Jika tidak, pencarian akan terus dilakukan hingga data terakhir. Algoritma ini tidak efektif jika digunakan pada data yang besar karena kompleksitas algoritma ini adalah O(n) dimana n adalah jumlah item. Dan jika data yang dicari berada pada bagian paling akhir dari kumpulan data tersebut (array), maka pencarian tetap harus dilakukan dari yang paling awal, sehingga membutuhkan waktu yang lama.
ALGORITMA DIVIDE AND CONQUER
Pengertian
Algoritma Divide dan Conquer merupakan hasil gabungan dari kata Divide dan Conquer. Conquer ini berarti membagi persoalan menjadi beberapa masalah yang memiliki kemiripan dengan persoalan semula namun berbeda kecil. Sedangkan Conquer merupakan penyelesaian setiap masalah yang ada. Pengertian dari Algoritma Divide and Conquer adalah strategi pemecahan masalah yang besar dengan cara melakukan pembagian masalah yang besar menjadi beberapa bagian yang lebih kecil secara rekrusif sehingga masalah tersebut dapat terpecahkan langsung.
Sejarah
Nama Divide and Conquer sendiri diambil dari siasat militer milik Belanda pada zaman penjajahan dengan nama divide ut imperes. Strategi ini merupakan strategi yang fundamental dalam ilmu komputer dengan sebutan Divide and Conquer. Algoritma ini ditemukan ilmuwan Rusian bernama Anatolii Alexeevich Karatsuba pada tahun 1960.
Cara Kerja
Ada 3 cara tahap kerja pada algoritma ini, yaitu :
Divide : Membagi masalah menjadi beberapa upa-masalah yang memilki kemiripan dengan masalah semula namun berukuran lebih kecil.
Conquer : Memecahkan masing - masing upa-masalah secara rekrusif.
Conbine : Menggabungkan solusi masing - masing upa-masalah sehingga membentuk masalah semula.
Source :
https://creatormedia.my.id/rangkuman-algoritma-divide-and-conquer/
https://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2020-2021/Algoritma-Divide-and-Conquer-(2021)-Bagian1.pdf
https://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2014-2015/Makalah2015/Makalah_IF221_Strategi_Algoritma_2015_078.pdf#:~:text=Pada%20zaman%20dahulu%2C%20divide%20and%20conquer%20merupakan%20strategi,untuk%20mengalikan%20dua%20buah%20bilangan%20bulat%20yang%20besar.
Tentang Pembuat :
Nama : Fikih Yuhada Sena
NPM : 20312060
Permasalahan :
Urutkan 5,2,1,7,9,4,3 dari kecil ke besar
Penyelesaian :
Menggunakan metode bubble sort
5,2,1,7,9,4,3 Tukar
2,5,1,7,9,4,3 Tukar
2,1,5,7,9,4,3 Tidak ditukar karena 5 lebih kecil dari 7
2,1,5,7,9,4,3 Tidak ditukar karena 7 lebih kecil dari 9
2,1,5,7,4,9,3 Tukar
2,1,5,7,4,3,9 Tukar, setalah seperti ini maka program akan mengulang
1,2,5,7,4,3,9 Tukar
1,2,5,7,4,3,9 Tidak ditukar karena 2 lebih kecil dari 5
1,2,5,4,7,3,9 Tukar
1,2,5,4,3,7,9 Tukar, lalu diulang kembali
1,2,5,4,3,7,9 Tidak ditukar karena urutanya sudah sesuai
1,2,5,4,3,7,9 Tidak ditukar karena 2 lebih kecil dari 5
1,2,4,5,3,7,9 Tukar
1,2,4,3,5,7,9 Tukar
1,2,4,3,5,7,9 Tidak ditukar karena 5 lebih kecil dari 7
1,2,4,3,5,7,9 Tidak ditukar karena sudah sesuai urutan,selanjutnya diulang lagi
1,2,4,3,5,7,9 Tidak ditukar karena 1,2 sudah sesuai urutanya
1,2,4,3,5,7,9 Tidak ditukar karena 2 lebih kecil dari 4
1,2,3,4,5,7,9 Tukar
Maka terbentuk hasil dari bubble sort 1,2,3,4,5,7,9
Kelebihan dan kekurangan :
Merupakan metode yang paling simpel dan metode pengurutan yang paling tidak efisien. Pada saat pengurutan data yang sangat besar akan mengalami kelambatan yang luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan.
Nama : Fikih yuhada sena
Kelas : IF 20B
Fakultas : FTIK
Assalamualaikum Wr. Wb saya disini ini menjelaskan materi tentang Perbedaan Proses dan Thread | The Difference between a Process and a Threads .sebagai berikut :
1. Pengertian SIMD
SIMD adalah kelas komputer paralel dalam taksonomi Flynn. Klarifikasi diperlukan Ini menjelaskan komputer dengan beberapa elemen pemrosesan yang melakukan operasi yang sama pada beberapa titik data secara bersamaan. Mesin semacam itu mengeksploitasi paralelisme tingkat data , tetapi bukan konkurensi : ada komputasi simultan (paralel), tetapi hanya satu proses (instruksi) pada saat tertentu. SIMD khususnya dapat diterapkan untuk tugas-tugas umum seperti mengatur kontras dalam gambar digital atau mengatur volume audio digital . Paling modernDesain CPU menyertakan instruksi SIMD untuk meningkatkan kinerja penggunaan multimedia . SIMD tidak sama dengan SIMT , yang menggunakan utas .
2. Keuntungan SIMD
Aplikasi yang dapat memanfaatkan SIMD adalah aplikasi di mana nilai yang sama ditambahkan ke (atau dikurangi dari) sejumlah besar titik data, operasi umum pada banyak aplikasi multimedia . Salah satu contohnya adalah mengubah kecerahan gambar. Setiap piksel gambar terdiri dari tiga nilai kecerahan bagian warna merah (R), hijau (G), dan biru (B). Untuk mengubah kecerahan, nilai R, G dan B dibaca dari memori, nilai ditambahkan ke (atau dikurangkan dari) nilai tersebut, dan nilai yang dihasilkan ditulis kembali ke memori.
Dengan prosesor SIMD ada dua peningkatan pada proses ini. Untuk satu data dipahami sebagai blok, dan sejumlah nilai dapat dimuat sekaligus. Alih-alih serangkaian instruksi yang mengatakan "ambil piksel ini, sekarang ambil piksel berikutnya", prosesor SIMD akan memiliki instruksi tunggal yang secara efektif mengatakan "ambil n piksel" (di mana n adalah angka yang bervariasi dari desain ke desain). Untuk berbagai alasan, ini bisa memakan waktu lebih sedikit daripada mengambil setiap piksel satu per satu, seperti pada desain CPU tradisional.
Keuntungan lainnya adalah bahwa instruksi beroperasi pada semua data yang dimuat dalam satu operasi. Dengan kata lain, jika sistem SIMD bekerja dengan memuat delapan titik data sekaligus, add
operasi yang diterapkan ke data tersebut akan terjadi pada kedelapan nilai pada saat yang bersamaan. Paralelisme ini terpisah dari paralelisme yang disediakan oleh prosesor superscalar ; delapan nilai diproses secara paralel bahkan pada prosesor non-superskalar, dan prosesor superskalar mungkin dapat melakukan beberapa operasi SIMD secara paralel.
3. Kekurangan SIMD
Untuk memperbaiki masalah 1 dan 5, ekstensi vektor RISC-V dan ARM's Scalable Vector Extension menggunakan pendekatan alternatif: alih-alih memaparkan detail tingkat sub-register kepada programmer, set instruksi mengabstraksikannya sebagai beberapa "register vektor "yang menggunakan antarmuka yang sama di semua CPU dengan set instruksi ini. Perangkat keras menangani semua masalah penyelarasan dan "strip-mining" loop. Mesin dengan ukuran vektor berbeda akan dapat menjalankan kode yang sama. [6] LLVM menyebut jenis vektor ini "vscale".
A. RAM
RAM adalah singkatan dari Random Access Memory. Sebuah bagian dari sistem komputer yang sangat penting. Tidak hanya pada komputer PC maupun notebook saja yang membutuhkan RAM, PDA dan banyak perangkat elektronik lain pun ikut membutuhkan bagian ini.
Dan untuk setiap peralatan memiliki tingkat kebutuhan yang berbeda-beda. Misalkan saja sebuah komputer yang masih menggunakan operating system lama contohnya Windows 98, maka RAM yang dibutuhkan tidak akan sebesar komputer yang menggunakan Windows XP sebagai operating system-nya.
Selain operating system, aplikasi yang dijalankan pun sangat bergantung kepada RAM. Semakin berat aplikasi yang akan dijalankan, maka bobot RAM akan semakin besar. Karena pada RAM-lah untuk sementara aplikasi atau data yang tengah Anda akses tersimpan.
Sedangkan untuk membeli sebuah RAM, bukan bobot saja yang akan menjadi pertimbangan utama. Tapi juga ada aspek lain yang tidak kalah pentingnya harus ikut dipikirkan. Seperti kecepatan, tipe, jenis soket, dan motherboard yang digunakan.
Karena saat ini, selain setiap aplikasi memiliki kebutuhan sistem yang berbeda-beda, kehadiran RAM pun sudah sangat beragam. Sedangkan harganya semakin hari semakin terjangkau. Teknologi yang ada pada RAM pun terus berkembang. Mulai ditemukannya DDR, sistem dual-channel,DDR2,dll.
Belum lagi kecepatannya yang juga semakin lama semakin cepat. Dari hanya 66 MHz sampai kini telah mencapai 600 MHz. Begitu pula dengan kapasitas. Sepuluh tahun yang lalu RAM 8 MB masih sangat mudah ditemukan, tetapi sekarang RAM ini sangat sulit ditemui. Para penjual perangkat komputer lebih banyak menawarkan RAM dengan memory minimal 128 MB per kepingnya. Betapa langkah yang sangat jauh telah dilalui RAM dalam perkembangannya.
B. PERKEMBANGAN
1. Pada tahun 1987, RAM jenis FPM (Fast Page Mode) diperkenalkan. FPM merupakan bentuk RAM yang paling kerap digunakan dalam system komputer pada masa itu. FPM juga turut dikenali sebagai DRAM (Dynamic Random Access Memory) sahaja. FPM menggunakan modul memori SIMM (Single Inline Memory Module) 30 pin dan SIMM 72 pin.
2. Pada tahun 1995, perkembangan teknologi maklumat telah menghasilkan modul memori yang seterusnya yaitu EDO (Extended Data Out). EDO mirip dengan FPM, cuma ia diubah sedikit untuk membolehkan akses memori berturutan berlaku dengan labih pantas. Ini bermakna ‘pengawal memori’ boleh menjimatkan masa dengan mengurangkan beberapa langkah dalam proses pengalamatan (addressing). EDO juga membolehkan CPU mengakses memori 10% hingga 15% lebih pantas berbanding dengan FPM.
3. Pada tahun 1997, SDRAM diperkenalkan, dengan clock speed (kecepatan putaran) 66 MHz, SDRAM ini mampu menghantarkan data dengan kecepatan maksimal 533 MB/det. Lalu seiring dengan clock speed yang bertambah kencang, kecepatan pengantaran datapun menjadi semakin cepat.Untuk SDRAM dengan clock speed 133 MHz, data yang dihantarkan dapat mencapai 1,066 GB/det.
4. Pada tahun 1999, RDRAM diperkenalkan, RDRAM lebih banyak ditujukan untuk atau user lain yang memang sangat membutukan memory berkecepatan tinggi.Kualitas yang dimiliki oleh RDRAM mengakibatkan harganya sangat tinggi. Dan untuk mencarinya pun tidak semudah SDRAM atau DDR. RDRAM menggunakan modul yang disebut RIMM. Berbeda dengan modul yang dimiliki SRAM atau DDR yang menggunakan transfer data secara paralel pada data bus 64-bit. RDRAM menggunakan transfer data secara serial pada data bus 16-bit.RDRAM yang paling umum digunakan adalah RDRAM yang memiliki kecepatan 1,6 GB/det.
RDRAM ini lebih dikenal dengan sebutan RIMM1600.Sedangkan RDRAM yang menggunakan data bus 16-bit saat ini sudah dapat mencapai kecepatan 2,4 GB/det (RIMM2400).Sedangkan untuk jenisnya, RDRAM ada dua macam yang pertama adalah yang bekerja pada data bus 16-bit dan yang kedua adalah RDRAM yang bekerja pada data bus 32-bit. Jika RDRAM yang bekerja pada data bus 16-bit memiliki jumlah pin sebanyak 184 pin dan diperuntukkan untuk sistem single-channel, maka RDRAM yang bekerja pada data bus 32-bit memiliki jumlah pin sebanyak 242 pin, dan diperuntukkan bagi sistem dual-channel. Serta satu lagi yang menjadi ciri khas dari RDRAM adalah adanya fasilitas yang dapat menjaga agar memory tidak panas.Sebenarnya dari performa mungkin tidak jauh berbeda, namun untuk beberapa sistem menggunakan RDRAM akan sangat mendukung terlebih lagi server. Oleh sebab itu, yang paling banyak menggunakan RDRAM adalah server.
5. Pada tahun 2000, DDR-SDRAM diperkenalkan. RAM ini merupakan inovasi daripada SDRAM di mana ia menjanjikan DDR yang kali pertama muncul, memang memiliki clock speed yang sama dengan SDRAM yaitu 100 MHz, tetapi meskipun sama kecepatan pengantaran datanya jauh lebih besar DDR. Hal ini disebabkan dalam satu putarannya DDR melakukan sekaligus dua pekerjaan (pengoperasionalan). Berbeda pada SDRAM yang hanya melakukan satu pengoperasionalan. Hasilnya: pada DDR dengan clock speed 100 MHz, data yang dihasilkan dapat mencapai 2,1 GB/det. Nilai inilah yang menjadi alasan mengapa DDR ini disebut DDR dengan tipe PC2100.
Sampai saat ini, nilai maksimal yang diakui oleh The JEDEC Solid State Technology Association, sebuah asosiasi yang bertanggung jawab tentang standar memory ini adalah nilai yang dimiliki oleh DDR400 PC3200, yaitu 3,2 GB/det. Padahal saat ini ada beberapa produsen RAM yang menawarkan RAM dengan kecepatan yang jauh lebih besar lagi. Seperti Corsair, Kingston, Mushkin, dan beberapa produsen lainnya sudah ada yang berani menawarkan DDR dengan tipe PC3700 dan PC4000 yang masing-masing sanggup menghantarkan data dengan kecepatan 3,7 GB/det dan 4 GB/det. Sayangnya, DDR ini masih sulit dicari di pasaran, khususnya di Indonesia.
DDR dengan kecepatan tinggi tersebut sangat cocok digunakan untuk kebutuhan-kebutuhan para gamers dan untuk para pengguna yang sangat sering menggunakan sistem overclock. Karena DDR dengan kecepatan tinggi ini mampu menangani pengoperasian yang membutuhkan panas tinggi, seperti penerapan overclocking.
6. Pada tahun 2004 di perkenalkanlah DDR2 SDRAM, Energi: DDR2 membutuhkan energi setengah lebih kecil dari energi yang dibutuhkan DDR biasa beroperasi, sehingga dapat mengurangi panas pada komputer. Apalagi pada notebook yang secara otomatis juga akan lebih menghemat baterai.
High clock speed: DDR2 menggunakan clock speed awal sebesar 400 MHz. Nilai ini juga masih bisa di tingkatkan menjadi 800 MHz. Ketahanan: Dengan DDR2, Anda dapat memiliki satu keeping 2 GB dan dipasangkan pada single bank module.
Karena daya tahan DDR2 masih lebih baik dari DDR biasa.
* Ukuran: Dari segi ukuran, DDR2 juga masih lebih kecil dibandingkan DDR biasa.
* Teknologi koneksi: DDR2 menggunakan teknologi koneksi yang dinamakan Ball Grid Array (BGA), yang belum digunakan pada DDR biasa.
7. Pada tahun 2007 hingga sekarang muncul DDR3 SRAM. Memori jenis ini memiliki kebutuhan daya yang berkurang sekitar 16% dibanding DDR2. Hal ini disebabkan memori jenis ini memakai teknologi 90 nm sehingga hanya membutuhkan tegangan 1.5 volt saja. Memori ini memiliki kecepatan yang baik dibanding memori – memori generasi awal.
8. Dual Core adalah penggunaan dua buah inti (core) prosesor dalam sebuah kemasan prosesor konvensional. Dual core (inti prosesor) ditempatkan pada sebuah CPU untuk meningkatkan kinerjanya. Setiap core ini tidak lebih cepat dibanding CPU biasa dengan clockspeed yang sama, tetapi semua proses perhitungan dibagi kepada 2 inti prosesor tersebut.
Logikanya, menggunakan prosesor multi-core akan mempercepat perhitungan algoritma yang dikerjakan sebuah sistem PC. Diibaratkan, berpikir sebuah pekerjaan dengan menggunakan dua otak, tentunya pekerjaan itu akan lebih cepat selesai. Produsen prosesor terkemuka di dunia (Intel dan AMD), mengembangkan teknologi dual core ini karena tuntutan aplikasi-aplikasi yang semakin tinggi atas prosesor yang memiliki tingkat komputasi yang tinggi. Karena pengembangan prosesor dengan menggunakan satu inti sudah mulai stagnan, maka mulai dikembangkan prosesor yang memiliki inti prosesor lebih dari satu.
9. CORE 2 DUO Pada tahun 2006 di luncurkanlah Intel Core 2 Duo yang pertama diberi kode nama Conroe. Processor ini dibangun dengan menggunakan teknologi 65 nm dan ditujukan untuk penggunaan desktop menggantikan jajaran Pentium 4 dan Pentium D. Bahkan pihak Intel mengklaim bahwa Conroe mempunyai performa 40% lebih baik dibandingkan dengan Pentium D yang tentunya sudah menggunakan dual core juga. Core 2 Duo hanya membutuhkan daya yang lebih kecil 40% dibandingkan dengan Pentium D untuk menghasilkan performa yang sudah disebutkan di atas.
Processor yang sudah menggunakan core Conroe diberi label dengan “E6×00”. Beberapa jenis Conroe yang sudah beredar di pasaran adalah tipe E6300 dengan clock speed sebesar1.86 GHz, tipe E6400 dengan clock speed sebesar 2.13 GHz, tipe E6600 dengan clock speed sebesar 2.4 GHz, dan tipe E6700 dengan clock speed sebesar 2.67 GHz. Untuk processor dengan tipe E6300 dan E6400 mempunyai Shared L2 Cache sebesar 2 MB, sedangkan tipe yang lainnya mempunyai L2 cache sebesar 4 MB. Jajaran dari processor ini memiliki FSB (Front Side BUS) sebesar 1066 MT/s (Megatransfer) dan daya yang dibutuhkan hanya sebesar 65 Watt TDP (Thermal Design Power).
Metode Branch and Bound Metode Branch and Bound adalah sebuah teknik algoritma yang secara khusus mempelajari bagaimana caranya memperkecil...