Tuesday, November 15, 2011

Algoritma & Pemrograman 1C* :: Konsep Bahasa Pemrograman

         Sebelum mulai membahas mengenai konsep dasar pemrograman dan lainnya, terlebih dahulu akan dijelaskan seputar bahasa pemrograman dengan maksud untuk lebih mempermudah dalam pembahasan selanjutnya.

Definisi Bahasa Pemrograman
Bahasa Pemrograman yaitu prosedur atau tata cara penulisan program, dimana di dalamnya terdapat 2 faktor penting, yaitu sintaks*) dan semantik**).
*) Sintaks adalah aturan gramatikal atau komposisi suatu program yang mengatur tata cara penulisan huruf, angka, dan karakter lain. Contohnya pada pembuatan program Pascal, antara 2 statemen dipisahkan oleh titik koma (;) :
X :=  1 ; X := X + 1
**) Semantik : mendefinisikan arti dari program yang benar secara sintaks dari bahasa pemrograman tersebut. Contohnya pada pembuatan program C :
Int vector [10]
:: Arti semantiknya yaitu akan menyebabkan ruang sebanyak 10 elemen integer untuk diberikan kepada variable bernama vektor (0 – 9 untuk array dalam C).

Fungsi Bahasa Pemrograman
Bahasa pemrograman berfungsi sebagai alat komunikasi antara pemrogram (programmer) dengan komputer, dimana pemrogram menyuruh komputer untuk mengolah data sesuai dengan alur pikir yang diinginkan oleh pemrogram.

Klasifikasi Bahasa Pemrograman
Secara umum, bahasa pemrograman diklasifikasikan ke dalam 4 kelompok, antara lain :
1.             Object Oriented Language (Bahasa Pemrograman Berorientasi Objek)
Merupakan bahasa pemrograman yang membagi program menjadi beberapa objek yang nantinya dapat saling terhubung dan berinteraksi satu dengan yang lainnya.
         Contoh : Visual FoxPro, Visual C++, Delphi, Visual Basic, Java, Phyton, Ruby, Perl.
2.             High Level Language (Bahasa Pemrograman Tingkat Tinggi)
Merupakan bahasa pemrograman yang paling mudah dioperasikan karena instruksi-instruksinya sudah menggunakan bahasa yang mudah dimengerti oleh manusia, seperti : START, END, IF, WHILE, FOR, AND, OR, dan lain sebagainya. Akan tetapi, program yang dihasilkan dengan bahasa pemrograman ini lebih lambat tingkat aksesnya dibandingkan dengan program yang dihasilkan dengan bahasa pemrograman tingkat rendah maupun menengah. Bahasa Pemrograman ini disebut juga bahasa pemrograman terstruktur.
         Contoh : BASIC, COBOL, Pascal, Fortran, ADA.
3.             Middle Level Language (Bahasa Pemrograman Tingkat Menengah)
Merupakan bahasa pemrograman yang menggunakan instruksi campuran dalam pengoperasiannya, yaitu instruksi dalam bahasa yang dimengerti oleh manusia (berupa huruf-huruf ataupun kata) dan instruksi yang bersifat simbolik, seperti : {, }, ?, <<, >>, &&, ||, dan lain sebagainya. Jika dibandingkan dengan program yang dihasilkan dengan bahasa pemrograman tingkat tinggi, program yang dihasilkan dengan bahasa pemrograman ini lebih unggul dalam kecepatan aksesnya.
         Contoh : Bahasa C.
4.             Low Level Language (Bahasa Pemrograman Tingkat Rendah)
Merupakan bahasa pemrograman yang paling sulit dipelajari karena instruksi-instruksi yang digunakan jauh berbeda dengan bahasa manusia pada umumnya. Bahasa pemrograman ini memakai kode-kode singkat, yaitu kode mnemonic,  seperti : MOV, SUB, CMP, JMP, JGE, JL, LOOP, dan lain sebagainya. Untuk dapat mengoperasikannya saja dibutuhkan logika yang cukup rumit dan pemahaman betul. Walaupun demikian, program yang dihasilkan dengan bahasa pemrograman ini  memiliki kecepatan akses terbaik di antara yang lainnya.
         Contoh : Bahasa Assembly.

