Selasa, 13 Oktober 2015



1.              Sejarah Java dan Pengertian Java



 Hasil gambar untuk foto java




                                   PENGERTIAN DAN SEJARAH JAVA

 Pengenalan Java

Java adalah salah satu bahasa pemrograman berorientasi objek (OOP-Object Oriented Programming). Paradigma OOP menyelesaikan masalah dengan merepresentasikan masalah ke model objek.
Pemrograman Berorientasi Obyek (OOP)
Pemisalan Objek dalam OOP
Objek-objek dalam dunia nyata, mempunyai 2 karakteristik khusus : Status dan Perilaku. Contohnya, sepeda punya status(jumlah gir, jumlah pedal, dua buah ban) dan perilaku(mengerem, mempercepat,
ubah gir).
Bahasa yang berorientasi pada objek pun mempunyai karakteristik yang sama dengan objek-objek di dunia nyata. Yaitu status yang dalam bahasa pemrograman biasanya disimpan sebagai Variabel dan perilaku yang diimplementasikan sebagai Method.
Sejarah Java

Dimulai pada tahun 1991 dibentuknya suatu tim yang diberi nama green
Tim ini dipimpin oleh Patrick Naughton dan James Gosling (Sekelompok insinyur Sun ).
Awalnya mereka ingin membuat suatu bahasa komputer yang dapat digunakan oleh TV kabel ( Cable TV Box) yang memiliki memori kecil dan setiap perusahaan memiliki tipe yang berbeda.
Untuk mengaplikasikan hal tersebut mereka menggunakan hal yang pernah dicoba oleh bahasa pascal.
Sebelumnya Niclaus Wirth telah membuat sebuah bahasa yang portable yang akan digunakan dalam mesin bayangan selanjutnya ini disebut sebagai Virtual Mesin namun saat itu belum diumumkan.
Akhirnya tim green mengunakan ide ini akhirnya mereka menciptakan Java Virtual Mesin.
Vitual mesin inilah yang menbuat java dapat dijalankan diberbagai platform.
Pada tahun 1992 tim green membuat produknya yang diberi nama *7 (Star Seven )
Namun produk ini gagal dipasaran.

Setelah itu dibuat produk yang baru. Inilah java, pada awalnya bahasa pemrograman yang dibuat tersebut diberi nama “oak “ (Kemungkinan nama ini diambil dari nama pohon yang ada didepan jendela James Gosling)
Namun setelah diperiksa ternyata nama oak sudah pernah digunakan. Maka lahirlah nama “ Java “
Pada tahun 1993 sampai pertengahan 1994 tim green yang mempunyai nama baru First person. Inc hanya menghabiskan waktu dengan memperhatikan penjualan dari produknya. Ternyata tidak satupun orang ditemukan. Akhirnya pada tahun 1994 First Person dibubarkan.
Pada tahun itu Web berkembang sangat pesat saat itu browser yang banyak digunakan adalah Mosaic suatu broser yang gratis.

Dalam suatu wawancara pada pertengahan tahun 94 James Gosling mengatakan “We could build a real cool browser. It was one of the few things in the client/serve mainstream that needed some of the weird things we’d done: architecture neutral, real-time,reliable, secure—issues that weren’t terribly important in the workstation world. So we built a browser.”
Akhirnya dibuatlah suatu browser oleh Patrick Naughton dan Jonathan Payne.
Browser itu diberi nama Hot Java. Browser ini dibuat dengan menggunakan bahasa java untuk menunjukkan kemampuan dari java.
Yang tidak kalah hebatnya mereka juga membuat teknologi yang disebut Aplet sehingga browser dapat menjalankan kode program didalam browser.
Inilah bukti dari teknologi itu yang ditunjukkan java pada tanggal 25 mei 1995
Sejak saat itu browser java memberikan lisensinya kepada browser lain untuk bisa menjalankan Applet dan pada tahun 1996 diberikan pada Internet Explorer.
Akhirnya pada tahun 1996 dikeluarkan versi pertama dari java dengan mengeluarkan java 1.02
Pada tahun 1998 dikeluarkan java 1.2 dan java mulai mengeluarkan slogannya “Write once, Run anywhre “
Edisi Java
Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkngan : internet, intranets,consumer electronic products, dan computer applications.The java 2 platform tersedia dalam 3 edisi untuk keperluan berbeda. Untuk beragam aplikasi yang dibuat dengan bahasa Java, java dipaketkan dalam edis – edisi berikut :
1.Java 2 Standard Edition ( J2SE )
2.Java 2 Enterprise dition ( J2EE )
3.Java 2 Micro Edition ( J2ME )
Masing – masing edisi berisi Java 2 Software Development Kit ( J2SDK ) untuk mengembangkan aplikasi dan Java 2 Runtime Environent ( J2RE ) untuk menjalankan aplikasi.
Kelebihan Java di bandingkan dengan C++
Pembuat program java telah merancang java untuk menghilangkan pengalokasian dan dealokasi memori secara manual, karena java memiliki Garbage Collection
Diperkenalkannya deklarasi array yang sebenarnya dan menghilangkan aritmatika pointer. Hal ini yang sering menyebabkan memori overwrite.
Dihilangkannya multiple inheritance, mereka menggantinya dengan interface.
Kelebihan dan Kekurangan



