Loading...

game scrabble dari bahasa C

     Disini saya akan sharing mengenai tugas besar untuk mata kuliah pemrograman terstruktur, yaitu tentang gam scrabble.

     Apa sih game scrabble itu?
     mungkin bagi sebagian orang yang belum tau pasti bingung mengartikan istilah / nama game ini. saya dulu juga bingung dan mencari-cari di internet apa itu game scrabble. :)






sejarah singkat game scrabble



     Permainan Scrabble mulanya diciptakan di tahun 1938 dengan nama "Criss-Crosswords" oleh seorang arsitek bernama Alfred Mosher Butts. Permainan ini merupakan penyempurnaan dari permainan Lexiko yang lebih dulu diciptakannya, tapi dilengkapi papan permainan dan cara bermain seperti teka-teki silang. Permainan tetap menggunakan keping huruf seperti Lexiko yang dibuat berdasarkan hasil perhitungan distribusi frekuensi penggunaan huruf berbagai tulisan berbahasa Inggris, termasuk artikel surat kabar The New York Times. Alfred Butts memproduksi sendiri permainan ini dan menawarkannya ke berbagai perusahaan mainan besar tapi tidak laku.
     Di tahun 1948, pengacara James Brunot, penduduk asal Newtown, Connecticut membeli hak memproduksi permainan "Criss-Crosswords" dengan janji memberi Butts royalti dari setiap unit yang terjual. Sebagai pemilik yang baru, Brunot mengganti nama permainan menjadi "Scrabble", sebuah kata dalam bahasa Inggris yang berarti "berjuang membanting tulang". Brunot hanya sedikit mengubah kotak-kotak "bonus" pada papan permainan, dan menyederhanakan aturan permainan. Permainan Scrabble ternyata laku dijual. Salah satu pembelinya adalah toko serba ada Macy's yang berhasil mengangkat Scrabble menjadi mainan yang ingin dibeli konsumen.
     Di tahun 1953, Brunot menjual hak produksi permainan Scrabble kepada Selchow and Righter, karena kapasitas produksi tidak mampu lagi memenuhi permintaan. Seperti halnya Parker Brothers dan Milton Bradley, Selchow and Righter adalah salah satu dari pabrik mainan besar yang dulu pernah menolak untuk membeli permainan Scrabble. Di Britania Raya dan Australia, Scrabble mulai dipasarkan J. W. Spear & Sons tanggal 19 Januari 1955. Perusahaan J. W. Spear & Sons sekarang merupakan anak perusahaan dari Mattel Di tahun 1986, Selchow and Righter menjual permainan ini kepada Coleco yang kemudian menjualnya lagi kepada Hasbro.

untuk download contoh game scrabble dari bahasa c --> download disini

untuk menjalankannya tinggal dibuka file .exe nya
kalau tidak mengerti baca dulu di help.
semoga bermanfaat :)

fungsi (function) di dalam bahasa C



     Fungsi merupakan blok dari kode program yang dirancang untuk melaksanakan tugas khusus. Fungsi banyak dilibatkan dalam pembuatan suatu program, dengan tujuan :




*       Program menjadi lebih tersetuktur, sehingga mudah dipahami dan mudah dikembangkan
*       Dapat mengurangi pengulangan kode.
Bentuk umum suatu fungsi adalah sebagai berikut :
Tipedata namafungsi(daftarparameter)
{
    /*Badan Fungsi*/
    return nilaireturn; /* untuk tipe data bukan void */
}

fungsi bertipe void

     Fungsi bertipe void, kalau dalam program pascal atau delphi disebut sebagai procedure. Fungsi ini tidak mempunyai nilai kembalian, jadi fungsi bertipe ini hanya merupakan sekumpulan kode program yang bekerja sesuai dengan parameter yang diberikan.

Contoh fungsi bertipe void :
void TampilNama()
{
     textcolor(RED);
     cprintf(“Nama Saya : Tulis Nama Ada\n\r”);
     cprintf(“Alamat    : Jl. Can Di Aspal No. 70\n\r”);
     cprintf(“Telepon   : 022-2513709\n\r”);
}

main()
{
     TampilNama();
     TampilNama();
     TampilNama();
}

