Kamis, 26 Mei 2022

Software Requirements Specification (SRS)

 SOFTWARE REQUIREMENTS
SPECIFICATION (SRS)


CATAT.IN


VERSION 1.0



Betran Dwi Fadillah (20312098) | Dedy Adriansyah(20312094) | Dera Aprinaldi (20312113) | Muhammad Rayhan(20312102) | Riswanda Imawan  (20312114)

IF 20 C


16 Mei 2022


Table of Contents

Table of Contents........................................................................................................................................ii

Revision History.........................................................................................................................................ii

1.   Introduction..........................................................................................................................................1

1.1   Purpose...............................................................................................................................................1

1.2   Document Conventions......................................................................................................................1

1.3   Intended Audience and Reading Suggestions.....................................................................................1

1.4   Product Scope.....................................................................................................................................1

1.5   References..........................................................................................................................................1

2.   Overall Description...............................................................................................................................2

2.1   Product Perspective........................................................................................................................... 2

2.2   Product Functions...............................................................................................................................2

2.3   User Classes and Characteristics....................................................................................................... 2

2.4   Operating Environment......................................................................................................................2

2.5   Design and Implementation Constraints.............................................................................................2

2.6   User Documentation...........................................................................................................................2

2.7   Assumptions and Dependencies.........................................................................................................3

3.   External Interface Requirements..........................................................................................................3

3.1   User Interfaces....................................................................................................................................3

3.2   Hardware Interfaces............................................................................................................................3

3.3   Software Interfaces.............................................................................................................................3

3.4   Communications Interfaces................................................................................................................3

4.   System Features....................................................................................................................................4

4.1   System Feature 1................................................................................................................................4

4.2   System Feature 2 (and so on).............................................................................................................4

5.   Other Nonfunctional Requirements......................................................................................................4

5.1   Performance Requirements.................................................................................................................4

5.2   Safety Requirements...........................................................................................................................5

5.3   Security Requirements........................................................................................................................5

5.4   Software Quality Attributes................................................................................................................5

5.5   Business Rules....................................................................................................................................5

6.   Other Requirements..............................................................................................................................5

Appendix A: Glossary.................................................................................................................................5

Appendix B: Analysis Models....................................................................................................................5

Appendix C: To Be Determined List..........................................................................................................6


1.     Introduction

1.1     Purpose

1.2     Document Conventions

Dokumen ini di susun dengan menggunakan standarisasi dari IEEE berupa system requirement specification tamplate

1.3     Intended Audience and Reading Suggestions

Dokumen SRS ini di gunakan sebagi dokumentasi hasil Elisitasi kebutuhan system Pencatatan Transakasi d gunakan dalam pemcatatan setiap transaksi dalam hal ini kasir dan pembeli yang berminat untuk berkontribusi dalam mengembangkan aplikasi Pencatataan transaksi.

SRS ini di buat secara sistematis berdasarkan pada poin-poin yang di rangkum dalam daftar isi sebagai rujukan dan dilengkapi dengan daftar istilah di akhir sebagai penjelasan istilah-istilah yang di gunakan dalam aplikasi Pencatatan Transaksi.

1.4     Product Scope

Aplikasi Pencatatan Transaksi adalah aplikasi yg bisa mencatatakan seluruh taransaksi secara akurat dan teratur.  Selain itu aplikasi pencatatan transaksi bisa menyimpan data di database, sehingga saat computer mengalami kerusakan maka data transaksinya masih ada.

Untuk mengelola system dan menjaga agar informasinya akurat, saat melakukan pencatatan maka kode barang akan di cocokan di database, selanjutnya akan keluar nama barang beserta harganya, maka akan di lakukan update secara berkala untuk kode dan harga barangnya mengikuti harga yang telah di tetapkan produsen.

1.5     References

2.     Overall Description

2.1     Product Perspective

