Rabu, 12 November 2014

Quick Sort

Quick Sort


Quick Sort atau Partition Exchange Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik pemecahan data menjadi partisi-partisi. Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen dipilih dari data,  kemudian elemen-elemen data akan diurutkan diatur sedemikian rupa, sehingga nilai variabel Sementara berada di suatu posisi ke I yang memenuhi kondisi sebagai berikut :
  1. Semua elemen di posisi ke 1 sampai dengan ke I-1 adalah lebih kecil atau sama dengan Sementara.
  2. Semua elemen di posisi ke I+1 sampai dengan ke N adalah lebih besar atau sama dengan Sementara.

Sebagai contoh, data yang akan diurutkan sejumlah 12 elemen sebagai berikut :

33 45 18 7 5 99 57 25 55 10 40 50

Misalnya element yang dipilih adalah element yang pertama, maka variabel Sementara bernilai 33. Setelah diatur, maka nilai 33 akan menempati posisi ke I, yaitu posisi urutan ke 6 sebagai berikut :

  1. Semua elemen di posisi ke 1 sampai dengan posisi ke 5 (10, 25, 18, 7,dan 5) akan lebih kecil atau sama dengan nilai 33 yang dipilih.
  2. Semua elemen di posisi ke 7 sampai dengan ke 12 (57,99,55,45,40 dan 50) aka lebih besar atau sama dengan nilai 33 yang dipilih.
Dengan demikian, data tersebut akan terpecah menjadi 2 partisi, sebagai berikut :
(10 25 18 7 5) 33 (57 99 55 45 40 50)
Proses ini diulangi kembali untuk masing-masing partisi data, yaitu untuk data (10, 25, 18, 7, 5) dan data (57, 99, 55, 45, 40, 50). Untuk partisi yang pertama, bila nilai Sementara yang diambil adalah data pertama kembali dalam partisi bersangkutan, yaitu 10 dan diatur kembali sedemikian rupa, maka nilai data yang dipilih akan terletak di posisi sebagai berikut:
(5  7) 10 (18 25) 33 (57 99 55 45 40 50)
Untuk mengurutkan masing-masing partisi, maka proses tersebut diulangi kembali dan tiap-tiap partisi dipecah-pecah kembali lebih lanjut. Kurung yang menutupi partisi menunjukkan data yang belum urut dan perlu diurutkan kembali. Sedang data yang tidak berada diantara tanda kurung merupakan data yang sudah diurut. Iterasi selanjutya sampai didapatkan data yang telah urut semuanya adalah sebagai berikut ini.

5  (7) 10 (18  25) 33 (57  99  55  45  40  50)
5   7  10  18 (25) 33 (57  99  55  45  40  50)
5   7  10  18  25  33 (50  40  55  45) 57 (99)
5   7  10  18  25  33 (50  40  55  45) 57  99
5   7  10  18  25  33 (45  40) 50 (55) 57  99
5   7  10  18  25  33 (45  40) 50  55  57  99
5   7  10  18  25  33  40 (45) 50  55  57  99
5   7  10  18  25  33  40  45  50  55  57  99







Maka Proses dari rekursi tampak pada pengurutan data dari bawah sampai dengan I-1 dan pengurutan I+1 sampai dengan atas. 

Implementasi Algoritma Quick Sort
Berikut adalah implementasi dari quick sort dalam bahasa C. Implementasinya terbagi menjadi dua prosedur, yaitu prosedur partisi dan prosedur quicksort.

void quicksort(int x[], int first, int last) {
int pivIndex = 0;
if(first < last) {
pivIndex = partition(x,first, last);
quicksort(x,first,(pivIndex-1));
quicksort(x,(pivIndex+1),last);
}
}
int partition(int y[], int f, int l) {
int up,down,temp;
int piv = y[f];
up = f;
down = l;
goto partLS;
do {
temp = y[up];
y[up] = y[down];
y[down] = temp;
partLS:
while (y[up] <= piv && up < l) {
up++;
}
while (y[down] > piv  && down > f ) {
down–;
}
} while (down > up);
y[f] = y[down];
y[down] = piv;
return down;
}

