;

Welcome, Guest. Please login or register.
Did you miss your activation email?

Username: Password:
Pages: 1 2 [3] 4 5 6 7 ... 23   Go Down

Author Topic: belajar pemrograman dengan c++ (lanjutan:D)  (Read 49276 times)

ruudra

  • Cabin Crew
  • *
  • Keong: 0
  • Offline Offline
  • Posts: 13
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #20 on: December 05, 2007, 11:17:56 am »

met bergabung ruu ;)

well, salah satu tujuannya seh emang untuk menemukan alternatif algoritma yg lebih efisien (tentu setelah kita mengetahui karakteristik algoritma kita)... tapi bukan itu aja, melakukan assesment terhadap kompleksitas algoritma juga membantu kita untuk memprediksi bagaimana performa algoritma/program kita untuk kelompok data dan proses tertentu, sehingga kita bisa "prepare" untuk berbagai kondisi yg kira² membuat program kita "KO"

...

hmm... bahasa pemrograman sebenarnya adalah "dialek" yg ditujukan untuk menyampaikan bahasa manusia ke bahasa mesin. Dalam praktiknya, penerjemah "dialek" ini lah yg membuat program yg sebenarnya dan penerjemah ini dinamakan Compiler... Compiler sendiri ada banyak jenisnya, misal untuk bahasa/dialek C/C++ tuh ada Microsoft C/C++, Microsoft Visual C/C++, Borland C/C++, GCC, dll... jadi intinya, compiler adalah produk/aplikasi/program, sedangkan bahasa pemrograman adalah rule/aturan/dialek.

sekarang pertanyaannya, compiler² ini dibuat pakai apa?... ya pakai compiler lain donk.

nah, compiler ini bisa saja compiler yg menerapkan dialek C, C++, Java, dll :)


oh jadi gitu...........
klo gitu compiler kayak c++ tu dibuat pake compiler lain misalnya asembler yach?? bener ga sih???

o iy, klo pemrograman berbasis objek tu apa sih??
apa contoh program yang di posting kesini (program yang di atas) pemrograman terstruktur apa pemrograman berbasis objek??? Apa bedanya terstruktur ama berbasis objek???
Logged

setya5785

  • Penyelam Unggul
  • *****
  • Keong: 0
  • Offline Offline
  • Posts: 6.496
    • Setya5785's Daily Rants
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #21 on: December 07, 2007, 09:58:23 am »

Quote
oh jadi gitu...........
o iy, klo pemrograman berbasis objek tu apa sih??
apa contoh program yang di posting kesini (program yang di atas) pemrograman terstruktur apa pemrograman berbasis objek??? Apa bedanya terstruktur ama berbasis objek???

OOP itu teknik pemrograman berbasis objek.
dengan basis objek disini maksudnya dengan menerapkan modularitas pada pemrogaman. Program pengembangannya dilakukan dengan pendekatan building block. Setiap block, disebut object, bersifat independen dan mampu berjalan sendiri atau saling kunci dengan object lain dengan mudah dan otomatis. beberapa object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-masing object harus berisikan informasi mengenai dirinya sendiri (encapsulation) dan object yang dapat dikaitkan (inheritance). jadi bisa dibilang (gampangannya) dipisahkan fungsi2 dalam program menjadi object (komponen2 kecil) tersendiri, yang nantinya bisa dipanggil sesuai kebutuhan.

OOP bertujuan untuk menerapkan konsep reusability dari program sehingga mempermudah dan mengurangi waktu development aplikasi. karena tiap bagian (fungsi) dalam program dapat dibuat terpisah, dah kemudian dapat dipakai lagi fungsi2 tertentu yang mungkin nanti sama dengan project lain :D bisa dibilang "buat sekali, pake selamanya" ^_^

contoh paling nyata OOP tuh klo di java (sorry basicku bukan C++ jadi jelasin konsep java aja). untuk palikasi kecil mungkin bisa pake satu class aja, tadi didalamnay ada beberap amethod, mungkin salah contohnya ini (ntar masti nbisa kaish contoh kalo yang C++ :D )

Code: [Select]
import javax.swing.*;

class knapsack {
static int[] urutPerUnit, urutBerat, urutHarga, jmlhAmbil;
static String[] urutNama;
static int totalHarga;


    public static void urutkan(int[] nggaUrut1,int[] nggaUrut2,int[] nggaUrut3,String[] nggaUrut4)
        {
        for (int i = 0; i < nggaUrut1.length - 1; i++)
            {
            int depan = i;
            for (int j = i + 1; j < nggaUrut1.length; j++)
            if (nggaUrut1[depan]<(nggaUrut1[j]))
            depan = j;
            swap(nggaUrut1, depan, i);
            swap(nggaUrut2, depan, i);
            swap(nggaUrut3, depan, i);
            swap2(nggaUrut4, depan, i);
        }
    urutPerUnit = nggaUrut1;
urutBerat = nggaUrut2;
urutHarga = nggaUrut3;
urutNama = nggaUrut4;
        return;
    }