Kriteria Bahasa Pemrograman
Seorang pemrogram akan memilih bahasa pemrogramannya jika merasa bahwa bahasa pemrograman tersebut bagus dan mudah untuk digunakan. Berikut beberapa kriteria untuk penilaian terhadap suatu bahasa pemrograman :
1.             Ekspresifitas
Bahasa pemrograman yang baik harus jelas dalam menggambarkan algoritma yang dibuat.
2.             Definitas
Definitas yang dimaksud yaitu dapat didefinisikan dengan baik dimana bahasa pemrograman dapat didefinisikan dari adanya sintak dan semantik. Baik sintak maupun semantik ini haruslah konsisten dan tidak bermakna ganda.
3.             Mendukung Tipe dan Struktur Data
Bahasa pemrograman yang baik harus memiliki kemampuan dalam hal mendukung berbagai tipe data, seperti : integer, string, dan real serta mendukung juga berbagai struktur data, seperti : array, record, dan file.
4.             Modularitas
Bahasa pemrograman yang baik harus memiliki fasilitas sub program. Program yang besar dapat dikerjakan oleh beberapa pemrogram secara bersama-sama yang nantinya dengan mudah dapat digabungkan menjadi sebuah modul saja.
5.             Kemudahan, Kesederhanaan, dan Kesatuan (Clarity, Simplicity, and Unity)
Bahasa pemrograman harus dapat menolong pemrogram dalam membuat sebuah desain program jauh sebelum pemrogram melakukan koding. Kemudahan, kesederhanaan, dan kesatuan inilah yang menjadi suatu kombinasi tepat yang dapat membantu pemrogram dalam mengembangkan suatu algoritma sehingga algoritma yang dihasilkan mempunyai kompleksitas yang rendah.
6.             Ortogonalitas (Orthogonality)
Merujuk pada suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan. Contohnya, suatu bahasa pemrograman mendukung suatu ekspresi yang dapat menghasilkan suatu nilai, dan bahasa pemrograman tersebut juga mendukung statemen kondisi yang mengevaluasi suatu ekspresi untuk mendapatkan nilai true dan false. Dua fitur dari bahasa pemrograman tersebut, yaitu ekpresi dan statemen kondisi, adalah ortogonal jika sembarang ekspresi dapat digunakan dan dievaluasi di dalam statemen kondisi. Ketika fitur bahasa pemrograman adalah ortogonal, maka bahasa pemrograman tersebut akan mudah dipahami dan dipelajari dan program akan mudah ditulis karena hanya ada sedikit exception dan case yang harus diingat.
7.             Kewajaran untuk Sebuah Apikasi
Kewajaran yang dimaksud adalah dimana bahasa pemrograman harus mempunyai struktur data, operasi-operasi, dan struktur kontrol serta sintaks yang tepat dan cocok yang digunakan pada struktur program untuk merefleksikan struktur logika yang melandasi suatu algoritma.
8.             Efisiensi
Efisiensi di sini mengandung maksud bahwa bahasa pemrograman yang baik dapat mengatur banyaknya instruksi program dengan batasan waktu tempuh pemrosesan tertentu di samping dapat mengatur jumlah memori yang digunakan program yang dihasilkan.
9.             Bersifat Universal
Bahasa pemrograman yang baik harus memiliki jangkauan yang luas untuk berbagai aplikasi pemrograman sehingga dapat bersifat serbaguna.
10.         Mendukung Abstraksi
Abstraksi merupakan suatu hal yang substansial bagi pemrogram untuk membuat suatu solusi dari masalah yang dihadapi. Kemudian abstraksi tersebut dapat dengan mudah diimplementasikan menggunakan fitur-fitur yang ada dalam bahasa pemrograman.
11.         Kemudahan dalam Verifikasi Program
Verifikasi program cukup penting bagi sebuah program,  karena dengan proses verifikasi yang mudah maka suatu program akan dengan mudah dibangun dan dikembangkan. Kesederhanaan struktur sintaks dan semantik merupakan aspek utama yang mempengaruhi kesederhanaan verifikasi program.
12.         Lingkungan Pemrograman
Bahasa pemrograman yang mempunyai lingkungan pemrograman yang baik dan lengkap akan memudahkan pemrogram untuk mengimplementasikan abstraksi yang sudah disusunnya. Lingkungan pemrograman di sini dapat berarti editor yang digunakan, dokumentasi yang baik dari bahasa pemrograman, fasilitas debugging, user interface yang baik, ataupun tool lain yang dapat digunakan untuk memudahkan pekerjaan pemrogram.
13.         Portabilitas Program
Salah satu kriteria penting lainnya adalah kemudahan program untuk dipakai di luar computer yang digunakan untuk membuat dan mengembangkannya.
14.         Biaya
Biaya merupakan elemen penting dalam mengevaluasi suatu bahasa pemrograman. Berikut beberapa biaya yang dimaksud :
a.             Biaya Eksekusi Program
Program yang sering dieksekusi akan membutuhkan suatu kode executable yang efisien sehingga cepat untuk dieksekusi. Semakin cepat suatu program dieksekusi maka akan semakin murah biaya eksekusi program.
b.            Biaya Translasi/Kompilasi program
Pada proses pembelajaran, translasi/kompilasi program lebih sering dilakukan daripada eksekusi program yang dihasilkan sehingga kecepatan translasi lebih diutamakan daripada kecepatan eksekusi. Oleh karena itu, lebih dibutuhkan compiler yang efisien dibanding kode executable yang efesien.
c.             Biaya Pembuatan, Pengetesan, dan Penggunaan Program
Semakin baik dan lengkap lingkungan pemrograman pada bahasa pemrograman maka ketiga biaya ini akan menjadi rendah. Hal ini disebabkan tidak banyaknya waktu dan tenaga serta pikiran yang dicurahkan ke pembuatan program.
d.            Biaya Pemeliharaan Program
Pembiayaan ini mencakup pada pemeliharaan program, termasuk perbaikan error yang muncul ketika program digunakan, perubahan yang dibutuhkan pada program ketika hardware atau sistem operasi berubah, maupun penyesuaian kebutuhan dengan kebutuhan yang baru. Pemeliharaan merupakan salah satu biaya terbesar dari life cycle cost dan merupakan suatu hal yang membosankan bagi pemrogram.

