Minggu, 17 Maret 2013

C++ - Mencari Nilai Tertinggi

Setelah kita sedikit tahu tentang input output pada postingan sebelumnya kita lanjutkan pada penggunaan operator if else. Disini kita langsung akan mencoba membuat sebuah program sederhana yaitu mencari nilai tertinggi.

Kita akan buat dua program. Pertama menghitung nilai tertinggi dari 3 variabel atau 3 inputan dan yang ketiga kita akan menghitung nilai tertinggi lebih dari 3 variabel dengan jumlah variabel terserah user.

Ketikkan kode berikut :

#include<conio.h>
#include<stdio.h>
#include<iostream.h>

main(){
int a[3];


   for (int i=0;i<3;i++){
    cout<<"Masukkan angka "<<i+1<<" : ";
    cin>>a[i];
   }
   int x;
   for (int i=0;i<2;i++)
    for (int j=i+1;j<3;j++){
    if (a[i]>a[j]){
          x=a[i];
            a[i]=a[j];
            a[j]=x;
         }
    }

   cout<<"\nTertinggi : "<<a[2];
   cout<<"\nTengah : "<<a[1];
   cout<<"\nTerendah : "<<a[0];

getche();//header conio.h
}


dan yang kedua kita akan membuat program mengurutkan data dari terkecil keterbesar hanya dengan merubah sedikit kode diatas. Lihat :

#include<conio.h>
#include<stdio.h>
#include<iostream.h>

main(){
int a[50],jml;

   cout<<"Masukkan jumlah data : ";
   cin>>jml;

   for (int i=0;i<jml;i++){
    cout<<"Masukkan angka "<<i+1<<" : ";
    cin>>a[i];
   }

   int x;
   for (int i=0;i<jml-1;i++)
    for (int j=i+1;j<jml;j++){
    if (a[i]>a[j]){
          x=a[i];
            a[i]=a[j];
            a[j]=x;
         }
    }

   for (int i=0;i<jml;i++){
    cout<<a[i]<<" ";
   }

getche();//header conio.h
}


Bagaimana ?
Sukses kan ?

Selamat mencoba. Kalau ada error bagi-bagi permasalahannya dengan berkomentar yah. Khususnya buat sobatku. Edlin

