0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan23 halaman

Final Project Alprog

Laporan ini membahas implementasi program algoritma dan pemrograman dalam bahasa C meliputi pembuatan kalender abadi, permainan tebak angka, dan permainan Tic Tac Toe. Program-program tersebut dibuat dengan menggunakan konsep dasar pemrograman seperti variabel, tipe data, perulangan, dan kondisi.

Diunggah oleh

Wahyu Darma
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
1K tayangan23 halaman

Final Project Alprog

Laporan ini membahas implementasi program algoritma dan pemrograman dalam bahasa C meliputi pembuatan kalender abadi, permainan tebak angka, dan permainan Tic Tac Toe. Program-program tersebut dibuat dengan menggunakan konsep dasar pemrograman seperti variabel, tipe data, perulangan, dan kondisi.

Diunggah oleh

Wahyu Darma
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 23

LAPORAN FINAL PROJECT ALGORITMA

DAN PEMROGRAMAN

OLEH :
Nama
NRP
Jurusan

: Wahyu Darma
: 2214100012
: TEKNIK ELEKTRO

INSTITUT TEKNOLOGI SEPULUH NOPEMBER


SURABAYA
2015
DAFTAR ISI

BAB I PENDAHULUAN......................................................................
1.1 Latar Belakang.........................................................................
1.2 Rumusan Masalah....................................................................
1.3 Tujuan......................................................................................
1.4 Manfaat....................................................................................
BAB II IMPLEMENTASI PROGRAM.................................................
2.1 Kalender Abadi.......................................................................
2.2 Tebak Angka............................................................................
2.3 Tic Tac Toe..............................................................................
BAB III PENUTUP...............................................................................
3.1 Kesimpulan..............................................................................
3.2 Kontribusi................................................................................
3.3 Lampiran..................................................................................

1
1
1
1
2
3
3
7
9
14
14
14
15

BAB I
PENDAHULUAN
1.1 Latar Belakang
Bahasa pemrograman adalah teknik instruksi untuk memerintahkan komputer.
Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dan

semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini


memungkinkan seorang programmer dapat menentukan secara persis data mana
yang akan diolah oleh komputer, bagaimana data ini akan disimpan atau diteruskan,
dan jenis langkah apa secara persis yang akan diambil dalam berbagai situasi. Di
dalam dunia perkuliahan pula, implementasi dari ilmu bahasa pemrograman yang
sudah didapatkan di dalam kelas menjadi sangatlah penting. Karena itu semua
menjadi salah satu tolak ukur apakah benar-benar mengerti tentang ilmu yang telah
didapatkan. Implementasi ilmu dapat dilakukan dengan terjun langsung ke
masyarakat dengan mengamalkan ilmu yang telah didapatkan, atau bisa diterapkan
dengan membuat sebuah alat, ataupun dengan cara implementasi yang lain berupa
sebuah project semester. Salah satu contoh konkrit project semester yang dapat
dijadikan sebagai wadah dalam pengimplementasian ilmu yang telah didapatkan
yaitu dengan membuat kalender abadi dalam bahasa C yang merupakan bagian dari
mata kuliah Algoritma dan Pemrograman.
1.2 Rumusan Masalah
1. Bagaimana cara mengimplementasikan bahasa pemrograman dalam pembuatan
kalender abadi ?
2. Bagaimana cara mengimplementasikan bahasa pemrogaman dalam pembuatan
permainan tebak angka?
3. Bagaimana cara mengimplementasikan bahasa pemrogaman dalam pembuatan
permainan Tic Tac Toe?
1.3 Tujuan
1. Mengimplementasikan bahasa pemrograman dalam pembuatan kalender abadi.
2. Mengimplementasikan bahasa pemrogaman dalam pembuatan permainan tebak
angka
3. Mengimplementasikan bahasa pemrogaman dalam pembuatan permainan Tic
Tac Toe
1
1.4 Manfaat
1. Mengasah logika, seni, intuisi dan kemampuan dalam pembuatan bahasa
pemrogaman.
2. Melatih kerja sama tim dalam pembuatan bahasa pemrogaman.
3. Menghibur manusia dari hasil pembuatan permainan dari bahasa pemrogaman
yang telah kita buat
4. Memudahkan manusia dalam mencari informasi mengenai waktu