2.2     Product Functions

    Pada dasarnya software ini dapat untuk mencatat transaksi antar penjual dan pembeli secara mudah dan terperinci. Kemudian selain dari hal itu software ini pun dapat menginformasikan jumlah ataupun stok barang yang tersedia digudang sehingga penjual dapat merestock barang-barang dagangannya sebelum terjadi kekurangan pasokan barang yang dapat berdampak buruk pada penjualan. Dengan adanya pencataan penjualan ini dapat memberikan keamanan tentang barang apa saja yang telah dijual dan kapan barang tersebut dijual, sehingga mengurangi potensi masalah pada bagian stock barang dilain sisi hal tersebut dapat mempermudah apabila adanya pelanggan yang melakukan komplain dan sebagainya.

2.3     User Classes and Characteristics

    Target pemasaran dari software ini adalah para pelaku usaha yang memerlukan sebuah software yang dapat mencatat dengan rinci tentang detail penjualan mereka agar dapat digunakan sebagai pembukuan maupun sebagai bahan laporan. Contoh dari target pasar software ini seperti pada penjualan komponen komputer yang mana sangat diperlukannya pencatatan penjualan untuk pengurusan garansi pembeli maupun laporan penjualan karyawan kepada bosnya. Dengan tampilan dan cara penggunaan yang relatif mudah tetapi tetap dapat memberikan manfaat yang besar dalam hal pengoprasian bisnis penjualan.

2.4     Operating Environment

    Software ini dapat berjalan pada sistem operasi window yang mana dapat berjalan dalam keadaan offline tanpa memerlukan adanya sambungan internet karena software ini berbasis database lokal.

2.5     Design and Implementation Constraints

    Karena belum ada publifikasi untuk software ini maka untuk pengguna yang ingin menggunakaan software ini dapat langsung menghubungi pengembang dari software ini yang kemudian akan mengirimkan link untuk mendownload software tersebut dan dilanjutkan pengguna bisa langsung melakukan instalasi software tersebut.

2.6     User Documentation

    Pada bagian ini dokumen yang akan didapatkan user ketika menggunakan aplikasi ini berupa tutorial atau manual book mengenai penggunaan aplikasi ini, agar dapat aplikasi perangkat lunak tersebut dapat digunakan secara maksimal oleh user, dan tidak menimbulkan rasa bingung kepada user, ataupun calon user.

2.7     Assumptions and Dependencies

    Pada dasarnya software ini berjalan secara offline sehingga membutuhkan sebuah hubungan dengan database lokal sebagai sarana penyimpanan data dari pencatatan penjualan untuk saat ini. Namun apabila sudah dilakukan pengembangan dalam hal fitur online maka akan membuat software ini tidak ketergantungan pada database lokal yang mana akan otomatis data hasil penjualan akan dikirimkan dan disimpan pada cloud database atau database online.

3.     External Interface Requirements

    Bagian ini akan menjelaskan tentang input dan output yang ada pada sistem aplikasi. Dan juga memberikan deskripsi mengenai perangkat lunak dan tampilan prototipe dasar.

3.1     User Interfaces


Form Login

    Form Login adalah tampilan awal ketika user menggunakan aplikasi ini, user diminta memasukkan Username dan password. Jika Username ataupun password salah maka user tidak dapat mengakses form lain, dan sebaliknya jika Username dan password telah sesuai maka user dapat masuk kedalam aplikasi. Password bagi user kasir dan password bagi admin berbeda. Hal tersebut berguna untuk menghindari adanya perubahan data tanpa sepengetahuan adminstrator.

Tampilan Form Login

Form Tampilan awal

    Form ini adalah form home atau tampilan awal dari aplikasi setelah user berhasil memasukkan username dan password secara benar. Pada tampilan ini terdapat beberapa menu bar. Menu bar master berisi master barang (produk), dan master pelanggan. Dan menu bar transaksi, yang dimana ketika memilih salah satu menu bar tersebut, aplikasi akan beralih ke form yang lain.

Tampilan Awal

Form Master Barang (Produk)

    Form ini berisi tentang data barang yang ada pada database, data barang tersebut dapat,dilihat oleh kasir, diinput, diupdate ataupun dihapus oleh administrator. Pada form data barang ini administrator dapat memasukkan kode barang, nama barang, dan harga dari barang, dan kasir dapat melihat data barang tersebut dengan memasukkan kode produk yang sesuai. Data barang tersebut berupa nama kode barang, nama barang, dan harga barang. data tersebut akan disimpan pada database tabel barang (produk)