A.            KONSEP DASAR PEMROGRAMAN
Sebelum membahas lebih jauh dalam konteks konsep dasar pemrograman ini, terlebih dahulu perlu disampaikan definisi program dan pemrograman karena dalam pembahasan ke depan akan lebih sering menjumpai kedua kata tersebut.  Berikut definisi program dan pemrograman :
:: Program
Adalah serangkaian intruksi yang digunakan untuk mengatur komputer agar melakukan suatu tugas tertentu. Tanpa adanya program, sebenarnya komputer tidak dapat berbuat apa-apa karena pada dasarnya komputer hanyalah media atau alat yang digunakan untuk melakukan perhitungan-perhitungan dan serangkaian tugas yang dibebankan kepadanya.
:: Pemrograman
Adalah suatu rangkaian perintah ke komputer untuk melakukan/mengerjakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang mudah dimengerti oleh komputer yang lebih dikenal dengan bahasa pemrograman.

Tipe Pemrograman
Secara umum, terdapat 7 macam tipe pemrograman, antara lain :
1.             Pemrograman Prosedural (Procedural Programming)
            Merupakan tipe pemrograman yang dalam pembuatan programnya melewati  serangkaian langkah-langkah yang tepat*1), terperinci*2), dan terbatas*3).
         *1)    : Langkah yang tepat artinya serangkaian langkah tersebut selalu benar untuk menyelesaikan masalah yang diberikan.
           *2)    : Langkah yang terperinci artinya setiap langkah diberikan secara detail dan dapat dieksekusi oleh komputer, instruksi seperti “angkat sedikit ke kiri” merupakan contoh instruksi yang tidak tepat karena “sedikit” tidak menyatakan sesuatu yang tepat/pasti.
*3)   : Langkah yang diberikan harus terbatas, artinya suatu saat langkah harus berhenti, jika langkah tidak pernah berhenti (misalnya: “ambil air, masukkan ke bak mandi, ulangi ambil air, dan seterusnya”) maka serangkaian langkah itu tidak disebut sebagai algoritma (jika: “ambil air, masukkan ke bak mandi, ulangi ambil air sampai bak mandi penuh”, maka bisa disebut algoritma, namun langkah ambil air, masukkan ke bak mandi, harus diperinci).
Contoh bahasa pemrograman yang termasuk di dalamnya : COBOL, BASIC, Pascal, C
2.             Pemrograman Terstruktur (Structured Programming)
            Adalah tipe pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam program dan dapat mengunakan parameter yang berbeda-beda untuk setiap pemanggilan. Tipe pemrograman ini merupakan tipe pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan kontrol program terstruktur.
       Contoh bahasa pemrograman yang termasuk di dalamnya : Pascal, COBOL, RPG, C, ADA.
3.             Pemrograman Modular (Modular Programming)
                 Dalam tipe pemrograman ini, program dipecah-pecah ke dalam modul-modul, dimana setiap modul menunjukkan fungsi dan tugas tunggal. Dengan membagi program ke dalam modul-modul, maka program akan menjadi sederhana sehingga dapat lebih mudah disusun dan dipahami.
4.             Pemrograman Fungsional (Functional Programming)
          Disebut tipe pemrograman fungsional karena memang pada program yang dibuat/dihasilkan seluruh kodenya hanya berupa fungsi-fungsi saja. Tipe pemrograman ini merupakan salah satu tipe pemrograman yang memberlakukan proses komputasi sebagai evaluasi fungsi-fungsi matematika.
         Contoh bahasa pemrograman yang termasuk di dalamnya : Lisp, Scheme, ML, Haskell.
5.             Pemrograman Berorientasi Objek (Object-Oriented Programming)
              Merupakan tipe pemrograman yang mampu memanfaatkan objek-objek*) yang tersedia menjadi program.
          *)  : Objek yaitu elemen yang memiliki fungsi, metode, atau karakteristik    tertentu yang dapat dibedakan dalam dunia nyata.
         Contoh bahasa pemrograman yang termasuk di dalamnya : Java, C++, SmallTalks.
6.             Pemrograman Visual (Visual Programming)
            Merupakan tipe pemrograman yang menggunakan ekspresi visual, seperti : grafik, gambar, atau ikon dalam proses pemrograman dan mengacu pada aktivitas yang memungkinkan pengguna untuk membuat program dalam dua (atau lebih) dimensi untuk menggambarkan program, data, struktur, atau tingkah laku dinamis sistem yang kompleks.