2
BAB II
IMPLEMENTASI PROGRAM

2.1 Kalender Abadi

a. Menghitung banyaknya hari dalam suatu bulan.


Gambar di atas merupakan screen capture dari bagian program kalender
yang telah dibuat. Program tersebut bertujuan untuk mengetahui atau
menghitung banyaknya hari dalam suatu bulan tertentu. Dari program tersebut
dapat diketahui, jika input yang dimasukkan adalah bulan 1,3,5,7,8,10,12 maka
banyaknya hari dalam bulan tersebut adalah 31 hari. Selanjutnya, jika input
yang dimasukkan adalah bulan 4,6,9,11 maka banyaknya hari dalam bulan
tersebut adalah 30 hari. Berbeda jika yang diinputkan adalah bulan 2, karena
akan ada 4 kemungkinan output yang didapatkan. Pertama, jika tahun dari
bulan tersebut habis dibagi dengan 4, maka banyaknya hari dalam bulan
tersebut adalah 29 hari. Kedua, jika tahun dari bulan tersebut tidak habis dibagi
dengan 4, maka banyaknya hari dalam bulan tersebut adalah 28 hari.

b. Menghitung banyaknya hari dalam suatu tahun.


Gambar diatas merupakan screen capture dari bagian program kalender
tersebut. Program ini digunakan untuk mengetahui atau menghitung banyaknya
hari dalam suatu tahun. Dari program tersebut dapat diketahui, jika input yang
dimasukkan adalah tahun yang habis dibagi dengan 4, maka banyaknya hari
dalam tahun tersebut adalah 366 hari. Selanjutnya, jika input yang dimasukkan
adalah tahun yang tidak habis dibagi dengan 4, maka diketahui bahwa
banyaknya hari dalam tahun tersebut adalah 365 hari.

4
c. Mencetak Nama Hari dan pengaturan letaknya.

Gambar di atas merupakan screen capture dari bagian program kalender


yang telah dibuat. Program tersebut berfungsi untuk mencetak nama hari dalam
satu bulan.Satu bulan ini diasumsikan sebagai 7 hari dan 4 minggu maka dari
itu angka 7 yang dibuat bertujuan untuk mengatur hari tersebut secara
horizontal dan cukup 7 hari angka saja yang berada di horizontal tersebut.

d. Penggunaan

variabel

string

dalam

deklarasi

dan

Penginputan

data

menggunakan statement.
Gambar di atas merupakan screen capture dari bagian program kalender
yang telah dibuat. Program tersebut merupakan suatu sistem deklarasi yang
meliputi deklarasi dari integer dan (bulan) variabel string. Dalam deklarasi
tersebut, (bulan) dapat dikatakan sebagai variabel string karena mengandung
nilai-nilai string atau karakter-karakter di dalamnya. Nilai 12 dan 20 pada
kotak pertama menunjukkan banyaknya nilai-nilai string yang terkandung.
Nilai 20 pada kotak kedua menunjukkan panjang maksimumnya karakter dari
setiap nilai string yang terkandung. Deklarasi variabel string di atas tidak lain
merupakan deklarasi array bertipe char.Lalu terdapat statement-statement atau
fungsi utama yaitu fungsi printf dan scanf. Fungsi printf merupakan fungsi
yang umum digunakan untuk menampilkan data ke layar. Sedangkan fungsi
scanf merupakan fungsi yang digunakan untuk memasukkan berbagai jenis
data. Dalam program tersebut juga terdapat statement tahun dan bulan, yang
mana statement tahun berfungsi untuk menentukan tahun berapa yang akan
dituju pengguna dan statement bulan digunakan untuk menentukan bulan apa
yang akan dituju si pengguna program.
5
e .Hasil Keluaran program

Inilah hasil program yang keluar dari koding yang telah saya buat.Disini
kami mengambil sampel hari kemerdekaan Indonesia karena sampel tersebut bisa
diketahui apakah koding kita salah atau enggak tergantung kebenaran hari
kemerdekaan Indonesia yang ada di koding kita dengan hari kemerdekaan
Indonesia yang sebenarnya.

2.2Tebak Angka

a. Pembuatan Accesories berupa Pengenalan