Tampilan Form Master Barang (Produk)

Form Master Pelanggan 

    Form ini berisi tentang data dari pelanggan yang ada pada database, sama halnya dengan data barang, data pelanggan dapat dilihat oleh kasir, dan dapat diinput, diupdate, dan dihapus oleh administrator. Form ini dapat digunakan ketika adanya transaksi dan pelanggan ingin memesan barang tersebut. Data pelanggan berupa, kode pelanggan, nama pelanggan, alamat pelanggan, dan nomor telepon pelanggan. Data tersebut akan disimpan pada database tabel pelanggan

Tampilan Form Master Pelanggan
Form Transaksi
    Form ini berisi tentang data yang berhubungan dengan transaksi, data dari transaksi berupa Kode transaksi atau penjualan, tanggal transaksi, kode barang yang dibeli, kode pelanggan, total harga, dan jumlah barang yang dibeli. Kasir ataupun administrator cukup memilih kode pelanggan, dan memasukkan kode barang yang sesuai pada master pelanggan dan master barang dan data pelanggan dan barang akan langsung muncul mengisi form yang kosong, dan memasukkan jumlah dari barang yang dipesan dan dapat menekan tombol input untuk menghitung total dari transaksi, hasil transaksi akan disimpan pada database tabel penjualan.

Tampilan Form Transaksi

Tampilan Data Barang pada database
    Tampilan berikut adalah tampilan data barang yang ada didalam database MS Access. Didalam Tabel Barang terdapat Kode barang, nama barang, dan harga dari barang tersebut.
Tampilan Data Barang pada database

Tampilan Data Pelanggan pada database
    Tampilan berikut adalah tampilan dari data pelanggan yang ada pada database MS Access dari aplikasi ini. Didalam tabel pelanggan terdapat kode pelanggan, Nama Pelanggan, Alamat, dan nomor telepon dari pelanggan.
Tampilan Data Pelanggan Pada database
Tampilan Data Transaksi pada database
    Tampilan berikut adalah tampilan dari data transaksi yang ada pada database MS Access dari aplikasi ini. Didalam tabel transaksi terdapat kode penjualan (transaksi),  tanggal transaksi, kode barang (produk), kode pelanggan, Qty (jumlah barang), total harga.
Tampilan Data Transaksi pada database

3.2     Hardware Interfaces

Produk yang kami kembangkan ini hanya dapat digunakan di salah satu perangkat keras PC dengan system operasi yang berbasis system windows.

3.3     Software Interfaces

Semua Interfaces yang akan kami gunakan ialah menggunakan implementasi dengan menggunakan komponen Visual Studio Basic.

3.4     Communications Interfaces

Aplikasi ini tidak memerlukan perangkat internet karena, database nya tersimpan pada penyimpanan lokal.

4.     System Features

4.1     Penyimpanan yang terorganisir

4.1.1      Description and priority

Penyimpanan dapat disimpan pada penyimpanan lokal yang terdapat pada perangkat windows yang menggunakan aplikasi ini.

4.1.2     Stimulus / Response Sequences
File penyimpanan dapat dilakukan dimana dan kapan saja, dan file penyimpanan akan otomatis sinkronisasi dengan aplikasi.

4.13     Functional Requirements

Penyimpanan hanya bisa disimpan pada penyimpanan lokal perangkat, dan aplikasi menggunakan  Database MS access.

REQ-1 : Jika tidak menggunakan database MS access, maka database tidak terhubung dengan aplikasi.

4.2     Penginputan Data otomatis

4.2.1      Description and priority

Ketika data pelanggan, ataupun barang telah berhasil disimpan didalam database, ketika menginputkan pada kode dari pelanggan ataupun barang pada form transaksi maka data dari pelanggan ataupun barang tersebut akan otomatis terinput sesuai dengan kode tersebut.

4.2.2     Stimulus / Response Sequences
Dengan memasukkan kode yang sesuai maka data akan muncul secara otomatis.

4.2.3     Functional Requirements

REQ-1 :Memasukkan kode harus sesuai, dengan kode yang ada pada database.

