BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

dokumen-dokumen yang mirip
BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

ANALISIS PERBANDINGAN ALGORITMA SIMETRIS TINY ENCRYPTION ALGORITHM DAN LOKI DALAM ENKRIPSI DAN DEKRIPSI DATA

ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA

IMPLEMENTASI ALGORITMA TEA DAN FUNGSI HASH MD4 UNTUK ENKRIPSI DAN DEKRIPSI DATA

BAB III ANALISA MASALAH DAN PERANCANGAN PROGRAM

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB 2 TINJAUAN PUSTAKA

ANALISA DAN IMPLEMENTASI PROSES KRIPTOGRAFI ENCRYPTION-DECRYPTION DENGAN ALGORITMA TEA (TINY ENCRYPTION ALGORITHM) ABSTRAK

Penerapan Matriks dalam Kriptografi Hill Cipher

BAB III ANALISIS DAN PERANCANGAN

Kriptografi Kunci Rahasia & Kunci Publik

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

BAB 2 LANDASAN TEORI

BAB Kriptografi

LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

BAB II TINJAUAN PUSTAKA

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Bab 2 Tinjauan Pustaka

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

BAB I PENDAHULUAN. Perangkat lunak aplikasi (software application) adalah suatu subkelas perangkat lunak

BAB III ANALISIS KOMPLEKSITAS ALGORITMA

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

BAB II LANDASAN TEORI

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

+ Basic Cryptography

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

I. PENDAHULUAN. andil yang besar dalam perkembangan komunikasi jarak jauh. Berbagai macam model alat komunikasi dapat dijumpai, baik yang berupa

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

Pengenalan Kriptografi

BAB I PENDAHULUAN. 1.1 Latar Belakang

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

(pencurian, penyadapan) data. Pengamanan data dapat dilakukan dengan dua cara, yaitu steganography dan cryptography.

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

BAB II. Dasar-Dasar Kemanan Sistem Informasi

Security Sistem Informasi.

BAB 2 LANDASAN TEORI

PERANCANGAN APLIKASI KEAMANAN DATA MENGGUNAKAN ALGORITMA ENKRIPSI RC6 BERBASIS ANDROID

Kriptografi, Enkripsi dan Dekripsi. Ana Kurniawati Kemal Ade Sekarwati

SKRIPSI ENKRIPSI TEKS MENGGUNAKAN ALGORITMA TWOFISH

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

BAB 2 LANDASAN TEORI

RUANG LINGKUP KRIPTOGRAFI UNTUK MENGAMANKAN DATA Oleh: Budi Hartono

BAB 2 LANDASAN TEORI

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Kriptografi. A. Kriptografi. B. Enkripsi

Vol. 3, No. 2, Juli 2007 ISSN PERANAN KRIPTOGRAFI DALAM KEAMANAN DATA PADA JARINGAN KOMPUTER

BAB II LANDASAN TEORI

Kriptografi Modern Part -1

Modul Praktikum Keamanan Sistem

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

Kriptografi Modern Part -1

BAB 2 LANDASAN TEORI

Bab 2 Tinjauan Pustaka

BAB I PENDAHULUAN. 1.1 Latar Belakang. Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di

BAB I PENDAHULUAN. Universitas Sumatera Utara

BAB I PENDAHULUAN. Kerahasiaan dan keamanan saat melakukan pertukaran. data adalah hal yang sangat penting dalam komunikasi data,

BAB 1 PENDAHULUAN 1.1. Latar belakang

Bab 1 PENDAHULUAN Latar Belakang

BAB III PENYANDIAN ONE TIME PAD MENGGUNAKAN SANDI VIGENERE

BAB 1 PENDAHULUAN Latar Belakang

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

Cryptography. Lisa Anisah. Abstrak. Pendahuluan. ::

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

SISTEM KRIPTOGRAFI. Mata kuliah Jaringan Komputer Iskandar Ikbal, S.T., M.Kom

ENKRIPSI DATA KUNCI SIMETRIS DENGAN ALGORITMA KRIPTOGRAFI LOKI97

BAB 1 PENDAHULUAN Latar Belakang

Pengantar Kriptografi

Implementasi Algoritma Rot Dan Subtitusional Block Cipher Dalam Mengamankan Data

ANALISA PROSES ENKRIPSI DAN DESKRIPSI DENGAN METODE DES

BAB II TINJAUAN PUSTAKA

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA. Bab II ini berisi tentang pembahasan teori-teori tentang kriptografi, algoritma Vigenere dan Data Encrytpion Standard.