Gambar diatas merupakan screen capture dari bagian program tebak
angka.Pada bagian ini saya hanya berinisiatif untuk membuat sebuah program
saya semenarik mungkin jadi saya menambahkan anggota dari pembuatan
program ini.Lalu disana juga ada perintah kepada penikmat game untuk
memikirkan angka dari 0 sampai 15.

b. Pembuatan Angka yang ada di Pikiran Kita


Gambar diatas merupakan screen capture dari bagian program tebak
angka.Pada bagian ini kita akan menjawab pertanyaan dari kalimat yang
dikeluarkan oleh program ini dengan menjawab 1 jika ada dan 0 jika tidak
ada.Jawaban tersebut dapat kita tulis dengan menggunakan koding scanf yang
tertera dibawah kalimat yang dikeluarkan program tersebut.

c. Proses Keluaran Hasilnya


Gambar diatas merupakan screen capture dari bagian program tebak
angka.Pada bagian ini terjadi proses keluaran hasilnya.Disini saya memanfaatkan
teknik bilangan biner dengan hasil jawaban angka dari pertanyaan yang kita jawab
paling kiri tersebut kita kali dengan 2 pangkat 3 terus ditambah dengan hasil
jawaban angka dari pertanyaan yang kita jawab selanjutnya yang telah dikali
dengan 2 pangkat 2 lalu ditambah dengan hasil jawaban angka dari pertanyaan
yang kita jawab selanjutnya yang telah dikali 2 pangkat 1 dan terakhir ditambah
dengan hasil jawaban angka dari pertanyaan yang kita jawab paling kanan yang
telah dikali dengan 2 pangkat 0.

d.Hasil keluaran program


Gambar diatas merupakan screen capture dari bagian program tebak
angka.Pada bagian ini adalah hasil program yang telah kita buat sebelumnya.
8

2.3 Tic Tac Toe

a.

Penggunaan variabel string dalam deklarasi


Gambar di atas merupakan screen capture dari bagian program Tic Tac

Toe yang telah dibuat.Ini menggunakan tipe string dimana kita akan membuat

ruang kosong berbentuk matriks untuk peletakan papan permainan.Lalu disana


juga ada input untuk klasifikasi gerakan pemain,gerakan komputer,tampilan papan
Tic Tac Toe, dan pengecekkan kemenangan.

b. Pembuatan Langkah-langkah
Gambar di atas merupakan screen capture dari bagian program Tic Tac
Toe yang telah dibuat.Koding ini dibuat agar klasifikasi yang kita buat seperti
gerakan pemain atau tampilan papan Tic Tac Toe akan melakukan proses yang
kita buat melalui koding.Ibaratnya ini adalah pemisalan variabel gerakan yang
akan dilakukan.
9

c. Pembuatan Ruang dalam Matriks


Gambar di atas merupakan screen capture dari bagian program Tic Tac
Toe yang telah dibuat.Koding ini berguna untuk membuat ruang yang kosong
untuk penempatan variabel X dan O dalam papan permainan Tic Tac
Toe.Sebenarnya ruang itu diisi oleh karakter space jadi keliatan seperti tidak
keliatan.

d. Pembuatan Koding Gerakan Pemain


Gambar di atas merupakan screen capture dari bagian program Tic Tac
Toe yang telah dibuat.Ini merupakan koding untuk gerakan pemain.Jadi disini kita
berperan dalam permainan yang bervariabel X di papan Tic Tac Toe.Lalu kita
akan disuruh menentukan yang mana yang akan kita isi.Kita akan mengisinya
dengan cara koordinat yang telah diajari waktu SD yakni memakai angka.Jika
Koordinat telah terisi maka kita tidak bisa mengisinya dua kali dan kita akan
mendapat perintah Invlid move,try again
10

e. Pembuatan Gerakan Komputer

Gambar di atas merupakan screen capture dari bagian program Tic Tac
Toe yang telah dibuat.Cara kerjanya adalah komputer yang bermain bersama kita
memakai variabel O dalam papan Tic tac Toe.Lalu di koding ini akan
mendeteksi gerakan yang telah diambil pemain sehingga gerakan komputer tidak
bisa mengambil mengisi gerakan pemain yang telah menempati daerah tersebut
dan jika semua gerakan telah diisi maka otomatis akan keluar kata draw.

