Kamis, 23 Desember 2010

Mari Belajar Algoritma dan Pemrograman (6)

Sorting menggunakan buble sort :
#include
#define max 10
//Buble Sort
void cetak(int A[], int n) {
    int j;
    for (j=0; j
    printf("A[%d] : %d \n", j, A[j]);
    }
}

int main() {
    int A[max] = {3,5,7,4,2,9,0,1,6,8};
    int a,b;
    int tmp;
   
    printf("Daftar angka asli : \n");
    cetak(A,max);
   
    for (a=0; a<(max-1); a++) {
        for (b=(max-1); b>=(a+1); b--) {
            if (A[b]
                tmp=A[b];
                A[b]=A[b-1];
                A[b-1]=tmp;
            }
        }
    }
    printf("\n");
    printf("Daftar angka terurut : \n");
    cetak(A,max);
   
return 1;
}
Bila banyaknya inputan ditentukan user :
void cetak(int A[], int n) {
    int j;
    for (j=0; j
    printf("A[%d] : %d \n", j, A[j]);
    }
}

int main() {
    int i,a,b,n,tmp;
       
    printf("masukkan banyaknya angka : \n");
    scanf("%d", &n);
   
    int A[n];
    for (i=0; i
        printf("Masukkan angka ke-[%d] : ", i);
        scanf("%d", &A[i]);
    }
   
    for (a=0; a<(n-1); a++) {
        for (b=(n-1); b>=(a+1); b--) {
            if (A[b]
                tmp=A[b];
                A[b]=A[b-1];
                A[b-1]=tmp;
            }
        }
    }
    printf("\n");
    printf("Daftar angka terurut : \n");
    cetak(A,n);

return 1;
}

Mari Belajar Algoritma dan Pemrograman (5)

Soal kali ini :
1. Urutkan string berdasarkan karakter, menggunakan sorting yang kalian ketahui. Apabila ketemu huruf "A" ataupun "a", hitung berapa banyak A dan tampilkan jumlahnya.
Source Codenya :
#include

int main(){
    char A[100];
    int i,j,k;

    printf("Masukkan kata : ");
    gets(A);

    int jumlah = 0;
    for(i=0; i
        if ((A[i]=='A') || (A[i]=='a')){
            jumlah++;
        }
        k=A[i];
        j=i;
        while (A[j-1] >k && j>0){
            A[j] = A[j-1];
            j=j-1;
        }
        A[j]=k;
    }
    printf ("setelah diurutkan : \n");
    for (i=0; i<(strlen(A)); i++){
        printf ("%c \n", A[i]);
    }
    printf("jumlah A= %d ", jumlah);

getch();
return 1;
}
2, Seperti no 1, tapi apabila ketemu huruf vokal, ubah menjadi angka '9' dan tampilkan.

#include
#include

int main(){
    char A[100];
    int i,k,j;

    printf("Masukkan kata : ");
    gets(A);

    int jumlah = 0;
    for(i=0; i
        if ((A[i]=='A') || (A[i]=='a') ||
            (A[i]=='E') || (A[i]=='e') ||
            (A[i]=='I') || (A[i]=='i') ||
            (A[i]=='U') || (A[i]=='u') ||
            (A[i]=='O') || (A[i]=='o')) {
            A[i] = '9';
        }
        k=A[i];
        j=i;
        while (A[j-1] >k && j>0){
            A[j] = A[j-1];
            j=j-1;
        }
        A[j]=k;
    }
    printf("\n");
    printf ("setelah diurutkan : \n");
    for (i=0; i<(strlen(A)); i++){
        printf ("%c \n", A[i]);
    }
    printf("%s", A);
   
getch();
return 1;

}

Mari Belajar Algoritma dan Pemrograman (4)

Soal kali ini, menghitung rata-rata dari jumlah suatu array yang banyaknya diinputkan oleh user :
int main() {
    int n, i;

    int A[n];
    printf("Masukkan banyaknya array : ");
    scanf("%d", &n);
   
   
    printf("Masukkan nilai : \n");
        for(i=1; i<=n; i++) {
            printf("A[%d] : ", i);
            scanf("%d", &A[i]);
        }
       
    printf("\n");   
    printf("Menampilkan array \n");
    for(i=1; i<=n; i++) {
        printf("Nilai A ke-%d : %d \n", i, A[i]);
    }
   
    int jum=0;
    for(i=1; i<=n; i++) {
        jum=jum+A[i];   
    }
   
    float rata=jum/n;
    printf("Rata-rata array tersebut adalah %f", rata);
   
    printf("\n");   
   
}