K i r p i t p o t g o ra r f a i

BAB 2 LANDASAN TEORI

Analisis Performansi Algoritma AES dan Blowfish Pada Aplikasi Kriptografi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 TINJAUAN PUSTAKA

2016 IMPLEMENTASI DIGITAL SIGNATURE MENGGUNAKAN ALGORITMA KRIPTOGRAFI AES DAN ALGORITMA KRIPTOGRAFI RSA SEBAGAI KEAMANAN PADA SISTEM DISPOSISI SURAT

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

PERANCANGAN APLIKASI ENKRIPSI DATA MENGGUNAKAN METODE ADVANCED ENCRYPTION STANDARD

ALGORITMA LOGICAL CIPHER

ERWIEN TJIPTA WIJAYA, ST.,M.KOM KEAMANAN INFORMASI

Aplikasi Pengamanan Data dengan Teknik Algoritma Kriptografi AES dan Fungsi Hash SHA-1 Berbasis Desktop

Transkripsi:

BAB II TINJAUAN PUSTAKA 2.1 Kriptografi Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message). Kata cryptography berasal dari kata Yunani yaitu kryptos yang artinya tersembunyi dan graphein yang berarti menulis. Algoritma kriptografi memuat data proses penting yaitu: aturan untuk enciphering dan deciphering, fungsi matematika yang digunakan untuk enkripsi dan dekripsi (Wirdasari,2008). 2.2 Enkripsi dan Dekripsi Proses menyandikan plaintext menjadi ciphertext disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498-2), dan proses mengembalikan ciphertext menjadi plaintext-nya disebut dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2) (Wirdasari, 2008). Teknik enkripsi dalam kriptografi klasik yang digunakan adalah enkripsi simetris dimana kunci dekripsi sama dengan kunci enkripsi. Untuk public key

6 cryptography, diperlukan teknik enkripsi asimetris dimana kunci dekripsi tidak sama dengan kunci enkripsi. Enkripsi, dekripsi dan pembuatan kunci untuk teknik enkripsi asimetris memerlukan komputasi yang lebih intensif dibandingkan enkripsi simetris, karena enkripsi asimetris menggunakan bilangan-bilangan yang sangat besar (Kromodimoeljo, 2009). Gambar 1. Proses enkripsi dan dekripsi 2.3 Kunci Kriptografi Enkripsi dan dekripsi pada umumnya membutuhkan penggunaan sejumlah informasi rahasia, disebut sebagai kunci. Kunci adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kekuatan kriptografi ditentukan dengan menjaga kerahasiaan algoritmanya, maka algoritma kriptografinya dinamakan algoritma restricted. Algoritma resricted tidak cocok lagi saat ini. Kriptografi modern mengatasi masalah ini dengan menggunakan kunci. Kunci bersifat rahasia (secret), sedangkan algoritma kriptografi tidak rahasia (public) (Wirdasari, 2008). 2.4 Jenis Algoritma Kriptografi Berdasarkan kunci Dua jenis algoritma kriptografi berdasarkan kuncinya, yaitu:

7 2.4.1 Algoritma Simetris Algoritma simetris menggunakan kunci yang sama untuk melakukan enkripsi dan dekripsi. Contoh algoritma simetris antara lain Data Encryption Standard (DES), RC2, RC4, RC5, RC6, Tiny Encryption Algorithm(TEA), LOKI, International Data Encryption Algorithm (IDEA), Advanced Encryption Standard (AES), One Time Pad (OTP), A5 dan sebagainya(simarmata, 2013). Gambar 2. Kunci Algoritma Simetri Algoritma simetris baik pengirim maupun penerima memiliki kunci rahasia yang umum. Kunci-kunci ini harus dirahasiakan, oleh karena itulah sistem ini sering disebut sebagai secret-key ciphersystem. Jumlah kunci yang dibutuhkan umumnya adalah : nc 2 n(n 1) 2 (1) dengan n menyatakan banyaknya pengguna (Wirdasari, 2008). Kelebihan kunci simetris: a. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris. b. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem real-time