4.3     Fitur Login

4.2.1      Description and priority

Dengan adanya fitur ini, akan ada perbedaan hak authorities mengenai data yang ada pada database, antara user biasa (kasir) dengan administrator, seperti contoh : user biasa tidak dapat mengedit ataupun melihat isi dari database pada beberapa form, sedangkan administrator dapat mengakses data apapun yang ada pada database.

4.2.2     Stimulus / Response Sequences
Dengan memasukkan password yang sesuai dengan user biasa (kasir), dan administrator. Dan password antara dua jenis user tersebut berbeda.

4.2.3     Functional Requirements

REQ-1 :Memasukkan password harus sesuai,dengan yang telah ditetapkan.

REQ-2 : Memasukkan UserName harus sesuai, dengan yang telah ditetapkan.

5.     Other Nonfunctional Requirements

5.1     Performance Requirements

Performa yang diberikan kepada pengguna adalah perangkat lunak dapat berinteraksi dengan pengguna dalam jumlah dan waktu yang cepat, tanpa membatasi keamanaan pengguna

5.2     Safety Requirements

Dalam Produk kami tidak memiliki persyaratan keamanan.

5.3     Security Requirements

Aplikasi Catat.In yang menyimpan data hasil transaksi dalam bentuk database dalam operasi windows pc itu sendiri dituntut untuk menjaga hasil transaksi seorang pelanggan agar aman. Oleh karena itu penyimpanan atau backup berkala, perbaikan bug atau eror pada aplikasi harus dilakukan secara rutin agar hasil transaksi yang bersifat privasi tidak terlihat oleh orang lain dan konsisten dalam hal keamanan transaksi tersebut.

5.4     Software Quality Attributes

Aplikasi Catat.In nantinya akan dites kualitas attributnya yang akan digunakan oleh kasir dan selanjutnya akan diberikan ulasan dari para pengguna Catat.In terhadap bagaimana aplikasi Catat.In memuaskan atau tidak dalam penggunaannya oleh para kasir tersebut. 

5.5     Business Rules

Aplikasi Catat.In ini hanya terbatas dalam bidang para pelaku usaha untuk mencatat hasil transaksi menggunakan penyimpanan database. Oleh karena itu penggunaan data disesuaikan dengan bisnis yang sesuai dengan jalannya aplikasi Catat.In tersebut. Jika aturan penggunaan berbeda dengan aturan database yang digunakan Catat.In maka aplikasi ini tidak sesuai dengan transaksi yang dijalankan tersebut

6.     Other Requirements

Database yang digunakan adalah MS Access sehingga aplikasi Catat.In ini harus memiliki aplikasi MS Access terlebih dahulu agar databse yang digunakan Aplikasi Catat.In bisa berjalan dengan baik.

Appendix A : Glossary

Pengguna Aplikasi

        Pada aplikasi ini yang dimaksud dengan pengguna aplikasi adalah orang-orang atau sebuah tempat yang menggunakan aplikasi ini seperti untuk warung kecil atau toko, supermarket, kasir,  bank

Software

Software adalah suatu program yang ditulis dengan bahasa perograman tertentu untuk suatu bidang tertentu. Sebagai contoh aplikasinya yaitu Catat.in, Microsoft Word, Ubuntu dan Microsoft access.

Kasir

        Kasir adalah orang yang bertugas untuk mengurusi dan menyimpan hasil pembayaran terutama uang, dan memasukkannya ke dalam mesin kasir. Kasir dapat ditemukan di berbagai tempat, terutama di tempat-tempat yang memiliki titik penjualan seperti di dalam toko. Tempat kasir menerima dan menyimpan uang hasil penjualan disebut kasa.

Pelanggan

Pelanggan adalah orang-orang yang kegiatannya membeli dan menggunakan suatu produk, baik barang maupun jasa yang berhubungan secara langsung maupun tidak langsung dengan perusahaan atau toko bisnis.”

Produk

Produk adalah sebuah benda atau barang yang dijual kepada dan digunakan masyarakat untuk memenuhi kebutuhannya atau untuk menghasilkan benda lain yang akan memenuhi kebutuhan masyarakat tersebut sehari-hari.