7.             Pemrograman Even-Driven (Even-Driven Programming)
                Merupakan tipe pemrograman yang menggunakan konsep “jika sebuah aksi/perintah dilakukan terhadap sebuah objek, apa yang akan terjadi/dilakukan oleh objek tersebut selanjutnya”. Tipe pemrograman ini sangat fleksibel dalam pembuatan koding program karena sudah menggunakan konsep OOP dimana pemrograman dapat dimulai dari objek yang diinginkan tanpa harus berurutan.
       Contoh bahasa pemrograman yang termasuk di dalamnya : Visual Basic, Visual C++, Delphi.

Sifat Penulisan Program
Secara umum, terdapat 2 sifat dalam penulisan sebuah program, yaitu :
1.             Program Oriented
                 Penulisan program yang struktur programnya selalu berubah, apabila kondisi data yang diproses di dalam program tersebut bertambah volume datanya. Selain itu penulisan program ini bersifat statis dan tidak fleksibel.
2.             Data Oriented
              Penulisan program yang struktur programnya tidak selalu berubah, walaupun volume data yang diproses di dalam program tersebut dalam jumlah besar. Selain itu pula penulisan program ini bersifat dinamis dan mempunyai tingkat fleksibilitas yang tinggi.

B.            DATA
Definisi Data
Data yaitu bahan mentah yang akan diolah menjadi informasi sehingga dapat digunakan oleh user (pemakai).

Tipe-Tipe Data
Secara umum, terdapat 4 tipe data, yaitu :
1.             Tipe Data Dasar
            Merupakan tipe data primitive yang tidak terstruktur yang didefinisikan oleh bahasa pemrograman.
                  Tipe data dasar ini dibagi menjadi 5 macam, antara lain :
a.             Tipe Data Numerik
                Yaitu tipe data yang ada pada setiap bahasa pemrograman yang berfungsi untuk menyimpan data berupa angka-angka.
            Tipe data numerik dibagi lagi menjadi 4, yaitu :
1)            Integer : merupakan bilangan bulat positif dan negatif.
2)            Real : merupakan bilangan desimal atau mantissa.
3)          Subrange : merupakan subtipe dari tipe data integer dan terdiri dari urutan nilai-nilai integer dalam range yang terbatas.
4)     Fixed-Point Real : merupakan bilangan yang direpresentasikan dengan urutan digit yang mempunyai panjang tetap dengan titik desimal diposisikan di tempat yang diberikan antara 2 digit.
b.            Tipe Data Boolean
Yaitu tipe data yang berfungsi untuk mempresentasikan nilai true atau false (biasa digunakan dalam penyeleksian kondisi).
c.             Tipe Data Character
Yaitu tipe data berupa sebuah karakter yang ditulis di antara tanda petik tunggal atau ganda (‘ atau “) tergantung dari bahasa pemrograman yang digunakan.
d.            Tipe Data String
Yaitu tipe data yang berupa urutan-urutan dari karakter yang terletak di antara tanda petik tunggal atau ganda (‘ atau “) tergantung dari bahasa pemrograman yang digunakan.
e.             Tipe Data Internationalization
Yaitu tipe data yang disebut juga dengan I18N.
2.             Tipe Data Terstruktur
                  Merupakan tipe data campuran dari berbagai tipe data dasar.
          Contoh : Array, Record, String, List, dan File.
3.             Tipe Data Non Standar/Enumerasi (User Defined)
                 Merupakan tipe data yang memiliki elemen-elemen tertentu dari nilai konstanta integer sesuai dengan urutannya. Pada tipe data ini elemen masukan diwakili oleh suatu nama variabel yang ditulis di dalam kurung.
Contoh : Indeks_Hari = (Nol, Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu)
4.             Tipe Data Petunjuk (Pointer)
              Adalah tipe data yang digunakan untuk menyimpan alamat memori sebuah variabel, bukan menyimpan nilai datanya.

C.            MODEL KOMPUTASI
Ada 3 model dasar komputasional, yaitu fungsional, logika, dan imperatif. Sebagai tambahan terhadap satuan nilai-nilai dan operasi yang berhubungan, masing-masing model komputasional mempunyai satu set operasi yang digunakan untuk menggambarkan komputasi. Berikut penjelasan mengenai ketiga model dasar komputasional tersebut :
1.             Model Fungsional
               Model komputasional ini terdiri dari satu set nilai-nilai, fungsi-fungsi dan operasi aplikasi fungsi dan komposisi fungsi. Fungsi dapat mengambil fungsi lain sebagai argumentasi dan mengembalikan fungsi sebagai hasil (higher-order function). Suatu program adalah koleksi definisi fungsi-fungsi dan suatu komputasi adalah aplikasi fungsi.
2.             Model Logika
               Model komputasional ini terdiri dari satu set nilai-nilai, definisi hubungan dan kesimpulan logis. Program terdiri dari definisi hubungan dan suatu komputasi adalah suatu bukti (suatu urutan kesimpulan).