8 Kelemahan kunci simetris: a. Pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut. b. Permasalahan dalam pengiriman kunci itu sendiri yang disebut key distribution problem. 2.4.2 Algoritma Asimetris Algoritma asimetris menggunakan kunci yang berbeda untuk enkripsi dan dekripsi. Beberapa contoh algoritma asimetris antara lain Digital Signature Algorithm (DSA), RSA, Diffie-Hellman, Pohlig-Hellman, Elliptic Curve Crypthography (ECC), Kriptografi Quantum dan sebagainya (Simarmata, 2013). Kelebihan kunci asimetris: Gambar 3 Kunci Algoritma Asimetris a. Masalah keamanan pada distribusi kunci dapat lebih baik. b. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit.

9 Kelemahan kunci asimetris: a. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris. b. Kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris untuk tingkat keamanan sama. 2.5 Tujuan Kriptografi Empat tujuan mendasar dari kriptografi yaitu, 1. Confidentiality, adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. 2. Data integrity, adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. 3. Authentication, adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication or entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). 4. Non-repudiation, adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan (Stalling, 1998). 2.6 Notasi Matematis Misalkan: C = ciphertext P = plaintext

10 Fungsi enkripsi E memetakan P ke C, E(P) = C (2) Fungsi dekripsi D memetakan C ke P, D(C) = P (3) Proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut harus benar, D(E(P)) = P (4) Kekuatan algoritma kriptografi diukur dari banyaknya kerja yang dibutuhkan untuk memecahkan data ciphertext menjadi plaintext-nya. Kerja ini dapat diekuivalenkan dengan waktu, semakin keras usaha yang dilakukan, yang berarti juga semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma kriptografinya, yang berarti semakin aman digunakan untuk menyandikan pesan. Kekuatan kriptografi ditentukan dengan menjaga kerahasiaan algoritmanya, maka algoritma kriptografinya dinamakan algoritma restricted. Algoritma restricted tidak cocok lagi saat ini. Sistem kriptografi modern menggunakan kekuatan kriptografinya, yang terletak pada kunci. Kunci tersebut berupa deretan karakter atau bilangan bulat, dijaga kerahasiaannya, dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi menjadi: E K (P) = C (5) D K (C) = P (6)

11 dan kedua fungsi ini memenuhi: D K (E K (P)) = P (7) 2.7 Algoritma Cipher Block Algoritma cipher block termasuk ke dalam algoritma simetris yang mengoperasikan bit-bit yang panjangnya tetap dengan sebuah transformasi yang sama. Plaintext dibagi menjadi blok-blok bit dengan panjang yang sama, ketika melakukan enkripsi, misalnya pada sebuah blok plaintext yang panjangnya 64 bit maka akan menghasilkan blok ciphertext sepanjang 64 bit juga. Proses dekripsi pun sama halnya, sebuah blok ciphertext sepanjang 128 bit akan menghasilkan sebuah blok plaintext sepanjang 128 bit. Kunci yang digunakan untuk melakukan enkripsi dan dekripsi mempunyai panjang yang sama dengan blok bit plaintext (Indriani, 2007). Cipher block terdiri dari dua buah algoritma yang berpasangan. Satu digunakan untuk melakukan enkripsi, E, dan satu lagi digunakan untuk melakukan dekripsi, E -1. Kedua algoritma tersebut menerima dua buah input, yaitu sebuah blok input berukuran n bit dan sebuah kunci berukuran k bit, menghasilkan sebuah blok yang berukuran n bit. 2.8 Algoritma LOKI LOKI dirancang oleh kriptografer Australia yaitu Lawrie Brown, Josef Pieprzyk, dan Jennifer Seberry. LOKI didesain sebagai hasil dari analisis yang dilakukan secara detail terhadap blok cipher yang standar digunakan pada saat itu, yaitu DES (Data Encryption Standar). Ada versi terbaru dari LOKI ini, maka LOKI