Dalam program di atas, ada sebuah fungsi yang bernama TampilNama(), yang berguna untuk menampilkan data Nama, Alamat, dan Telepon. Dalam program utama (fungsi main() ), cara pemanggilan fungsi tersebut adalah dengan menulis nama fungsinya (dalam hal ini TampilNama() ). Jadi program di atas akan menampilkan isi fungsi TampilNama() sebanyak 3 kali.
Fungsi di atas merupakan fungsi yang dipanggil tanpa memakai parameter. Untuk melihat contoh fungsi berparameter, perhatikan program di bawah ini.
void Kotak(int X1,int Y1, int X2,int Y2,int Bingkai,int Latar)
{
     int i;
     textcolor(Bingkai);
     textbackground(Latar);
     gotoxy(X1,Y1);cprintf(“é”); /* alt+218 */
     gotoxy(X1,Y2);cprintf(“%c”,192);
     gotoxy(X2,Y1);cprintf(“%c”,191);
     gotoxy(X2,Y2);cprintf(“%c”,217);
     for (i=X1+1;i<=X2-1;i++)
     {
          gotoxy(i,Y1);cprintf(“%c”,196);
          gotoxy(i,Y2);cprintf(“%c”,196);
     }           
     for(i=Y1+1;i<=Y2-1;i++)
     {
          gotoxy(X1,i);cprintf(“%c”,179);
          gotoxy(X2,i);cprintf(“%c”,179);
     }
}
main()
{
     Kotak(1,1,80,24,WHITE,BLUE);// Memanggil Procedur Kotak
     Kotak(2,2,15,23,WHITE,RED);
     getch();
     return 0;
}


Void Kotak merupakan sebuah fungsi yang akan membuat suatu kotak di layar sesuai dengan koordinat yang diberikan di bagian parameter. Koordinat tersebut adalah koordinat kiri atas (X1,Y1), dan koordinat titik kanan bawah (X2,Y2). Selain itu fungsi ini membutuhkan parameter Bingkai yang berguna untuk menentukan warna bingkai kotak, dan juga parameter Latar yang berguna untuk menentukan warna latar belakang kotak yang dibuat.
Pemanggilan Kotak(1,1,80,24,WHITE,BLUE) berguna untuk membuat kotak dengan posisi kiri atas pada koordinat (1,1) dan posisi kanan bawah pada koordinat (80,24) dengan warna bingkai kotak berwarna putih*dengan latar belakang kotak berwarna biru.




fungsi bertipe data
     Dalam dunia matematika, kita mengenal fungsi. Contoh : F(X)=X2+3X+5, yang berarti kita mempunyai sebuah fungsi bernama F yang membutuhkan parameter X sebagai data yang akan dihitung dengan persamaan X2+3X+5 sehingga kalau kita menulis F(5), maka nilai dari fungsi tersebut adalah 52 + 3.5+ 5 = 45.
Bentuk umum dari Function ini dalam bahasa Pascal adalah :

typedata NamaFungsi(daftar parameter)
{
Perintah;
Perintah;
Return NilaiHasilUntukFungsi;
}

Contoh 1 : Fungsi matematik untuk menghitung persamaan F(X) = X2+3X+5;
float F(float X)
{
     return X*X+3*X+5;//Fungsi diisi hasil dari perhitungan X2+3*X+5
}

Contoh 2 : Fungsi untuk mencari Faktorial dari suatu nilai
float Faktorial(int N)
{
   int I;
   float Hasil;
   Hasil:=1;
   for(I=2;I<=N;I++)
         Hasil=Hasil * I;
   return Hasil;
}    

Contoh 3: Fungsi untuk mencari Kombinasi dengan rumus :
  Kombinasi (X,Y) =  
Float  Kombinasi(int X, int Y)
{
        return Faktorial(Y) / (Faktorial(X)*Faktorial(Y-X));
}

penjelasan percabangan pada bahasa C


Bentuk dasar perintah if – else adalah sebagai berikut :

if (expression)
    Statement1;
else
    Statement2;
StatementBerikutnya;
     Jika ketika dieksekusi ekspresi menghasilkan nilai true, maka statement1 akan dieksekusi dan statement2 tidak akan dikerjakan dan kemudian program akan mengeksekusi statementberikutnya, dan jika ekspresi tersebut bernilai false maka statement1 tidak akan dieksekusi dan statement2 akan dieksekusi, dan dilanjutkan dengan mengeksekusi statementberikutnya.