Appendix B: Analysis Models

Use-Case Diagram

    Use-Case Diagram adalah proses penggambaran yang dilakukan untuk menunjukkan hubungan antara pengguna dengan sistem yang dirancang. Berikut adalah Use-Case sesuai dengan aplikasi yang dibuat.


Use Case Diagram
Keterangan :

Use Case Login : Proses Login pada aplikasi.
Use Case Lihat barang : Proses melihat barang yang terdapat pada database melalui aplikasi
Use Case Input barang : Proses penginputan barang kedalam database.
Use Case Hapus barang : Proses penghapusan data barang pada database
Use Case Edit barang : Proses mengedit data barang pada database
Use Case Lihat pelanggan : Proses melihat data pelanggan
Use Case Input pelanggan : Proses penginputan data pelanggan kedalam database
Use Case hapus pelanggan : proses penghapusan data pelanggan dari database.
Use Case Edit pelanggan : proses pengeditan data pelanggan pada database.
Use Case lihat transaksi : proses melihat data transaksi yang telah dibuat
Use Case Membuat transaksi :Proses Membuat catatan transaksi, data tersebut disimpan pada database tabel transaksi.
Use Case Hapus transaksi: Proses menghapus data transaksi.
Use Case DataBase : proses melihat keselurahan data pada database.

Sequence Diagram

    Sequence Diagram adalah sebuah diagram yang digunakan untuk menjelaskan dan menampilkan interaksi yang ada antar satu objek dengan objek yang lain dalam sebuah sistem secara terperinci. Objek-objek tersebut adalah objek yang berhubungan dengan jalannya proses suatu sistem yang diurutkan dari kiri ke kanan. Berikut adalah Sequence diagram dari aplikasi.

Sequence Diagram Login

    Diagram ini menunjukkan interaksi antar objek ketika melakukan proses login.

Sequence Diagram Login

Sequence Diagram Mengelola data pelanggan

    Diagram ini menunjukkan interaksi antar objek ketika melakukan proses mengelola data pelanggan, baik input, update, ataupun Delete data pelanggan.


Sequence Diagram Mengelola Data Pelanggan

Sequence Diagram Data Transaksi

     Diagram ini menunjukkan interaksi antar objek ketika melakukan proses mengelola data Transaksi, baik input, ataupun Delete data Transaksi.

Sequence Diagram Data Transaksi

Sequence Diagram Mengelola Data Barang

     Diagram ini menunjukkan interaksi antar objek ketika melakukan proses mengelola data Barang, baik input, update, ataupun Delete data barang.


Sequence Diagram Data Barang

Activity Diagram

    Activity Diagram adalah rancangan aliran dari aktivitas atau aliran pada suatu sistem yang akan berjalan. Diagram tersebut digunakan untuk mendefinisikan mengelompokkan aliaran tampilan dari sistem tersebut, biasanya ditandai dengan panah yang akan mengarahkan keurutan dari aktivitas awal ke akhir aktivitas.

Activity Diagram Login

    Berikut adalah alur dari proses login aplikasi, baik dari segi user kasir maupun Administrator.

Activity Diagram Login

Activity Diagram Input Data Barang

    Berikut ini adalah alur penginputan data barang dengan menggunakan Diagram Activity.

Activity Diagram Input Data Barang

Activity Diagram Update Data Barang

    Berikut adalah alur mengupdate data barang, dan menyimpan update tersebut pada database.

Activity Diagram Update Data Barang

Activity Diagram Delete Data Barang

    Berikut adalah proses Delete atau hapus data barang pada database.

Activity Diagram Delete Data Barang

Activity Diagram Input Data Pelanggan

    Berikut adalah proses penginputan data pelanggan, hingga menyimpannya kedalam database.

Activity Diagram Input Data Pelanggan

Activity Diagram Update Data Pelanggan

      Berikut adalah alur mengupdate data pelanggan, dan menyimpan update tersebut pada database.

Activity Diagram Update Data Pelanggan

Activity Diagram Delete Data Pelanggan

    Berikut aadalah proses delete atau menghapus data pelanggan pada aplikasi dan database.