    private static void swap(int[] nggaUrut, int a, int b)
        {
        int tmp = nggaUrut[a];
        nggaUrut[a] = nggaUrut[b];
        nggaUrut[b] = tmp;
        return;
    }

    private static void swap2(String[] nggaUrut, int a, int b)
        {
        String tmp = nggaUrut[a];
        nggaUrut[a] = nggaUrut[b];
        nggaUrut[b] = tmp;
        return;
    }



public static void ambil(int k, int[] jAmbil){
for (int i=1; i<=urutBerat.length;i++){
int barang = urutBerat[i-1];
for (int l=1;l<=barang;l++){
if (k>0){
k=k-1;
urutBerat[i-1]=urutBerat[i-1]-1;
jAmbil[i-1]=jAmbil[i-1]+1;
totalHarga=totalHarga+urutPerUnit[i-1];
}//akhir if
}//akhir for
}//akhir for
jmlhAmbil = jAmbil;
}//akhir ambil

public static int bagi(int angka, int pembagi){
int n = 0;
while (angka >= pembagi){
angka -= pembagi;
n +=1;
}
return n;
}//pembagian

public static int kali(int angka1, int angka2){
int n = 0;
for (int i=0; i<angka2; i++){
n = n + angka1;
}
return n;
}//pembagian

public static void  main (String[] args) {
    String sInputString;
    int kTas, jItem;
 
    //minta input yang diinginkan
    sInputString = JOptionPane.showInputDialog("Masukkan nilai kapasitas maksimum tas.", "Masukkan nilai integer");
        kTas = Integer.parseInt(sInputString);
        sInputString = JOptionPane.showInputDialog("Masukkan jumlah item keseluruhan yang ada.", "Masukkan nilai integer");
        jItem = Integer.parseInt(sInputString);
        String[] nama = new String [jItem];
        int[] berat = new int [jItem];
        int[] harga = new int [jItem];
        int[] hargaPerUnit = new int [jItem];
             
        for (int i = 1; i<=jItem; i++){
        nama[i-1] = "Barang "+i;
        sInputString = JOptionPane.showInputDialog("Masukkan Berat item ke-"+i+".", "Masukkan berat (integer)");
        berat[i-1] = Integer.parseInt(sInputString);
        sInputString = JOptionPane.showInputDialog("Masukkan Harga item ke-"+i+".", "Masukkan harga (integer)");
        harga[i-1] = Integer.parseInt(sInputString);
        }//akhir for jumlah barang
       
        //harga perunit
        for (int i=1; i<=jItem; i++){
        hargaPerUnit[i-1] = bagi(harga[i-1],berat[i-1]);
        }
       
        urutkan(hargaPerUnit, berat, harga, nama);
               
System.out.println("======================================================");
System.out.println("11         (\"`-''-/\").___..--''\"`-._                11");
System.out.println("11          `6_ 6  )   `-.  (     ).`-.__.`)        11");
System.out.println("11          (_Y_.)'  ._   )  `._ `. ``-..-'         11");
System.out.println("11        _..`--'_..-_/  /--'_.' ,'                 11");
System.out.println("11       (il),-''  (li),'  ((!.-'      Kelompok I   11");
System.out.println("======================================================");
System.out.println("11            Welcome to Knapsack Problem           11");
System.out.println("11                The Final result                  11");
System.out.println("======================================================");
System.out.println("\n");

System.out.println("Detail permasalahan adalah sebagai berikut :");
System.out.print("1. Nilai kapasitas maksimal tas adalah : "+kTas+" Kg");
System.out.print("\n2. tabel barang adalah sebagai berikut :\n");
System.out.print("Nama Barang\t\tBerat(kg)\tHarga\t\tHarga(per 1kg)\n");
        for (int i = 1; i<=jItem; i++){
        System.out.print(urutNama[i-1]+"\t\t"+urutBerat[i-1]+"\t\t"+urutHarga[i-1]+"\t\t"+urutPerUnit[i-1]);
        System.out.print("\n");
        }//akhir for tabel
       
        int[] jAmbil = new int[jItem];
        for (int i=1; i<=jItem; i++){
        jAmbil[i-1]=0;
        }
           
    ambil(kTas, jAmbil);
System.out.println("\ntotal nilai barang yang diambil :"+totalHarga);
System.out.println("Rincian barang yang diambil adalah :");
        for (int i=1; i<=jItem; i++){
        if (jmlhAmbil[i-1]!=0)
        System.out.println(i+". "+(jmlhAmbil[i-1])+" Kg "+(urutNama[i-1])+" Seharga "+(kali(jmlhAmbil[i-1],urutPerUnit[i-1])));
        }
System.out.println("\nTerima kasih.");

}//akhir main

}//akhir class

diatas contoh kode yang aku pake untuk menghitung optimasi kasus knapsack diawal2 kuliah algoritma :D