3.             Model Imperatif
              Model komputasional ini terdiri dari satu set nilai-nilai yang mencakup suatu keadaan dan operasi tugas untuk memodifikasi pernyataan. Pernyataan adalah set pasangan nilai-nama dari konstanta dan variabel. Program terdiri dari urutan tugas dan suatu komputasi terdiri dari urutan pernyataan.

D.            PRINSIP DESAIN BAHASA PEMROGRAMAN
Suatu bahasa pemrograman harus dirancang untuk memudahkan pemrogram dalam membaca dan menulisnya di samping efisiensinya pada saat digunakan di perangkat keras yang tersedia.
Berikut prinsip-prinsip yang memudahkan pemrogram dalam membaca dan menulis suatu bahasa pemrograman :
1.             Prinsip Kesederhanaan
           Yaitu dimana bahasa pemrograman yang digunakan harus didasarkan atas kesederhanaan, dalam hal ini tidak terlalu ribet dalam pengoperasiannya.
2.             Prinsip Ortogonal
                  Yaitu dimana fungsi mandiri harus dikendalikan oleh mekanisme mandiri.
3.             Prinsip Keteraturan
              Yaitu dimana sebuah set objek yang disebut reguler berkenaan dengan beberapa kondisi jika, dan hanya jika, kondisi-kondisi tersebut dapat digunakan untuk masing-masing unsur set. Prinsip ini memerlukan konsep dasar bahasa yang harus diterapkan secara konsisten dan bersifat universal.
4.             Prinsip Ekstensibilitas
               Yaitu dimana object baru dari tiap kelas sintaktis dibangun (digambarkan) dari dasar dengan suatu cara yang sistematis. Seperti halnya prinsip keteraturan, prinsip ini juga memerlukan konsep dasar bahasa yang harus diterapkan secara konsisten dan bersifat universal.

Thursday, November 10, 2011

SoftSkill :: Ilmu Sosial Dasar -- Penduduk, Masyarakat, dan Kebudayaan

I.       PEMAHAMAN TENTANG PENDUDUK, MASYARAKAT, DAN KEBUDAYAAN
         A.   PENDUDUK
Penduduk didefinisikan sebagai orang yang secara hukum berhak menempati wilayah geografi tertentu. Dengan kata lain orang yang memiliki surat resmi (semisal KTP) untuk tinggal di wilayah itu.
Masalah-masalah kependudukan dipelajari dalam ilmu Demografi di mana ilmu tersebut banyak digunakan dalam pemasaran, yang berhubungan erat dengan unit-unit ekonomi, seperti pengecer hingga pelanggan potensial, dan lain sebagainya.

Kepadatan Penduduk
Kepadatan penduduk dihitung dengan membagi jumlah penduduk dengan luas area dimana mereka tinggal.
Negara-negara kecil biasanya memiliki kepadatan penduduk tertinggi, seperti Monako, Singapura, Vatikan, dan Malta. Di sisi lain, beberapa negara besar pun memiliki kepadatan penduduk tinggi, di antaranya adalah Jepang dan Bangladesh.

Pengendalian Jumlah Penduduk
Pengendalian penduduk adalah kegiatan membatasi pertumbuhan penduduk, umumnya dengan mengurangi jumlah kelahiran. Dokumen dari Yunani Kuno telah membuktikan adanya upaya pengendalian jumlah penduduk sejak zaman dahulu kala. Salah satu contoh pengendalian penduduk yang dipaksakan terjadi di Republik Rakyat Cina yang terkenal dengan kebijakannya 'satu anak cukup'; kebijakan ini diduga banyak menyebabkan terjadinya aksi pembunuhan bayi, pengguguran kandungan yang dipaksakan, serta sterilisasi wajib. Di Indonesia juga menerapkan pengendalian penduduk, yang dikenal dengan program Keluarga Berencana (KB), meski program ini cenderung bersifat persuasif ketimbang dipaksakan. Program ini dinilai berhasil menekan tingkat pertumbuhan penduduk Indonesia.

Penurunan Jumlah Penduduk
Berkurangnya jumlah penduduk menyebabkan turunnya jumlah populasi pada sebuah daerah. Hal ini disebabkan oleh perpindahan daerah kesuburan atau oleh emigrasi besar-besaran. Juga oleh penyakit, kelaparan maupun perang. Namun seringkali oleh gabungan faktor-faktor tersebut. Di masa lampau penurunan jumlah penduduk disebabkan terutama sekali oleh penyakit. Pada tahun-tahun belakangan ini populasi penduduk Rusia dan tujuh belas bekas negara komunis lainnya mulai menurun (1995-2005). Kasus Black Death di Eropa atau datangnya penyakit-penyakit dari dunia lama ke Amerika merupakan faktor penyebab turunnya jumlah penduduk.

