Tampilkan postingan dengan label algoritma dan struktur data. Tampilkan semua postingan
Tampilkan postingan dengan label algoritma dan struktur data. Tampilkan semua postingan

Program Persamaan Kuadrat



#include <iostream.h>
#include <conio.h>
#include <math.h>
 
void main(){

  float a,b,c,x1,x2,D;
  cout<<"MASUKKAN NILAI a=";
  cin>>a;
  cout<<"MASUKKAN NILAI b=";
  cin>>b;
  cout<<"MASUKKAN NILAI c=";
  cin>>c;
  D=b*b-4*a*c;
  cout<<"-----------------------------------------------------"<<endl;
  if(a!=0){
    if(D==0){
       x1=((-b)+sqrt(D))/(2*a);
       x2=x1;
       cout<<"Nilai X1 dan X2 akar kembar adalah ="<<x1;
    }

Contoh Program Tree ( Pohon )



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

struct tree
 {
  int data;
  tree *sebelahkiri;
  tree *sebelahkanan;
 }*tampung,*sa;
  void ceksebelahkanan();
  void ceksebelahkiri();
  void search();

Contoh Program Single Linked List Validasi NIM




hmmmm gimana itu codingnya ??? mau tahu ??? cekidot !!

Contoh Program Single Linked List



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

int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();

struct simpul
{
    char nim[8], nama [20];
    int umur;
    struct simpul *next;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;

Contoh Program Double Linked List



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

int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();

Contoh Program Stack



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

int kotak[10], i=1, pil;
void pilih();
void tambah();
void hapus();
void tampil();

Pohon ( Tree )




Pohon (Tree) didefinisikan sebagai graph terhubung yang tidak mengandung sirkuit. Sedangkan Hutan (Forest) adalah graph yang tidak mengandung sirkuit. Jadi pohon adalah hutan yang terhubung.

Untuk itu perlu diingat kembali bahwa :
• Suatu Graf G disebut terhubung apabila untuk setiap dua simpul dari graf G selalu terdapat jalur yang menghubungkan kedua simpul tersebut.
• Sirkuit atau cycle adalah suatu lintasan tertutup dengan derajat setiap simpul dua.

Interpolation Search




Proses pencarian data ini hampir sama dengan proses pencarian binary search, pencarian ini juga dilakukan pada kumpulan data yang sudah urut. Akan tetapi jika pada binary search kita membagi data menjadi 2 bagian tiap prosesnya, pada interpolation search kita akan membagi data menurut rumus sebagai berikut:

Posisi = ( kunci – data[low] / data[high] – data[low] ) * ( high – low ) + low

Singkatnya proses pencarian interpolation search hampir mirip dengan proses pencarian kata dikamus, yaitu kita mencari data yang dimaksud dengan cara memperkirakan letak data.

Sequensial Search




Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling mudah. Bayangkan saja jika anda dihadapkan pada sebuah rak buku, dan anda diberi tugas untuk mencari sebuah buku dari rak tersebut. Sudah tentu anda akan mulai mencarinya satu – persatu entah itu dari atas atau dari bawah sampai buku yang dimaksud ketemu.
Singkatnya sequential search memiliki proses sebagai berikut:
·         Tentukan banyaknya data yang akan di olah, missal banyak data adalah N.
·         Tentukan data apa yang akan dicari, missal data yang akan dicari adalah C.
·         Deklarasikan sebuah counter untuk menghitung banyak data yang ditemukan, missal counternya adalah K.
·         Inisialisasikan K =0
·         Lakukanlah perulangan sebanyak N kali
·         Dalam tiap proses perulangan tersebut periksalah apakah data yang sedangpakah data ke tesebut cisal oses sebagai berikutketemu.  diolah sama dengan data yang dicari.
·         Jika ternyata sama K=K+1
·         Jika tidak, lanjutkan proses perulangan .
·         Setelah proses perulangan berhenti, periksalah nilai K.

Binary Search



Proses pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu. Jika terdapat N buah data yang akan dolah, data yang dicari akan dibandingkan dengan data ke-N jika data ke-N lebih besar dari data yang dicari maka akan dilakukan pembagian data menjadi dua bagian. Kemudian ujung data pada setiap bagian dibandingkan lagi dengan nilai yang akan dicari. 

Program Menentukan Panjang Karakter di dalam Kalimat



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

void main()
{
    char a[1000];
    clrscr();

   cout<<"Masukan kalimat = ";
   cin.getline(a,sizeof(a));

   cout<<endl<<endl;
   cout<<"Kalimat yang dimasukan adalah "<<a<<endl;

   cout<<endl<<endl;
   int b=strlen(a);
   cout<<"Panjang karakter di dalam kalimat = "<<b<<endl;

Double Linked List Non Circular



DLLNC adalah Double Linked List yang memiliki 2 buah pointer yaitu pointer next dan prev. 
Pointer next menunjuk pada node setelahnya dan pointer prev menunjuk pada node sebelumnya. 
 
•Setiap node pada linked list mempunyai field yang berisi data dan pointer ke node berikutnya & ke node sebelumnya
•Untuk pembentukan node baru, mulanya pointer next dan prev akan menunjuk ke nilai NULL.
•Selanjutnya pointer prev akan menunjuk ke node sebelumnya, dan pointer next akan menunjuk ke node selanjutnya pada list. 

SINGLE LINKED LIST (NON CIRCULAR)



KONSEP POINTER DAN LINKED LIST

Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinkan untuk menggunakan suatu perubah yang disebut dengan perubah dinamis (Dinamic Variable), Perubah dinamis adalah suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

DEKLARASI POINTER

Pointer digunakan sebagai penunjuk di suatu alamat memori, dalam pemograman c++, Type data pointer dideklarasikan dengan bentuk umum :

Type Data*Nama Variabel;

Type data misalnya dapat berupa char, int atau float sedangkan nama variabel merupakan nama variabel pointer.

Konversi Infix ke Prefix



Langkah-langkahnya (mirip dengan Infix ke Postfix loh ! dicek aja deh) :
  1. Cari operator yang memiliki precedence tertinggi.
  2. Letakkan operator tsb di depan operand-operandnya.
  3. Ulangi lagi.

Konversi Infix ke Postfix



Langkah-langkahnya :
  1. Cari operator yang memiliki precedence tertinggi.
  2. Letakkan operator tsb di belakang operand-operandnya.
  3. Ulangi terus sampai bosan, eh salah, sampai selesai.

Insert Sort



  • Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya.
  • Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya.
  • Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang

Contoh Program Bubble Sort



/* Program Sorting Buble Sort */

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

void main()
{
    int a[6],temp,i,j,k;
    for(i=0;i<6;i++)
   {
       cout<<"a["<<i<<"] = ";
      cin>>a[i];
   }
   cout<<endl;

Bubble Sort



Pengertian/Konsep Bubble Sort

Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.
Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.

Kelebihan Bubble Sort

  • Metode Buble Sort merupakan metode yang paling simpel
  • Metode Buble Sort mudah dipahami algoritmanya

Kelemahan Bubble Sort

Meskipun simpel metode Bubble sort  merupakan metode pengurutanyang paling tidak efisien.  Kelemahan buble sort adalah pada saat mengurutkan data yang sangat besar akan mengalami kelambatan luar biasa, atau dengan kata lain kinerja memburuk cukup signifikan ketika data yang diolah jika  data cukup banyak. Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap data yang lain untuk menentukan posisinya.

Stack



PENGERTIAN STACK
Stack merupakan bentuk khusus dari suatu struktur data, dimana node yang ditambahkan ke dalam list dan diambil dari list hanya pada 'kepala'nya, atau dengan kata lain prinsip pengolahannya adalah last-in first-out (LIFO).

LIFO