11
f. Pembuatan Tampilan Papan Tic Tac Toe
Gambar di atas merupakan screen capture dari bagian program Tic Tac
Toe yang telah dibuat.Koding ini dibuat untuk membuat papan Tic Tac Toe seperti
matriks tapi dengan batas garis sehingga seperti kotak-kotak persegi.Koding ini
berhubungan dengan koding pembuatan ruang kosong yakni menggunakan tipe
string.

g. Pengecekkan Kemenangan
Gambar di atas merupakan screen capture dari bagian program Tic Tac
Toe yang telah dibuat.Koding ini dibuat untuk melakukan pengecekkan
kemenangan variabel yang sama yang terdapat pada papan permainan Tic Tac
Toe.Pengecekkan tersebut dibagi dalam 3 bentuk arah deteksinya yakni secara
horizontal,secara vertikal dan secara diagonal.Jika ada salah satu pemain yang
mewakili variabelnya dempet bersamaan apakah itu secara horizontal,vertikal,atau
diagonal maka koding tersebut akan mendeteksi dan akan menentukan
pemenangnya melalui variabel X atau O tadi.
12
h. Hasil keluaran

13

BAB III
PENUTUP

3.1 Kesimpulan
Implementasi ilmu yang telah didapatkan, dapat dilakukan dengan
berbagai bentuk maupun cara, salah satunya dengan adanya project semester.
Dengan cara ini, ilmu yang telah didapatkan dalam kelas dapat dituangkan

secara langsung, sehingga akan diketahui apakah ilmu yang diajarkan dapat
diterima dengan baik atau tidak. Dalam mata kuliah algoritma dan
pemrograman, project semester yang diberikan yaitu pembuatan kalender
abadi. Dalam proses pembuatannya, banyak aspek yang diaplikasikan, di
antaranya pengaplikasian proses pengambilan keputusan, proses perulangan
dan penggunaan fungsi. Semua aspek tersebut telah dikembangkan dalam
program sebanyak 3 program tersebut. Pengembangan tersebut merupakan
bagian dari skill asah logika, kemampuan berintuisi dan jiwa seni yang
dimiliki oleh seorang pembuat program tersebut. Selain itu, dalam proses
pengembangan juga diperlukan suatu pemahaman teori yang baik dan kajian
literatur yang banyak.
3.2 Kontribusi
Dalam penyelesaian project algoritma dan pemrograman semester ini,
penulis memberi kontribusi sebagai pembuat program dan juga perancang
program supaya hasil dari program tersebut ketika di run memberikan
tampilan yang sebenarnya sesuai dengan yang diharapkan dan bagus untuk
dilihat dan juga mudah untuk dipahami.

14

LAMPIRAN

2.1 Kalender Abadi