Pengertian Java

Java adalah bahasa pemrograman yang multi platform dan multi device. Sekali anda menuliskan sebuah program dengan menggunakan Java, anda dapat menjalankannya hampir di semua komputer dan perangkat lain yang support Java, dengan sedikit perubahan atau tanpa perubahan sama sekali dalam kodenya. Aplikasi dengan berbasis Java ini dikompulasikan ke dalam p-code dan bisa dijalankan dengan Java Virtual Machine. Fungsionalitas dari Java ini dapat berjalan dengan platform sistem operasi yang berbeda karena sifatnya yang umum dan non-spesifik.

Slogan Java adalah “Tulis sekali, jalankan di manapun”. Sekarang ini Java menjadi sebuah bahasa pemrograman yang populer dan dimanfaatkan secara luas untuk pengembangan perangkat lunak. Kebanyakan perangkat lunak yang menggunakan Java adalah ponsel feature dan ponsel pintar atau smartphone.

Kelebihan dan kekurangan Java
Setelah membahas mengenai pengertian java, selanjutnya kita membahas mengenai kelebihan dan kekurangan java. Kelebihan Java yang pertama tentu saja multiplatform. Java dapat dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda. Hal ini sesuai dengan slogannya yangs udah dibahas sebelumnya. Yang kedua adalah OOP atau Object Oriented Programming. Java memiliki library yang lengkap. Library disini adalah sebuah kumpulan dari program yang disertakan dalam Java. Hal ini akan memudahkan pemrograman menjadi lebih mudah. Kelengkapan library semakin beragam jika ditambah dengan karya komunitas Java.

Setiap hal pasti memiliki kelebihan dan kekurangan. Kekurangan yang dimiliki oleh Java adalah pada satu slogannya, takni “Tulis sekali dan jalankan dimana saja” ternyata tidak sepenuhnya benar. Beberapa hal harus disesuaikan jika dijalankan pada platform yang berbeda. Misalnya untuk J2SE dengan platform SWT-AWT bridge tidak dapat berfungsi di Mac OS X. Kekurangan lainnya adalah kemudahan aplikasi Java didekompilasi. Dekompilasi adalah suatu proses membalikkan sebuah aplikasi menjadi kode sumbernya. Hal ini memungkinkan terjadi pada Java karena berupa bytecode yang menyimpan bahasa tingkat tinggi. Hal ini terjadi pula pada platform .NET dari Microsoft sehingga program yang dihasilkan mudah dibajak kodenya karena sulit untuk disembunyikan.

Kekurangan Java yang lain adalah penggunaan memori yang cukup banyak, lebih besar daripada bahasa tingkat tinggi sebelum generasi Java. Namun hal ini memang sesuai dengan fitur beragam yang dimiliki oleh Java. Masalah memori ini juga tidak dialami oleh semua pengguna aplikasi Java. Mereka yang sudah menggunakan perangkat keras dengan teknologi terbaru tidak merasakan kelambatan dan konsumsi memori Java yang tinggi. Lain halnya dengan mereka yang menggunakan teknologi lama atau komputer yang sudah berumur tua lebih dari empat tahun akan merasakan adanya kelambatan. Namun apapun kelemahan yang dimiliki Java, faktanya adalah Java merupakan bahasa pemrograman yang populer dan digunakan di seluruh dunia saat ini.

