Final Project Alprog

  • Uploaded by: Wahyu Darma
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Final Project Alprog as PDF for free.

More details

  • Words: 2,267
  • Pages: 23
Loading documents preview...
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.

3

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.

6

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.

7

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
b=1; for(b=1;b
--------------'%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
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

Related Documents

Final Project Alprog
February 2021 1
Final Project
February 2021 1
Cpc Final Project Nm
February 2021 1
Final Project Report
January 2021 1
Cpc Final Project
February 2021 1

More Documents from "Shreya Ghosh Dastidar"