12 yang dibuat pertama kali lebih dikenal dengan nama LOKI89 sesuai dengan tahun pembuatannya, walaupun LOKI pertama kali diperkenalkan pada tahun 1990 (Indriani, 2007). LOKI didesain untuk menggantikan DES sehingga strukturnya pun dibuat hampir sama dengan DES. LOKI menggunakan blok data sepanjang 64 bit dan kunci sepanjang 64 bit pula. 2.9 Algoritma Tiny Encryption Algorithm (TEA) Tiny Encription Algorithm (TEA) merupakan suatu algoritma sandi yang diciptakan oleh David Wheeler dan Roger Needham dari Computer Laboratory, Cambridge University, England pada bulan November 1994. Algoritma ini merupakan algoritma mengenkripsi suatu blok plaintext dengan jumlah bit tertentu dan menghasilkan blok ciphertext yang dirancang untuk penggunaan memory yang seminimal mungkin dengan kecepatan proses yang maksimal. Sistem penyandian TEA menggunakan proses feistel network dengan menambahkan fungsi matematik berupa penambahan dan pengurangan sebagai operator pembalik selain XOR. Proses feistel network adalah membagi plaintext ke dalam beberapa blok dan melakukan penukaran letak blok dalam setiap round, yang akan memberikan efek konsep konfusi dan difusi. Konfusi adalah mengaburkan hubungan plaintext dan ciphertext yang menimbulkan kesulitan dalam usaha untuk mencari keteraturan plaintext dan ciphertext, sedangkan difusi adalah menyebarkan redudansi plaintext dengan menyebarkan masukan ke seluruh ciphertext. Hal ini dimaksudkan untuk menciptakan pergeseran dua arah (ke kiri dan ke kanan) menyebabkan semua bit kunci dan data bercampur secara