Transfer Penduduk
Transfer penduduk adalah istilah untuk kebijakan negara yang mewajibkan perpindahan sekelompok penduduk pindah dari kawasan tertentu, terutama dengan alasan etnisitas atau agama. Hal ini terjadi di India dan Pakistan, antara Turki dan Yunani, dan di Eropa Timur selama Perang Dunia Kedua. Kebijakan transmigrasi oleh pemerintah Indonesia selama orde baru bisa dikategorikan transfer penduduk. Perpindahan penduduk lainnya dapat pula karena imigrasi, seperti imigrasi dari Eropa ke koloni-koloni Eropa di Amerika, Afrika, Australia, dan tempat-tempat lainnya.

Ledakan Penduduk
Buku berjudul The Population Bomb (Ledakan Penduduk) pada tahun 1968 oleh Paul R. Ehrlich meramalkan adanya bencana kemanusiaan akibat terlalu banyaknya penduduk atau yang lebih dikenal dengan istilah ledakan penduduk. Karya tersebut menggunakan argumen yang sama seperti yang dikemukakan Thomas Malthus dalam An Essay on the Principle of Population (1798), bahwa laju pertumbuhan penduduk mengikuti pertumbuhan eksponensial dan akan melampaui suplai makanan yang akan mengakibatkan kelaparan.

Penduduk Dunia
Berdasarkan data dari UNFPA, salah badan PBB yang mengurusi masalah kependudukan dunia, pada tahun 2009 jumlah penduduk di dunia mencapai angka 6,829 miliar jiwa yang terbagi atas China dengan 1,346 miliar jiwa, India dengan 1,189 miliar jiwa, Amerika Serikat dengan 315 juta jiwa, Indonesia dengan 231 juta jiwa, Brasil dengan 194 juta jiwa, Pakistan dengan 181 juta jiwa, Bangladesh dengan 162 juta jiwa, Nigeria dengan 155 juta jiwa, Rusia dengan 141 juta jiwa, Jepang dengan 127 juta jiwa, dan 2,779 miliar jiwa lainnya tersebar di negara-negara lainnya. Penduduk dunia diproyeksikan akan meningkat tajam pada tahun 2025, yaitu menjadi 8,012 miliar jiwa, dengan rincian: China dengan 1,453 miliar jiwa,disusul India dengan 1,431 miliar jiwa, kemudian Amerika Serikat dengan 359 juta jiwa, lalu Indonesia dengan 263 juta jiwa, dan lain-lain. Bahkan hingga tahun 2050, jumlah penduduk dunia diproyeksikan akan menembus 9,150 miliar jiwa dimana jumlah penduduk China justru turun menjadi 1,417 miliar jiwa sedangkan India naik tajam menjadi 1,614 miliar jiwa disusul Amerika Serikat menjadi 404 juta jiwa, Indonesia menjadi 288 juta jiwa, Brasil menjadi 219 juta jiwa. (hen/qom)

         B.    MASYARAKAT
Masyarakat (sebagai terjemahan istilah society) adalah sekelompok orang yang membentuk sebuah sistem semi tertutup atau semi terbuka, dimana sebagian besar interaksi adalah antara individu-individu yang berada dalam kelompok tersebut. Kata "masyarakat" sendiri berakar dari kata dalam bahasa Arab, musyarak. Lebih abstraknya, sebuah masyarakat adalah suatu jaringan hubungan-hubungan antar entitas-entitas. Masyarakat adalah sebuah komunitas yang interdependen (saling tergantung satu sama lain). Umumnya, istilah masyarakat digunakan untuk mengacu sekelompok orang yang hidup bersama dalam satu komunitas yang teratur.

         C.   KEBUDAYAAN
Sebelum mulai membahas mengenai definisi kebudayaan, akan dijelaskan terlebih dahulu definisi budaya sebagai kata dasarnya agar dalam pendeskripsiannya lebih mudah untuk dipahami.
Budaya adalah suatu cara hidup yang berkembang dan dimiliki bersama oleh sebuah kelompok orang dan diwariskan dari generasi ke generasi. Budaya terbentuk dari banyak unsur yang rumit, termasuk sistem agama dan politik, adat istiadat, bahasa, perkakas, pakaian, bangunan, dan karya seni. Bahasa, sebagaimana juga budaya, merupakan bagian tak terpisahkan dari diri manusia sehingga banyak orang cenderung menganggapnya diwariskan secara genetis. Ketika seseorang berusaha berkomunikasi dengan orang-orang yang berbeda budaya dan menyesuaikan perbedaan-perbedaannya, membuktikan bahwa budaya itu dipelajari.
Budaya adalah suatu pola hidup menyeluruh. budaya bersifat kompleks, abstrak, dan luas. Banyak aspek budaya turut menentukan perilaku komunikatif. Unsur-unsur sosio-budaya ini tersebar dan meliputi banyak kegiatan sosial manusia.
Beberapa alasan mengapa orang mengalami kesulitan ketika berkomunikasi dengan orang dari budaya lain terlihat dalam definisi budaya: Budaya adalah suatu perangkat rumit nilai-nilai yang dipolarisasikan oleh suatu citra yang mengandung pandangan atas keistimewaannya sendiri."Citra yang memaksa" itu mengambil bentuk-bentuk berbeda dalam berbagai budaya seperti "individualisme kasar" di Amerika, "keselarasan individu dengan alam" di Jepang dan "kepatuhan kolektif" di Cina.
Citra budaya yang bersifat memaksa tersebut membekali anggota-anggotanya dengan pedoman mengenai perilaku yang layak dan menetapkan dunia makna dan nilai logis yang dapat dipinjam anggota-anggotanya yang paling bersahaja untuk memperoleh rasa bermartabat dan pertalian dengan hidup mereka.
Dengan demikian, budayalah yang menyediakan suatu kerangka yang koheren untuk mengorganisasikan aktivitas seseorang dan memungkinkannya meramalkan perilaku orang lain.
Sehingga kebudayaan adalah sesuatu yang akan memengaruhi tingkat pengetahuan dan meliputi sistem ide atau gagasan yang terdapat dalam pikiran manusia, sehingga dalam kehidupan sehari-hari, kebudayaan itu bersifat abstrak.