Mari Belajar Algoritma dan Pemrograman (3)

Hmm.. Kali ini kita akan membuat program yang menggunakan Insertion Sort.
Pada Angka :
int main() {
    int A[5]={20,15,14,2,7}; //nilai dalam array sudah ditentukan
    int i, j , k;
   
    printf("Nilai awal : \n"); //menampilkan nilai awal
    for(i=0; i<5; i++) {
        printf("%d \n", A[i]);
    }
     
    //eksekusi
    for(i=1; i<=5-1; i++) {
        k=A[i]; j=i;
        while(A[j-1]>k && j>0) {
            A[j]=A[j-1];
            j=j-1;
        }
        A[j]=k;
    }

    printf("Setelah eksekusi : \n"); //mrnampilkan hasil
    for(i=0; i<5; i++) {
        printf("%d \n", A[i]);
    }
   
return 1;   
}

Pada Huruf :
int main() {
    char A[5]={'b','l','m','q','a'}; //karakternya sudah diinput
    int i, j , k;
   
    printf("Nilai awal : \n");
    for(i=0; i<5; i++) {
        printf("%c \n", A[i]);
    }
     
    //eksekusi
    for(i=1; i<=5-1; i++) {
        k=A[i]; j=i;
        while(A[j-1]>k && j>0) {
            A[j]=A[j-1];
            j=j-1;
        }
        A[j]=k;
    }

    printf("Setelah eksekusi : \n");
    for(i=0; i<5; i++) {
        printf("%c \n", A[i]);
    }
   
return 1;   
}
Apabila banyaknya inputan/array ditentukan user:
#include

typedef struct{
    char huruf[10];
} kata;

int main() {
    int i, j , k, n, b;
    kata A[n];
   
    printf("Nilai banyak kata : \n");
    scanf("%d", &n);
   
    for(i=0; i
        printf("Masukkan kata : ");
        scanf("%s", &A[i]);
    }
   
    //eksekusi
    for(i=0; i
        for(j=i; j
            k=A[i]; j=i;
            while(A[j-1]>k && j>0) {
                A[j]=A[j-1];
                j=j-1;
            }
            A[j]=k;
        }
    }

    printf("Setelah eksekusi : \n");
    for(i=0; i
        printf("%s \n", A[i]);
    }
   
return 1;   
}
 

Mari Belajar Algoritma dan Pemrograman (2)

Sekarang kita akan belajar sorting. Jangan lupa sebelum meng-compile programnya, kita path dahulu direktori tempat kita menyimpan program tersebut. Dapat dibaca pada Belajar Algoritma dan Pemograman (1). Kali ini kita akan menggunakan 3 file. Langsung saja lihat soal-soal berikut ini... 
Pertama : Buatlah bubble sort, sorting dan inputan dilakukan pada prosedur.
Source Codenya :
    prosedur.h
#include

void cetak();
void sorting();
void input();
void swaping();

    prosedur.c
#include "prosedur.h"

void cetak(int A[], int n){ //prosedur cetak
int j;
    for(j=1;j<=n;j++){
        printf("A[%d] : %d\n",j,A[j]);
    }
}

void swaping (int A[], int b, int tmp){
    if(A[b]
        tmp=A[b];
        A[b]=A[b-1];
        A[b-1]=tmp;
    }
}

void sorting(int A[], int n){
int a,b,tmp;
    for (a=1;a<=n;a++){
        for(b=n;b>=(a+1);b--){
            swaping(A,b,tmp);
            }
        }
}

void input(int A[],int n){ //prosedur input
int i;
    printf("masukan data \n");
    for(i=1;i<=n;i++){
        printf("A[%d] : ",i);
        scanf("%d",&A[i]);
    }
}
 
    main.c
#include "prosedur.h"

int main(){

int n;
printf("masukan banyak array : ");
scanf("%d",&n);

int A[n];  //pemanggilan prosedur
input(A,n);
printf("\n");

sorting(A,n);
printf("\n");

cetak(A,n);
printf("\n");

swaping(A,n);

return 1;
}

Kedua : Lakukan sorting seperti no. 1 tapi menggunakan karakter
Source Codenya :
    kar.h
#include

typedef struct{ //tipe bentukan untuk array huruf
char isi[2];
} huruf ;

void urut();
void tampil();
void input();
 
    kar.c
#include "kar.h"

void urut(huruf* A,int n){  //pengurutan
    int i,k ;
    huruf temp[10];

    for (i=0 ; i < n ; i ++){
        for (k = n-1 ; k >= i ; k--){
            if (strcmp (A[k].isi , A[k-1].isi ) == -1 ){
                temp[i] = A[k] ;
                A[k] = A[k-1] ;
                A[k-1] = temp[i] ;
            }
        }
    }
}