#include<stdio.h>
int jum_hari(int b,int y1)
{
int h;

if(b==1 || b==3 || b==5 || b==7 || b==8 || b==10 || b==12)


h=31;
else if(b==4 || b==6 || b==9 || b==11)
h=30;
else if((y1%100!=0 && y1%4==0) || y1%400==0)
h=29;
else
h=28;
return h;
}
main()
{
int t,tahun,y1,bulan,b,h,i,j,k;
char nama_bulan[12]
[20]={"Januari","Februari","Maret","April","Mei","Juni","Juli",
"Agustus","September","Oktober","November","Desember"};
printf("Masukkan tahun : ");
scanf("%d",&tahun);
printf("Masukkan bulan [1 sd. 12]: ");
scanf("%d",&bulan);
15
t=0;
for(y1=0;y1<tahun;y1++)
{
if((y1%100!=0 && y1%4==0) || y1%400==0)
{t=t+366;}
else
{t=t+365;}
}

b=1;
for(b=1;b<bulan;b++)
{
h=jum_hari(b,tahun);
t=t+h;
}
h=t%7;
printf("\n
printf("

--------------'%d'--------------\n",tahun);
----'%s'----\n",nama_bulan[bulan-1]);

printf(" Min Sen Sel Rab Kam Jum Sab \n");


k=1;
for(i=1;i<=jum_hari(bulan,tahun);i++,k++)
{
if(i==1)
{
if(h==0)
{
for(j=1;j<7;j++,k++)
printf("%6s","");
16
}
else
{
for(j=1;j<h;j++,k++)
printf("%6s","");
}
}
printf("%6d",i);

if(k%7==0)
{printf("\n");}
}
return(0);
}

2.2Tebak Angka
#include <stdio.h>
#include <math.h>
int main()
{
int a,b,c,d,hasil;
printf("=============ALGORITMA

DAN

PEMROGAMAN=============\n\n");
printf("NAMA\t:\n");
printf("1. PRASETYO TRI ANGGORO (2214100072)\n");
printf("2. WAHYU DARMA (2214100012)\n");
printf ("\nAnda telah masuk dalam permainan tebak angka");
printf("\nPikirkan angka dari 0 sampai 15");
printf ("\nApakah angka dibawah ada dipikiran anda?");
17
printf("\n 8 9 10 11 12 13 14 15 \njika ada maka ketik huruf '1'
jika tidak maka ketik huruf '0' = ");
scanf(" %d", &a);
printf("\n 4 5 6 7 12 13 14 15 \njika ada maka ketik huruf '1'
jika tidak maka ketik huruf '0' = ");
scanf(" %d", &b);
printf("\n 2 3 6 7 10 11 14 15 \njika ada maka ketik huruf '1'
jika tidak maka ketik huruf '0' = ");
scanf(" %d", &c);
printf("\n 1 3 5 7 9 11 13 15 \njika ada maka ketik huruf '1' jika
tidak maka ketik huruf '0' = ");
scanf(" %d", &d);
hasil=a*pow(2,3)+b*pow(2,2)+c*pow(2,1)+d*pow(2,0);
printf("angka yang kamu pikikan adalah %d",hasil);

return 0;
}
2.3Tic Tac Toe
#include <stdio.h>
#include <stdlib.h>
char matrix[3][3]; /* the tic tac toe matrix */
char check(void);
void init_matrix(void);
void get_player_move(void);
void get_computer_move(void);
18
void disp_matrix(void);
int main(void)
{
char done;
printf("This is the game of Tic Tac Toe.\n");
printf("You will be playing against the computer.\n");
done = ' ';
init_matrix();
do {
disp_matrix();
get_player_move();
done = check(); /* see if winner */
if(done!= ' ') break; /* winner!*/
get_computer_move();
done = check(); /* see if winner */
} while(done== ' ');
if(done=='X') printf("You won!\n");
else printf("I won!!!!\n");
disp_matrix(); /* show final positions */
return 0;
}
/* Initialize the matrix. */
void init_matrix(void)
{
int i, j;
19
for(i=0; i<3; i++)

for(j=0; j<3; j++) matrix[i][j] = ' ';


}
/* Get a player's move. */
void get_player_move(void)
{
int x, y;
printf("Enter X,Y coordinates for your move: ");
scanf("%d%*c%d", &x, &y);
x--; y--;
if(matrix[x][y]!= ' '){
printf("Invalid move, try again.\n");
get_player_move();
}
else matrix[x][y] = 'X';
}
/* Get a move from the computer. */
void get_computer_move(void)
{
int i, j;
for(i=0; i<3; i++){
for(j=0; j<3; j++)
if(matrix[i][j]==' ') break;
if(matrix[i][j]==' ') break;
}
20
if(i*j==9) {
printf("draw\n");
exit(0);
}
else
matrix[i][j] = 'O';
}
/* Display the matrix on the screen. */
void disp_matrix(void)
{
int t;
for(t=0; t<3; t++) {
printf(" %c | %c | %c ",matrix[t][0],
matrix[t][1], matrix [t][2]);
if(t!=2) printf("\n---|---|---\n");

}
printf("\n");
}
/* See if there is a winner. */
char check(void)
{
int i;
for(i=0; i<3; i++) /* check rows */
if(matrix[i][0]==matrix[i][1] &&
matrix[i][0]==matrix[i][2]) return matrix[i][0];
21
for(i=0; i<3; i++) /* check columns */
if(matrix[0][i]==matrix[1][i] &&
matrix[0][i]==matrix[2][i]) return matrix[0][i];
/* test diagonals */
if(matrix[0][0]==matrix[1][1] &&
matrix[1][1]==matrix[2][2])
return matrix[0][0];
if(matrix[0][2]==matrix[1][1] &&
matrix[1][1]==matrix[2][0])
return matrix[0][2];
return ' ';
}

22

Anda mungkin juga menyukai