Unsur-Unsur Kebudayaan
Ada beberapa pendapat ahli yang mengemukakan mengenai komponen atau unsur kebudayaan, antara lain sebagai berikut:
1.    Melville J. Herskovits menyebutkan kebudayaan memiliki 4 unsur pokok, yaitu:
a)    Alat-alat teknologi
b)    Sistem ekonomi
c)    Keluarga
d)    Kekuasaan Politik
2.     Bronislaw Malinowski mengatakan ada 4 unsur pokok yang meliputi:
a)   Sistem norma sosial yang memungkinkan kerja sama antara para anggota masyarakat untuk menyesuaikan diri dengan alam sekelilingnya
b)    Organisasi Ekonomi
c)   Alat-alat dan lembaga-lembaga atau petugas-petugas untuk pendidikan (keluarga adalah lembaga pendidikan utama)
d)    Organisasi kekuatan (politik)

Wujud Kebudayaan
Menurut J.J. Hoenigman, wujud kebudayaan dibedakan menjadi tiga, yaitu gagasan, aktivitas, dan artefak.
1.    Gagasan (wujud ideal)
Wujud ideal kebudayaan adalah kebudayaan yang berbentuk kumpulan ide-ide, gagasan, nilai-nilai, norma-norma, peraturan, dan sebagainya yang sifatnya abstrak; tidak dapat diraba atau disentuh. Wujud kebudayaan ini terletak dalam kepala-kepala atau di alam pemikiran warga masyarakat. Jika masyarakat tersebut menyatakan gagasan mereka itu dalam bentuk tulisan, maka lokasi dari kebudayaan ideal itu berada dalam karangan dan buku-buku hasil karya para penulis warga masyarakat tersebut.
2.    Aktivitas (tindakan)
Aktivitas adalah wujud kebudayaan sebagai suatu tindakan berpola dari manusia dalam masyarakat itu. Wujud ini sering pula disebut dengan sistem sosial. Sistem sosial ini terdiri dari aktivitas-aktivitas manusia yang saling berinteraksi, mengadakan kontak, serta bergaul dengan manusia lainnya menurut pola-pola tertentu yang berdasarkan adat tata kelakuan. Sifatnya konkret, terjadi dalam kehidupan sehari-hari, dan dapat diamati dan didokumentasikan.
3.    Artefak (karya)
Artefak adalah wujud kebudayaan fisik yang berupa hasil dari aktivitas, perbuatan, dan karya semua manusia dalam masyarakat berupa benda-benda atau hal-hal yang dapat diraba, dilihat, dan didokumentasikan. Sifatnya paling konkret di antara ketiga wujud kebudayaan. Dalam kenyataan kehidupan bermasyarakat, antara wujud kebudayaan yang satu tidak bisa dipisahkan dari wujud kebudayaan yang lain. Sebagai contoh: wujud kebudayaan ideal mengatur dan memberi arah kepada tindakan (aktivitas) dan karya (artefak) manusia.