void tampil(huruf* A,int n){ //prosedur tampil
    int i;
    for (i=0 ; i < n; i++) {
        printf("Karakter ke-%d : %s \n", i+1, A[i].isi);
    }
}

void input(huruf* A, int i){ //prosedure input
    printf("Karakter ke-%d : ",i+1);
    scanf("%s",&A[i].isi);
}
  
    mainkar.c
#include "kar.h"

int main() {
    int n,i ;

    printf("Masukkan banyak karakter : ");
    scanf ("%d",&n);

    int A[n];

    for (i=0; i

        input(A,i);
    }

    urut(A,n);
    printf("\n");
    printf("Setelah diurutkan menjadi : \n");
    tampil(A,n);

return 1;
Ketiga : Sama seperti no. 2 tapi karakter yang diurutkan dari kalimat yang diinputkan dengan spasi dihilangkan.
Source Codenya :

Mari Belajar Algoritma dan Pemrograman (1)

Posting kali ini aku akan sedikit membahas tugas-tugas mata kuliah Algoritma dan Pemrogramanku. Yang dibutuhkan Notepad++ dan MinGW. Sebelum kita compile file kita, sebelumnya harus kita path dulu folder di mana kita menyimpan program yang dibuat melalui Command Prompt :
1. Masuk ke direktori :  D:\>cd {nama folder} 
2. Path dengan mengetikkan path=C:\MinGW\bin;%path% (apabila MinGW disimpan di C)   
3. Compile dengan mengetik gcc {nama file}.c
4. Untuk mengeksekusi ketikkan gcc .c -o {nama file}.exe


Soal pertama : Buat bintang dengan bentuk seperti berikut... (Misalkan inputannya 3)
 *
 ***
 *****
Source Codenya :
int main() {
    int a, i, spasi, bin;
  
    printf("Masukkan nilai : "); //memasukkan banyaknya input
    scanf("%d", &i);
  
    for(a=0; a
        for(spasi=(i-1); spasi>a; spasi--) {  //cetak spasi
            printf(" ");
        }
        for(bin=0; bin<=a; bin++) {  //cetak bintang
            printf("*");
        }
        for(bin=0; bin
            printf("*");
        }
        printf("\n");
    }
  
return 1;
}


Soal kedua : Buat sebuah penjinak bom, bila 3 kali gagal menjawab maka akan muncul tulisan "anda gagal". Apabila berhasil maka langsung akan muncul tulisan "anda berhasil".
Source Codenya :
int main() {
    int tebak;   
    int input;
    int n,m,bom;
   
    printf("Masukkan input utama : ");  //input yang akan ditebak
    scanf("%d", &input);
   
    n=0;
    m=0;
    while ((m != 3) && (tebak != input)){ //selama belum 3X gagal & tebakan belum benar
        printf("Masukkan tebakan : ");  //menginputkan tebakan
        scanf("%d", &tebak);
        if(tebak == input)  {  //jika tebak=input maka ketemu
            n=1;
        } else {   //jika tidak ketemu akan dihitung gagal
            m=m+1;
        }
    }
   
    if (n==1) {  //jika ketemu
        printf("Anda berhasil!! Bom telah jinak.. :D \n");
    } else {   
        printf("Anda gagal menjinakkan bom... ;p \n");
    }
return 1;
}

Soal ketiga : Buat kalkulator sederhana
Source Codenya :
int main() {
    float i, j, bagi;
    int a, b, mod, div, tambah, kurang, kali;
   
    printf("Ini adalah program kalkulator sederhana :\n");
    printf("Masukkan angka 1 : "); //input angka yang akan diproses
    scanf("%f", &i);
    printf("Masukkan angka 2 : ");
    scanf("%f", &j);
   
    //proses perhitungan
    tambah=(int) (i+j);
    kurang=(int) (i-j);
    bagi= i/j;
    kali=(int)(i*j);
    a=(int) i;
    b=(int) j;
    mod=a%b;
    div= ((a/b)-((a%b)/b));
   
    printf("\n");  //cetak hasil
    printf("Hasil tambahnya : %d \n", tambah);
    printf("Hasil kurangnya : %d \n", kurang);
    printf("Hasil kalinya : %d \n", kali);
    printf("Hasil baginya : %f \n", bagi);   
    printf("Hasil modnya : %d \n", mod);
    printf("Hasil divnya : %d \n", div);
   
return 1;
}


Selamat Mencoba... (^_^)v