Minggu, 04 Desember 2011

TYPE DATA ARRAY / LARIK

 adalah type data lanjutan yang memungkinkan sebuah
   variabel dapat menampung banyak data.
   --> banyak data? : sebutkan misalnya 10, 100 1000 dst...
  
   misal :
   a. terdapat 12 nama bulan dalam satu tahun, yaitu
      bulan ke-1 adalah "Januari"
      bulan ke-2 adalah "februari"
      dst...
      bulan ke-12 adalah "Desember"
      maka mendefinisikan di kamus :
      nama_bln : array of string [1..12]

   b. dalam satu semester, tugas yang dibebankan kepada
      mahasiswa terdapat 10 buah tugas yang mempunyai nilai.
      nil_tgs ke-1 mendapat 70 point
      nil_tgs ke-2 mendapat 80 point
      nil_tgs ke-3 mendapat 75 point
      dst
      nil_tgs ke-10 mendapat 80 point
        maka mendefinisikan di kamus :
       nil_tgs : array of integer [1..10]

Pada Algoritma, data yang akan ditampung pada variabel array
harus didefinisikan no.indeknya...
karena :
   setiap kali kita mendefinisikan variabel Array, maka
   secara otomatis kita memecah variabal tsb menjd banyak bag.
misal :
    X : array of integer [1..5];
    artinya :
         x[1] : integer
         x[2] : integer
         x[3] : integer
         x[4] : integer
         x[5] : integer

    x di-isi dengan 10...?
    x yang mana?

Soal 1:
10 anggota pramuka dari SD "KASIH IBU" sedang mengadakan
acara. ada 2 kegiatan yg harus diikuti oleh semua anggota,
yaitu Mencari Jejak dan Belajar Tali Temali.
untuk menentukan siapa2 saja anggota pramuka yang
mencari jejak atau tali temali, dilihat dari umur mereka
masing2.
bagi yang umurnya diatas rata2 umur semua anggota,
akan diajak mencari jejak dan sisanya belajar tali temali.
Berapa anggota yang diajak mencari jejak dan
berapa anggota yang belajar tali temali?

JUDUL : Pramuka
KAMUS
   umur : array of integer [1..10]
   x    : integer
   jumlah : integer
   rata : float
   jmj : integer
   jbtt : integer
ALGORITMA
   jumlah=0
   for(x=1; x<=10; x=x+1)
      input umur[x]
      jumlah=jumlah+umur[x]

   rata=jumlah/10
  
   jmj=0
   jbtt=0
   for(x=1; x<=10; x=x+1)
      if(umur[x] > rata) then
         jmj=jmj+1
      else
         jbtt=jbtt+1

   output jmj, jbtt

+++) jika soal diatas ditambahi :
     - Berapa dan Siapa saja anggota yang mencari jejak
     - Berapa dan siapa saja anggota yang belajar tali temali

Soal 2:
Untuk mendaftar ujian Skripsi, koordinator mengharuskan
mahasiswa untuk menyerahkan sertifikat TOEFL.
Nama mahasiswa dan Nilai TOEFL akan didata sehingga
Ketua Program Studi dapat mengetahui Berapa Rata2 Nilai TOEFL
mahasiswa, berapa nilai terbesar dan berapa nilai terkecil?

