Anda di halaman 1dari 29

J.620100.022.

02
MENGIMPLEMENTASI
KAN ALGORITMA
PEMROGRAMAN
Tati Mardiana, M.Kom
MENJELASKAN VARIAN DAN INVARIAN
▪ Varian adalah jenis atau turunan dari alur logikal yang digunakan sebelum
pembuatan aplikasi (pra-built aplication) sedangkan Invarian adalah
bentuk logical dari external algoritma (fungsi/program bagian) yang
terintegrasi dengannya.
▪ Varian adalah variabel yang tidak mempunyai tipe data sedangkan
invarian adalah variabel yang mempunyai tipe data.
▪ Identifier adalah suatu nama yang biasa dipakai dalam pemrograman
untuk menyatakan variabel, konstanta, tipe data, fungsi atau prosedur.
▪ Variabel merupakan representasi data dari dunia nyata yang mempunyai
suatu nilai.
Contoh :
HargaTotal = 34000
▪ Konstanta adalah identifier yang nilai datanya bersifat tetap dan
tidak bisa diubah.
Contoh : Jika kita membuat program perhitungan matematik yang
menggunakan nilai pi (3.14159) yang mungkin akan muncul di
banyak tempat pada kode program, kita dapat membuat pi sebagai
konstanta.
▪ Tipe data adalah jenis data yang dapat diolah oleh komputer untuk
memenuhi kebutuhan dalam pemrograman komputer
KLASIFIKASI RAGAM TIPE DATA
MEMBUAT ALUR LOGIKA PEMROGRAMAN
▪ Algoritma merupakan suatu prosedur, urutan langkah-langkah atau
tahapan-tahapan sistematis, jelas dan logis untuk menyelesaikan
permasalahan.
▪ Flowchart adalah diagram yang menampilkan langkah-langkah dan
keputusan untuk melakukan sebuah proses dari suatu program.
SIMBOL-SIMBOL FLOWCHART
CONTOH FLOWCHART SORTING DENGAN
BUBBLE SORT
CONTOH FLOWCHART SEARCH DENGAN
SEQUENTIAL SEARCH
PROSEDUR
▪ Prosedur adalah program yang mengerjakan tugas/aktifitas yang spesifik
dan menghasilkan suatu efek netto.
▪ Dalam beberapa bahasa pemrograman prosedur sering diistilahkan
dengan subroutin.
▪ Suatu efek netto diketahui dengan membandingkan keaadan awal dan
keadaan akhir pada pelaksanaan sebuah prosedur.
▪ Oleh karena itu prosedur harus mendefinisikan dua hal yaitu :
1. keaadan awal (K.Awal) yaitu kondisi sebelum rangkaian instruksi
dilaksanaakan
2. keadaan akhir (K.Akhir) kondisi yang diharapkan setelah rangkaian
instruksi dilaksanakan
STRUKTUR PENULISAN ALGORITMA PROSEDUR
ALGORITMA PROSEDUR HITUG LUAS SEGITIGA
PROSEDURE DENGAN PARAMETER MASUKAN
FUNGSI
• Prosedure fungsi merupakan modul program yang mempunyai tujuan
spesifik.
• Bedanya dengan prosedur, fungsi adalah modul program yang
memberikan atau mengembalikan (return) sebuah nilai daritipe data
tertentu (tipe dasar atau bentukan).
CONTOH ALGORITMA MENGGUNAKAN
FUNGSI
KOMPLEKSITAS ALGORITMA
▪ Sebuah algoritma tidak saja harus menghasilkan keluaran yang
benar, tetapi juga harus mangkus (efisien).
▪ Kebenaran suatu algoritma harus diuji dengan jumlah masukan
tertentu untuk melihat kinerja algoritma berupa waktu yang
diperlukan untuk menjalankan algoritmanya dan ruang memori yang
diperlukan untuk struktur datanya.
▪ Ada dua macam kompleksitas algoritma, yaitu kompleksitas waktu
dan kompleksitas ruang.
KOMPLEKSITAS WAKTU
▪ Kompleksitas waktu dari algoritma adalah mengukur jumlah
perhitungan (komputasi) yang dikerjakan oleh komputer ketika
menyelesaikan suatu masalah dengan menggunakan algoritma.
▪ Kompleksitas waktu (T(n)dari algoritma berisi ekspresi bilangan dan
jumlah langkah yang dibutuhkan sebagai fungsi dari ukuran masukan
permasalahan.
▪ Kompleksitas waktu diukur dari jumlah tahapan komputasi yang
dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran
masukan n
KELOMPOK ALGORITMA BERDASARKAN
KOMPLEKSITAS WAKTU ASIMPTOTIK
KOMPLEKSITAS RUANG
▪ Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan
dalam menjalankan program.
▪ Kompleksitas ruang diukur dari memori yang digunakan oleh struktur data
yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.
Contoh
Algorithm hitung(x,y,z) {
return x+y*z+(x+y-z)/(y+z) +13 }
Algorithm jumlah(a,n)
//a adalah array dengan ukuran n {
s:=0.0;
for i=1 to n do
s:=s+a[i];
return s; }
Memori yang dibutuhkan untuk menjalankan algoritma diatas
bergantung pada jumlah dari :
▪ Bagian yang konstan dan tidak tergantung pada masukan dan
keluaran. Bagian ini biasanya terdiri dari memori yang dibutuhkan
untuk sourcecode, variable aggregate dan konstanta.
▪ Bagian variabel yang kebutuhan memorinya bergantung pada
instance permasalahan yang akan diselesaikan. Bagian ini sering
disebut sebagai karakteristik instans
MODEL PERHITUNGAN KEBUTUHAN
WAKTU/RUANG
▪ Pengukuran waktu yang diperlukan oleh sebuah algoritma dapat
dilakukan dengan cara menghitung banyaknya operasi/instruksi yang
dieksekusi.
▪ Jika telah diketahui besaran waktu (dalam satuan detik) untuk
melaksanakan sebuah operasi tertentu, maka dapat menghitung
berapa waktu sesungguhnya untuk melaksanakan algoritma tersebu
CONTOH ALGORITMA
• Operasi pengisian nilai (jumlah0, k  1, jumlah  jumlah+ak, k 
k+1, dan r  jumlah/n). Jumlah seluruh operasi pengisian nilai adalah
t1 = 1 + 1 + n + n + 1 = 3 + 2n
• Operasi penjumlahan (jumlah+ak, dan k+1). Jumlah seluruh operasi
penjumlahan adalah t2 = n + n = 2n
• Operasi pembagian (jumlah/n)Jumlah seluruh operasi pembagian
adalah t3 = 1
• Total kebutuhan waktu algoritma HitungRerata:
t = t1 + t2 + t3 = (3 + 2n)a + 2nb + c detik
PENGELOMPOKAN ALGORITMA
BERDASARKAN NOTASI O-BESAR
PENGELOMPOKAN ALGORITMA
BERDASARKAN NOTASI O-BESAR
▪ O(1): Kompleksitas O(1) berarti waktu pelaksanaan algoritma adalah
tetap, tidak bergantung pada ukuran masukan
▪ O(log n): Kompleksitas waktu logaritmik berarti laju pertumbuhan
waktunya berjalan lebih lambat daripada pertumbuhan n. Algoritma
yang termasuk kelompok ini adalah algoritma yang memecahkan
persoalan besar dengan mentransformasikannya menjadi beberapa
persoalan yang lebih kecil yang berukuran sama (misalnya algoritma
pencarian_biner).
▪ O(n): Algoritma yang waktu pelaksanaannya lanjar atau berulang-ulang
umumnya terdapat pada kasus yang setiap elemen masukannya dikenai
proses yang sama, misalnya algoritma pencarian_beruntun. Bila n
dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua
kali semula
PENGELOMPOKAN ALGORITMA
BERDASARKAN NOTASI O-BESAR
▪ O(n log n): Waktu pelaksanaan n log n terdapat pada algoritma yang
memecahkan persoalan menjadi beberapa persoalan yang lebih kecil,
menyelesaikan tiap persoalan secara independen, dan menggabung solusi
masing-masing persoalan. Algoritma yang diselesaikan dengan teknik bagi
dan gabung mempunyai kompleksitas asimptotik jenis ini. Bila n = 1000,
maka n log n mungkin 20.000. Bila n dijadikan dua kali semual, maka n log
n menjadi dua kali semula (tetapi tidak terlalu banyak).
▪ O(n2) Algoritma yang waktu pelaksanaannya kuadratik hanya praktis
digunakan untuk persoalana yang berukuran kecil. Umumnya algoritma
yang termasuk kelompok ini memproses setiap masukan dalam dua buah
kalang bersarang, misalnya pada algoritma urut_maks. Bila n = 1000,
maka waktu pelaksanaan algoritma adalah 1.000.000. Bila n dinaikkan
menjadi dua kali semula, maka waktu pelaksanaan algoritma meningkat
menjadi empat kali semula.
PENGELOMPOKAN ALGORITMA
BERDASARKAN NOTASI O-BESAR
▪ O(n3) Seperti halnya algoritma kuadratik, algoritma kubik memproses setiap
masukan dalam tiga buah kalang bersarang, misalnya algoritma perkalian
matriks. Bila n = 100, maka waktu pelaksanaan algoritma adalah 1.000.000. Bila
n dinaikkan menjadi dua kali semula, waktu pelaksanan algoritma meningkat
menjadi delapan kali semula.
▪ O(2n) Algoritma yang tergolong kelompok ini mencari solusi persoalan secara
"brute force", misalnya pada algoritma mencari sirkuit Hamilton (lihat Bab 9).
Bila n = 20, waktu pelaksanaan algoritma adalah 1.000.000. Bila n dijadikan dua
kali semula, waktu pelaksanaan menjadi kuadrat kali semula!
▪ O(n!) Seperti halnya pada algoritma eksponensial, algoritma jenis ini
memproses setiap masukan dan menghubungkannya dengan n - 1 masukan
lainnya, misalnya algoritma Persoalan Pedagang Keliling (Travelling Salesperson
Problem - lihat bab 9). Bila n = 5, maka waktu pelaksanaan algoritma adalah
120. Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma
menjadi faktorial dari 2n
KETERAMPILAN MENERAPKAN ALGORITMA
PEMROGRAMAN
1. Menjelaskan varian dan invariant
▪ Jelaskan tipe data telah sesuai kaidah pemrograma
▪ Jelaskan variabel telah sesuai kaidah pemrograman
▪ Jelaskan konstanta telah sesuai kaidah pemrograman
2. Membuat alur logika pemrograman
▪ Tentukan metode yang sesuai
▪ Tentukan komponen yang dibutuhkan
▪ Tetapkan relasi antar komponen
▪ Tetapkan alur mulai dan selesai
KETERAMPILAN MENERAPKAN ALGORITMA
PEMROGRAMAN
3. Menerapkan teknik dasar algoritma umum
▪ Buat algoritma untuk sorting
▪ Buat algoritma untuk searching
4. Menggunakan prosedur dan fungsi
▪ Identifikasi konsep penggunaan kembali prosedur dan fungsi
▪ Gunakan prosedur
▪ Gunakan fungsi
KETERAMPILAN MENERAPKAN ALGORITMA
PEMROGRAMAN
5. Mengidentifikasikan kompleksitas algoritma
▪ Identifikasi Kompleksitas waktu algoritma
▪ Identifikasi kompleksitas penggunaan memory algoritma

Anda mungkin juga menyukai