2.              VARIABEL
Menurut Freddy Rankuti, pengertian variabel adalah sebuah konsep yang memiliki nilai yang bervariasi, maka nilai variabel dapat dibedakan menjadi empat tingkatan skala, yaitu rasio, ordinal, nominal dan internal.

Menurut Sutrisno Hadi, definisi variabel adalah variasi dari objek penelitian, seperti ukuran tinggi manusia yang divariasikan menjadi tingkatan umur, kelamin bahkan lokasi tinggal manusia tersebut.

Pengertian variabel menurut Bagja Waluya: Variabel adalah konsep yang tidak pernah ketinggalan dalam setiap eksperimen/penelitian (research). Variabel diartikan sebagai gejala yang memiliki variasi.
Menurut Tia Mutiara, Variabel adalah sesuatu yang menjadi fokus perhatian (center of attention) atau pusat yang memberikan pengaruh (effect) dan mempunyai nilai (value). Hal ini membuat variabel dapat berubah.Variabel dapat disebut juga sebagai peubah. Objek penelitian yang dapat menentukan hasil penelitian juga merupakan variabel.
Pengertian Variabel menurut Robbin Pearson, bahwa variabel adalah semua karakteristik umum yang dapat diukur (measurable) dan dapat berubah dalam intensitas, keluasan atau keduanya.
Menurut Sugiarto, Definisi variabel adalah karakter yang akan diobservasi dari unit amatan yang merupakan suatu pengenal atau atribut dari sekelompok objek. Ciri dari variabel yang dimaksud adalah terjadinya variasi antara objek yang satu dengan objek lainnya dalam kelompok tertentu.
Definisi Variabel menurut Eddy Soeryanto Soegoto, variabel adalah objek penting (main object) dalam riset pemasaran. Hal ini penting karena riset tidak dapat terlaksana tanpa adanya variabel.
Variabel juga dapat berarti  sarana untuk memperoleh pemahaman terhadap masalah (problem) yang sedang diteliti secara benar. Dengan menggunakan variabel-variabel tertentu, peneliti menguji benar atau tidaknya asumsi dan rumusan masalah yang sebelumnya sudah dibuat

Variabel dapat dibagi menjadi variabel kuantitatif dan variabel kualitatif. Variabel kuantitatif diklasifikasikan menjadi 2 kelompok, yaitu variabel diskrit (discrete) dan variabel kontinu (continous).

Variabel adalah suatu besaran yang dapat diubah atau berubah sehingga mempengaruhi peristiwa atau hasil penelitian. Dengan menggunakan variabel, kita akan mmeperoleh lebih mudah memahami permasalahan. Hal ini dikarenakan kita seolah-olah seudah mendapatkan jawabannya. Biasanya bentuk soal yang menggunakan teknik ini adalah soal counting (menghitung) atau menentuakan suatu bilangan. Dalam penelitian sains, variable adalah bagian penting yang tidak bisa dihilangkan.
Macam Macam Variabel
Variabel  Independen. Variable ini sering disebut sebagai variabel predictor, variabel pengaruh, kausa, variabel perlakuan, treatment, variabel risiko, stimulus, dan juga dikenal sebagai variabel bebas dan variabel predictor.
Variabel ini merupakan variabel yang menjadi sebab terjadinya perubahan atau mempengaruhi timbulnya variabel terikat (dependen). Oleh karena itu, variabel ini disebut variabel bebas (independent). Variabel bebas juga sering tuliskan dalam Structural Equation Modelling  sebagai variabel eksogen.

Variabel Dependen sering disebut sebagai variabel konsekuen, variabel kriteria, variabel pengaruh, terikat, tergantung, dan variabel output.
Berbeda dengan variabel independet, variabel dependen dalam SEM atau permodelan persamaan struktural, variabel independen juga dikenal sebagai variabel indogen.
Alasan variabel dependen disebut variabel terikat adalah karena setiap variabel independen  akan mempengaruhi variabel terikat / independen

Variable Moderator: Pengertian Variabel Moderator adalah variabel yang berpengaruh baik itu memperkuat maupun memperlemah  hubungan (relation) antara variabel bebas dan variabel terikat.
Variabel independen kedua merupakan nama lain untuk variabel moderator.