Operator-operator yang biasa digunakan dalam operasi logika, dapat dilihat di tabel di bawah ini.
Operator
Contoh
Arti
==
A==B
Apakah Isi Variabel A sama dengan Isi Variabel B
!=
A!=B
Apakah Isi Variabel A Tidak Sama Dengan Isi Variabel B
> 
A>B
Apakah Isi Variabel A lebih besar dari Isi Variabel B
< 
A<B
Apakah Isi Variabel A lebih kecil dari Isi Variabel B
>=
A>=B
Apakah Isi Variabel A lebih besar atau sama dengan Isi Variabel B
<=
A<=B
Apakah Isi Variabel A lebih kecil atau sama dengan Isi Variabel B
&&
(A<=100)
&&(A>=80)
Apakah A lebih kecil atau sama dengan dari 100 dan A lebih besar atau sama dengan 80
||
(A>100)||
(A<0)
Apakah A lebih besar dari 100 atau A lebih kecil dari 0
!
!(A==B)
Apakah A Tidak Sama dengan B


Untuk lebih jelas, perhatikan perintah berikut :
#include <stdio.h>
#include <conio.h>
main()<$2Fo:p>
{
   int Nilai;
   printf(“Nilai : “);scanf(“%i”,&Nilai);
   if(Nilai>=50)
     printf(“Selamat Anda Lulus.”);
   else
     printf(“Maaf. Anda Tidak Lulus.”);
   getch();
   return 0;
}

     Perintah di atas hanya mempunyai 2 kemungkinan yaitu keterangan “Selamat Anda Lulus” jika nilai lebih besar dari atau sama dengan 50 dan keterangan “Maaf. Anda Tidak Lulus”, ketika nilai lebih kecil dari 50.
Jika perintah yang akan dieksekusi ketika kondisi tercapai lebih dari 1 perintah, maka perintah-perintah tersebut harus diblok dengan tanda kurawal {}.

Perhatikan program di bawah ini yang merupakan perubahan dari program di atas.
#include <stdio.h>
#include <conio.h>
main()
{
   int Nilai;
   printf(“Nilai : “);scanf(“%i”,&Nilai);
   if(Nilai>=50)
   {
       printf(“Anda Hebat!\n”);
       printf(“Selamat Anda Lulus.”);
   }
   else
   {
       printf(“Maaf. Anda Tidak Lulus.”);
       printf(“Perbaiki semester depan yah!.”);
   }
   getch();
   return 0;
}


Perhatikan juga program di bawah ini :
#include <stdio.h>
#include <conio.h>
main()
{
   int a,b;
   printf(“Masukan A : “);scanf(“%i”,&a);
   printf(“Masukan B : “);scanf(“%i”,&b);
   if(a==b)
      printf(“Isi Variabel A Sama Dengan B”);
   else
   if(a>b)
      printf(“Isi Variabel A lebih besar dari B”);
   else
   if(a<b)
      printf(“Isi Variabel A lebih kecil dari B”);
   getch();
   return 0;
}
     
     Program di atas akan meminta anda untuk memasukan nilai variabel A dan B, kemudian program akan memeriksa apakah variabel A samadengan B, atau A lebih besar dari B, dan A lebih kecil dari B.

output data pada bahasa C

output data pada bahasa C

     Untuk output data, perintah yang bisa dipakai adalah printf(). Untuk menampilkan data dengan fungsi printf(), kita harus mengatur format tampilannya, dengan format-format penentu. Untuk lebih jelas perhatikan program di bawah ini.
#include <stdio.h>
#include <conio.h>
main()
{
     int a=25000;
     unsigned int b=50000;
     float c=12345.678;
     char nama[50]="Universitas Muhammadiyah";
     char alamat[10]="Malang";
     clrscr();
     printf("Penampilan data tanpa di format\n");
     printf("Nilai a : %d\n",a);
     printf("Nilai b : %u\n",b);
     printf("Nilai c : %f\n",c);
     printf("String  : %s %s\n",nama,alamat);//rata kanan
     printf("Penampilan data setelah di format\n");
     printf("Nilai a : %8d\n",a);
     printf("Nilai b : %8u\n",b);
     printf("Nilai c : %11.2f\n",c);
     printf("String 1: %40s %10s\n",nama,alamat);//rata kanan
     printf("String 2: %-40s %-10s\n",nama,alamat);//rata kanan
     getch();
     return 0;
}
Program di atas akan menampilkan hasil eksekusi seperti di bawah ini :
Penampilan data tanpa di format
Nilai a : 25000
Nilai b : 50000
Nilai c : 12345.677734
String  : Universitas Muhammadiyah Malang
Penampilan data setelah di format
Nilai a :    25000
Nilai b :    50000
Nilai c :    12345.68
String 1:           Universitas Muhammadiyah    Malang
String 2: Universitas  Muhammadiyah            Malang
memasukkan (input) data dalam bahasa C

