Jumat, 29 Maret 2013

Refleksi Minggu Ke-3 Alpro

        Malam sebelum pertemuan ke-3 saya di hadapkan pada suatu masalah yang berat, yaitu keterlambatanku mengerjakan tugas yang diberikan oleh Pak Dosen Algoritma Pemrograman, sehingga pada malam sebelum pertemuan ke-3 aku harus lembur semalam.
        Akibat lembur semalaman menjadikan materi dan arahan-arahan yang diberikan Pak Dosen kurang dapat di tangkap.
        Pada minggu ke-3, kami mempelajari tentang pemilihan kondisi, seperti IF, IF-ELSE, SWITCH-CASE yaitu bagaimana kita memeilih tentang suatu permasalahan, hingga mendapatkan suatu kesimpulan yang diinginkan.
        Akhir-akhir kuliah kami di berikan tugas untuk mnyelesaikan soal-soal yang ada di diktat yaitu pada akhir bab 3. Setelah selesai mengerjakan tugas,  ternyata Pak Dosen tidak memberikan lagi tugas meringkas materi dg b.inggris, :) .
         Setelah sampai di kos, saya langsung tidur sampai siang,,, hmmmmm :D

       

Jumat, 22 Maret 2013

Kasus 3.3

Algoritma Menghitung akar-akar persamaan kuadrat

Analisis: 

    Input
         a,b,c
    Proses
  •  mencari akar-akar persamaan kuadrat.
  •  akar-akar kuadrat (output)

Algoritma

 Deklarasi:
  • a,b,c : integer{Input}
  • disk : longint{output}
  • x1,x2 : real{output}
Deskripsi:
  • read(a,b,c)
  • disk<--b*b-4a*c
  • if (a=0) then write('Bukan persamaan kuadrat')
    else if disk>0 then
      x1<---(-b)+sqrt(disk)/2*a
      x2<---(-b)-sqrt(disk)/2*a
    else if disk=0 then
      x1<---(-b)/2*a
      x2<---x1
    else write('Akar Imajiner')
    end if
  • write(x1,x2)

Gambar Flowchart:


Contoh program

Kasus 3.1

Tentukanlah bilangan terbesar antara dua bilangan bulat

Analisis:

   Input :
  • A (integer)
  • B (integer)
   Proses: Bandingkan A dan B

  •  Jika A>B maka A terbesar (output)
  •  Jika sebaliknya maka B terbesar (output)

Algoritma 

Deklarasi
         A, B (integer)
Deskrips
         read (A,B)
         if (A>B) then write( "Bilangan terbesar adalah ="A)
         else write( "Bilangan terrbesar adalah ="B)

Gambar Flowchart
 


Kasus 3.2

Menentukan bilangan terbesar antara 3

Analisis:

   Input
       x,y,z
   Proses
       membandingkan nilai terbesar antara x,y, dan z.
       Jika x>y>z, maka output=x.
       Jika y>x>z maka output=y.
       Jika z>x>y maka output=z.

Algoritma

   Deklarasi:
  • x,y,z : Integer{Input}
  • x atau y atau z : Integer{Output}
   Deskripsi
  • read(x,y,z)
  • if(x>y) and (x>z) then write('Bilangan terbesar adalah='x)
    else if (y>x) adn (y>z) then write('Bilangan terbesar adalah='y)
    else write('Bilangan terbesar adalah='z)
Gambar Flowchart:


Contoh program

Praktikum 1 Alpro

          Praktikum pertama Algoritma Pemrograman dimulai pada hari rabu, 20-03-2013, pada awal praktikum saya sudah mengalami kegagalan yang pertama, yaitu dalam hal mengetik 10 jari. Haduuuhh, rasanya susah banget untuk bisa mengetik 3 huruf dalam 1 detik. Padahal sebelumnya sudah pernah nglakuin hal yang sama, tapi hasilnya masih juga sama. Seperti biasa kurang terbiasa.
          Setelah mengetik 10 jari, dilanjutkan materi, yaitu sekuen. Pada bab ini saya mempelajari tentang bagaimana cara (langkah-langkah) untuk mnenyelesaikan masalah dengan urutan-urutan (tahap-tahap) yang benar. Selanjutnya di lanjutkan posttes Untuk posttes yang pertama

Computer science as a Career path"