bisa dibilng ini aplikasi sederhana, cuman melibatkan sekitar 100an baris dan 1 class. didalam clas ini fungsi2 di enkapsulasi menjadi beberapa method, seperti swap, swap2 , ambil, bagi, yang masing2 memiliki fungsi spesifik yang berbeda. fungsi2 ini bisa dipanggil dari baris mana saja dan kapan saja kita inginkan. jadi kalo mau membagi sesuatu (mungkin beberapa kali di bagian awal code, tengah dan akhir) cukup panggil method bagi di bagian2 tersbeut dengan memberikan passing parameter yang sesuai, daripada menulis algoritma pembagian di 3 tempat yang berbeda. ini adalah contoh penerapan modularitas. mempertinggi kualitas dan produktifitas pengembangan software

pada kasus penerapan OOP yang melingkupi scope lebih besar dapat melibatkan ebebrapa class bahkan sampe puluhan atau ratusan class yang masing2 class memiliki peranan masing2. class atau object tersebut umumnya spesifik namun generik sehingga bisa digunakan untuk kasus serupa (namun berbeda). (mau nyontohin code, tapi kaya'e bakal panjang :D

kalo mo lebih detil lagi konsep OOP, bisa dibaca lewat buku2 yang mengajarkan bahasa OOP, kalo untuk java bsia baca java how to program dari deitel, c++ juga da keluarannya C++ how to program, cari e-booknya aja di net, yang versi chm, banyak ko' yang nyediakan download

riot

  • Cabin Crew
  • *
  • Keong: 0
  • Offline Offline
  • Posts: 445
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #22 on: December 08, 2007, 04:54:01 pm »

klo gitu, spt biasa. apa ada referensi? (link maksudnya)
Logged
"For while comets move in very eccentric orbs in all manner of positions, blind fate could never make all the planets move one and the same way in orbs concentric..."
[Sir Isaac Newton]

mastery

  • Global Moderator
  • Senior Sailor
  • *****
  • Keong: 0
  • Offline Offline
  • Posts: 26.138
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #23 on: December 08, 2007, 05:03:06 pm »

ada di halaman 1


tuk sekedar nambah bahan bacaan :

Thinking in C++ 2nd Edition by Bruce Eckel

    Free Electronic Book
    Volume 1 & Volume 2



Thinking in C++, Volume 1


Thinking in C++, Volume 2

http://mindview.net/Books/TICPP/ThinkingInCPP2e.html

setya5785

  • Penyelam Unggul
  • *****
  • Keong: 0
  • Offline Offline
  • Posts: 6.496
    • Setya5785's Daily Rants
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #24 on: December 08, 2007, 08:15:48 pm »

mastri punay e-booknya C++ how to program ga ?
kemaren dapat dari web china, rar, ga taunay dipassword :| ga bisa ku buka

mastery

  • Global Moderator
  • Senior Sailor
  • *****
  • Keong: 0
  • Offline Offline
  • Posts: 26.138
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #25 on: December 09, 2007, 11:39:54 am »

ada banyak e-book di repository knowledge-base di kantorku...

nanti aku coba cariin dan aku email ke kamu...

untuk sementara pakai yg Thinking in C++ di atas deh ;)

setya5785

  • Penyelam Unggul
  • *****
  • Keong: 0
  • Offline Offline
  • Posts: 6.496
    • Setya5785's Daily Rants
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #26 on: December 09, 2007, 07:16:28 pm »

sepp bos :D

riot

  • Cabin Crew
  • *
  • Keong: 0
  • Offline Offline
  • Posts: 445
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #27 on: December 22, 2007, 10:09:09 pm »

@ mas try: mas, sory baru di bahas mengenai skripnya untuk halaman pertama. mas, bisa ngga klo skripnya dibuat pake library <iostream>  ? soalnya gw blm tau klo stdio.h
Logged
"For while comets move in very eccentric orbs in all manner of positions, blind fate could never make all the planets move one and the same way in orbs concentric..."
[Sir Isaac Newton]

fang_mei

  • Senior Sailor
  • ******
  • Keong: 0
  • Offline Offline
  • Posts: 13.472
  • Mana sapu kesayangan gue??? Oh, ada di gudang deng
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #28 on: December 22, 2007, 11:19:16 pm »

hhhmmm..... dulu pertama kali blajar C++ malah pake stdio dulu baru pake iostream....


iostream itu yg pake cin ama cout tuh ya?
tinggal ganti aja format printf jadi format cout...
Logged
Find me on FS : - J'ice - HaLF
    [im

mastery

  • Global Moderator
  • Senior Sailor
  • *****
  • Keong: 0
  • Offline Offline
  • Posts: 26.138
Re: belajar pemrograman dengan c++ (lanjutan:D)
« Reply #29 on: December 22, 2007, 11:59:34 pm »

yup, bener kata fang mei :)

karena ngga pake formatting macem², tinggal ganti aja tiap kemunculan:

printf(" xxx ");

menjadi:

cout << "xxx";

beres! ;)
Pages: 1 2 [3] 4 5 6 7 ... 23   Go Up