memasukkan (input) data dalam bahasa C

     Umumnya suatu program mempunyai proses pemasukan data. Dalam program berbahasa C, pemasukan data  dapat dilakukan dengan perintah scanf. Fungsi scanf merupakan fungsi yang dapat digunakan untuk memasukan berbagai jenis data, tergantung dengan format penentunya.

Format-format penentu tipe data yang umum dipakai adalah :

Format
Kegunaan
%c
Digunakan untuk pemasukan data bertipe char.
%i atau %d
Digunakan untuk pemasukan data bertipe int, char.
%u
Digunakan untuk pemasukan data berupa unsigned int atau unsigned char.
%f
Digunakan untuk pemasukan data berupa bilangan pecahan (float).
%g
Digunakan untuk mmemasukan data float dengan pembulatan koma(,) otomatis.
%o
Digunakan untuk pemasukan data angka berbasis octal.
%x
Digunakan untuk pemasukan data angka berbasis hexadecimal.
%s
Digunakan untuk pemasukan data berupa string.
%lf
Digunakan untuk pemasukan data berupa double.



Bentuk umum penggunaan fungsi scanf adalah

scanf(“format”,&namavariabel);

Contoh :
int i,jam,menit,detik;
unsigned int j;
float f;
char nama[60];
scanf(“%i”,&i);
scanf(“%u”,&j);
scanf(“%f”,&f);
scanf(“%i %i %i”,&jam,&menit,&detik);
scanf("%s",&nama);
     
     Fungsi scanf() kurang begitu bagus jika dipakai untuk pembacaan string. Karena data yang tersimpan adalah hanya sampai menemukan spasi, maksudnya jika kita mengisikan 2 buah kata dengan pemisah spasi, maka data yang masuk ke variabel tersebut hanyalah kata yang pertama.
Oleh karena itu, pembacaan data bertipe string biasanya menggunakan perintah gets() yang bentuk umumnya adalah :

gets(namavariabel);

Contoh : 
gets(nama);
gets(alamat);


     Untuk pembacaan data bertipe char, selain dengan menggunakan scanf() dengan format %c, bisa juga dengan menggunakan fungsi getch() atau getche(). Perbedaan dari getch() dan getche() adalah getch() digunakan untuk membaca data bertipe char tanpa menampilkannya di layar, dan getche() digunakan untuk membaca data bertipe char dengan menampilkan data karakternya di layar.

Contoh :
#include <stdio.h>
#include <conio.h>
main()
{
    char a,b;
    printf(“Masukan Huruf pertama : “);
    a=getch();
    printf(“Masukan Huruf kedua : “);
    b=getche();
    printf(“Data yang dimasukan adalah %c dan %d\n”,a,b);
    getch();
    return 0;
}

Aturan-aturan perhitungan dalam bahasa C


Perhatikan perintah berikut :
float a;
a= 9/5;
Jika anda mengharapkan bahwa nilai yang didapat adalah 1.8, maka anda akan kecewa, karena angka yang didapat adalah 1. Kenapa ini terjadi?.
Ada aturan-aturan pengkonversian data yang berlaku dalam suatu operasi perhitungan, diantaranya :
1.    Jika suatu bilangan bulat dioperasikan dengan bilangan bulat, maka nilai yang didapat adalah bilangan bulat pula.
2.    Operasi perhitungan dilakukan berdasarkan tipe bilangan yang terbesarnya. Jadi jika ada suatu perhitungan antara int dengan long, maka komputer akan memperlakukan int sebagai long.
Untuk mengkonversi suatu variabel  menjadi suatu variabel yang berbeda tipe, maka bisa dilakukan dengan type cast. Caranya adalah dengan menulis tipe data yang diinginkan diapit dengan tanda kurung. Contoh :
float a,b;
a=(float)9/5;
b=(float)(9/5);
Pada perintah a=(float) 9/5, maka angka 9 akan dikonversikan menjadi float sehingga perintah tersebut akan menghasilkan nilai 1.8, tetapi jika perintah b=(float)(9/5) dikerjakan maka akan menghasilkan nilai 1.0 karena yang dikerjakan duluan adalah 9/5 yang menghasilkan nilai 1 yang kemudian dikonversikan ke dalam bentuk float.