Variabel Intervening
Pengertian variabel intervening adalah variabel yang secara teoritis mempengaruhi hubungan (relation) antara variabel bebas dengan variabel terikat, tetapi tidak dapat diamati dan diukur.
Variabel ini merupakan variabel penyela/Antara yang terletak diantara variabel bebas dan bariabel terikat, sehingga Variabel Bebas tidak secara langsung mempengaruhi berubahnya atau timbulnya Variabel Terikat.
Contoh :
Tinggi rendahnya pendapatan akan mempengaruhi secara tidak langsung terhadap umur harapan hidup. Di sini ada variabel antaranya yaitu yang berupa gaya hidup seseorang. Antara variabel penghasilan dan gaya hidup terdapat variabel moderator yaitu Budaya Lingkungan Tempat Tinggal.

3.TIPE DATA
Pengertian Tipe Data
Tipe Data menunjukkan suatu nilai yang dapat digunakan oleh suatu variable yang bersangkutan.
Tipe Data dalam Pascal :
Tipe Data Sederhana
Tipe data sederhana merupakan tipe data dasar yang sering dipakai oleh program.
Tipe Data Standar
Meliputi :
Integer : merupakan tipe data untuk menyimpan bilangan bulat.
Real : merupakan tipe data untuk menyimpan bilangan real atau pecahan.
Char : merupakan sebuah karakter yang ditulis diantara tanda petik tunggal. Ex : ‘A’, ‘a’, ’5′ dll.
String : merupakan urut-urutan dari beberapa karakter yang terletak di antara tanda petik tunggal.
Boolean : merupakan tipe data logika, yang berisi dua kemungkinan nilai : TRUE atau FALSE.
Tipe data didefinisikan pemakai
Tipe Data Terstruktur
Meliputi :
Array : merupakan tipe data berindeks yang terdiri dari satu atau lebih elemen atau komponen yang memiliki tipe data yang sama. (mendeklarasikan kumpulan variabel yang bertipe sama).
Record : merupakan tipe data yang digunakan untuk merepresentasikan kumpulan elemen atau komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute.
File : merupakan tipe data yang digunakan untuk mengakses file.
Set : merupakan tipe data yangdigunakan untuk menyimpan kumpulan nilai ( disebut juga anggota himpunan) yang bertipe sama.
Tipe Data Pointer
Tipe data pointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memory. Suatu variabel yang points(menunjuk) ke sesuatu sehingga disebut pointer. Ada dua macam pointer:
Typed(tertentu) : merupakan pointer yang menunjuk pada tipe data tertentu pada variable.
Generic (umum) : merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable.
4.OPERATOR-OPERATOR
3.            Pengertian Operator
Operator adalah simbol yang digunakan dalam program untuk merubah suatu nilai. Dalam program, operator digunakan untuk :
4.            Mengalikan nilai dua variabel
Menginisialisasi nilai pada variabel
Membandingkan nilai dalam dua variabel, dsb.
Macam-macam Operator :
Operator Aritmatika : Operator yang digunakan untuk melakukan perhitungan perhitungan Matematika.
5.            Operator Kegunaan
6.            + Penjumlahan
7.            – Pengurangan
8.            * Perkalian
9.            / Pembagian bilangan real
10.          mod Sisa bagi
11.          div Pembagian bilangan bulat
12.          Operator Logika : Operator yang digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi. Hasilnya adalah benar (TRUE) atau salah (FALSE).
13.          Operator Kegunaan
14.          AND Dan
15.          OR Atau
16.          XOR Salah Satu Benar
17.          NOT Tidak/Negasi
18.          Operator Relasional : Operator yang digunakan untuk membandingkan hubungan antara dua buah operand (sebuah nilai atau variable).
19.          Operator Kegunaan
20.          = Sama Dengan
21.          <> Tidak Sama Dengan
22.          < Lebih Kecil
23.          <= Lebih Kecil Sama Dengan
24.          > Lebih Besar
25.          >= Lebih Besar Sama Dengan
5.CONTOH-CONTOH PROGRAM
CONTOH CONTOH PROGRAM ALGORITMA C++
pointer secara sederhana bisa diartikan sebagai tipe data yang nilainya mengarah pada nilai yang terdapat pada sebuah area memori (alamat memori).
Penjelasan tentang pointer
pointer adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Pointer sebenarnya sangat terkait dengan “Abstract C Machine”, yaitu model mesin abstrak dimana program C bekerja. Abstract C Machine adalah mesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory yang terbagi kedalam 3 bagian : automatic memory, static memory dan free memory. Addressable memory adalah memory yang konten-nya dapat diambil jika diketahui alamatnya. Lebih jauh lagi, terdapat asumsi bahwa konten memori dapat di ambil dengan waktu konstan, tidak peduli berapa nilaialamat.Hal ini disebut dengan Random Access Memory.
Penggunaan Awal Pointer
Jika variabel merupakan isi memori, dan untuk mengakses isi memori tersebut diperlukan address, lalu bagaimana cara kita mengetahui alamat dari suatu variabel ? Jawabannya adalah : untuk kebanyakan kasus kita sama sekali tidak perlu tahu alamat dari sebuah variabel. Untuk mengakses sebuah variabel kita hanya perlu nama dari variabel tersebut. Tugas kompiler lah yang mentranslasikan nama ke alamat mesin yang diperlukan oleh komputer.
Akan tetapi terdapat beberapa kasus dimana kita tidak mungkin memberi nama pada sebuah entitas di program kita. Hal ini terjadi terutama saat kita menggunakan data struktur dinamis seperti linked list, resizeable array, tree dan lain sebagainya. Hal ini karena kita tidak mungkin memberi nama terhadap entitas yang mungkin ada atau tidak ada. Struktur seperti linked list hampir mustahil dibuat tanpa pointer tanpa harus mendefinisikan LISP-like list.
Inilah awal mula penggunaan pointer sebagai moniker. Istilah moniker di sini berarti sesuatu yang menunjuk atau mengacu kepada entitas lain. Istilah moniker ini bukanlah istilah standard dan lazim , tetapi sesuatu yang saya pilih impromptu untuk membedakan dengan pointer atau reference yang sudah memiliki arti tersendiri.
Penggunaan lain pointer sebagai moniker adalah untuk mengatasi kelemahan bahasa C awal : Dahulu fungsi – fungsi di C hanya mengerti pass by value. Pointer digunakan untuk mengemulasi pass by reference karena pointer berisi alamat ke objek lain, sehingga fungsi tersebut dapat mengubah objek tersebut dengan memanipulasi pointer.
Pertanyaanya : siapa yang bertugas menentukan alamat objek yang di tunjuk oleh pointer dalam kasus ini ? jelas bukan kompiler karena objek tersebut tidak bernama. Apakah kita sebagai programmer menentukannya sendiri ? ternyata tidak. Hal tersebut ditentukan oleh fungsi malloc dan sejenisnya (dan juga new di C++), atau untuk kasus passing pointer ke dalam fungsi, operator &. Jadi dalam hal ini kita tidak juga menentukan alamat sebuah objek.
/**
* pointer.c – contoh penggunaan pointer
* coded by void ;)
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
if (argc < 2) {                                   /* periksa parameter yang diberikan */
printf(“aturan pakai: %s <nama>\n”, argv[0]); /* jika parameter tidak ada tampilkan help */
exit(1);                                      /* keluar */
}
printf(“hello %s :)\n”, argv[1]);                 /* tampilkan pesan dan parameter */
return 0;                                         /* keluar */
}
Linked list
Linked list adalah suatu cara untuk menyimpan data dengan struktur sehingga programmer dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan data kapan saja diperlukan. Linked list (list bertaut) merupakan salah satu struktur data dasar yang sangat fundamental dalam bidang ilmu komputer.Secara rinci, programmer dapat menulis suatu struct atau definsi kelas yang berisi variabel yang memegang informasi yang ada di dalamnya, dan mempunyai suatu pointer yang menunjuk ke suatu struct sesuai dengan tipe datanya. Linked list mirip dangan array, kecuali pada linked list data yang ingin disimpan dapat dialokasikan secara dinamis pada saat pengoperasian program (run-time).
Pada array, apabila programmer ingin menyimpan data, programmer diharuskan untuk mendefinisikan besar array terlebih dahulu, seringkali programmer mengalokasikan array yang sangat besar(misal 100). Hal ini tidak efektif karena seringkali yang dipakai tidak sebesar itu. Dan apabila programmer ingin menyimpan data lebih dari seratus data, maka hal itu tidak dapat dimungkinkan karena sifat array yang besarnya statik. Linked list adalah salah satu struktur data yang mampu menutupi kelemahan tersebut. Struktur dinamis ini mempunyai beberapa keuntungan disbanding struktur array yang bersifat statis. Struktur ini lebih dinamis, karena banyaknya elemen dengan mudah ditambah atau dikurangi, berbeda dengan array yang ukurannya bersifat tetap. Disamping itu, manipulasi terhadap setiap elemen seperti menyisipkan, menghapus, maupun menambah dapat dilakukan dengan lebih mudah.
Secara umum linked list tersusun atas sejumlah bagian-bagian data yang lebih kecil yang terhubung (biasanya melalui pointer). Linked list dapat divisualisasikan seperti kereta, bagian kepala linked list adalah mesin kereta, data yang disimpan adalah gerbong, dan pengait antar gerbong adalah pointer.
——– ——– ——–
Mesin Data Data
——– ——– ——–
(kepala) —> Pointer —> Pointer —
——– ——– ——–
Programmer membaca data menyerupai kondektur yang ingin memeriksa karcis penumpang. Programmer menyusuri linked list melalui kepalanya, dan kemudian berlanjut ke gerbong (data) berikutnya, dan seterusnya sampai gerbong terakhir (biasanya ditandai dengan pointer menunjukkan alamat kosong (NULL)). Penyusuran data dilakukan secara satu persatu sehingga penyusuran data bekerja dengan keefektifan On. Dibandingkan array, ini merupakan kelemahan terbesar linked list. Pada array, apabilan programmer ingin mengakses data ke-n (index n), maka programmer dapat langsung mengaksesnya. Sedangkan dengan linked list programmer harus menyusuri data sebanyak n terlebih dahulu.
Bentuk umum:
Typedef struct telmlist
{
infotype info;
address next;
} elmtlist;
infotype: sebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list
next: address dari elemen berikutnya(suksesor)
Jika L adalah list, dan P adalah address, maka alamat elemen pertama list L dapat diacu dengan notasi:
First(L)
Sebalum digunakan harus dideklarasikan terlebih dahulu:
#define first(L)
Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi:
Info (P) deklarasi #define info(P) (P)->info
Info(P) deklarasi #define next(P) (P)->next
Beberapa definisi:
1. List l adalah list kosong, jika First(L)=Nil
2. Elemen terakhir dikenali, dengan salah satu cara adalah karenaNext(Last)=Nil
Nil adalah pengganti Null, perubahan ini dituliskan dengan #define Nil Null
Untuk lebih memahami konsep linked list, perhatikan permasalahan berikut ini:
Misalkan kita diminta untuk membuat suatu algoritma dan program untuk memasukkan 2 buah daftar ke dalam suatu daftar atau senarai (linked list), dimana senarai tersebut masih kosong, sehingga setelah anda memasukkan 2 buah data tersebu, senarai tersebut berisi 2 buah data.
Algoritma dari permasalahan diatas adalah sebagai berikut:
1. Tentukan struktur untuk menampung data yang dimasukkan
2. Senarai masih dalam keadaan kosong
3. Tentukan fungsi untuk memasukkan data ke dalam senarai
4. Fungsi untuk memasukkan data ke dalam senarai adalah:
if(p==NULL){
t-> next=*s;
*s=t;
5. Masukkan data tersebut ke dalam senarai
6. Tampilkan data
7. Selesai
Implementasi dari algoritma diatas pada program adalah sebagai berikut:
//Program:link1.cpp
#include
#include
#include
typedef struct nod
{
int data;
struct nod *next;
} NOD, *NODPTR;
void CiptaSenarai(NODPTR *s)
{
*s=NULL;
}
NODPTR NodBaru(int m)
{
NODPTR n;
n=(NODPTR) malloc(sizeof(NOD));
if(n!=NULL)
{
n-> data=m;
n->next=NULL;
}
return n;
}
void SisipSenarai(NODPTR *s, NODPTR t, NODPTR p)
{
if(p==NULL)
{
t->next=*s;
*s=t;
}
else
{
t->next=p->next;
p->next=t;
}
}
void CetakSenarai (NODPTR s)
{
NODPTR ps;
for (ps=s;ps!=NULL; ps=ps->next)
printf(“%d–>”,ps->data);
printf(“NULL\n”);
}
int main()
{
NODPTR pel;
NODPTR n;
CiptaSenarai(&pel);
n=NodBaru(55);
SisipSenarai(&pel, n, NULL);
n=NodBaru(75);
SisipSenarai(&pel, n, NULL);
CetakSenarai(pel);
return 0;
}
Bila program di atas dijalankan, maka hasilnya adalah sebagai berikut:
75->55->NULL
Penjelasan:
Untuk menciptakan dan menyisipkan linked list atau senarai ini, prosesnya adalah sebagai berikut:
void CiptaSenarai(NODPTR *s)
{
*s=NULL;
}
NODPTR NodBaru(int m)
{
NODPTR n;
n=(NODPTR) malloc(sizeof(NOD));
if(n!=NULL)
{
n-> data=m;
n->next=NULL;
}
Proses menyisipkan:
void SisipSenarai(NODPTR *s, NODPTR t, NODPTR p)
{
if(p==NULL)
{
t->next=*s;
*s=t;
}
else
{
t->next=p->next;
p->next=t;
}
}
Berikut contoh program sorting paling komplit.
contoh program c++ :
#include <iostream.h>
#include <conio.h>
int data[100],data2[100];
int n;
void tukar(int a,int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void bubble_sort()
{
for(int i=1;i<n;i++)
{
for(int j=n-1;j>=i;j–)
{
if(data[j]<data[j-1]) tukar(j,j-1);
}
}
cout<<”bubble sort selesai!”<<endl;
}
void exchange_sort()
{
for (int i=0; i<n-1; i++)
{
for(int j = (i+1); j<n; j++)
{
if (data [i] > data[j]) tukar(i,j);
}
}
cout<<”exchange sort selesai!”<<endl;
}
void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos = i;
for(j = i+1;j<n;j++)
{
if(data[j] < data[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
cout<<”selection sort selesai!”<<endl;
}
void insertion_sort()
{
int temp,i,j;
for(i=1;i<n;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j–;
}
data[j+1] = temp;
}
cout<<”insertion sort selesai!”<<endl;
}
void QuickSort(int L, int R) //the best sort i’ve ever had
{
int i, j;
int mid;
i = L;
j = R;
mid = data[(L+R) / 2];
do
{
while (data[i] < mid) i++;
while (data[j] > mid) j–;
if (i <= j)
{
tukar(i,j);
i++;
j–;
};
} while (i < j);
if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);
}
void Input()
{
cout<<”Masukkan jumlah data = “; cin>>n;
for(int i=0;i<n;i++)
{
cout<<”Masukkan data ke-”<<(i+1)<<” = “; cin>>data[i];
data2[i] = data[i];
}
}
void Tampil()
{
cout<<”Data : “<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<” “;
}
cout<<endl;
}
void AcakLagi()
{
for(int i=0;i<n;i++)
{
data[i] = data2[i];
}
cout<<”Data sudah teracak!”<<endl;
}
void main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<”Program Sorting Komplit!!!”<<endl;
cout<<”*********************************************”<<endl;
cout<<” 1. Input Data”<<endl;
cout<<” 2. Bubble Sort”<<endl;
cout<<” 3. Exchange Sort”<<endl;
cout<<” 4. Selection Sort”<<endl;
cout<<” 5. Insertion Sort”<<endl;
cout<<” 6. Quick Sort”<<endl;
cout<<” 7. Tampilkan Data”<<endl;
cout<<” 8. Acak Data”<<endl;
cout<<” 9. Exit”<<endl;
cout<<”    Pilihan Anda = “;  cin>>pil;
switch(pil)
{
case 1:Input(); break;
case 2:bubble_sort(); break;
case 3:exchange_sort(); break;
case 4:selection_sort(); break;
case 5:insertion_sort(); break;
case 6:QuickSort(0,n-1);
cout<<”quick sort selesai!”<<endl;
break;
case 7:Tampil(); break;
case 8:AcakLagi(); break;
}getch();}while(pil!=9);}

Tidak ada komentar:

Posting Komentar