Kelebihan dan Kelemahan Algoritma Quick Sort
Beberapa hal yang membuat quick sort unggul:

  • Algoritmanya sederhana dan mudah diterapkan pada berbagai bahasa pemrograman dan arsitektur mesin secara efisien.
  • Dalam prakteknya adalah yang tercepat dari berbagai algoritma pengurutan dengan perbandingan, seperti merge sort dan heap sort.
  • Melakukan proses langsung pada input (in-place) dengan sedikit tambahan memori.
  • Bekerja dengan baik pada berbagai jenis input data (seperti angka dan karakter).
Namun terdapat pula kelemahan quick sort:
  • Sedikit kesalahan dalam penulisan program membuatnya bekerja tidak beraturan (hasilnya tidak benar atau tidak pernah selesai).
  • Memiliki ketergantungan terhadap data yang dimasukkan, yang dalam kasus terburuk memiliki kompleksitas O(n2).
  • Secara umum bersifat tidak stable, yaitu mengubah urutan input dalam hasil akhirnya (dalam hal inputnya bernilai sama).
  • Pada penerapan secara rekursif (memanggil dirinya sendiri) bila terjadi kasus terburuk dapat menghabiskan stack dan memacetkan program.


Sumber :

Rabu, 22 Oktober 2014

Jenis Metode Sorting

NAMA        : Riyan Septa Alfaribi
NPM         : 59414563
KELAS       : 1ia17
MATA KULIAH : Algoritma dan Pemrograman A
DOSEN       : Kunto Bayu A, S.T.



Pengertian Sorting

Sorting merupakan suatu proses untuk menyusun kembali humpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting: 

1. Urut naik (ascending) 

   Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar

2. Urut turun (descending)

   Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.

Mengapa harus melakukan sorting data? Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun melakukan penggabungan data.

Metode-metode sorting meliputi:

1. Bubble Sort

2. Selection Sort
3. Quick Sort
4. Insertion Sort
5. Merge Sort
6.Heap Sort 

setelah mengerti tentang pengertian dari Sorting itu sendiri, sekarang kita masuk ke metode-metode sorting.



1. Bubble Sort

Bubble Sort merupakan metode pengurutan yang sering digunakan dengan metode yang paling sederhana. pada metode ini, Pengurutan dilakukan dengan cara membandingkan masing-masing item / data dalam suatu list secara berpasangan, lalu menukar data tersebut jika diperlukan, dan mengulanginya sampai akhir list secara berurutan dengan sempurna, sehingga tidak ada lagi data yang dapat ditukar.

2. Selection Sort

Selection Sort merupakan metode pengurutan dengan cara membaca seluruh elemen secara berurutan dan mencari nilai terendah. Kemudian membandingkan dan menukar elemen yang terpilih tersebut dengan elemen ke-a. Nilai dari a dimulai dari 1 ke n. Dimana n adalah jumlah total elemen dikurangi 1.

3. Quick Sort

Quick Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik pemecahan data menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama partition exchange sort.
Quick Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik pemecahan data menjadi partisi-partisi, sehingga metode ini disebut juga dengan nama partition exchange sort. Untuk memulai irterasi pengurutan, pertama-tama sebuah elemen dipilih dari data,  kemudian elemen-elemen data akan diurutkan diatur sedemikian rupa, sehingga nilai variabel Sementara berada di suatu posisi ke I yang memenuhi kondisi sebagai berikut :
  1.  Semua elemen di posisi ke 1 sampai dengan ke I-1 adalah lebih kecil atau sama dengan Sementara.
  2. Semua elemen di posisi ke I+1 sampai dengan ke N adalah lebih besar atau sama dengan Sementara.

4. Insertion Sort

Insertion Sort merupakan algoritma yang efisien untuk mengurutkan angka yang mempunyai jumlah elemen sedikit. Dimana:- Input : deretan angka sejumlah n buah
- Output : permutasi (pengurutan) sejumlah n angka dari input yang sudah terurut secara ascending maupun descending
Metode penyisipan (Insertion sort) bertujuan untuk menjadikan bagian sisi kiri array terurutkan sampai dengan seluruh array berhasil diurutkan.
Metode ini mengurutkan bilangan-bilangan yang telah dibaca; dan berikutnya secara
berulang akan menyisipkan bilangan-bilangan dalam array yang belum terbaca ke sisi kiri array yang telah terurut. 

5. Merge Sort

