author photo
Deni Husni Fahri Rizal
September 16, 2020

Big O Notation: Ketahui Kompleksitas Kode Anda


Every good programmer will use the most effective and efficient ways to solve the problem. And to do that, we must know how to minimize the complexity.


Apakah itu Big O Notation?

Big o notation atau dapat kita fahami sebagai notasi atau lambang matematika yang menggambarkan tingkat dari kompleksitas atau kerumitan suatu sistem. Big o notation biasanya dilambangkan sebagai O(n).

Penerapan prinsip-prinsip big o notation ini dapat kita terapkan pada ilmu komputer untuk mengelompokkan atau mengkalasifikasikan algoritma pemograman berdasarkan kerumitannya. Pada penerapannya, big o notasi ini mengukur tingkat lamanya waktu proses (running time) dan space atau resource yang digunakan berbading lurus dengan bertambahnya input data.


Grafik Jenis-Jenis Big O Notasi terhadap Operasi Algoritma.


Big o notasi menjelaskan suatu fungsi yang diindentifikasi berdasarkan pertumbuhan datanya. Fungsi atau algoritma yang berbeda tetapi tingkat pertumbuhannya sama dapat dilambangkan dengan big o notasi yang sama.

Selanjutkan kita akan lebih membahas big o notasi untuk penggunaan pada pemgoraman komputer. Pembahasan matematika karena cukup rumit di luar pembahasan kali ini.

Para developer atau programmmer biasaanya mendifinisikan tingkat kerumitan code atau algoritma yang kita buat mengunakan big o notasi ini. Dengan demikian, hal ini memudahkan cara berkomunikasi yang baik antar programmer dalam membahas kerumitan suatu algoritma.

Berikut adalah cheat sheet dari bebarapa operasi umum pada struktur data dalam bahasa pemograman.


From https://www.bigocheatsheet.com/


Dengan membaca tabel di atas dan membandingkan dengan grafik dari big o notasi kita dapat mengetahui algoritma yang kita buat baik atau buruk.

Sebagai contoh, konsep array memiliki notasi O(1) untuk cara mengkases data dan O(n) untuk proses input data. Dari kedua grafik tersebut kita mendapatkan informasi bahwa konsep array ini memiliki performance terbaik untuk cara akses dan tidak terpengaruh terhadap banyaknya data. Adapun untuk proses insert data dia akan meningkat secara aritmetik dan prosesnya masih di bilang sangat bangus.

Berikut data cheat sheet untuk teknik melakukan sorting dan nilai big o notasinya.

From https://www.bigocheatsheet.com/


Muncul sebuah pertanyaan apakah pengetahuan big o notasi ini berguna pada kehidupa sehari-hari programmer atau hanya berguna ketika akan mengikuti test penerimaan kerja? Jawabannya adalah ya unutk kedua kondisi tersebut.

Pada penggunaan sehari-hari pengetahaun big o notasi ini akan sangat berguna dalam meningkatkan kwalitas serta performance dari algoritma-algoritma yang kita buat. Kita sebagai programmer dapat mengetahui apakah code kita akan berjalan sangat lambat ketika jumlah data yang terlibat meningkat? Atau seberapa parah kodenya ketika data yang kita proses membengkak sampai jutaan data misalnya.


Notes
Array, Stack, Queue, Singly-Linked List, Doubly-Linked List, Skip List, Hash Table, Binary Search Tree, Cartesian Tree, B-Tree, Red-Black Tree, Splay, TreeAVL Tree, dan KD Tree.






discuss-like Like
icon bagikanBagikan
0 Komentar

Diskusi Populer

Top Mentor