Komponen Kebudayaan
Berdasarkan wujudnya tersebut, menurut ahli antropologi Cateora, budaya memiliki beberapa elemen atau komponen, antara lain:
1.    Kebudayaan material
Kebudayaan material mengacu pada semua ciptaan masyarakat yang nyata, konkret. Termasuk dalam kebudayaan material ini adalah temuan-temuan yang dihasilkan dari suatu penggalian arkeologi: mangkuk tanah liat, perhisalan, senjata, dan seterusnya. Kebudayaan material juga mencakup barang-barang, seperti televisi, pesawat terbang, stadion olahraga, pakaian, gedung pencakar langit, dan mesin cuci.
2.    Kebudayaan nonmaterial
Kebudayaan nonmaterial adalah ciptaan-ciptaan abstrak yang diwariskan dari generasi ke generasi, misalnya berupa dongeng, cerita rakyat, dan lagu atau tarian tradisional.
3.    Lembaga sosial
Lembaga sosial dan pendidikan memberikan peran yang banyak dalam kontek berhubungan dan berkomunikasi di alam masyarakat. Sistem sosial yang terbantuk dalam suatu Negara akan menjadi dasar dan konsep yang berlaku pada tatanan sosial masyarakat. Sebagai contohnya di Indonesia pada kota dan desa di beberapa wilayah, wanita tidak perlu sekolah yang tinggi apalagi bekerja pada satu instansi atau perusahaan. Tetapi di kota-kota besar hal tersebut terbalik, wajar-wajar saja seorang wanita memilik karier.
4.    Sistem kepercayaan
Bagaimana masyarakat mengembangkan dan membangun system kepercayaan atau keyakinan terhadap sesuatu, hal ini akan mempengaruhi system penilaian yang ada dalam masyarakat. Sistem keyakinan ini akan mempengaruhi dalam kebiasaan, bagaimana memandang hidup dan kehidupan, cara mereka berkonsumsi, sampai dengan cara bagaimana berkomunikasi.
5.     Estetika
Berhubungan dengan seni dan kesenian, music, cerita, dongeng, hikayat, drama dan tari–tarian, yang berlaku dan berkembang dalam masyarakat. Seperti di Indonesia setiap masyarakatnya memiliki nilai estetika sendiri. Nilai estetika ini perlu dipahami dalam segala peran, agar pesan yang akan kita sampaikan dapat mencapai tujuan dan efektif. Misalkan di beberapa wilayah dan bersifat kedaerah, setiap akan membangu bagunan jenis apa saj harus meletakan janur kuning dan buah – buahan, sebagai symbol yang arti disetiap derah berbeda. Tetapi di kota besar seperti Jakarta jarang mungkin tidak terlihat masyarakatnya menggunakan cara tersebut.
6.    Bahasa
Bahasa merupakan alat pengatar dalam berkomunikasi, bahasa untuk setiap walayah, bagian dan Negara memiliki perbedaan yang sangat komplek. Dalam ilmu komunikasi bahasa merupakan komponen komunikasi yang sulit dipahami. Bahasa memiliki sidat unik dan komplek, yang hanya dapat dimengerti oleh pengguna bahasa tersebu. Jadi keunikan dan kekomplekan bahasa ini harus dipelajari dan dipahami agar komunikasi lebih baik dan efektif dengan memperoleh nilai empati dan simpati dari orang lain.

  II.    HUBUNGAN ANTARA PENDUDUK, MASYARAKAT, DAN KEBUDAYAAN
Penduduk (manusia) , masyarakat dan kebudayaan merupakan kesatuan utuh yang saling terikat satu sama lain karena dari 3 unsur inilah kehiduap sosial dapat berlangsung.
Masyarakat tentunya berhubungan dengan penduduk (manusia) karena penduduk merupakan komponen inti adanya masyarakat. Dengan kata lain tanpa adanya penduduk (manusia), masyarakat tidak akan pernah terbentuk.
Kebudayaan juga sangat erat hubungannya dengan masyarakat. Melville J. Herskovits dan Bronislaw Malinowski mengemukakan bahwa segala sesuatu yang terdapat dalam masyarakat ditentukan oleh kebudayaan yang dimiliki oleh masyarakat itu sendiri. Istilah untuk pendapat itu adalah Cultural-Determinism.
Herskovits memandang kebudayaan sebagai sesuatu yang turun temurun dari satu generasi ke generasi yang lain, yang kemudian disebut sebagai superorganic, di mana generasi itu sendiri tidak lain dan tidak bukan adalah suatu kumpulan masyarakat.
Berikut adalah beberapa sudut pandang tokoh lain menyangkut hubungan masyarakat dengan kebudayaan:
A.   Menurut Andreas Eppink, kebudayaan mengandung keseluruhan pengertian nilai sosial,norma sosial, ilmu pengetahuan serta keseluruhan struktur-struktur sosial, religius, dan lain-lain, tambahan lagi segala pernyataan intelektual dan artistik yang menjadi ciri khas suatu masyarakat.
B. Menurut Edward Burnett Tylor, kebudayaan merupakan keseluruhan yang kompleks, yang di dalamnya terkandung pengetahuan, kepercayaan, kesenian, moral, hukum, adat istiadat, dan kemampuan-kemampuan lain yang didapat seseorang sebagai anggota masyarakat.
C.  Menurut Selo Soemardjan dan Soelaiman Soemardi, kebudayaan adalah sarana hasil karya, rasa, dan cipta masyarakat.
Sedangkan perwujudan dari kebudayaan adalah benda-benda yang diciptakan oleh manusia sebagai makhluk yang berbudaya, berupa perilaku dan benda-benda yang bersifat nyata, misalnya pola-pola perilaku, bahasa, peralatan hidup, organisasi sosial, religi, seni, dan lain-lain, yang kesemuanya ditujukan untuk membantu manusia dalam melangsungkan kehidupan bermasyarakat.