Selasa, 08 Desember 2009

Tugas Algoritma lanjut

#include stdio.h
#include conio.h

//menggunakan ADT
typedef int angka;
typedef char huruf;

typedef struct Date{
angka dd;
angka mm;
angka yyyy;
};

//struct utama
typedef struct Rental{
huruf ID[5];
huruf Nama[35];
Date tglRental;
};

//variabel 'sewa'
struct {
angka film;
angka bayar;
} sewa;

//fungsi yang mengembalikan nilai angka untuk menghitung bayar sewa
angka baySewa(angka x){
angka hargaFilm=5000;
return hargaFilm*sewa.film;
}

main(){
Rental user;
printf("Input Data Sewa\n");
printf("ID : ");scanf("%s",&user.ID);
printf("Nama : ");scanf("%s",&user.Nama);
printf("Tanggal Sewa\n");
printf("Hari : ");scanf("%d",&user.tglRental.dd);
printf("Bulan : ");scanf("%d",&user.tglRental.mm);
printf("Tahun : ");scanf("%d",&user.tglRental.yyyy);
printf("Jumlah Film = ");scanf("%d",&sewa.film);

printf("\n--Data Rental Film--\n");
printf("ID : %s\n",user.ID);
printf("Nama : %s\n",user.Nama);
printf("Date : %d - %d - %d\n",user.tglRental.dd,user.tglRental.mm,user.tglRental.yyyy);

//panggil fungsi baySewa, nilai kembaliannya dikirim ke bayar sewa asli
sewa.bayar = baySewa(sewa.film);

//tampilkan bayar sewa asli
printf("Bayar Sewa = %d\n",sewa.bayar);
getch();
}

Hasilnya:

Senin, 09 November 2009

Algoritma Perkalian Matriks

Algoritma :

a.inisialisasi matrik_a[ ][ ], matrik_b[ ][ ], matrik_c[ ][ ], i=0, j=0, k=0, baris_a, kolom_a, kolom_b
b.inputkan baris_a, kolom_a, kolom_b
c.Proses looping untuk memasukkan nilai pada matrik_a :

1.untuk i=0 sampai dengan banyak baris_a-1, i=i+1
a)untuk j=0 sampai dengan banyaknya kolom_a-1, j=j+1
b)inputkan matrik_b[i+1][j+1]
c)Apakah j< kolom_a ? jika tidak, kembali ke proses c.1.a

2.Apakah i < baris_a ? jika tidak, kembali ke proses c 1.
d.Proses looping untuk memasukkan nilai pada matrik_b :

1.untuk j=0 sampai dengan banyak kolom_a-1, j=j+1
a)untuk k=0 sampai dengan banyaknya kolom_a-1, k=k+1
b)inputkan matrik_b[j+1][k+1]
c)Apakah k< kolom_b ? jika tidak, kembali ke proses d.1.a

2.Apakah j < kolom_a ? jika tidak, kembali ke proses d 1.
e.Proses looping untuk mengalikan matriks :
1.untuk i=0 sampai dengan banyak baris_a-1, i=i+1
a)untuk k=0 sampai dengan banyaknya kolom_b-1, k=k+1

i)untuk j=0 sampai dengan kolom_a -1, j=j+1
ii)matrik_c[i][k] + = matrik_a[i][j] * matrik_b[j][k]
iii)Apakah j< kolom_a ? jika tidak, kembali ke proses i)

b)Apakah k2.Apakah i < baris_a ? jika tidak, kembali ke proses e 1.
f.Proses looping untuk menampilkan matrik_c :

1.untuk i=0 sampai dengan banyak baris_a-1, i=i+1
a)untuk k=0 sampai dengan banyaknya kolom_b -1, k=k+1
b)Print matrik_c[i][k]
c)Apakah k< kolom_b ? jika tidak, kembali ke proses f.1.a

2.Apakah i < baris_a ? jika tidak, kembali ke proses f 1.
g.Program selesai.

Minggu, 18 Oktober 2009

History of Alghorytm

Dalam Matematika dan komputasi, algoritma merupakan kumpulan perintah untuk menyelesaikan suatu masalah. Perintah-perintah ini dapat diterjemahkan secara bertahap dari awal hingga akhir. Masalah tersebut dapat berupa apa saja, dengan catatan untuk setiap masalah, ada kriteria kondisi awal yang harus dipenuhi sebelum menjalankan algoritma. Algoritma akan dapat selalu berakhir untuk semua kondisi awal yang memenuhi kriteria, dalam hal ini berbeda dengan heuristik. Algoritma sering mempunyai langkah pengulangan (iterasi) atau memerlukan keputusan (logika Boolean dan perbandingan) sampai tugasnya selesai.
Desain dan analisis algoritma adalah suatu cabang khusus dalam ilmu komputer yang mempelajari karakteristik dan performa dari suatu algoritma dalam menyelesaikan masalah, terlepas dari implementasi algoritma tersebut. Dalam cabang disiplin ini algoritma dipelajari secara abstrak, terlepas dari sistem komputer atau bahasa pemrograman yang digunakan. Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan kriteria yang sama.
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.