Konversi tipe data juga terjadi dalam operasi penugasan / pengisian data terhadap variabel. Perhatikan perintah berikut :
#include <stdio.h>
#include <conio.h>
main()
{
    char c;
    int i;
    float f;
    f=65.9;
    i=f;
    c=i;
    printf("F  : %f\n",f);
    printf("I  : %d\n",i);
    printf("C  : %c\n",c);
    getch();
    return 0;
}
Jika dieksekusi, akan menghasilkan :
F  : 65.900002
I  : 65
C  : A

Keterangan :
-      f=65.9; pengisian nilai 65.9 ke variabel f
-      i=f; pengisian nilai f ke variabel i. Dalam baris ini terjadi konversi dari flo`t ke int. Pengkonversian float ke int selalu menghilangan angka pecahannya, dan tidak terjadi pembulatan.
-      c=i; pengisian nilai i ke variabel c. Dalam baris ini terjadi konversi dari int ke char.

operato-operator perhitungan dalam bahasa C



      Untuk melakukan perhitungan-perhitungan data, maka diperlukan operator-operator perhitungannya. Operator-operator yang paling umum dipakai dalam pemrograman dengan bahasa C adalah :
Operator
Contoh
Arti
+
c=a+b
Variable c diisi dari isi variable a ditambah isi variable b
-
c=a-b
Variable c diisi dari isi variable a dikurangi isi variable b
*
c=a*b
Variable c diisi dari isi variable a dikali dengan isi variable b
/
c=a/b
Variable c diisi dari isi variable a dibagi oleh isi variable b
++
a++
Isi variable a ditambah 1. Perintah ini sama dengan a=a+1 atau a+=1
--
b--
Isi variable a dikurang. Perintah ini sama dengan a=a-1 atau a-=1
%
c=a % b
Variable c diisi dari sisa pembagian variable a dibagi variable b
+=
c+=a
Variable c ditambah dengan isi variable a. Sama dengan c=c+a
/=
c/=a
Variable c dibagi dengan isi variable a. Sama dengan c=c/a
-=
c-=a
Variable c dikurangi dengan isi variable a. Sama dengan c=c-a
*=
c*=a
Variable c dikali dengan isi variable a. Sama dengan c=c*a
%=
c%=a
Variable c diisi dari sisa pembagian c dibagi isi variable a. Sama dengan c=c%a

Contoh program :
#include <stdio.h>
#include <conio.h>
main()
{
   int x=20, y=8, z;
   clrscr();
   printf("X = %d dan Y = %d\n",x,y);
   printf("X / Y = %d\n",x/y);
   printf("X %% Y = %d\n", x % y);
   x+=2;
   printf("Nilai X sekarang : %i\n",x);
   x++;
   printf("Nilai X setelah X++ : %i\n",x);
   printf("Nilai Y : %d\n",y++);
   printf("Nilai Y setelahnya : %d\n",y);
   z=++x;
   printf("Nilai Z : %d\n",z);
   getch();
   return 0;
}

Program di atas akan menampilkan hasil seperti berikut :
X = 20 dan Y = 8
X / Y = 2
X % Y = 4
Nilai X sekarang : 22
Nilai X setelah X++ : 23
Nilai Y : 8
Nilai Y setelahnya : 9
Nilai Z : 24

Opr.
Istilah
Keterangan
I++
Post increment
Nilai I dikeluarkan dulu, kemudian I ditambah 1
++I
Pre increment
Nilai I ditambah 1 dulu, kemudian nilainya dikeluarkan
I--
Post decrement
Nilai I dikeluarkan dulu, kemudian I dikurangi 1
--I
Pre decrement
Nilai I dikurangi 1 dulu, kemudian nilainya dikeluarkan