In this chapter, we have 3 section:
  1. Why Computer science may be the right field for you
  2. The College Experience: Computer Disciplines and majors to choose from
  3. Career Opportunities
Lets begin the summary!

Section 1 "Why Computer Science May be the Right Field for You"


Reason to major in computer science


Our question is "Why?" Reason is, because the computer industry is one of the fastest growing segments of our economy and promises to continue to see growth well into the future.

Top-Down Design with Functions


Programers use software development methods to solve the problem. Normally, programmers handle every new program as a unique event.

Building programs from existing information

Develop your program solutions from existing information. Use the system documentation derived from applying the software development method as the initial framework for the program.
  • Edit the data requirements to obtain the main function declarations. 
  • Use the refined algorithm as the starting point for the executable statements in the main function.
If a new problem is an extension of a previous one, modify the previous program rather than starting from scratch.

Overview of C


          This chapter will introduce C- as a high level programming language developed in 1972 by Dennis Ritchie at AT&T Bell Laboratories.

C Language Elements

Preprocessor Directive

Preoprocessor directive are commands that give instruction to C preprocessor, whose jobs it is to modify the text of a C program before it compiled. A preprocessor directive begin with symbol (#) as it first nonblank character. Example: #include, or #define


Main Function

Main function heading example

Overview of computers and programming


This chapter will introduce about computer, and its component, and major category of programming languages. We will discuss how C programs are processed by computer, and also describe a systematic approach to solving programming problems called software developed method.

Computer Hardware

Althought there are so many variation at price, size, and capabilities, Modern computer are similar each other in the basic. Basically, almost all computer components are same, it is:
  • Main memory
  • Secondary memory(Harddisk, CD, DVD, and Flash drives.)
  • CPU(Central Processing Unit)
  • Input devices(Mouse, keyboard, touchpad, scanner, joystick)
  • Output devices(Monitor, printer, speaker)

Memory

Memory is an essential component in any computer. Look at the picture below:

Computer components and memory relation
Memory of a computer as an ordered sequence of storage locations called memory cells.

Memory cells
Each memory cell has a unique address that indicates it relativve position in memory. The picture

Algoritma menghitung determinan matriks 2x2

Masalah:

Buatlah Algoritma dan flowchart untuk menghitung determinan matriks 2x2

Analisis:

  1. Input: 4 buah nilai anggota matriks
  2. Proses: Mencari nilai determinan
  3. Output: Menampilkan hasil determinan.

Deklarasi:

  1. a,b,c,d : Int{Input}
  2. hasil : Int{Output}

Deskripsi:

  1. read(a,b,c,d)
  2. hasil<--(a*d)-(b*c)
  3. write(hasil)

Gambar flowchart: 

 

Algoritma memisahkan komponen bilangan < 1000

Masalah:

Buatlah Algoritma dan flowchart untuk memisahkan bilangan integer yang kurang dari 1000 menjadi komponen-komponennya.

Analisis:

  1. Input: Bilangan Integer<1000
  2. Proses: Memisahkan komponen penyusun bilangan yang di input.
  3. Output: Menampilkan hasil pemisahan komponen-komponen bilangannya

Deklarasi:

  1. nilai : Integer{Input}
  2. Ratusan, puluhan, satuan : Integer{Output}

Deskripsi:

  1. read(nilai)
  2. Ratusan<-- ((nilai-(nilai%100))/100)
  3. Puluhan<--(((nilai-(nilai%10)%100)/10)
  4. Satuan<--nilai%10
  5. write(Ratusan,puluhan,satuan)

Gambar Flowchart:

Algoritma mencari titik tengah sebuah garis

Masalah:

Buatlah Algoritma dan flowchart untuk mencari titik tengah sebuah garis yang ujung titiknya adalah A(x1,y1) dan B(x2,y2)

Analisis:

  1. Input: 4 buah titik(x1,x1,y1,y2)
  2. Proses: Mencari titik tengah
  3. Output: Titik tengah dari 4 titik awal. (x,y)

Deklarasi:

  1. x1, x2, y1, y2 : Int {Input}
  2. x,y : Int {Output}

Deskripsi:

  1. Read(x1,x2,y1,y2)
  2. x<-- (x1+x2)/2
  3. y<--(y1+y2)/2
  4. Write(x,y)

Gambar Flowchart: 

 

 

 

 

Counting

        
         Counting students who passed the exam. With values ranging between 0-100. the requirement to pass value of more than 50.
         suppose there are seven students with each value
                         70,48,60,69,32,90,85
To know how many students that passed the examination, first, we have to make inizialitation of count start from 0. We need to check required to pass. if student marks as required to pass, then add 1 to count process. And if student marks not fulfill required to pass, add 0 to count process.

Marks Counting detail for passes
70 previous count=0 current count=1
48 previous count=1 current count=1
60 previous count=1 current count=2
69 previous count=2 current count=3
32 previous count=3 current count=3
90 previous count=3 current count=4
85 previous count=4 current count=5

Algorithm Description

  1. Request and read the number of marks.
  2. Initialize count=0.
  3. Process  repeatedly for all marks: (a). Read next mark, (b). if mark>50, count as a pass and add 1 to count.
  4. write out total number of passes.

Pascal Implementation 


program passcount {input,output};
const passmark=50;
var count{contains number of passes on termination}
       i{current number of mark processed}
      m{current mark}
      n{total number of marks processed}: integer;
begin {count the number of passes (>=50) in a set of marks}
      writeIn ('enter a number of marks n on a separate line followed by the marks');
      readIn (n);
      {assert:n>=0}
      count := 0;
      i := 0;
      {invariant: count=number of marks in the first i read that are >= passmark ^i=<n}
       while i<n do
             begin{read next mark, test it for pass and update count if necessary}
               i := i+1;
               read(m);
               if eoIn (Input)then readIn;
               if m>=passmark then count := count+1
             end;
       {assert: count=number of passes in the set of n marks read}
       writeIn ('number of passes=',count)
end.

Rabu, 20 Maret 2013

Exchanging The Values Of Two Variables


        The problem is how to exchange values between vairiable a and variable b. To more clearly see the following example:
The initial state:


        From the example image above, how to swap the value of the variable b to be 721, and the alue of a variable to 463.


        To get a result as above, we can not directly attached to the alue of the variable b to a, and  a to b, if  we take this way, there will be:


         This happened because, when the value of variable b is copied to a variable b the value of the old into the new value of a variable, then the new value of a variable copied to b, the result is the value of the variable b, same as the old value of the variable b.


         Anyway is to make the variable t (new variable):


          We can copy the value of a variable to t, then the value is copied into a variable b, then value of the variable t copied to b.





Senin, 18 Maret 2013

Refleksi Minggu Ke-2 Alpro

           Pertemuan minggu ke-2 Alpro sudah mulai memasuki pada materi pertama yaitu sekuen. Sebelum masuk pada materi kita dipertanyakan atas tugas minggu sebelumnya di antaranya yaitu merangkum buku How to Solve it by Computer pada bab "EXCHANGING THE VALUES OF TWO FARIABLES" dan buku Computer Science as a Career Path pada chapter 0-2, serta tugas yang lain yaitu mempertanyakan pada dosen wali. tapi sebagian dari kami belum mengerjakan tugas tersebut, termasuk saya. Seteah itu Pak Dosen kembali memberi arahan kepada kami, salah satu kalimat yang saya ingat adalah bahwa kami sebagai mahasiswa harus tegas dalam mengambil hak kami.

           Selanjutnya masuk pada materi sekuen, yaitu bagaimana langkah-langkah untuk menyelesaikan suatu masalah dengan runtutan-runturan yang benar. salah satu contohnya yaitu: runtutan-runtutan kita berangkat kuliah sampai duduk di kelas.

           Dalam akhir-akhir pertemuan, kita di beri tugas latihan, dan di berikan kembali tugas merangkum buku yang sama dengan minggu lalu tentunya dengan bab yang berbeda. (di otak dan hatiku tersirat sesuatu rasa kemalesan, karena jujur saja saya kurang mahir dalam memahami bahasa inggris. tapi tentunya, kalau ini saya lakukan dengan sungguh-sungguh dan berusaha untuk menghilangkan kemalesan itu, pasti saya bisa, dan lama-kelama memahami bahasa inggris itu adalah sesuatu yang mudah).. Amiiinnn

Kamis, 14 Maret 2013

Operasi Kondisi

          Pernyataan percabangan digunakan untuk memecahkan persoalan untuk mengambil suatu keputusan diantara sekian pernyataan.

Pernyataan IF

          Pernyataan if mempunyai pengertian, jika kondisi bernilai benar maka perintah akan di kerjakan dan jika tidak memenuhi syarat maka akan di abaikan. Dari pengertian tersebt maka dapat di lihat dari diagram alir berikut:
 Bentuk umum dari pernyataan IF:

if(kondisi)
         pernyataan;

Contoh program if:
#include <iostream>

int main(int argc, char *argv[])
{using namespace std;
    int a;
  
    a=6+5;
  
    if(a<0)
        cout<<"TRUE";
  
    return 0;
}



          Penulisan kondisi harus di dalam tanda kurung dan berupa ekspresi relasi dan penulisan pernyataan dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Jika pemakaian if di ikuti dengan pernyataan majemuk, bentuk penulisannya sebagai berikut:

if(kondisi)
        {
         pernyataan;

         . . . . . . . . .;
         }

Pernyataan IF-ELSE dan IF-ELSE MAJEMUK

           Pernyataan if-else mempunyai pengertian, jika kondisi bernilai benar, maka perintah 1 akan di kerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah 2. Dan pengertian tersebut dapat di lihat dari diagram alir berikut;
Bentuk umum dari pernyataan IF-ELSE:

if(kondisi)
         perintah-1;

else 
         perintah-2;


Contoh program if-else majemuk:

#include <iostream>

int main(int argc, char *argv[])
{using namespace std;
    float a;
    cout<<"MENENTUKAN NILAI HURUF\n";
    cout<<"masukkan nilai angka :";
    cin>>a;
    cout<<endl;
   
    if(a>=80)
        cout<<"nilai A";
    else if(a>=65)
        cout<<"nilai B";
    else if(a>=45)
        cout<<"nilai C";
    else
        cout<<"nilai D";
    return 0;
}

Penjelasan program:
1.Jika nilai angka dimasukkan lebih dari samadengan 80 maka nilainya adalah A,
2.Jika nilai angka dimasukkan lebih dari samadengan 65 dan kurang dari 79 maka nilainnya adalah B,
3.Jika nilai angka dimasukkan lebih dari samadengan 45 dan kurang dari 64 maka nilainnya adalah C,
4.Jika nilai angka dimasukkan kurang dari 45 maka nilaiya D.

           Perintah-perintah dapat berupa sebuah pernyataan tunggal, pernyataan majemuk, atau

Rabu, 13 Maret 2013

Refleksi Minggu Ke-1 Alpro

           Minggu ke-1 kuliah Algoritma Pemrograman pada 09-03-2013 memang belum masuk pada materi. Pada pertemuan tersebut diisi dengan perkenalan, membuat kontrak belajar, dan mengulas sedikit tentang materi-materi Algoritma Pemrograman untuk minggu-minggu kedepannya. Tetapi selain itu, yang terpenting dalam pertemuan satu-satunya tersebut adalah arahan-arahan yang sangat membantu kita agar lebih bisa berfikir, dan berindak mengenai apa tujuan kita kuliah di Teknik Informatika?; jadi apa setelah lulus dari Teknik Informatika?; dan bagaimana cara kami untuk mencapai tujuan yang kami inginkan?.
Jawaban:
?????



Karena sampai saat ini jawaban masih belum ada di otak dan hati saya, sehingga pertanyaan ini menjadi tugas saya untuk ditanyakan kepada Dosen Wali, sebenarnya apa tujuan saya kuliah di Teknik Informatika?.

Menurut Dosen kami jawabannya adalah menjadi Problem Solver (pemecah masalah). Problem Solver?, dua kata penuh makna....

Operator pada C++

          Operator merupakan simbol atau karakter yang biasa di libatkan dalam program untuk melakukan suatu operasi ataumanipulasi, seperti penjumlahan, pengurangann dan lain-lain.
Operator mempunyai sifat sebagai berikut:
  • Unaryo
Sifat unari pada operator adalah hanya melibatkan sebuah operand pada suatu operasi aritmatik.
Contoh: -5
  • Binary
Sifat binary pada operator adalah meibatkan dua buah operand pada suatu operasi aritmatik.
Contoh: 4+8
  • Ternary
Sifat tenary padaoperator adalah melibatkan tiga buah operand pada suatu operasi aritmatik.
Contoh: (10%3)+4-2

Macam-macam Operator


Selasa, 12 Maret 2013

Mengenal Dev C++

          Setelah Mengenal bahasa C++, Tipe Data, dan Variabel, selanjutnya  mari kita membuat program dengan bahasa pemograman C++. untuk membuat programnya aku sii pakai aplikasi Dev C++. Yang belum punya aplikasinya dan mau mencoba untuk menikmati hoby baru silahkan download: Download Button  
 
eeiitss tapi sebelum membuat program sebaiknya pelajari dahulu bagaimana cara mengoprasikan aplikasi Dev C++ ini. Kalau kata bapakku sebelum kita menggunakan sepeda motor, sebaiknya kita pelajari dahulu bagaimana cara menghidupkan, mematikan motor, dan juga mempelajari apa kegunaan masing-masing tombol yang ada di kemudi (malah sepeda motor) :D. 
  Okeh, jika sudah di download, selanjutnya instal aplikasinya. 

 Mengenal Dev C++ 


C++

        Kuliah ternyata juga bisa mendatangkan hoby baru, seperti yang ku alami (kaya bencana ae :D).. setelah ku memasuki kuliah semester 1, aku mempunyai boby baru, yaiku tentang mata kuliah dasar dasar pemograman C++ walopun ga bisa-bisa banget, hoho.. :D tpi bsa bwat mengisi waktu luang, dari pada bengong di kos, kan ga guna, :D.. Aku ngerti pasti banyak dari kalian yang sudah mahir bahasa pmograman C++ kan. Maka dari itu, maap yoo kalo postingan ku ini terlalu jadul, dan terlalu ga layak, :'(
         Ya udah langsung aja yuks...

Mengenal Bahasa C++

         Bahasa C merupakan bahasa tingkat menengah, yang berada diantara bahasa tingkat rendah dan bahasa tingkat tinggi yang biasa di sebut Bahasa Assambly. Bahasa C mempunyai banyak kemampuan salah satunya untuk membuat perangkat lunak. Selanjutnya bahasa C di kembangkan kemudian di ubah namanya menjadi C++.
Pada C++ ini terdapat tambahan Object Oriented Programing (OOP), yang tujuan utamanya adalah membantu dalam membuat dan mengolah program yang besar dan kompleks.
          Inti dari pemograman berorientasi objek (OOP) adalah mendesain dan mengembangkan tipe data anda sendiri, namun sebelum anda membuat jenis data sendiri, anda harus belajar untuk memahami tipe data Built-in C++ terlebih dahulu.
 

Mengenal Tipe Data dan Variabel

          Sebelum membuat program sebaiknya kita mngenal tentang tipe data dan ariabel terlebih dahulu.

Tipe Data

Tipe Data dalam pemograman C++ terdapat lima macam tipe data dasar, yaitu tipe data integer (nilai numerik bulat yang di deklarasikan int), floating point (nilai numerik seperti 0,1 yang di deklarasikan float), doubel-precision (yang di deklarasikan double), karakter (didelarasikan char), dan kosong atau tidak memiliki nilai (dideklarasikan void).
Tipe Data Ukuran Memori Jangkauan Nilai Jumlah Digit
Char 1 Byte -128 s.d 127
Int 2 Byte -32768 s.d 32767
Short 2 Byte -32768 s.d 32767
Long 4 Byte -2,147,435,648 s.d 2,147,435,647
Float 4 Byte 3.4x10-38 s.d 3.4x10+38 5-7
Double 8 Byte 1.7x10-308 s.d 1.7x10+308 15-16
Long Double 10 Byte 3.4x10-4932 s.d 1.1x10+4932 19


Variabel

Variabel adalah suatu tempat untuk menampung data atau konstanta di memori yang mempunyai nilai atau data yang dapat berubah ubah selama proses program.Adapun aturan  penamaan variabel yaitu:

  1. Karakter-karakter yang boleh digunaakan adalah alfabet, angka numerik, dan karakter garis bawah (underscore).
  2. Karakter pertama dari suatu nama tidak bleh menggunakan angka numerik.
  3. Karakter-karakter huruf besar berbeda dengan versi yang menggunakan huruf kecil.
  4. panjang karakter nama tidak di batasi.
  5. Harus di awali dengan huruf atau garis bawah (underscore).
  6. Keyword-keyword yang ada di bahasa C++, contohnya seperti asm, auto, bool, break, case, if, else, default, for, switch, using, dan lain lain tidak boleh di gunakan.