Algoritma pengurutan data merge sort dilakukan dengan menggunakan cara divide and conquer yaitu dengan memecah kemudian menyelesaikan setiap bagian kemudian menggabungkannya kembali. Pertama data dipecah menjadi 2 bagian dimana bagian pertama merupakan setengah (jika data genap) atau setengah minus satu (jika data ganjil) dari seluruh data, kemudian dilakukan pemecahan kembali untuk masing-masing blok sampai hanya terdiri dari satu data tiap blok.

Setelah itu digabungkan kembali dengan membandingkan pada blok yang sama apakah data pertama lebih besar daripada data ke-tengah+1, jika ya maka data ke-tengah+1 dipindah sebagai data pertama, kemudian data ke-pertama sampai ke-tengah digeser menjadi data ke-dua sampai ke-tengah+1, demikian seterusnya sampai menjadi satu blok utuh seperti awalnya. Sehingga metode merge sort merupakan metode yang membutuhkan fungsi rekursi untuk penyelesaiannya.

6. Heap Sort

Heap adalah sebuah binary tree dengan ketentuan sebagai berikut :
Tree harus complete binary tree 
- Semua level tree mempunyai simpul maksimum kecuali pada level terakhir.
- Pada level terakhir, node tersusun dari kiri ke kanan tanpa ada yang
  dilewati.
Perbandingan nilai suatu node dengan nilai node child-nya mempunyai ketentuan berdasarkan
jenis heap, diantaranya :
 - Max Heap mempunyai ketentuan bahwa nilai suatu node lebih besar atau sama     dengan ( >= ) dari nilai childnya.
- Min Heap mempunyai ketentuan bahwa nilai suatu node lebih kecil atau sama dengan ( <= ) dari nilai childnya.

Sumber : 

Penduduk, Masyarakat dan Kebudayaan

PERTUMBUHAN PENDUDUK
Tabel Perkembangan penduduk dunia
Perkembangan penduduk dunia tahun 1830 – 2006
Tahun
Jumlah penduduk
Perkembangan pertahun
1830
1 milyard
-
1930
2 milyard
1%
1960
3 milyard
1,7%
1975
4 milyard
2,2%
1987
5 milyard
2%
1996
6 milyard
2%
2006
7 milyard
2%

Bisa kita lihat rata – rata setiap negera penduduknya bisa bertambah hingga 2x lipatnya. Lalu perkembangan penduduk dunianya bertambah hingga 3x lipatnya. Itu berarti penduduk dunia sangat pesat pertumbuhannya.
Tabel Pengandaan Penduduk Dunia
Tahun penggandaan
Perkiraan penduduk dunia
Waktu
800 SM
5 juta
-
1650 tahun
500 juta
1500
1830 tahun
1 milyard
180
1930 tahun
2 milyard
100
1975 tahun
4 milyard
45


Menggunakan interpolasi linear dari perkiraan UNDESA, populasi dunia telah meningkat dua kali lipat atau akan dua kali lipat dalam tahun-tahun berikutnya (dengan dua titik tolak yang berbeda). Perhatikan bagaimana, selama 2 milenium, menggandakan masing-masing mengambil kira-kira setengah selama dua kali lipat sebelumnya, pas model pertumbuhan hiperbolik disebutkan di atas. Namun, tidak mungkin bahwa akan ada penggandaan lain dalam abad ini.
Faktor-Faktor Demografi yang Mempengaruhi Pertambahan Penduduk
  1. Kematian
    Kematian adalah hilangnya tanda-tanda kehidupan manusia secara permanen. Kematian bersifat mengurangi jumlah penduduk dan untuk menghitung besarnya angka kematian caranya hampir sama dengan perhitungan angka kelahiran. Banyaknya kematian sangat dipengaruhi oleh faktor pendukung kematian  dan faktor penghambat kematian .
  2. Kelahiran
    Kelahiran bersifat menambah jumlah penduduk. Ada beberapa faktor yang menghambat kelahiran  dan yang mendukung kelahiran
  3. Imigrasi apabila setiap penduduk pindah ke kota dan mereka menjadikan ktp menjadi dua maka akan sulit apabila di data tidak akan terpenuhi akan sulit mendata penduduk dengan data pasti
 Rumus Tingkat Kematian Kasar
