Notasi Big O - Time Space 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.




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.

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.


Cara Membaca dan Memahami Big O

Dari tabel di atas dan penjelasan tingkat kompleksitas konsep array kita mendapatkan informasi bahwa tingkat kompleksitas ini terbagi dalam dua kelompok besar. Kompleksitas dalam waktu dalam artian semakin komplek maka lamanya pemrosesan semakin bertambah. Selanjutnya adalah kompleksitas dalam ruang, semakin kompleks maka raung yang digunakan dalam hal ini resource penyimpanan khususnya memory akan semakin besar.

Berikut beberapa contoh unutk membaca notasi big o dan penjelasannya.
  1. O(log n) berarti tingkat kompleksitas akan berbanding lurus dengan log dari banyaknya jumlah data. Apabila ada algoritma dengan komplesitas ini maka algoritma yang digunakan sangat bagus.
  2. O(1) berarti tingkat kompleksitas akan bersifat konstan berapun jumlah data yang di proses. Ini adalah nilai unutk algoritma yang paling bagus.
  3. O(n) berarti tingkat kompleksitas akan berbanding lurus dengan banyaknya data. Sering disebut dengan tingkat kompleksitas linear atau aritmatika.
  4. O(n+2) sama dengan tingkat kompleksitas O(n).


Kegunaan Pemahaman Big O

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 untuk 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.

Referensi

Share this

Related Posts

Previous
Next Post »