33 komentar:

  1. emm mas bro ini kan dosen saya memakai program DEV-C++ nah ini saya pakai os win8 itu proses compilenya langsung muncul close program itu kenapa ya ? terimakasih sebelumnya

    BalasHapus
    Balasan
    1. owh, km tambahin ini terakhir.

      getch();

      Hapus
    2. itu biar biar nunggu tekan tombol keyboard

      Hapus
    3. terimakasih mas bro sangat membantu sekali n kalau saya mau nambah sampai lima jumlah data n di urutkan jadi 3 dari tertinggi tengah n terendah ? terimakasih sebelumnya

      Hapus
    4. tinggal km ambil nilai terakhir 3, dan masukkan pada array baru

      Hapus
    5. klw km maksa nyari tengah, nih tak turutin.
      Silahkan disantap sob

      #include
      #include
      #include

      main(){
      int a[50],jml;

      cout<<"Masukkan jumlah data : ";
      cin>>jml;

      for (int i=0;i>a[i];
      }

      int x;
      for (int i=0;ia[j]){
      x=a[i];
      a[i]=a[j];
      a[j]=x;
      }
      }


      float urt[3];

      for (int i=0;i<jml;i++){
      cout<<a[i]<<" ";
      }

      cout<<"------------";

      urt[0]=a[0];
      urt[2]=a[jml-1];

      float f1=a[jml/2],f2=a[(jml/2)+1];

      if (jml%2==1){
      urt[1]=a[jml/2];
      }else{

      urt[1]=(f1+f2)/2.0;
      }

      cout<<"Tertinggi : "<<urt[2];
      cout<<"Tengah : "<<urt[1];
      cout<<"Terendah : "<<urt[0];

      getche();//header conio.h
      }

      Hapus
    6. Komentar ini telah dihapus oleh administrator blog.

      Hapus
  2. kalau nyari nilai maksimum, minimum dan rata-rata gimana?

    BalasHapus
    Balasan
    1. Oh iya bro. Klw maksimum kamu loop yg pertama jd awal pembandingnya. klw ada yg lebih besar km ganti dgn yg lebih besar itu.

      Sedangkan minimum. Tinggal balik tanda pembandingnya.

      Sedangkan rata rata jumlahkan semuanya kamu bagikan dgn jumlah bilangan.

      Gunakan looping untuk mengakses data.

      Hapus
  3. pak, gimana cara buat program untuk menentukan nilai terbesar dari dua buah inputan?
    contoh :
    input nilai A= 12
    input nilai B=8
    nilaiA>nilaiB

    BalasHapus
    Balasan
    1. Wah. Gampang sob.

      Int a, b;
      cin>> a;
      cin>> b;
      If (a> b){
      cout <<a;
      } else {
      cout <<b;
      }


      Jgn lupa pake header iostream.h

      Monggo dicoba.

      Hapus
  4. sofyan antoniawan bagai mana buat deretan
    contoh nya seprti ini
    8a 9b 1c 2d 3e
    4f 5g 6h 7i
    8j 9k 1L
    2m 3n
    4o
    help....

    BalasHapus
    Balasan
    1. caranya analisa dulu perubahan apa yang terjadi

      Hapus
    2. #include

      main(){
      int bil=8;
      char c='a';
      for (int i=5;i>0;i--){

      for (int j=i;j>0;j--){
      printf("%d%c ",bil,c);
      bil++;
      c++;
      if(bil>9){
      bil=1;
      }
      }
      printf("\n");
      }
      }

      Hapus
  5. mau tanya dong kalau ada data intA(12,15,7,10,25,2,17,25,5,20) saat kita input data yang termasuk intA maka hasilnya FOUND jika tidak ada maka NOT FOUND itu bagaimana programnya ya?

    BalasHapus
    Balasan
    1. #include

      main(){
      int a[10]=(12,15,7,10,25,2,17,25,5,20);
      int input;
      int lok=-1;

      scantf("%i",input);

      for(int i=0;i<10;i++){
      if (a[i]==input){
      lok=i;
      }
      }

      if (lok!=-1){
      printf("ditemukan pada indeks : %d",lok);
      }else{
      printf("tidak ditemukan");
      }

      }



      maaf ya, lagi sibuk.
      monggo di coba. kalau salah dikoreksi sendiri soalnya saya g pake tool (pke notepad)

      Hapus
    2. nih. udah teruji

      #include

      main(){
      int a[10]={12,15,7,10,25,2,17,25,5,20};
      int input=-1;
      int lokasi=-1;

      scanf("%d",&input);

      for(int i=0;i<10;i++){
      if (a[i]==input){
      lokasi=i;
      break;
      }
      }

      if (lokasi!=-1){
      printf("ditemukan pada indeks : %i",lokasi);
      }else{
      printf("tidak ditemukan");
      }

      }

      Hapus
  6. السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ ,
    Numpang nayak ni,bang kalau permasalahanya gni bang,
    Susun program untuk menginput 10 buah bilangan yang merupakan nilai ujian mahasiswa, kemudian cetak nilai tertinggi yang didapat mahasiswa .

    BalasHapus
    Balasan
    1. #include

      main(){
      int temp=0,in;
      for(int i=0;i<10;i++){
      scanf("%d",&in);
      if (temp<in){
      temp=in;
      }
      }

      printf("nilai tertinggi : %d",temp);

      }

      semoga membantu. :)

      Hapus
  7. Komentar ini telah dihapus oleh pengarang.

    BalasHapus
  8. Mas, kalau mencari nilai kedua terbesar dari deret angka 15, 7, 2, 18, 21, -3, 0.5, 0.85, 19, 20 itu gimana ya?
    Mohon bantuannya mas, tolong di balas ya. Terimakasih

    BalasHapus
    Balasan
    1. maaf ya mbk. baru bisa online nih.
      itu bisa dicari dengan menggunakan 2 variabel.
      var 1 terbesar
      var 2 terbesar ke-2
      kalau ditemukan nilai yg lebih besar. geser var 1 ke var 2. dan seterusnya.
      diakhir cetak var 2

      Hapus
  9. gan cara buat program looping untuk menampilkan deret angka selanjut nya...
    contoh : 1.3.5.7.10.13.16.19.23.25.28.33.38.41
    tanpa input,,jd pas di RUN die keluar angka pertama..di looping angka selanjutnya...

    BalasHapus
    Balasan
    1. ini polanya agak susah, coba perhatikan polanya:
      1 - 3 - 5 - 7 - - 10 - - 13 - - 16 - - 19 - - - 23 - 25 - - - 28 - - - - 33 - - - - 38 - - 41.
      ini pola macam gmn ?
      klw udh ketemu baru bisa dibuat.

      Hapus
  10. misi mas saya kan disuruh bikin nilai 20 org terus cari nilai terbesar terkecil dan setelah itu pakai descending, saya pakai cara mas nilai terbesar kecilnya ngaco..
    tolong dibantu ya

    #include
    #include
    main()
    {

    int nilai_mhs[20],i,j,Temp;
    textcolor(3);
    cprintf("\n MATA KULIAH LOGIKA PEMROGAMAN KOMPUTER");
    cout<>nilai_mhs[i];
    }
    int x;
    for (int i=0;i<20;i++)
    for (int j=i+1;j<20;j++){
    if (nilai_mhs[i]>nilai_mhs[j]){
    x=nilai_mhs[i];
    nilai_mhs[i]=nilai_mhs[j];
    nilai_mhs[j]=x;
    }
    }

    cout<<"\nTertinggi: "<<nilai_mhs[2];
    cout<<"\nTerendah: "<<nilai_mhs[0];

    for(i=0;i<20-1;i++)
    {
    for(j=i+1;j<20;j++)
    if(nilai_mhs[i]< nilai_mhs[j])
    {
    Temp= nilai_mhs[i];
    nilai_mhs[i]= nilai_mhs[j];
    nilai_mhs[j]=Temp;
    }
    }
    textcolor(12);
    cprintf("\n\nUrutkan data secara descending: ");
    cout<<endl;
    for(i=0;i<20;i++)
    cout<< nilai_mhs[i] <<" ";

    getche();
    }

    BalasHapus
    Balasan
    1. coba tolong di run pasti ngaco... bagaimana yang membenarkannya?? terimakasih banyak!!

      Hapus
    2. itu algoritma kamu salah
      main(){
      int a[50],jml;

      cout<<"Masukkan jumlah data : ";
      cin>>jml;

      for (int i=0;i>a[i];
      }

      int x;
      for (int i=0;ia[j]){
      x=a[i];
      a[i]=a[j];
      a[j]=x;
      }
      }


      float urt[3];

      for (int i=0;i<jml;i++){
      cout<<a[i]<<" ";
      }

      cout<<"------------";

      urt[0]=a[0];
      urt[2]=a[jml-1];

      float f1=a[jml/2],f2=a[(jml/2)+1];

      if (jml%2==1){
      urt[1]=a[jml/2];
      }else{

      urt[1]=(f1+f2)/2.0;
      }

      cout<<"Tertinggi : "<<urt[2];
      cout<<"Tengah : "<<urt[1];
      cout<<"Terendah : "<<urt[0];

      getche();//header conio.h
      }

      Hapus
  11. Bang numpang nanya itu kok ambigu sih programnya

    BalasHapus
    Balasan
    1. Maaf baru sempat buka. Sebelah mana yang ambigu ?
      terimaksih

      Hapus
  12. Kalo Cara nentuin nilai min max dari deret yg bilangannya random gmn bang? Mohon pencerahan

    BalasHapus
    Balasan
    1. coba ini mas :
      #include
      #include
      #include

      int main( void )
      {
      int i = 0;
      int a[11];

      int min = a[0];
      int max = a[0];

      srandom( (unsigned) time(NULL) );

      for (i=0;i<11;i++)
      {
      a[i]=random( ) % 100 ;

      printf("%d\n", a[i]);

      if (a[i] > max)
      {
      max = a[i];
      }
      else if (a[i] < min)
      {
      min = a[i];
      }
      }

      printf("Min: %d\n", min);
      printf("Max: %d\n", max);

      return ( 0 ) ;
      }

      Hapus