CDR = D/P x K
Ket :
CDR        = Crude Death Rate (Angka Kematian Kasar).
D             = Jumlah kematian (death) pada tahun tertentu
P             = Jumlah penduduk pada pertengahan tahun tertentu
K             = Bilangan konstan 1000
Rumus Tingkat Kematian Khusus
ASDRx = Dx/Px x K
Ket :
ASDRx   = Angka Kematian khusus umur tertentu (x)
Dx           = Jumlah Kematian pada umur tertentu selama satu tahun
Px           = Jumlah Penduduk pada umur tertentu
K             = Bilangan konstan 1000

Angka Kelahiran
Angka kelahiran yaitu angka yang menunjukkan rata-rata jumlah bayi yang lahir setiap 1000 penduduk dalam waktu satu tahun.
Ada beberapa cara untuk menghitung besarnya angka kelahiran yaitu:
  1. Angka Kelahiran Kasar (Crude Birth Rate)
    Rumus yang digunakan untuk menghitung yaitu:
CBR = B/P x K
Ket  :
CBR        = Crude Birth Rate (Angka Kelahiran Kasar)
B             = Jumlah kelahiran dalam satu tahun
P             = Jumlah seluruh penduduk pada pertengahan tahun
K             = Bilangan konstan 1000
Angka kelahiran ini disebut kasar karena perhitungannya tidak memperhatikan jenis kelamin dan umur penduduk, padahal yang dapat melahirkan hanya penduduk wanita.
  1. Angka kelahiran menurut kelompok umur (Age Specific Fertiliy Rate) disingkat ASFR
    Rumus yang digunakan untuk menghitung yaitu:
ASFRx = Bx/Pfx x k
Ket :
ASFRx   = Angka kematian menurut kelompok umur x
Bx           = Jumlah Kelahiran dari wanita pada kelompok umur x
Pfx         = Jumlah wanita pada kelompok umur x
K             = Bilangan konstan 1000
X             = Umur wanita kelompok umur tertentu yang umumnya dihitung tiap 5 tahun seperti 15 – 19 tahun, 20 – 24 tahun dan seterusnya
Dengan rumus tersebut kita dapat mengetahui kelompok umur mana yang paling banyak terjadi kelahiran. Perlu diketahui bahwa usia 15 – 49 tahun adalah usia subur bagi wanita. Pada usia itulah wanita mempunyai kemungkinan untuk dapat melahirkan anak.

Pengertian dan Akibat Migrasi
Secara umum Migrasi adalah perpindahan penduduk dengan tujuan untuk menetap dari suatu tempat ke tempat lain melewati batas administratif (migrasi internal) atau batas politik/negara (migrasi internasional). Dengan kata lain, migrasi diartikan sebagai perpindahan yang relatif permanen dari suatu daerah (negara) ke daerah (negara) lain.
Ada dua dimensi penting dalam penalaahan migrasi, yaitu dimensi ruang/daerah (spasial) dan dimensi waktu.
Tinjauan migrasi secara regional sangat penting dilakukan terutama terkait dengan kepadatan dan distribusi penduduk yang tidak merata.
Migrasi salah satu dari tiga komponen dasar dalam demografi, Migrasi bersama dengan dua komponen lainnya, kelahiran dan kematian, mempengaruhi dinamika kependudukan di suatu wilayah.
Berikut ini adalah akibat yang muncul dari migrasi :
  • Akan terjadi pertikaian didalam suatu kota yang banyaknya imigrasi dikarenakan banyaknya orang yang bersuku tidak sama, perbedaan sosial budaya, pola pikiran yang tidak sepaham, adab tutur kata yang tidak sama, dan memandang suatu nilai orang.
  • Rawan terjadi bencana alam, karena apabila imigran datang tentu saja mereka mencari tempat tinggal, maka lahan penghijauan pun menjadi sasaran untuk dibuatnya perumahan sehingga untuk resapan air pun berkurang sehingga akan terjadi bencana alam banjir dan juga wabah penyakit.
  • Kesehatan menjadi harga yang lebih mahal di dalam kota migrasi karena, makin banyak imigran yang datang dengan membawa alat kendaraannya dan juga elektronik yang mempunyai radiasi dan polusi pun dimana-mana.
  • Area pemakanan yang berkurang karena lahan yang seharusnya dijadikan tempat pemakanan, dijadikan fasilitas umum seperti mall dan bangunan lainnya.
  • Lahan pekerjaan yang sempit karena banyaknya orang yang mau menetap di kota migrasi dengan mencari uang tetapi sudah banyaknya lahan pekerjaan yang diambil orang dan juga peluang bisnis yang area penjualannya sangat sempit.