13 berulang ulang. Algoritma TEA merupakan algoritma kriptografi simeteris atau disebut juga algoritma kriptografi konvensional yaitu algoritma yang menggunakan kunci untuk proses enkripsi sama dengan kunci untuk proses dekripsi (Nurdin, 2013). Cara Kerja Algoritma TEA 1. Pergeseran (shift) Blok teks terang pada kedua sisi yang masing masing sebanyak 32-bit akan digeser kekiri sebanyak empat (4) kali dan digeser ke kanan sebanyak lima (5) kali. 2. Penambahan Langkah selanjutnya setelah digeser kekiri dan kekanan, maka Y dan Z yang telah digeser akan ditambahkan dengan kunci k[0]-k[3]. Sedangkan Y dan Z awal akan ditambahkan dengan sum (delta). 3. Dilakukan Proses XOR Proses selanjutnya setelah dioperasikan dengan penambahan pada masingmasing register maka akan dilakukan proses XOR dengan rumus untuk satu round adalah sebagai berikut: y = y + (((z<<4)+k[0])^z+sum^((z>>5)+k[1])) (8) z = z + (((y<<4)+k[2]^y+sum^((y>>5)+k[3])) (9) Hasil penyandian dalam satu cycle satu blok teks terang 64-bit menjadi 64-bit teks sandi adalah dengan menggabungkan Y dan Z. Untuk penyandian pada

14 cycle berikutnya Y dan Z ditukar posisinya, sehingga Y 1 menjadi Z1 dan Z1 menjadi Y1 lalu dilanjutkan proses seperti langkah langkah di atas sampai dengan 16 cycle (32 round). 4. Key Schedule Algoritma TEA menggunakan key schedule sangat sederhana, yaitu kunci k[0] dan k[1] konstan digunakan untuk round ganjil sedangkan kunci k[2] dan k[3] konstan digunakan untuk round genap. 5. Dekripsi dan Enkripsi Proses dekripsi sama halnya seperti pada proses penyandian yang berbasis feistel cipher lainnya, yaitu pada prinsipnya adalah sama pada saat proses enkripsi. Hal yang berbeda adalah penggunaan teks sandi sebagai input dan kunci yang digunakan urutannya dibalik. Proses dekripsi semua round ganjil menggunakan k[1] terlebih dahulu kemudian k[0], demikian juga dengan semua round genap digunakan k[3] terlebih dahulu kemudian k[2]. Rumus untuk enkripsi dekripsi seperti di bawah ini: Proses enkripsi digunakan rumus : L0 = L0 + f ( R0, k[0], k[1], sum ) (10) R0 = R0 + f ( L0, k[2], k[3], sum ) (11) Jadi L0 merupakan hasil penjumlahan dari L 0 ditambahkan dengan f ( R0, k[0], k[1], sum ). Proses enkripsi untuk satu round digunakan rumus: y = y + (((z<<4)+k[0])^z+sum^((z>>5)+k[1])) (12) z = z + (((y<<4)+k[2]^y+sum^((y>>5)+k[3])) (13)

15 Proses dekripsi digunakan rumus : L0 = L0 + f ( R0, k[1], k[0], sum ) (14) R0 = R0 + f ( L0, k[3], k[2], sum ). (15) Jadi L0 merupakan hasil penjumlahan dari L0 ditambahkan dengan f ( R0, k[0], k[1], sum ). Proses dekripsi untuk satu round digunakan rumus: y = y + (((z<<4)+k[1])^z+sum^((z>>5)+k[0])) (16) z = z + (((y<<4)+k[3]^y+sum^((y>>5)+k[2])) (17) Rumus Y di atas menjelaskan bahwa Y merupakan hasil dari Y yang ditambahkan dengan Z yang yang digeser kekiri sebanyak empat kali dengan penambahan kunci k[1]. Kemudian hasil penjumlahan tadi di XOR kan dengan Z yang dijumlahkan dengan sum(delta). Hasil dari proses XOR dari kedua penjumlahan tadi di XOR lagi dengan Z yang digeser kekanan sebanyak lima kali dengan penambahan kunci k[0]. Rumus Z sama halnya dengan rumus Y, hanya kunci yang digunakan menggunakan kunci k[3] dan k[2] (Nurdin, 2013). 2.10 Running Time Running time merupakan waktu yang dibutuhkan untuk mengeksekusi setiap instruksi di dalam program sampai selesai. Program memiliki beberapa operasi yaitu penambahan (+), pengurangan (-), perkalian (*), pembagian (/), return (pengembalian nilai dari fungsi), inisialisasi, dan perbandingan dimana setiap operasi ini running time-nya masing-masing 1 unit (Weiss, 2007).

16 2.11 Kompleksitas Algoritma Kompleksitas dari suatu algoritma merupakan ukuran seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah. Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. Nilai n yang besar atau bahkan tidak terbatas perlu dilakukan analisis efisiensi dari suatu algoritma untuk menentukan kompleksitas waktu yang sesuai atau disebut juga kompleksitas waktu asimptotik dengan melihat waktu tempuh (running time). Kompleksitas waktu asimptotik terdiri dari tiga macam. Pertama, keadaan terbaik (best case) dinotasikan dengan Ω (g(n)) (Big-Omega), keadaan rata-rata (average case) dinotasikan dengan Θ (g(n)) (Big- Theta) dan keadaan terburuk (worst case) dinotasikan dengan O(g(n)) (Big-O). Kompleksitas waktu algoritma dihitung dengan menggunakan notasi O(f(n)), dibaca big-o dari f(n) (Weiss, 2007). Notasi O menyatakan running time dari suatu algoritma untuk memungkinkan kasus terburuk. Notasi O memiliki beberapa bentuk : 1. O(1), merupakan algoritma konstan yang artinya running time algoritma tersebut tetap, tidak bergantung pada n. 2. O(n), disebut algoritma linier yang artinya bila n menjadi 2n maka running time algoritma tersebut akan menjadi dua kali semula.

17 3. O(n 2 ), disebut algoritma kuadratik yang biasanya hanya digunakan untuk kasus dengan n yang berukuran kecil. Sebab, bila n dinaikkan menjadi dua kali semula, maka running time algoritma akan menjadi empat kali semula. 4. O(n 3 ), disebut algoritma kubik dimana bila n dinaikkan menjadi dua kali semula, maka running time algoritma akan menjadi delapan kali semula. 5. O(2 n ), disebut algoritma eksponensial dimana bila n dinaikkan menjadi dua kali semula, maka running time algoritma akan menjadi kuadrat kali semula. 6. O(log n), disebut algoritma logaritmik dimana laju pertumbuhan waktu lebih lambat dari pada pertumbuhan n. Algoritma yang termasuk algoritma logaritmik adalah algoritma yang memecahkan persoalan besar dengan mentransformasikannya menjadi beberapa persoalan yang lebih kecil dengan ukuran sama. Basis algoritma tidak terlalu penting, sebab bila misalkan n dinaikkan menjadi dua kali semula, log n meningkat sebesar jumlah tetapan. 7. O(n log n), terdapat pada algoritma yang membagi persoalan menjadi beberapa persoalan yang lebih kecil, menyelesaikan setiap persoalan secara independen, kemudian menggabungkan solusi masing-masing persoalan. 8. O(n!), diebut algoritma faktorial dimana algoritma jenis ini akan memproses setiap masukan dan menghubungkannya dengan n-1 masukan lainnya. Bila n menjadi dua kali semula, maka running time algoritma akan menjadi faktorial dari 2n.

18 Analisis kompleksitas waktu algoritma dihitung dengan menggunakan notasi O(f(n)) dimana Notasi O menyatakan running time(t(n)) dari suatu algoritma untuk memungkinkan kasus terburuk (worst case) (Weiss, 2007).