Minggu, 20 Februari 2011

algoritma & pemrograman

0 komentar
KATA PENGANTAR

            Puji syukur kami panjatkan kepada Rida Illahi karena berkat Rahmat dan Karunia-Nya saya berhasil menyelesaikan makalah yang telah diberikan oleh dosen kita. Tidak lupa juga saya mengucapkan terima kasih kepada semua pihak yang telah membantu saya dalam menyelesaikan makalah ini dengan tepat waktu. Saya juga menyadari dalam pembuatan makalah ini masih banyak kekurangan, oleh karena itu saya mohon saran dari para pembaca sekalian demi perbaikan makalah yang selanjutnya.
Makalah ini memuat tema rangkuman visual studio 2008”.  Sebuah bahasa pemrograman visual (VPL) adalah suatu bahasa pemrograman yang memungkinkan pengguna membuat program dengan memanipulasi elemen-elemen program grafis, bukan dengan menetapkan mereka secara tekstual (juga dikenal sebagai diagram pemrograman. Sebuah VPL pemrograman visual memungkinkan ekspresi, pengaturan spasial grafis teks dan simbol, yang digunakan baik sebagai elemen sintaks atau notasi sekunder. Banyak VPLS didasarkan pada gagasan tentang "kotak-kotak dan panah," di mana kotak atau objek layar lainnya diperlakukan sebagai entitas, dihubungkan dengan anak panah, garis atau busur yang mewakili hubungan.
Semoga makalah ini bermanfaat bagi kita semua.
                                                                                          

Penyusun, 6 Januari 2011


R Muh Bayu K







DAFTAR ISI
BAB I P E N D A H U L U A N
I.A Latar Belakang                                                                            
I.B Tujuan                                                                              
I.C Sistematika                                                                                  
BAB II P E M B A H A S A N
II.A Pengertian
II.B SEJARAH BAHASAC++
II.C HASIL LAPORAN PRAKTIKUM
C1. PERTEMUAN 8
            Perhitungan min,max & rata-rata ( menggunakan while )
C2. PERTEMUAN 9
            Array & pointer 1D dan 2D
C3. PERTEMUAN 10
            Fungsi tanpa nilai balik
C4. PERTEMUAN 11
Fungsi dengan nilai balik
C5. PERTEMUAN 12
            Memperoleh mutu nilai
C6. PERTEMUAN 13
            Pencarian metode bagi dua
C7. PERTEMUAN 14
Metode pengurutan apung
BAB III P E N U T U P                                           
Daftar Pustaka                                                                                             




PENDAHULUAN
I.A Latar Belakang
VPLS dapat diklasifikasikan lebih lanjut, sesuai dengan jenis dan tingkat ekspresi visual yang digunakan, menjadi ikon berbasis bahasa, bahasa berbasis Form, dan diagram bahasa. Menyediakan lingkungan pemrograman visual grafis atau elemen ikon yang dapat dimanipulasi oleh pengguna dalam cara yang interaktif sesuai dengan tata bahasa spasial tertentu program konstruksi[1].
I.B Tujuan
Adapun pembuatan makalah ini adalah untuk memenuhi tugas pribadi yang telah diberikan oleh bpk Putu Susila yang diperantarai oleh asdosnya.
I.C Sistematika
Untuk memudahkan pemahaman, maka saya menggunakan sitematika yang terdiri dari beberapa sub bab :
BAB I P E N D A H U L U A N
I.A Latar Belakang                                                                            
I.B Tujuan                                                                              
I.C Sistematika                                                                                  
BAB II P E M B A H A S A N               
II.A Pengertian
II.B SEJARAH BAHASAC++
II.C HASIL LAPORAN PRAKTIKUM
C1. PERTEMUAN 8
            Perhitungan min,max & rata-rata ( menggunakan while )
C2. PERTEMUAN 9
            Array & pointer 1D dan 2D
C3. PERTEMUAN 10
            Fungsi tanpa nilai balik
C4. PERTEMUAN 11
Fungsi dengan nilai balik
C5. PERTEMUAN 12
            Memperoleh mutu nilai
C6. PERTEMUAN 13
            Pencarian metode bagi dua
C7. PERTEMUAN 14
Metode pengurutan apung
BAB III P E N U T U P                                            
Daftar Pustaka




















BAB II
PEMBAHASAN
II.A Pengertian
VPLS dapat diklasifikasikan lebih lanjut, sesuai dengan jenis dan tingkat ekspresi visual yang digunakan, menjadi ikon berbasis bahasa, bahasa berbasis Form, dan diagram bahasa. Menyediakan lingkungan pemrograman visual grafis atau elemen ikon yang dapat dimanipulasi oleh pengguna dalam cara yang interaktif sesuai dengan tata bahasa spasial tertentu program konstruksi.
Sebuah bahasa pemrograman yang menggunakan representasi visual (seperti grafis,  gambar, animasi atau ikon, sebagian atau seluruhnya).
 Sebuah bahasa visual memanipulasi informasi visual atau mendukung interaksi visual, atau memungkinkan pemrograman visual ekspresi.
·         Setiap sistem dimana user menulis sebuah program menggunakan dua atau lebih dimensi
·         Sebuah bahasa visual adalah seperangkat tata ruang teks-simbol grafis dengan interpretasi semantik yang digunakan dalam melaksanakan tindakan komunikasi di dunia
·         Software paradigma, tingkat bahasa, aplikasi domain.

II.B SEJARAH BAHASAC++
Mulai awal tahun 1980, Bjarne Stroustrup dari AT & T Bell Laboratories mulai mengembangkan bahasa C. Pada tahun 1985, lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++. Sebenarnya bahasa C++ mengalami dua tahap evolusi. C++ yang pertama, dirilis oleh AT&T Laboratories, dinamakan cfront[2]. C++ versi kuno ini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C.
Pada evolusi selanjutnya, Borland International Inc. mengembangkan kompiler C++ menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly).Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi obyek yang digunakan oleh
sebagian besar pemrogram professional.

