Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
NIM : 2005551021
1. a. Definisi-Definisi Algoritma :
A. Secara umum, pengertian algoritma adalah suatu urutan dari beberapa langkah logis
dan sistematis yang digunakan untuk menyelesaikan masalah tertentu. Bisa dikatakan
Algoritma digunakan sebagai rancangan awal dari sebuah program,
B. Algoritma adalah urutan Langkah-langkah untuk memecahkan masalah atau
matematika
I. Algoritma string matching
Merupakan algoritma yang digunakan untuk melakukan pencarian semua
kemunculan string pendek dan Panjang, untuk string pendek disebut pattern
dan string Panjang disebut teks. Contoh : algoritma brute force
II. Algoritma Graph
Merupakan algoritma yang sering digunakan untuk pemodelan aplikasi
seperti perjalanan transportasi, dll. Graph terbentuk dari kumpulan node dan
edges serta dihubungkan oleh segmen garis.
III. Algoritma searching
Merupakan algoritma yang menerima sebuah kata kunci atau keyword
dengan Langkah-langkah tertentu akan mencari rekaman dengan kata kunci
tersebut lalu di proses dan akan di peroleh salah satu dari dua kemungkinan
yakni data yang dicari ditemukan atau tidak ditemukan.
IV. Combinatorial problems
Merupakan algoritma yang menganalisis permasalahan secara matematis
yakni Menyusun, mengelompokan, mengurutkan atau memilih sejumlah
objek diskrit tertentu.
b. Contoh Algoritma :
Mengirim surat ke tempat lain, maka diperlukan Langkah-langkah agar surat
tersebut bisa sampai ke tempat tujuan.
Menulis surat
Surat dimasukkan ke dalam amplop
Amplop di tempeli perangko
Pergi ke kantor pos untuk mengirimkan surat
Surat sampai ditempat tujuan
Mengupas kentang untuk makan malam
Mengambil kantong kentang dari rak
Mengambil panic dari almari
Mengupas kentang
Mengembalikan kantong kentang ke dalam rak
Contoh kasus yang bisa diselesaikan dengan algoritma :
Kompresi data dengan menggunakan algoritma Kode Huffman
2. Abstraksi adalah deskripsi dari suatu masalah pada level generalisasi tertentu, sehingga
memungkinkan kita berkonsentrasi pada aspek kunci dari masalah tersebut tanpa
memperhatikan hal-hal detail, Abstaksi melibatkan pengidentifikasian kelas-kelas dari
suatu objek, sehingga memungkinkan kita menggroupkannya, dengan cara tersebut kita
bekerja sedikit parameter/variable dari kelas-kelas yang ditinjau.
Contoh :
Monitoring : berbagai macam monitoring
Ban sepeda : sepeda balap, sepeda gunung
Mobil : sedan, jeep, truk, dll
3. Algoritma :
Input (Nilai = 0)
Input (pointer = 1)
Input (N = jumlah karyawan)
While (pointer <+ N) do
a. Nilai = nilai + gaji
b. Next pointer
Output (Nilai)
Source code :
#include <stdio.h>
do
{
printf ("------------------\n");
printf ("Masukan gaji :");
scanf ("%d", &gaji);
if (gaji > 0)
{
nilai = nilai+gaji;
}
}
while (gaji != 0);
printf ("\n=================\n");
printf ("Hasil Seluruh Nilai Adalah = %d\n", nilai);
return 0;
}
Flowchart :
4. Pseudocode :
Start
Deklarasi Var integer nilai, a, n;
Var integer gaji_karyawan[n];
nilai = 0;
For a=1 to n
Input gaji _[a];
If (gaji_karyawan[a]> gaji_supervisor)
nilai = nilai + gaji_karyawan[a];
Printf nilai;
End
Flowchart :
Perbedaan struktur dari no 3 dan no 4 adalah, pada no 4 ditambah variable gaji_supervisor yang
nantinya akan muncul pada kondisi apakah gaji_karyawan lebih besar daripada gaji_supervisor.
5. Rekursi merupakan suatu proses dengan salah satu Langkah dalam prosedur tersebut
menjalankan prosedur itu sendiri. Prosedur yang melakukan rekursi disebut rekursif.
Pseudocode :
int main(){
int i, j, m, n, matriks1[10][10], matriks2[10][10], hasil[10][10]; // Mendeklarasikan Variable
dengan variable matriks 1 [10][10] dan matriks2 [10][10]
#include <stdio.h>
int main() {
int matriks1[10][10], matriks2[10][10], hasil[10][10];
int i, j, k, m, n, p, q, jumlah = 0;
printf("Masukkan jumlah baris matriks pertama: ");
scanf("%d",&m);
printf("Masukkan jumlah kolom matriks pertama: ");
scanf("%d",&n);
printf("Masukkan jumlah baris matriks kedua: ");
scanf("%d",&p);
printf("Masukkan jumlah kolom matriks kedua: ");
scanf("%d",&q);
if(n != p){
printf("Matriks tidak dapat dikalikan satu sama lain.\n");
} else {
printf("Masukkan elemen matriks pertama: \n");
for(i = 0; i < m; i++){
for(j = 0; j < n; j++){
scanf("%d", &matriks1[i][j]);
}
}
printf("Masukkan elemen matriks kedua: \n");
for(i = 0; i < p; i++){
for(j = 0; j < q; j++){
scanf("%d", &matriks2[i][j]);
}
}
for(i = 0; i < m; i++){
for(j = 0; j < q; j++){
for(k = 0; k < p; k++){
jumlah = jumlah + matriks1[i][k] * matriks2[k][j];
}
hasil[i][j] = jumlah;
jumlah = 0;
}
}
printf("Hasil perkalian matriks: \n");
for(i = 0; i < m; i++){
for(j = 0; j < n; j++){
printf("%d\t", hasil[i][j]);
}
printf("\n");
}
}
return 0;
}