Activity Diagram Delete Data Pelanggan

Activity Diagram Input Data Transaksi

    Berikut adalah proses penginputan data transaksi kedalam database pada aplikasi.

Activity Diagram Input Data Transaksi

Activity Diagram Delete Data Transaksi

    Berikut adalah proses delete atau hapus data transaksi kedalam database pada aplikasi

Activity Diagram Delete Data Transaksi

Senin, 03 Januari 2022

Implementasi Algoritma Branch and Bound

 Pengertian Algoritma Branch and Bound



Algoritma Branch and Bound atau algoritma B&B adalah salah satu dari algoritma yang digunakan untuk menyelesaikan masalah dalam pencarian jalur. Atau suatu algoritma yang mempelajari bagaimana cara memperkecil suatu Search Tree (pohon pencarian) menjadi sekecil mungkin.

Metode ini terdiri dari 2 langkah, yaitu:
Branch (Cabang)
Membuat semua cabang dari pohon pencarian yang mungkin menuju ke solusi.

Bound (Batas)
Mencari dan menghitung node yang merupakan active node (E-node) dan node yang merupakan dead node (D-node) dengan menggunakan suatu syarat, yaitu syarat batas constraint.

Teknik Algoritma Branch and Bound

Algoritma Branch and Bound dapat menggunakan beberapa titik, yaitu :
1. Least Cost Branch and Bound
Teknik ini akan menghitung cost dari setiap node yang ada. Node yang memilki cost terkecil diantara node lain, dianggap memiliki kemungkinan paling besar menuju solusi.
Tahap :
  • node yang memiliki cost terendah akan dibuka dahulu.
  • pada sebuah node berlaku b ≤ c(x) ≤ u.
Keterangan : 
  • b adalah batas bawah.
  • c(x) adalah cost dari node x.
  • u adalah batas atas.
2. FIFO Branch and Bound
Merupakan salah satu teknik dari  Algoritma Branch and Bound yang menggunakan bantuan dari Queue untuk proses perhitungan secara First In First Out.
Tahap : 
  • E-node dimasukkan ke dalam queue, kemudian membuat branch (cabang) selanjutnya.
  • D-node tiidak dapat digunakan untuk membuat branch selanjutnya.
  • Mendapatkan partial space tree (pohon) yang dicari
3. LIFO Branch and Bound
Merupakan salah satu teknik dari  Algoritma Branch and Bound yang menggunakan bantuan dari stack untuk proses perhitungan secara Last In First Out.
Tahap :
  • E-node dimasukkan ke dalam stack, kemudian membuat branch (cabang) selanjutnya.
  • D-node tiidak dapat digunakan untuk membuat branch selanjutnya.
  • Mendapatkan partial space tree (pohon) yang dicari

Implementasi Algoritma Branch and Bound pada permasalahan Knapsack Problem



Dengan kapasitas sebesar 16, carilah keuntungan terbesar dari setiap barang tersebut.

Rumus : awal + (P/W)max* daya angkut yang tersisa
maka  : 0+6*16  =96

Diperoleh  96 batas awal atau cost dari simpul awal.

Bangkitkan simpul 1, simpul 2, simpul 3, dan simpul 4. Hitung cost dari tiap simpul tersebut.

2. 12 + 5*(16-2) = 82

3. 15 + 6*(16-5) = 81

4. 50 + 6*(16-10)=86

5. 10 + 6*(16-5)=76

setelah simpul dibangkitkan, ditemukan bahwa simpul 4 memiliki cost tertinggi, sehingga simpul 4 akan diperluas untuk membuat simpul 6, 7, 8. Kemudian hitung cost dari simpul 6, 7, 8.

6. (50+12) + 3*(16-10-2) = 74

7. (50+15) + 6*(16-10-5) = 71

8. (50+10) + 6*(16-10-5) = 66

https://www.teknokrat.ac.id/

http://ti.ftik.teknokrat.ac.id

http://ftik.teknokrat.ac.id 

Senin, 13 Desember 2021

Implementasi Algoritma Divide and Conquer

Nama   : Dera Aprinaldi

NPM    : 20312113

Kelas    : IF 20C

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.