// baris komentar
Baris ini adalah komentar. semua baris yang diawali dengan dua garis miring (//) akan dianggap sebagai komentar dan tidak akan berpengaruh terhadap program. Dapat digunakan oleh programmer untuk menyertakan penjelasan singkat atau observasi yang terkait dengan program tersebut.

#include
Kalimat yang diawali dengan tanda (#) adalah are preprocessor directive. Bukan merupakan baris kode yang dieksekusi, tetapi indikasi untuk kompiler. Dalam kasus ini kalimat  #include memberitahukan preprocessor kompiler untuk menyertakan header file standard iostream. File spesifik ini juga termasuk library deklarasi standard I/O pada C++ dan file ini disertakan karena fungsi-fungsinya akan digunakan nanti dalam program.

int main ()
Baris ini mencocokan  pada awal dari deklarasi fungsi main. fungsi main merupakan titik awal dimana seluruh program C++ akan mulai dieksekusi. Diletakan diawal, ditengah atau diakhir program, isi dari fungsi main akan selalu dieksekusi pertama kali. Pada dasarnya, seluruh program C++ memiliki fungsi  main.
main diikuti oleh sepasang tanda kurung () karena merupakan fungsi. pada C++, semua fungsi diikuti oleh sepasang tanda kurung () dimana, dapat berisi argumen didalamnya. Isi dari fungsi main selanjutnya akan mengikuti,berupa deklarasi formal dan dituliskan diantara kurung kurawal ({}), seperti dalam contoh.

cout << "Hello World";
Intruksi ini merupakan hal yang paling penting dalam program contoh. cout merupakan standard output stream dalam C++ (biasanya monitor). cout dideklarasikan dalam  header file iostream.h, sehingga agar dapat digunakan maka file ini harus disertakan.
Perhatikan setiap kalimat diakhiri dengan tanda semicolon (;). Karakter ini menandakan akhir dari instruksi dan harus disertakan pada setiap akhir instruksi pada program C++ manapun.

return 0;
Intruksi return menyebabkan fungsi main() berakhir dan mengembalikan kode yang mengikuti instruksi tersebut, dalam kasus ini 0. Ini merupakan cara yang paling sering digunakan untuk mengakhiri program.

Void
Deklarasi fungsi akan selalu diawali dengan tipe dari fungsi, yang menyatakan tipe data apa yang akan dihasilkan dari fungsi tersebut. Jika tidak ada nilai yang akan dikembalikan, maka dapat digunakan tipe void, contoh            :

// void function example                                          Output    :
#include                                             I'm a function!
 
void dummyfunction (void)
{
  cout << "I'm a function!";
}
 
int main ()
{
  dummyfunction ();
  return 0;
}


Increase (++) and decrease (--)
Operator Increase dan Decrease dapat digunakan sebagai prefix atau suffix. Dengan kata lain dapat dituliskan sebelum identifier variabel (++a) atau sesudahnya (a++). operator increase yang digunakan sebagai prefix (++a), Perbedaannya terlihat pada tabel dibawah ini :
Example 1
Example 2
B=3;
A=++B;
// A is 4, B is 4
B=3;
A=B++;
// A is 3, B is 4

Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan contoh 2, Nilai B diberikan terlebih dahulu ke A dan  B ditambahkan kemudian.
a++;
a+=1;
a=a+1;
Contoh diatas adalah equivalen secara fungsional. Nilai a dikurangi 1.























Folded Corner: PERTEMUAN KE 8
Menghitung rata2, nilai max dan min
















Pertemuan ke 8
C.1 Perhitungan Min,Max dan Rata-rata
Dalam program ini saya menggunakan kontruksi if dan while.
If digunakan untuk mengeksekusi sebuah atau satu blok instruksi jika kondisi terpenuhi, sintaks:
if (condition) statement
condition merupakan ekspresi yang dievaluasi. Jika kondisi bernilai true, maka statement akan dijalankan. Jika false, maka statement akan diabaikan dan program menjalankan instruksi selanjutnya.
Sementara while memiliki fungsi dari statement diatas adalah mengulang statement jika expression bernilai  benar.

//soal no 1
#include
using namespace std;
void main(void)
{
      int nilai, sum=0, max=0, min=0, i=1, jml_data;
      double rata;
      cout<<"masukan data : ";cin>>jml_data;
      cout<<"masukan nilai ke-"<":";cin>>nilai;
      i++;
      max=nilai;
      min=nilai;
      sum=sum+nilai;
      while(i<=jml_data)
      {
            cout<<"masukan nilai ke-"<":";cin>>nilai;
            if(nilai>max)
                  max=nilai;
            if(nilai
                  min=nilai;
            sum=sum+nilai;
            i++;
      }
      rata=(double)sum/jml_data;
      cout<<"nilai terkecil : "<
      cout<<"nilai tertinggi : "<
      cout<<"nilai rata - rata : "<
}

 
 





















Hasil :
























Rounded Rectangle: PERTEMUAN KE 9
“Ponter dan array”



























Pertemuan ke 9
C.2 Array dan Pointer
Array adalah himpunan elemen (variable) dengan tipe yang sama dan disimpan secara berurutan dalam memory yang ditandai dengan memberikan index pada suatu nama variable. Contohnya, kita dapat menyimpan 5 nilai dengan tipe int tanpa harus mendeklarasikan 5 identifier variabel yang berbeda. Perhatikan contoh dibawah ini  :
http://www.cplusplus.com/doc/tutorial/imgarra1.gif
Bagian kosong diatas merepresentasikan elemen  array, dalam kasus ini adalah nilai integer. Angka 0 - 4 merupakan index dan selalu dimulai dari 0. Seperti penggunaan variable pada umumnya, array harus dideklarasikan terlebih dahulu, dengan format sbb    :
type name [elements];
Maka contoh array diatas dideklarasikan sbb :
int billy [5];
Pointer merupakan suatu nilai yang disimpan dalam memory yang dapat diakses dengan identifier. Variabel ini sesunggunhnya disimpan pada suatu alamat didalam memory. Dimana setiap alamat memory akan berbeda dengan yang lainnya (unik).

For initialization, digunakan untuk memberikan nilai awal untuk variable counter. Dieksekusi hanya sekali.
  1. condition, Dievaluasi, jika bernilai true maka loop berlanjut, sebaliknya loop berhenti dan statement diabaikan
  2. statement,  dieksekusi, bisa berupa instruksi tunggal maupun blok instruksi (dalam tanda  { } ).
  3.  increase, dieksekusi kemudian algoritma kembali ke step 2.




Contoh program  :
Rounded Rectangle: //Program pangkat dua
#include <iostream>
using namespace std;
void main (void)
{
	int i,b[10], a [100];
	//Mengisi array
	for (i=0;i<=9;i++)
		a[i]=1+i;
for (i=0;i<=9;i++)
b[i]=(1+i)*(i+1);
	//Mencetak array
	for (i=0;i<=9;i++)
		cout<<"pangkat dari " << a[i] << " adalah " << b[i]<<endl;
}
 































Hasil :























Flowchart: Card: PERTEMUAN KE 10
“Fungsi tanpa nilai balik”
















Pertemuan ke 10
C.3 Fungsi tanpa nilai balik
Fungsi merupakan bagian dari kode program yang terpisah dari program utama.  Fungsi banyak dilibatkan dalam program dengan tujuan untuk mengurangi duplikasi pengkodean dan untuk mempermudah pemahaman. Secara sederhana terdapat fungsi yang tidak mengambil satu parameterpun dan menghasilkan void (data yang tidak memiliki nilai). Namum pada fungsi yang lain akan mengambil suatu parameter dan mungkin menghasilkan suatu nilai tertentu. 
C++ terdapat fungsi dengan tipe void, yang berarti tidak memiliki nilai balik (return value) maka ini dinamakan fungsi tanpa nilai balik.







Hasil :























Up Arrow Callout: PERTEMUAN KE 11
“fungsi dengan nilai balik”

























\


Pertemuan ke 11
C.4 Fungsi dengan nilai balik
Fungsi suatu program yang yang ada didalam program dan harus didefinisikan, dan letaknya boleh disebelum program utama atau setelah program utama[3]. Dan setiap program fungsi harus diakhiri dengan pernyataan return untuk memberikan nilai balik pada program utama.
Misalnya saya memasukan:

//program ngariuetkeun
#include
using namespace std;
float hitungrata(int x[],int jml);
void main(void)
{
      int a[]={2,3,5,7,5,11};
      int jml_dat=6;
      float rata;
      rata=hitungrata(a,jml_dat);
      cout<<"rata : "<
}
float hitungrata(int x[],int n)
{
      int i,sum=0;
      float rata;
      for(i=0;i
            sum=sum+x[i];
      rata=(float)sum/n;
      return rata;
}

 
 




























Hasil :





















Plaque: PERTEMUAN KE 12
“Menghitung IPK”



























Pertemuan  ke 12
C.5 Menghitung IPK
Misalnya saya masukan perintah seperti yang dibawah:

#include
#include
using namespace std;
#define SIZE 100 //Jumlah maksimum mata kuliah
float HitungIP(int SKS[],int AM[],int AM_SKS[],int JML_MK);
void InputData(char NILAI[],int SKS[],int AM[],int JML_MK);
void CetakHasil(char N[],int A[],int S[],int AS[],int J,float I);
void main(void)
{
                int SKS[SIZE],AM[SIZE],AM_SKS[SIZE];
                char NILAI[SIZE];float IP;
                int JML_MK;
                cout<<"Jumlah Mata Kuliah = ";cin>>JML_MK;
                InputData(NILAI,SKS,AM,JML_MK);
                IP=HitungIP(SKS,AM,AM_SKS,JML_MK);
                CetakHasil(NILAI,AM,SKS,AM_SKS,JML_MK,IP);
}
void InputData(char NILAI[],int SKS[],int AM[],int JML_MK)
{
                for(int i=0;i
                {
                                cout<<"Masukan Nilai Ke-"<>NILAI[i];
                                cout<<" Masukan SKS Ke-"<>SKS[i];
                                switch(NILAI[i])
                                {
                                case 'A' :
                                case 'a' :
                                                AM[i]=4;
                                                break;
                                case 'B' :
                                case 'b' :
                                                AM[i]=3;
                                                break;
                                case 'C' :
                                case 'c' :
                                                AM[i]=2;
                                                break;
                                case 'D' :
                                case 'd' :
                                                AM[i]=1;
                                                break;
                                case 'E' :
                                case 'e' :
                                                AM[i]=0;
                                                break;
                                }
                }
}
float HitungIP(int SKS[],int AM[],int AM_SKS[],int JML_MK)
{
                float IndexPrestasi;
                int SUM_SKS=0, SUM_AM_SKS=0,i;
                for(i=0;i
                {
                                AM_SKS[i]=AM[i]*SKS[i];
                }
                for(i=0;i
                {
                                SUM_SKS=SUM_SKS+SKS[i];
                }
                for(i=0;i
                {
                                SUM_AM_SKS=SUM_AM_SKS+AM_SKS[i];
                }
                IndexPrestasi=(float)SUM_AM_SKS/SUM_SKS;
                return IndexPrestasi;
}
void CetakHasil(char NILAI[],int AM[],int SKS[],int AM_SKS[],int JML_MK,float IP)
{
                cout<<" Nilai Mutu SKS mutu*sks "<
                cout<<"=================================<
                for(int i=0;i
                {
                                cout<
                                cout<
                                cout<
                                cout<
                }
                cout<
}














hasil :



























Flowchart: Document: PERTEMUAN KE 13
“pencarian motode bagi dua”

























Pertemuan ke 13
C.6 Pencarian metode bagi dua (Binary Search)
Metode ini diterapkan pada sekumpulan data yang sudah terurut (menaik atau menurun). Metode ini lebih cepat dibandingkan metode pencarian beruntun. Data yang sudah terurut menjadi syarat mutlak untuk menggunakan metode ini. Konsep dasar metode ini adalah membagi 2 jumlah elemennya, dan menentukan apakah data yang berada pada elemen paling tengah bernilai sama, lebih dari atau kurang dari nilai data yang akan dicari. Jika bernilai sama, maka langsung data yang dicari ditemukan. Jika data di elemen terurut naik, maka jika data yang berada di tengah kurang dari data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan sebaliknya untuk nilai data yang berada di tengah lebih dari data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke kiri, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan demikian sebaliknya untuk data yang terurut menurun. Dalam hal ini tentukan indeks paling awal dan indeks paling akhir, untuk membagi 2 elemen tersebut. Indeks awal = i, dimana nilai i, pada awalnya bernilai 0; Indeks akhir = j, dimana nilai j, pada awalnya bernilai sama dengan jumlah elemen.




Text Box: #include<iostream>
using namespace std;
#define jmldat 8
void binsearch(int data[], int n, int x, int *idx);
void main(void)
{
	int data[jmldat]={81,76,21,18,16,13,10,7},x,idx,i;
	cout<<"elemen array : ";
	for(i=0;i<jmldat;i++)cout<<data[i]<<" ";cout<<endl;
	cout<<"masukkan data yang akan dicari ?:";cin>>x;
	binsearch(data,jmldat,x,&idx);
	if(idx!=-1)cout<<"data yang dicari berada pada index : "<<idx<<endl;
	else cout<<"data yang dicari tidak ada dalam array"<<endl;
}
void binsearch(int data[], int n,int x, int *idx)
{
	bool ketemu = false;
	int top = n-1,bottom = 0,mid;
	while(bottom<=top && !ketemu)
	{
		mid=(top+bottom)/2;
		if(data[mid]==x)ketemu=true;
		else
			if(data[mid]<x)top=mid-1;
			else bottom=mid+1;
	}
	if(ketemu) *idx=mid;
	else *idx=-1;
}















Hasil :

























Octagon: PERTEMUAN KE 14
“Pengurutan metode apung”

























Pertemuan ke 14
C.7 Pengurutan metode apung
Metode Pengurutan Apung (Bubble Sort) diinspirasi oleh gelembung sabun yang berada di atas permukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan.  Metode sorting termudah. Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya[4]. Pengurutan Ascending :Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar. Pengurutan Descending: Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar.  Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan kekiri atau kiri ke kanan, tergantung jenis pengurutannya. Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya. Kapan berhentinya? Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan. 




















#include
#include
#define n 7
void main()
{
      int A[n] = {0,9,7,8,3,4,12};
      int X, I, K;
      printf("Sebelum diurutkan\n");
      for (I=0; I <= n-1; I++)
            printf("%3i", A[I]);
      printf("\n");

      K=0;
      while(K<=n-2)
      {
            I=0;
            while(I<=n-2 - K)
            {
                  if (A[I] > A[I+1])
                  {
                        X = A[I];
                        A[I] = A[I+1];
                        A[I+1] = X;
                  }
                  I++;
            }
            K++;
      }
      printf("Sesudah diurutkan\n");
      for (I=0; I<= n-1; I++)
            printf("%3d", A[I]);
}
 
 

































Hasil :



















BAB III
PENUTUP
III.A Kesimpulan
Visual studio merupakan perangkat yang paling mudah untuk membuat suatu program yang disandarkan kepada os microsoft windows, dimana program dapat dibuat oleh siapa saja baik untuk pemula maupun yang sudah ahli. Ada beberapa yang harus diperhatikan dalam membuat sebuat program,terutam ketelitian dari orang yang akan membuat serta mampu menyusun permasalahan-permasalahan sehingga tersusun menjadi suatu algoritma.


























DAFTAR PUSTAKA

www.wikipedia.com
www.pgri1pwk.blogspot.com











[1] www.pgri1pwk.blogspot.com
[2] www.wikipedia.com
[4] www.teknik-informatika.com

 

Karya Anak Bangsa Copyright © 2008 Black Brown Art Template by Ipiet's Blogger Template