Macam-Macam Migrasi dan Proses Migrasi
Berikut adalah macam-macam migrasi :
  1. Migrasi masuk (in migration), yaitu masuknya penduduk ke suatu daerah tujuan
  2. Migrasi keluar (out migration), yaitu perpindahan penduduk keluar dari suatu daerah asal
  3. Migrasi neto (net migration), yaitu merupakan selisih antara jumlah migrasi masuk dan migrasi keluar
  4. Migrasi bruto (gross migration), yaitu jumlah migrasi masuk dan migrasi keluar
  5. Migrasi total (total migration), yaitu seluruh kejadian migrasi, mencakup migrasi semasa hidup dan migrasi pulang
  6. Migrasi internasional (international migration), yaitu perpindahan penduduk dari suatu negara ke negara lain
  7. Migrasi semasa hidup ((life time migration), yaitu migrasi berdasarkan tempat kelahiran. Mereka yang pada waktu pencacahan sensus bertempat tinggal didaerah yang berbeda dengan daerah tempat lahirnya
  8. Migrasi parsial (partial migration), yaitu jumlah migran ke suatu daerah tujuan dari daerah asal atau dari daerah asal ke satu daerah tujuan
  9. Arus migrasi (migration stream), yaitu jumlah atau banyaknya perpindahan yang terjadi dari daerah asal ke daerah tujuan dalam jangka waktu tertentu
  10. Urbanisasi (urbanization), yaitu bertambahnya proposisi penduduk yang berdiam didaerah kota yang disebabkan oleh proses perpindahan penduduk ke kota dan atau akibat dari perluasan kota
  11. Transmigrasi (transmigration), yaitu pemindahan dan perpindahan penduduk dari suatu daerah untuk menetap ke daerah lain yang ditetapkan didalam wilayah RI guna kepentingan pembangunan negara atau karena alasan-alasan yang dipandang perlu oleh pemerintah berdasarkan ketentuan yang diatur dalam undang-undang
Proses Migrasi Penduduk dari Asal ke Daerah Tujuan :
  1. Dalam memilih daerah tujuan para imigran cenderung memilih daerah yang terdekat dengan daerah asal
  2. Kurangnya kesempatan kerja didaerah asal dan adanya kesempatan kerja didaerah tujuan merupakan salah satu alasan seseorang melakukan mobilitas penduduk
  3. Informasi yang positif dari sanak saudara, kerabat tentang daerah tujuan, merupakan sumber informasi yang penting dalam pengambilan keputusan seseorang untuk berimigrasi
  4. Informasi yang negatif yang dating ari daerah tujuan, menyebabkan orang enggan untuk berimigrasi
  5. Makin besar pengaruh daerah perkotaan terhadap seseorang, makin tinggi frekuensi mobilitas orang tersebut
  6. Makin tinggi pendapatan seseorang, makin tinggi frekuensi mobilitas orang tersebut
  7. Seseorang akan memilih daerah tujuan dimana terdapat sanak saudara atau kenalan yang berada didaerah tersebut
  8. Migrasi masih akan terjadi apabila di suatu daerah ada bencana alam (banjir, gempa bumi dll)
  9. Orang yang berumur muda dan belum berumah tangga lebih banyak mengadakan mobilitas daripada orang yang sudah berusia lanjut dan berstatus kawin
  10. Makin tinggi pendidikan seseorang, makin banyak melaksanakan mobilitas penduduk

Jenis Struktur Penduduk
  1. Piramida Penduduk Muda
    Piramida ini menggambarkan komposisi penduduk dalam pertumbuhan dan sedang berkembang.
  2. Piramida Stationer
    Bentuk piramida ini menggambarkan keadaan penduduk yang tetap (statis) sebab tingkat kematian rendah dan tingkat kelahiran tidak begitu tinggi.
  3. Piramida Penduduk TuaBentuk piramida penduduk ini menggambarkan adanya penurunan tingkat kelahiran yang sangat pesat dan tingkat kematian kecil sekali.


Bentuk Piramida Penduduk
  • Piramida penduduk muda berbentuk limas
Piramida ini menggambarkan jumlah penduduk usia muda lebih besar dibanding usia dewasaJumlah angka kelahiran lebih besar daripada jumlah kematian. Contoh Negara : India, Brazilia, Indonesia.
  • Piramida penduduk stasioner atau tetap berbentuk granat
Bentuk ini menggambarkan jumlah penduduk usia muda seimbang dengan usia dewasa. Tingkat kematian rendah dan tingkat kelahiran tidak begitu tinggi. Contoh Negara : Swedia, Belanda, Skandinavia.
  • Piramida penduduk tua berbentuk batu nisan
Piramida bentuk ini menunjukkan jumlah penduduk usia muda lebih sedikit bila dibandingkan dengan usia dewasa. Jika angka kelahiran jenis pria besar, maka suatu negara bisa kekurangan penduduk. Contoh Negara : Jerman, Inggris, Belgia, Prancis.

Pengertian Rasio Ketergantungan
Rasio Ketergantungan (Dependency Ratio) adalah perbandingan antara jumlah penduduk berumur 0-14 tahun, ditambah dengan jumlah penduduk 65 tahun keatas dibandingkan dengan jumlah penduduk usia 15-64 tahun. Rasio ketergantungan dapat dilihat menurut usia yakni Rasio Ketergantungan Muda dan Rasio Ketergantungan Tua. Rasio ketergantungan (dependency ratio) dapat digunakan sebagai indikator yang secara kasar dapat menunjukkan keadaan ekonomi suatu negara apakah tergolong negara maju atau negara yang sedang berkembang. Semakin tingginya persentase dependency ratio menunjukkan semakin tingginya beban yang harus ditanggung penduduk yang produktif untuk membiayai hidup penduduk yang belum produktif dan tidak produktif lagi. Sedangkan persentase dependency ratioyang semakin rendah menunjukkan semakin rendahnya beban yang ditanggung penduduk yang produktif untuk membiayai penduduk yang belum produktif dan tidak produktif lagi.

KEBUDAYAAN DAN KEPRIBADIAN
Pertumbuhan dan Perkembangan Kebudayaan di Indonesia
  • Zaman Batu Tua (Palaeolithikum)
Alat-alat batu pada zaman batu tua, baik bentuk ataupun permukaan peralatan masih kasar, misalnya kapak genggam Kapak genggam semacam itu kita kenal dari wilayah Eropa, Afrika, Asia Tengah, sampai Punsjab(India), tapi kapak genggam semacam ini tidak kita temukan di daerah Asia Tenggara
Berdasarkan penelitian para ahli prehistori, bangsa-bangsa Proto-Austronesia pembawa kebudayaan Neolithikum berupa kapak batu besar ataupun kecil bersegi-segi berasal dari Cina Selatan, menyebar ke arah selatan, ke hilir sungai-sungai besar sampai ke semenanjung Malaka Lalu menyebar ke Sumatera, Jawa. Kalimantan Barat, Nusa Tenggara, sampai ke Flores, dan Sulawesi, dan berlanjut ke Filipina.
  • Zaman Batu Muda (Neolithikum)
Manusia pada zaman batu muda telah mengenal dan memiliki kepandaian untuk mencairkan/melebur logam dari biji besi dan menuangkan ke dalam cetakan dan mendinginkannya. Oleh karena itulah mereka mampu membuat senjata untuk mempertahankan diri dan untuk berburu serta membuat alat-alat lain yang mereka perlukan.
Ciri – ciri zaman batu muda :
1.  Mulai menetap dan membuat rumah
2.  Membentuk kelompok masyarakat desa
3.  Bertani
4.  Berternak untuk memenuhi kebutuhan hidup
Bangsa-bangsa Proto-austronesia yang masuk dari Semenanjung Indo-China ke Indonesia itu membawa kebudayaan Dongson, dan menyebar di Indonesia. Materi dari kebudayaan Dongson berupa senjata-senjata tajam dan kapak berbentuk sepatu yang terbuat dari bahan perunggu.

Kebudayaan Hindu, Budha, dan Islam
  • Kebudayaan Hindu dan Budha
Pada abad ke-3 dan ke-4 agama hindu mulai masuk ke Indonesia di Pulau Jawa. Perpaduan atau akulturasi antara kebudayaan setempat dengan kebudayaan. Sekitar abad ke 5 ajaran Budha masuk ke indonesia, khususnya ke Pulau Jawa. Agama Budha dapat dikatakan berpandangan lebih maju dibandingkan Hinduisme,sebab budhisme tidak menghendaki adanya kasta-kasta dalam masysrakat. Walaupun demikian, kedua agama itu di Indonesia, khususnya di Pulau Jawa tumbuh dan berdampingan secara damai. Baik penganut hinduisme maupun budhisme masng-masing menghasilkan karya- karya budaya yang bernilai tinggi dalam seni bangunan, arsitektur, seni pahat, seni ukir, maupun seni sastra, seperti tercermin dalam bangunan, relief yang diabadikan dalam candi-candi di Jawa Tengah maupun di Jawa Timur diantaranya yaitu Borobudur, Mendut, Prambanan, Kalasan, Badut, Kidal, Jago, Singosari, dll.
  • Kebudayaan Islam
Abad ke 15 da 16 agama islam telah dikembangkan di Indonesia, oleh para pemuka-pemuka islam yang disebut Walisongo. Titik penyebaran agama Islam pada abad itu terletak di Pulau Jawa. Sebenarnya agama Islam masuk ke Indonesia, khususnya di Pulau Jawa sebelum abad ke 11 sudah ada wanita islam yang meninggal dan dimakamkan di Kota Gresik. Masuknya agama Islam ke Indonesia berlangsung secara damai. Hal ini di karena masuknya Islam ke Indonesia tidak secara paksa.
Abad ke 15 ketika kejayaan maritim Majapahit mulai surut , berkembanglah negara-negara pantai yang dapat merongrong kekuasaan dan kewibawaan majapahit yang berpusat pemerintahan di pedalaman. Negara- negara yang dimaksud adalah Negara malaka di Semenanjung Malaka,Negara Aceh di ujung Sumatera, Negara Banten di Jawa Barat, Negara Demak di Pesisir Utara Jawa Tengah, Negara Goa di Sulawesi Selatan . Dalam proses perkembangan negara-negara tersebut yang dikendalikan oleh pedagang. Pedagang kaya dan golongan bangsawan kota- kota pelabuhan, nampaknya telah terpengaruh dan menganut agama Islam. Daerah-daerah yang belum tepengaruh oleh kebudayaan Hindu, agama Islam mempunyai pengaruh yang mendalam dalam kehidupan penduduk. Di daerah yang bersangkutan. Misalnya Aceh, Banten, Sulawesi Selatan, Sumatera Timur, Sumatera Barat, dan Pesisr Kalimantan.

Kebudayaan Barat
Unsur kebudayaan barat juga memberi warna terhadap corak lain dari kebudayaan dan kepribadian bangsa Indonesia adalah kebudayaan Barat. Masuknya budaya Barat ke Negara Republik Indonesia ketika kaum kolonialis atau penjajah masuk ke Indonesia, terutama bangsa Belanda. Penguasaan dan kekuasaan perusahaan dagang Belanda (VOC) dan berlanjut dengan pemerintahan kolonialis Belanda, di kota-kota propinsi, kabupaten muncul bangunan-bangunan dengan bergaya arsitektur Barat. Dalam waktu yang sama, dikota-kota pusat pemarintahan, terutama di Jawa, Sulawesi Utara, dan Maluku berkembang dua lapisan sosial ; Lapisan sosial yang terdiri dari kaum buruh, dan kaum pegawai.
Sehubungan dengan itu penjelasan UUD’45 memberikan rumusan tentang kebudayaan memberikan rumusan tentang kebudayaaan bangsa Indonesia adalah: kebudayaan yang timbul sebagai buah usaha budi rakyat Indonesia seluruhnya, termasuk kebudayaan lama dan asli yang ada sebagai puncak kebudayaan di daerah-daerah di seluruh Indonesia. Dalam penjelasan UUD’45 ditujukan ke arah mana kebudayaan itu diarahkan, yaitu menuju kearah kemajuan budaya dan persatuan, dengan tidak menolak bahan baru kebudayaan asing yang dapat mengembangkan kebudayaan bangsa sendiri serta mempertinggi derajat kemanusiaan bangsa Indonesia

Sumber :