JUDUL : NILAI_TOEFL
KAMUS
    nama_mhs : array of string [1..100]
    nil_toefl : array of integer [1..100
    jawab : character
    x : integer
ALGORITMA
    x=1
    do 
       input nama_mhs[x]
       input nil_toefl[x]
  
       input jawab
       x=x+1 
    while(jawab='y')

    jumlah=0   
    for(z=1; z<x; z=z+1)
       jumlah=jumlah+nil_toefl[z]
      
   
    rata=jumlah/(x-1)

    terkecil=nil_toefl[1]
    for(z=2; z<x; z=z+1)
       if(terkecil>nil_toefl[z])
          terkecil=nil_toefl[z]

    terbesar=nil_toefl[1]
    for(z=2; z<x; z=z+1)
       if(terbesar<nil_toefl[z])
          terbesar=nil_toefl[z]

    output rata, terkecil, terbesar

STATEMEN KONDISI : IF....THEN (JIKA..MAKA)

A. IF
    1. IF TUNGGAL
     Sintak :
             IF(KONDISI)
              {
              AKSI;
             }

   Ket : Jika "KONDISI" Bernilai Benar/Ya/True, maka "AKSI" Akan dijalankan.

   2. IF JAMAK
    Sintak :    IF(KONDISI 1)
            {
              Aksi 1;
            }
            Else
              IF(KONDISI 2)
              {
                Aksi 2;
              }
              Else
                            IF(KONDISI N)
                {
                  Aksi N;
                }
                ELSE
                {
                  Aksi Lainnya;
                }

Cotoh SOAL :
Soal 1 :
Buatlah program yang dapat menginputkan sebuah Bilangan dan menampilkan dengan sebuah kata
yang merepresentasikan bilangan itu. Bilangan yg dapat direpresentasikan maksimal 3 saja.
ex : Input     : 1
     Output    : SATU

     Input    : 2
     Output     : DUA
   
     Input    : 5
     Output    : DIATAS TIGA

main()
{
    int bil; 
    clrscr();
    gotoxy(10,5);printf("Input Sebuah Bilangan  : "); scanf("%d", &bil);
    if(bil==1)
    {
       gotoxy(10,7);printf("Satu");
    }
    else
       if(bil==2)
       {
         gotoxy(10,7);printf("Dua");
       }
       else
          if(bil==3)
          {
            gotoxy(10,7);printf("Tiga");
          }
       else
          {
            gotoxy(10,7);printf("Lebih dari Tiga");
          }


    getch();
}


Soal 2 :
Si Bolang Baru saja selesai internet-an di warnet. Dia mulai ON pada pukul :36:55
sedangkan Selesai Pukul 12:30:20
Berapa Jam, Berapa Menit dan Berapa Detik dia bermain Internet-an???
main()
{
  int jam_on, menit_on, detik_on;
  int jam_off, menit_off, detik_off;
  int jam_lm, menit_lm, detik_lm;
  clrscr();
  input jam_on, menit_on, detik_on;

  input jam_off, menit_off, detik_off;

  detik_lm = detik_off - detik_on;
  

  getch();
}

Teori : Algoritma


Algoritma adalah : Urutan langkah2 sistematis untuk menyelesaikan masalah.
Notasi / cara penulisan (PSEUDO CODE) terdiri dari 3 bagian.
    A. JUDUL/NAMA PROGRAM
    B. KAMUS/DEKLARASI
    C. ALGORITMA/DEKSRIPSI

Contoh :
    Misalkan kita membuatlah algoritma utk menghitung luas lapangan pingpong.
        1. Ambil alat ukur.
        2. Mengukur lebar
        3. mengukur panjang
        4. menghitung luasnya = panjang * lebar
        5. Menginformasikan luasnya.
   Kelima hal diatas adalah langkah2 untuk menyelesaikan masalah, sama halnya pada DASPRO (Dasar Pemrograman), sebelum kita membuat suatu Program, sebaiknya kita membuat Urutan langkah2 sistematis untuk menyelesaikan masalah, untuk mempermudah dalam pengerjaannya

Contoh simpel :
1. Algoritma untuk menghitung Luas Persegi Panjang
   JUDUL : LuasPP
    {Menghitung Luas Persegi panjang dengan rumus
    Luas=Panjang x lebar}
  KAMUS :
   panjang : integer  {Panjangnya persegi Panjang}
   lebar   : integer  {Lebarnya persegi Panjang}
   luas    : integer  {Luas Persegi Panjang}
  ALGORITMA
   input panjang
   input lebar
     luas = panjang * lebar
     output luas
2. Konversikan jam,menit,detik menjadi detik
              misal : 5 jam 10 menit 34 detik = .... detik
   JUDUL : KonDetk
    {Menghitung Konversi jam,menit,detik menjadi detik dengan cepat }
   KAMUS :
    jam, menit, detik : integer;
    totdetik          : integer
   ALGORITMA
     input jam,menit,detik
     totdetik <- (jam*3600)+(menit*60)+detik
     output totdetik

Dari 2 contoh diatas  akan kita buktikan dengan menggunakan algoritma aka mempermudah pengerjaan program dan akan kita praktekkan dari Rancangan Program menjadi Sebuah Program.

Contoh soal :
Pak Raden mempunyai sejumlah uang.akan dibelikan permen seharga Rp. 45,- perbuah.
1. Dapat berapa buah permenkah ?
2. Jika ada kembalian, berapa ?
3. Jumlah permen yg didapat akan diberikan secara RATA kepada Unyil, Ucrit dan Usrok ?
4. Berapa masing2 mendapat permen ?
5. jika ada sisanya diberikan ke pak ogah, berapa ?

Jawaban Menggunakan Algoritma:
JUDUL : PERMEN
KAMUS
    uang : integer
    harga : integer
    kembalian : integer
    jml_permen : integer
    pydbg      : integer
    sisa       : integer
ALGORITMA
    input uang

    harga <- 45
    jml_permen <- uang/harga
    kembalian <- uang - (jml_permen*harga)
  
    output jml_permen, kembalian
    pydbg <- jml_permen/3
    sisa <- jml_permen - (pydbg*3)

    output pydbg, sisa

Dari Algoritma Diaplikasikan ke Turbo-C

main()
{
    int uang,harga,kembalian,jml_permen,pydbg,sisa;

    clrscr();
    gotoxy(10,5); printf("PERMEN PAK RADEN");

    gotoxy(10,7); printf("Inputkan Jumlah Uang  : ");
                  scanf("%d", &uang);
    harga=45;
    jml_permen=uang/harga;
    kembalian=uang-(jml_permen*harga);
    gotoxy(10,9);
    printf("Jumlah Permen yang didapat : %d", jml_permen);
    gotoxy(10,10);
    printf("Uang kembaliannya          : %d", kembalian);
    pydbg=jml_permen/3;
    sisa=jmlpermen - (pydbg*3);
    gotoxy(10,12);
    printf("permen yg dibagi ke u,u,u  : %d", pydbg);
    gotoxy(10,14);
Getch();
}

Terbukti bahwa Algoritma akan mempermudah kita untuk membuat suatu program

DASAR PEMROGRAMAN DATA, VARIABEL, TYPE DATA, DAN OUTPUT/INPUT

    Disini saya akan berbagi pengetahuan tentang DASPRO (Dasar Pemrograman ) yaitu materi dasar pada jurusan TI (Teknik Informatika)

Dalam pemrograman utk menamai sebuah variabel ada syaratnya :
    1. Bebas
    2. Singkat jelas dan padat
    3. Tidak boleh :
        - Ada spasi
        - Diawali angka
        - Mengandung special char (',."()*&^%
        - Lebih dari 9 huruf.

Terkait dg isi variabel -> TYPE DATA.
    1. HURUF/KUMPULAN HURUF
        - 1 HURUF     : character
        - > 1 HURUF  : string 
    2. ANGKA / KUMPULAN ANGKA/BILANGAN
        - bil. bulat       : integer
        - bil. pecahan  : real/float

1. Ada 4 Type Data
   a. Character          : char           ex : char sim; 
   b. String                : char [n]      ex : char kota[20];  char nama_tmn[30];
   c. Integer               : int             ex : int umur;
   d. Real/Float          : float          ex : float berat;

2. Output / Input
       OUTPUT : fungsi utk menampilkan isi dari variabel.
   perintah : printf
       jika variabel yg akan ditampilkan ber-type data :
   a. character    : %c
       printf("Simnya : %c", sim);
   b. string         : %s
       printf("Namanya adalah : %s", nama_tmn);
   c. integer       : %d
   d. float           : %f
 
      INPUT : fungsi utk memasukkan data via keyboard.
   perintah : scanf
       jika variabel yg akan diinput ber-type data :
   a. character    : %s  + &
       scanf("%s", &sim);
   b. string         : %s  + &
       printf("Namanya adalah : %s", nama_tmn);
   c. integer       : %d + &
   d. float           : %f + &

Untuk Operator MATEMATIKA terdiri dari :
a. Sama Dengan        : ==
b. Tidak Sama Dengan    : !=  
c. Lebih Besar        : >
d. Lebih Kecil        : <
e. Lebih Besar Sama Dg    : >=
f. Lebih Kecil Sama Dg    : <=


Contoh Sederhananya :
   1. buatlah program untuk menghitung luas lingkaran.
       -> terdapat 3 variabel yaitu :
           a. luas lingkaran       : luas_ling     -> real/float
           b. phi                      : phi              -> real/float
           c. Jari-Jari lingk.      : jari              -> integer
Penulisan Dalam Turbo-C

    main()
    {
       float luas_ling;
       float phi; 
       int jari;

       clrscr();
       gotoxy(10,5); printf("Program Menghitung Luas Lingkaran");
  
       phi = 3.14;
       gotoxy(10,6); printf("Inputkan Nilai Jari-Jari   : ");
                      scanf("%d", &jari);
  
       luas_ling = phi * (jari * jari);

       gotoxy(10,9); printf("Luas Lingkaran adalah            : %0.2f", luas_ling);

       getch();
    }

Semoga ilmu yang saya bagikan ini bermanfaat