Selasa, 06 Mei 2014



Sejarah komputer dari generasi pertama sampai generasi kelima


Sejarah komputer sudah dimulai sejak zaman dahulu kala. Sejak dahulu kala, proses pengolahan data telah dilakukan oleh manusia. Manusia juga menemukan alat-alat mekanik dan elektronik (mechanical and electronic) untuk membantu manusia dalam penghitungan dan pengolahan data supaya bisa mendapatkan hasil lebih cepat. Computer yang kita temui saat ini adalah suatu evolusi panjang dari penemuan-penemuan manusia sejak dahulu kala berupa alat mekanik (mechanical) maupun elektronik (electronic)
Saat ini komputer dan piranti pendukungnya telah masuk dalam setiap aspek kehidupan dan pekerjaan. Computer yang ada sekarang memiliki kemampuan yang lebih dari sekedar perhitungan mathematics biasa. Diantaranya adalah sistem komputer di kassa supermarket yang mampu membaca kode barang belanja, sentral telephone yang menangani jutaan panggilan dan komunikasi, jaringan komputer dan internet yang menghubungkan berbagai tempat di dunia. 
Sejarah Komputer menurut periodenya adalah:

* Alat Hitung Tradisional dan Kalkulator Mekanik
* Komputer Generasi Pertama
* Komputer Generasi Kedua
* Komputer Generasi Ketiga
* Komputer Generasi Keempat
* Komputer Generasi Kelima

ALAT HITUNG TRADISIONAL dan KALKULATOR MEKANIKAbacus, yang muncul sekitar 5000 tahun yang lalu di Asia kecil dan masih digunakan di beberapa tempat hingga saat ini dapat dianggap sebagai awal mula mesin komputasi.Alat ini memungkinkan penggunanya untuk melakukan perhitungan menggunakan biji-bijian geser yang diatur pada sebuah rak. Para pedagang di masa itu menggunakan abacus untuk menghitung transaksi perdagangan. Seiring dengan munculnya pensil dan kertas, terutama di Eropa, abacus kehilangan popularitasnya.
Setelah hampir 12 abad, muncul penemuan lain dalam hal mesin komputasi. Pada tahun 1642, Blaise Pascal (1623-1662), yang pada waktu itu berumur 18 tahun, menemukan apa yang ia sebut sebagai kalkulator roda numerik (numerical wheel calculator) untuk membantu ayahnya melakukan perhitungan pajak
Kotak persegi kuningan ini yang dinamakan Pascaline, menggunakan delapan roda putar bergerigi untuk menjumlahkan bilangan hingga delapan digit. Alat ini merupakan alat penghitung bilangan berbasis sepuluh. Kelemahan alat ini adalah hanya terbatas untuk melakukan penjumlahan
Tahun 1694, seorang matematikawan dan filsuf Jerman, Gottfred Wilhem von Leibniz (1646-1716) memperbaiki Pascaline dengan membuat mesin yang dapat mengalikan. Sama seperti pendahulunya, alat mekanik ini bekerja dengan menggunakan roda-roda gerigi. Dengan mempelajari catatan dan gambar-gambar yang dibuat oleh Pascal, Leibniz dapat menyempurnakan alatnya.
Barulah pada tahun 1820, kalkulator mekanik mulai populer. Charles Xavier Thomas de Colmar menemukan mesin yang dapat melakukan empat fungsi aritmatik dasar. Kalkulator mekanik Colmar, arithometer, mempresentasikan pendekatan yang lebih praktis dalam kalkulasi karena alat tersebut dapat melakukan penjumlahan, pengurangan, perkalian, dan pembagian. Dengan kemampuannya, arithometer banyak dipergunakan hingga masa Perang Dunia I. Bersama-sama dengan Pascal dan Leibniz, Colmar membantu membangun era komputasi mekanikal.
Awal mula komputer yang sebenarnya dibentuk oleh seorang profesor matematika Inggris, Charles Babbage (1791-1871). Tahun 1812, Babbage memperhatikan kesesuaian alam antara mesin mekanik dan matematika yaitu mesin mekanik sangat baik dalam mengerjakan tugas yang sama berulangkali tanpa kesalahan; sedang matematika membutuhkan repetisi sederhana dari suatu langkah-langkah tertenu. Masalah tersebut kemudain berkembang hingga menempatkan mesin mekanik sebagai alat untuk menjawab kebutuhan mekanik. Usaha Babbage yang pertama untuk menjawab masalah ini muncul pada tahun 1822 ketika ia mengusulkan suatu mesin untuk melakukanperhitungan persamaan differensial. Mesin tersebut dinamakan Mesin Differensial. Dengan menggunakan tenaga uap, mesin tersebut dapat menyimpan program dan dapat melakukan kalkulasi serta mencetak hasilnya secara otomatis.
Setelah bekerja dengan Mesin Differensial selama sepuluh tahun, Babbage tiba-tiba terinspirasi untuk memulai membuat komputer general-purpose yang pertama, yang disebut Analytical Engine. Asisten Babbage, Augusta Ada King (1815-1842) memiliki peran penting dalam pembuatan mesin ini. Ia membantu merevisi rencana, mencari pendanaan dari pemerintah Inggris, dan mengkomunikasikan spesifikasi Analytical Engine kepada publik. Selain itu, pemahaman Augusta yang baik tentang mesin ini memungkinkannya membuat instruksi untuk dimasukkan ke dalam mesin dan juga membuatnya menjadi programmer wanita yang pertama. Pada tahun 1980, Departemen Pertahanan Amerika Serikat menamakan sebuah bahasa pemrograman dengan nama ADA sebagai penghormatan kepadanya.
Mesin uap Babbage, walaupun tidak pernah selesai dikerjakan, tampak sangat primitif apabila dibandingkan dengan standar masa kini. Bagaimanapun juga, alat tersebut menggambarkan elemen dasar dari sebuah komputer modern dan juga mengungkapkan sebuah konsep penting. Terdiri dari sekitar 50.000 komponen, disain dasar dari Analytical Engine menggunakan kartu-kartu perforasi (berlubang-lubang) yang berisi instruksi operasi bagi mesin tersebut.
Pada 1889, Herman Hollerith (1860-1929) juga menerapkan prinsip kartu perforasi untuk melakukan penghitungan. Tugas pertamanya adalah menemukan cara yang lebih cepat untuk melakukan perhitungan bagi Biro Sensus Amerika Serikat. Sensus sebelumnya yang dilakukan di tahun 1880 membutuhkan waktu tujuh tahun untuk menyelesaikan perhitungan. Dengan berkembangnya populasi, Biro tersebut memperkirakan bahwa dibutuhkan waktu sepuluh tahun untuk menyelesaikan perhitungan sensus.
Hollerith menggunakan kartu perforasi untuk memasukkan data sensus yang kemudian diolah oleh alat tersebut secara mekanik. Sebuah kartu dapat menyimpan hingga 80 variabel. Dengan menggunakan alat tersebut, hasil sensus dapat diselesaikan dalam waktu enam minggu. Selain memiliki keuntungan dalam bidang kecepatan, kartu tersebut berfungsi sebagai media penyimpan data. Tingkat kesalahan perhitungan juga dapat ditekan secara drastis. Hollerith kemudian mengembangkan alat tersebut dan menjualnya ke masyarakat luas. Ia mendirikan Tabulating Machine Company pada tahun 1896 yang kemudian menjadi International Business Machine (1924) setelah mengalami beberapa kali merger. Perusahaan lain seperti Remington Rand and Burroghs juga memproduksi alat pembaca kartu perforasi untuk usaha bisnis. Kartu perforasi digunakan oleh kalangan bisnis dn pemerintahan untuk permrosesan data hingga tahun 1960.
Pada masa berikutnya, beberapa insinyur membuat penemuan baru lainnya. Vannevar Bush (18901974) membuat sebuah kalkulator untuk menyelesaikan persamaan differensial di tahun 1931. Mesin tersebut dapat menyelesaikan persamaan differensial kompleks yang selama ini dianggap rumit oleh kalangan akademisi. Mesin tersebut sangat besar dan berat karena ratusan gerigi dan poros yang dibutuhkan untuk melakukan perhitungan. Pada tahun 1903, John V. Atanasoff dan Clifford Berry mencoba membuat komputer elektrik yang menerapkan aljabar Boolean pada sirkuit elektrik. Pendekatan ini didasarkan pada hasil kerja George Boole (1815-1864) berupa sistem biner aljabar, yang menyatakan bahwa setiap persamaan matematik dapat dinyatakan sebagai benar atau salah. Dengan mengaplikasikan kondisi benar-salah ke dalam sirkuit listrik dalam bentuk terhubung-terputus, Atanasoff dan Berry membuat komputer elektrik pertama di tahun 1940. Namun proyek mereka terhenti karena kehilangan sumber pendanaan.


Dengan terjadinya Perang Dunia Kedua, negara-negara yang terlibat dalam perang tersebut berusaha mengembangkan komputer untuk mengeksploitasi potensi strategis yang dimiliki komputer. Hal ini meningkatkan pendanaan pengembangan komputer serta mempercepat kemajuan teknik komputer. Pada tahun 1941, Konrad Zuse, seorang insinyur Jerman membangun sebuah komputer Z3, untuk mendisain pesawat terbang dan peluru kendali.

Pihak sekutu juga membuat kemajuan lain dalam pengembangan kekuatan komputer. Tahun 1943, pihak Inggris menyelesaikan komputer pemecah kode rahasia yang dinamakan Colossus untuk memecahkan kode-rahasia yang digunakan Jerman. Dampak pembuatan Colossus tidak terlalu mempengaruhi perkembangan industri komputer dikarenakan dua alasan. Pertama, colossus bukan merupakan komputer serbaguna general-purpose computer), ia hanya didisain untuk memecahkan kode rahasia. Kedua, keberadaan mesin ini dijaga kerahasiaannya hingga satu dekade setelah perang berakhir.

Usaha yang dilakukan oleh pihak Amerika pada saat itu menghasilkan suatu kemajuan lain. Howard H. Aiken (1900-1973), seorang insinyur Harvard yang bekerja dengan IBM, berhasil memproduksi kalkulator elektronik untuk US Navy. Kalkulator tersebut berukuran panjang setengah lapangan bola kaki dan memiliki rentang kabel sepanjang 500 mil. The Harvd-IBM Automatic Sequence Controlled Calculator, atau Mark I, merupakan komputer relai elektronik. Ia menggunakan sinyal elektromagnetik untuk menggerakkan komponen mekanik. Mesin tersebut beropreasi dengan lambat (ia membutuhkan 3-5 detik untuk setiap perhitungan) dan tidak fleksibel (urutan kalkulasi tidak dapat diubah). Kalkulator tersebut dapat melakukan perhitungan aritmatik dasar dan persamaan yang lebih kompleks.

Perkembangan komputer lain pada masa ini adalah Electronic Numerical Integrator and Computer (ENIAC), yang dibuat oleh kerjasama antara pemerintah Amerika Serikat dan University of Pennsylvania. Terdiri dari 18.000 tabung vakum, 70.000 resistor, dan 5 juta titik solder, komputer tersebut merupakan mesin yang sangat besar yang mengkonsumsi daya sebesar 160kW. Komputer ini dirancang oleh John Presper Eckert (1919-1995) dan John W. Mauchly (1907-1980), ENIAC merupakan komputer serbaguna (general purpose computer) yang bekerja 1000 kali lebih cepat dibandingkan Mark I.Pada pertengahan 1940-an, John von Neumann (1903-1957) bergabung dengan tim University of Pennsylvania dalam usha membangun konsep desin komputer yang hingga 40 tahun mendatang masih dipakai dalam teknik komputer.

Von Neumann mendesain Electronic Discrete Variable Automatic Computer(EDVAC) pada tahun 1945 dengan sebuah memori untuk menampung baik program ataupun data. Teknik ini memungkinkan komputer untuk berhenti pada suatu saat dan kemudian melanjutkan pekerjaannya kembali. Kunci utama arsitektur von Neumann adalah unit pemrosesan sentral (CPU), yang memungkinkan seluruh fungsi komputer untuk dikoordinasikan melalui satu sumber tunggal. Tahun 1951, UNIVAC I (Universal Automatic Computer I) yang dibuat oleh Remington Rand, menjadi komputer komersial pertama yang memanfaatkan model arsitektur von Neumann tersebut. Baik Badan Sensus Amerika Serikat dan General Electric memiliki UNIVAC. Salah satu hasil mengesankan yang dicapai oleh UNIVAC dalah keberhasilannya dalam memprediksi kemenangan Dwilight D. Eisenhower dalam pemilihan presiden tahun 1952.

Komputer Generasi pertama dikarakteristik dengan fakta bahwa instruksi operasi dibuat secara spesifik untuk suatu tugas tertentu. Setiap komputer memiliki program kode-biner yang berbeda yang disebut "bahasa mesin" (machine language). Hal ini menyebabkan komputer sulit untuk diprogram dan membatasi kecepatannya. Ciri lain komputer generasi pertama adalah penggunaan tube vakum (yang membuat komputer pada masa tersebut berukuran sangat besar) dan silinder magnetik untuk penyimpanan data.


Pada tahun 1948, penemuan transistor sangat mempengaruhi perkembangan komputer. Transistor menggantikan tube vakum di televisi, radio, dan komputer. Akibatnya, ukuran mesin-mesin elektrik berkurang drastis. Transistor mulai digunakan di dalam komputer mulai pada tahun 1956. Penemuan lain yang berupa pengembangan memori inti-magnetik membantu pengembangan komputer generasi kedua yang lebih kecil, lebih cepat, lebih dapat diandalkan, dan lebih hemat energi dibanding para pendahulunya. Mesin pertama yang memanfaatkan teknologi baru ini adalah superkomputer. IBM membuat superkomputer bernama Stretch, dan Sprery-Rand membuat komputer bernama LARC. Komputer-komputer ini, yang dikembangkan untuk laboratorium energi atom, dapat menangani sejumlah besar data, sebuah kemampuan yang sangat dibutuhkan oleh peneliti atom. Mesin tersebut sangat mahal dan cenderung terlalu kompleks untuk kebutuhan komputasi bisnis, sehingga membatasi kepopulerannya. Hanya ada dua LARC yang pernah dipasang dan digunakan: satu di Lawrence Radiation Labs di Livermore, California, dan yang lainnya di US Navy Research and Development Center di Washington D.C. Komputer generasi kedua menggantikan bahasa mesin dengan bahasa assembly. Bahasa assembly adalah bahasa yang menggunakan singkatan-singkatan untuk menggantikan kode biner.

Pada awal 1960-an, mulai bermunculan komputer generasi kedua yang sukses di bidang bisnis, di universitas, dan di pemerintahan. Komputer-komputer generasi kedua ini merupakan komputer yang sepenuhnya menggunakan transistor. Mereka juga memiliki komponen-komponen yang dapat diasosiasikan dengan komputer pada saat ini: printer, penyimpanan dalam disket, memory, sistem operasi, dan program. Salah satu contoh penting komputer pada masa ini adalah IBM 1401 yang diterima secara luas di kalangan industri. Pada tahun 1965, hampir seluruh bisnis-bisnis besar menggunakan komputer generasi kedua untuk memproses informasi keuangan.

Program yang tersimpan di dalam komputer dan bahasa pemrograman yang ada di dalamnya memberikan fleksibilitas kepada komputer. Fleksibilitas ini meningkatkan kinerja dengan harga yang pantas bagi penggunaan bisnis. Dengan konsep ini, komputer dapat mencetak faktur pembelian konsumen dan kemudian menjalankan desain produk atau menghitung daftar gaji. Beberapa bahasa pemrograman mulai bermunculan pada saat itu. Bahasa pemrograman Common Business-Oriented Language (COBOL) dan Formula Translator (FORTRAN) mulai umum digunakan. Bahasa pemrograman ini menggantikan kode mesin yang rumit dengan kata-kata, kalimat, dan formula matematika yang lebih mudah dipahami oleh manusia. Hal ini memudahkan seseorang untuk memprogram dan mengatur komputer. Berbagai macam karir baru bermunculan (programmer, analyst, dan ahli sistem komputer). Industri piranti lunak juga mulai bermunculan dan berkembang pada masa komputer generasi kedua ini.


Walaupun transistor dalam banyak hal mengungguli tube vakum, namun transistor menghasilkan panas yang cukup besar, yang dapat berpotensi merusak bagian-bagian internal komputer. Batu kuarsa (quartz rock) menghilangkan masalah ini. Jack Kilby, seorang insinyur di Texas Instrument, mengembangkan sirkuit terintegrasi (IC: integrated circuit) di tahun 1958. IC mengkombinasikan tiga komponen elektronik dalam sebuah piringan silikon kecil yang terbuat dari pasir kuarsa. Para ilmuwan kemudian berhasil memasukkan lebih banyak komponen-komponen ke dalam suatu chip tunggal yang disebut semikonduktor. Hasilnya, komputer menjadi semakin kecil karena komponen-komponen dapat dipadatkan dalam chip. Kemajuan komputer generasi ketiga lainnya adalah penggunaan sistem operasi (operating system) yang memungkinkan mesin untuk menjalankan berbagai program yang berbeda secara serentak dengan sebuah program utama yang memonitor dan mengkoordinasi memori komputer.


Setelah IC, tujuan pengembangan menjadi lebih jelas yaitu mengecilkan ukuran sirkuit dan komponen-komponen elektrik. Large Scale Integration (LSI) dapat memuat ratusan komponen dalam sebuah chip. Pada tahun 1980-an, Very Large Scale Integration (VLSI) memuat ribuan komponen dalam sebuah chip tunggal.Ultra-Large Scale Integration (ULSI) meningkatkan jumlah tersebut menjadi jutaan. Kemampuan untuk memasang sedemikian banyak komponen dalam suatu keping yang berukuran setengah keping uang logam mendorong turunnya harga dan ukuran komputer. Hal tersebut juga meningkatkan daya kerja, efisiensi dan kehandalan komputer. Chip Intel 4004 yang dibuat pada tahun 1971 membawa kemajuan pada IC dengan meletakkan seluruh komponen dari sebuah komputer (central processing unit, memori, dan kendali input/output) dalam sebuah chip yangsangat kecil. Sebelumnya, IC dibuat untuk mengerjakan suatu tugas tertentu yang spesifik. Sekarang, sebuah mikroprosesor dapat diproduksi dan kemudian diprogram untuk memenuhi seluruh kebutuhan yang diinginkan. Tidak lama kemudian, setiap perangkat rumah tangga seperti microwave oven, televisi, dan mobil dengan electronic fuel injection dilengkapi dengan mikroprosesor.Perkembangan yang demikian memungkinkan orang-orang biasa untuk menggunakan komputer biasa. Komputer tidak lagi menjadi dominasi perusahaan-perusahaan besar atau lembaga pemerintah. Pada pertengahan tahun 1970-an, perakit komputer menawarkan produk komputer mereka ke masyarakat umum. Komputer-komputer ini, yang disebut minikomputer, dijual dengan paket piranti lunak yang mudah digunakan oleh kalangan awam. Piranti lunak yang paling populer pada saat itu adalah program word processing dan spreadsheet. Pada awal 1980-an, video game seperti Atari 2600 menarik perhatian konsumen pada komputer rumahan yang lebih canggih dan dapat diprogram.Pada tahun 1981, IBM memperkenalkan penggunaan Personal Computer (PC) untuk penggunaan di rumah, kantor, dan sekolah. Jumlah PC yang digunakan melonjak dari 2 juta unit di tahun 1981 menjadi 5,5 juta unit di tahun 1982. Sepuluh tahun kemudian, 65 juta PC digunakan. Komputer melanjutkan evolusinya menuju ukuran yang lebih kecil, dari komputer yang berada di atas meja (desktop computer) menjadi komputer yang dapat dimasukkan ke dalam tas (laptop), atau bahkan komputer yang dapat digenggam (palmtop).


IBM PC bersaing dengan Apple Macintosh dalam memperebutkan pasar komputer. Apple Macintosh menjadi terkenal karena mempopulerkan sistem grafis pada komputernya, sementara saingannya masih menggunakan komputer yang berbasis teks. Macintosh juga mempopulerkan penggunaan piranti mouse.

Pada masa sekarang, kita mengenal perjalanan IBM compatible dengan pemakaian CPU: IBM PC/486, Pentium, Pentium II, Pentium III, Pentium IV (Serial dari CPU buatan Intel). Juga kita kenal AMD k6, Athlon, dsb. Ini semua masuk dalam golongan komputer generasi keempat. Seiring dengan menjamurnya penggunaan komputer di tempat kerja, cara-cara baru untuk menggali potensi terus dikembangkan. Seiring dengan bertambah kuatnya suatu komputer kecil, komputer-komputer tersebut dapat dihubungkan secara bersamaan dalam suatu jaringan untuk saling berbagi memori, piranti lunak, informasi, dan juga untuk dapat saling berkomunikasi satu dengan yang lainnya. Komputer jaringan memungkinkan komputer tunggal untuk membentuk kerjasama elektronik untuk menyelesaikan suatu proses tugas. Dengan menggunakan perkabelan langsung (disebut juga local area network, LAN), atau kabel telepon, jaringan ini dapat berkembang menjadi sangat besar.


Mendefinisikan komputer generasi kelima menjadi cukup sulit karena tahap ini masih sangat muda. Contoh imajinatif komputer generasi kelima adalah komputer fiksi HAL9000 dari novel karya Arthur C. Clarke berjudul 2001:Space Odyssey. HAL menampilkan seluruh fungsi yang diinginkan dari sebuah komputer generasi kelima. Dengan kecerdasan buatan (artificial intelligence), HAL dapat cukup memiliki nalar untuk melakukan percapakan dengan manusia, menggunakan masukan visual, dan belajar dari pengalamannya sendiri.

Walaupun mungkin realisasi HAL9000 masih jauh dari kenyataan, banyak fungsi-fungsi yang dimilikinya sudah terwujud. Beberapa komputer dapat menerima instruksi secara lisan dan mampu meniru nalar manusia. Kemampuan untuk menterjemahkan bahasa asing juga menjadi mungkin. Fasilitas ini tampak sederhan. Namun fasilitas tersebut menjadi jauh lebih rumit dari yang diduga ketika programmer menyadari bahwa pengertian manusia sangat bergantung pada konteks dan pengertian daripada sekedar menterjemahkan kata-kata secara langsung.

Banyak kemajuan di bidang disain komputer dan teknologi semakin memungkinkan pembuatan komputer generasi kelima. Dua kemajuan rekayasa yang terutama adalah kemampuan pemrosesan paralel, yang akan menggantikan model von Neumann. Model von Neumann akan digantikan dengan sistem yang mampu mengkoordinasikan banyak CPU untuk bekerja secara serempak. Kemajuan lain adalah teknologi superkonduktor yang memungkinkan aliran elektrik tanpa ada hambatan apapun, yang nantinya dapat mempercepat kecepatan informasi.

Jepang adalah negara yang terkenal dalam sosialisasi jargon dan proyek komputer generasi kelima. Lembaga ICOT (Institute for new Computer Technology) juga dibentuk untuk merealisasikannya. Banyak kabar yang menyatakan bahwa proyek ini telah gagal, namun beberapa informasi lain bahwa keberhasilan proyek komputer generasi kelima ini akan membawa perubahan baru paradigma komputerisasi di dunia. Kita tunggu informasi mana yang lebih valid dan membuahkan hasil.

SEJARAH SINGKAT C++

Tahun 1978, Brian W. Kerninghan & Dennis M. Ritchie dari AT & T Laboratories mengembangkan bahasa B menjadi bahasa C. Bahasa B yang diciptakan oleh Ken Thompson sebenarnya merupakan pengembangan dari bahasa BCPL ( Basic Combined Programming Language ) yang diciptakan oleh Martin Richard.

Sejak tahun 1980, bahasa C banyak digunakan pemrogram di Eropa yang sebelumnya menggunakan bahasa B dan BCPL. Dalam perkembangannya, bahasa C menjadi bahasa paling populer diantara bahasa lainnya, seperti PASCAL, BASIC, FORTRAN.

Tahun 1989, dunia pemrograman C mengalami peristiwa penting dengan dikeluarkannya standar bahasa C oleh American National Standards Institute (ANSI). Bahasa C yang diciptakan Kerninghan & Ritchie kemudian dikenal dengan nama ANSI C.

Mulai awal tahun 1980, Bjarne Stroustrup dari AT & T Bell Laboratories mulai mengembangkan bahasa C. Pada tahun 1985, lahirlah secara resmi bahasa baru hasil pengembangan C yang dikenal dengan nama C++. Symbol ++ merupakan operator C untuk operasi penaikan, muncul untuk menunjukkan bahwa bahasa baru ini merupakan versi yang lebih canggih dari C.

Sebenarnya bahasa C++ mengalami dua tahap evolusi. C++ yang pertama, dirilis oleh AT&T Laboratories, dinamakan cfront. C++ versi kuno ini hanya berupa kompiler yang menterjemahkan C++ menjadi bahasa C.

Borland International merilis compiler Borland C++ dan Turbo C++.
Kedua compiler ini sama-sama dapat digunakan untuk mengkompilasi kode
C++. Bedanya, Borland C++ selain dapat digunakan dibawah lingkungan
DOS, juga dapat digunakan untuk pemrograman Windows.

Pada evolusi selanjutnya, Borland International Inc. mengembangkan kompiler C++ menjadi sebuah kompiler yang mampu mengubah C++ langsung menjadi bahasa mesin (assembly). Sejak evolusi ini, mulai tahun 1990 C++ menjadi bahasa berorientasi obyek yang digunakan oleh sebagian besar pemrogram professional.

Selain Borland International, terdapat beberapa perusahaan lain yang juga merilis
compiler C++, seperti Topspeed C++ dan Zortech C++.

 BAHASA PEMROGRAMAN C DAN C++

Bahasa pemrograman C++ merupakan superset dari bahasa pendahulunya yaitu bahasa pemrograman C. Bahasa pemrograman C dikembangkan oleh Dennis Ritchie pada tahun 1972 di Laboratorium Bell. Bahasa pemrograman C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat rendah (berorientase mesin) dan bahasa tingkat tinggi (bahasa berorientase pada manusia). Bahasa pemrograman C berada satu tingkat di atas bahasa yang berorientasi pada mesin, namun tetap satu tingkat dibawah sebagian besar bahasa yang berorientasi persoalan. Bahasa pemrograman C cukup dekat dengan komputer untuk memberikan kendali yang besar terhadap detil implementasi pemakaian, namun cukup jauh untuk mengabaikan detil hardware. Karena itulah bahasa pemrograman C suatu ketika dipandang sebagai bahasa high-level dan pada saat yang lain dilihat sebagai bahasa low-level.
Bahasa pemrograman C merupakan bahasa pemrograman terstruktur, yang membagi program kedalam bentuk sebuah blok. Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program. Program yang ditulis dengan bahasa pemrograman C mudah sekali untuk dipindahkan dari satu jenis mesin ke jenis mesin lainnya. Hal ini berkat adanya standarisasi bahasa pemrograman C yaitu berupa standar ANSI (American National Standards Institute) yang dijadikan acuan oleh para pembuat kompiler C.

ELEMEN DASAR BAHASA PEMROGRAMAN C++
1. Identifier (Pengenal) Bahasa C++
Identifier adalah nama yang digunakan untuk mempresentasikan variabel, konstanta, jenis (type), fungsi, dan nama program. Identifier dalam pendeklarasian variabel, jenis, atau fungsi pada bahasa pemrograman C++ dimulai dengan sebuah huruf atau garis bawah. Karakter-karakter lain dalam sebuah identifier dapat berupa huruf, angka, garis bawah, atau tanda dollar. Compiler C++ membedakan huruf kecil dan besar. Variabel NAMA_PEGAWAI dan nama_pegawai dipandang sebagai dua identifier yang menggambarkan variabel memori yang berbeda. Contoh identifier yang diperkenankan untuk dipakai: a atau akelas atau kelas$ atau _kelas atau _KELAS$, sedangkan identifier yang tidak diperbolehkan untuk dipakai: $KELAS atau 7kelas atau kelas! atau ..kelas.

2. Himpunan Karakter
Himpunan karakter pada C++ terdiri dari huruf, digit maupun simbol-simbol lainnya (termasuk spasi, karakter kontrol)
Huruf: A B C D E F G H I J K L M N O P Q R S T U V W X Z Y a b c d e f g h i j k l m n o p q r s t u v w x y z
Digit: 0 1 2 3 4 5 6 7 8 9
Simbol dan lain-lain: _ - + * dan sebagainya.

3. Kata-kata Kunci
Kata kunci (keyword) adalah pengenal sistem yang mempunyai makna khusus bagi kompiler. Kegunaan dari golongan ini tidak dapat diubah. Karena itu kata kunci tidak dapat digunakan sebagai pengenal yang dibuat oleh pemrogram.
Kata kunci diusulkan ANSI:
auto, double, int, struct, break, else, loop, switch, case, enum, register, typedef, char, extern, return, union, const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while

Sedangkan turbo C memperluasnya dengan menambahkan beberapa kata kunci:
_cs, _ss, far, near, _ds, asm, huge, pascal, _es, cdecl, interrupt

Sementara itu, Microsoft C/C++ menambah beberapa kata kunci:
_asm, _loadds, _cdecl, _huge, _far, _pascal, _export, _interrupt, _fortran, _segname, _near, _saveregs, _segment, _syscall, _self, _stdcall, _fastcall, _based

4. Tipe Data Bahasa C++
Tipe data dasar pada C++, yakni: teks (char), nilai integer (int, short, long), nilai floating-point (float, double, long double), dan enumerated (enum). Jika jenis data yang didefinisikan adalah variabel enumerated, maka ini terkait dengan konstanta integer yang telah diberi nama enumeration set. Dalam bahasa pemrograman C, jenis enum dianggap ekivalen dengan jenis int, sehingga memungkinkan sebuah program untuk memberikan nilai integer langsung pada variabel enumerated. Namun dalam bahasa pemrograman C++, ada mekanisme pemeriksaan jenis data yang ketat, dan tidak memperkenankan operasi campuran seperti ini.
Setiap bahasa memakai seperangkat karakter untuk mengekspresikan pernyataan yang mengandung arti. Bahasa pemrograman C++ ditulis menggunakan sejumlah karakter yang meliputi: 26 huruf kecil (a, b, c, ... dstnya) dan 26 huruf besar (A, B, C, ... dstnya); 10 angka (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); dan lambang-lambang (+ - * = / . , : ; ? ' \ " ! @ # $ % ^ & * ( ) { } [ ]).
Ukuran memori yang diperlukan untuk masing-masing tipe data sangat bergantung pada perangkat keras dari komputer yang digunakan. Karena itu jangkauan bilangan dari masing-masing tipe data juga bisa berlainan antara satu jenis mesin dengan mesin lainnya. Nilai yang tercakup pada tipe data bilangan (bulat maupun pecahan) pada arsitektur PC yang berbasis DOS, adalah sebagai berikut:

Tipe data Ukuran memori Jangkauan nilai
char 1 byte -128 s/d +127
int 2 byte -32768 hingga +32767
short 2 byte -32.768 s/d 32.767
long 4 byte -2.147.438.648 s/d 2.147.438.647
float 4 byte 3,4x10-36 s/d 3,4x10+38
double 8 byte 1,7x10-308 s/d 1,7x10+308
long double 10 byte 3,4x10_4932 s/d 1,1x10+4932
enum 2 byte -32.768 s/d 32.767
pointer 2 byte (near, based)
pointer 4 byte (far, huge)
4.1. Tipe Data Tertentu
Modifier unsigned:
Yang termasuk jenis data modifier unsigned yang dapat diterapkan pada char, int, short, long adalah void dan pointer. Bila salah satu jenis data di atas dimodifikasi menjadi usigned, dapat dipandang range nilai yang bisa dijangkau mempresentasikan bilangan seperti pada angka yang ditunjukkan oleh jumlah kilometer yang telah ditempuh pada mobil atau sepeda motor. Angka tersebut dimulai dari 0000... dan mencapai maksimum 9999..., dan kembali ke 0000... Jadi dalam unsigned, yang ditampilkan hanyalah bilangan positif keseluruhan dalam range nol sampai ke bilangan maksimum yang dapat diprepresentasikannya.

Tipe data Ukuran memori Jangkauan nilai
unsigned char 1 byte 0 s/d 255
unsigned int 2 byte 0 s/d 32767
unsigned short 2 byte 0 s/d 32.767
unsigned long 4 byte 0 s/d 2.147.438.647

Modifier signed:
Digunakan untuk memperluas tanda yang digunakan integer dan karakter. Cara ini memungkinkan untuk menyimpan suatu nilai dalam bentuk bilangan positif atau negatif.

Tipe data Ukuran memori Jangkauan nilaisigned char 1 byte -128 s/d +127
signed int 2 byte -32768 hingga +32767
signed short 2 byte -32.768 s/d 32.767
signed long 4 byte -2.147.438.648 s/d 2.147.438.647
Untuk mengetahui ukuran memori yang diperlukan oleh semua tipe data, bisa dilihat dengan meng-compiler dan mengeksekusi contoh program sederhana, berikut:
//* Menentukan ukuran memori *
#include
#include
void main()
{
clrscr();
cout << "Ukuran char : " << sizeof(char) << '\n';
cout << "Ukuran short : " << sizeof(short) << '\n';
cout << "Ukuran int : " << sizeof(int) << '\n';
cout << "Ukuran long : " << sizeof(long) << '\n';
cout << "Ukuran float : " << sizeof(float) << '\n';
cout << "Ukuran double : " << sizeof(double) << '\n';
cout << "Ukuran long double : " << sizeof(long double) << '\n';
}

Penjelasan program:
Pemrograman C++ tidak terlepas dari fungsi. Sebab fungsi adalah salah satu dasar penyusunan blok pada C++. Sebuah program C++ minimal mengandung sebuah fungsi main(). Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi. Sedangkan yang dimulai dari tanda { hingga tanda } disebut tubuh fungsi. Semua yang terletak di dalam tanda {} disebut blok. Tanda () digunakan untuk mengapit argumen fungsi, yaitu nilai yang akan dilewatkan ke fungsi. Kata void yang mendahului main() dipakai untuk menyetakan bahwa fungsi ini tidak memiliki nilai balik.
Pengenal cout merupakan sebuah obyek di dalam C++. Obyek ini disediakan oleh C++ untuk mengarahkan data ke standard output (normalnya adalah layar), sebagai contoh tambahan misalnya:

cout << "Hallo! Selamat datang di website ideelok \n";
Tanda << merupakan sebuah operator yang disebut operator penyisipan/peletakan. Operator ini akan mengarahkan operand (data) yang terletak di sebelah kanan obyeknya ke obyek yang terletak di sebelah kiri. Pada pernyataan di atas, konstanta string "Hallo! Selamat datang di website ideelok \n" diarahkan ke cout, yang memberikan hasil berupa tampilan string tersebut ke layar. Didalam sebuah string, karakter \ diikuti dengan karakter tertentu menyatakan sebuah karakter tunggal. Pada contoh \n adalah karakter pindah baris (newline).
Pada baris #include , baris ini menginstruksikan kepada kompiler untuk menyiapkan file lain pada saat program dikompolasi. Dalam hal ini file-file yang berakhiran dengan .h disebut file header, yaitu file-file yang berisi berbagai deklarasi, seperti fungsi, variabel dan sebagainya. #include perlu disertakan pada program yang melibatkan obyek cout. Tanpa kehadiran baris tersebut akan terjadi kesalahan program sewaktu program dikompilasi. Sebab file iostream.h berisi deklarasi yang diperlukan oleh cout dan berbagai obyek yang berhubungan dengan operasi masukan-keluaran pada stream.
Pada baris clrscr(); adalah perintah untuk menghapus layar. Apabila pernyataan di atas digunakan, baris #include perlu disertakan dalam program.

5. Variabel dan Konstanta Bahasa C++
Data pada C++ tersusun dari variabel dan konstanta. Variabel merupakan komponen penting pada pemrograman. Variabel digunakan dalam program untuk menyimpan suatu nilai, dengan nilai yang ada padanya dapat diubah selama eksekusi program berlangsung. Adapun konstanta menyatakan nilai yang tetap. Misalnya 234 adalah sebuah konstanta bilangan bulat.
5.1. Mendeklarasikan dan Mendefinisikan Variabel
Variabel yang akan digunakan dalam program haruslah dideklarasikan terlebih dahulu, maksudnya mengenalkan sebuah pengenal ke program dan menentukan jenis data yang bisa disimpan di dalamnya. Apabila suatu pendeklarasian menyebabkan pengalokasian memori, maka pendeklarasian tersebut dinamakan pendefinisian. Yang jelas pendefinisian berarti pula pendeklarasian, tetapi tidak semua pendeklarasian berarti pendefinisian.
bentuk pendefinisian variabel:

tipe daftar_variabel;
Pada pendefinisian variabel, daftar_variabel dapat berupa sebuah variabel atau beberapa variabel yang dipisahkan dengan koma.
5.2. Memberikan Nilai ke Variabel
Bentuk pernyataan yang digunakan untuk memberikan nilai ke variabel adalah:
variabel = nilai;
Contoh:
jumlah = 10;
harga_barang = 1500;
5.3. Variabel dan Konstanta Bertipe char
Bentuk pernyataan variabel bertipe char:

char karakter;

Dalam hal ini variabel karakter bertipe char. Variabel ini dapat menampung data sebuah karakter. Untuk menuliskan sebuah konstanta bertipe char, karakter perlu ditulis di dalam tanda petik tunggal, contoh: 'A' karakter berupa huruf A.

Karakter yang ditulis dengan bentuk \karakter mempunyai arti tersendiri (karakter khusus) dan biasa disebut escape sequence characters.

Karakter-karakter khusus tersebut antara lain:
\0 artinya karakter ber-ASCII nol (karakter nul)
\a artinya karakter bel
\b artinya karakter backspace
\f artinya karakter formfeed (ganti halaman)
\n artinya karakter newline (pindah baris)
\r artinya karakter carriage return (ke awal baris) tanpa linefeed
\t artinya karakter tab horizontal
\v artinya karakter tab vertikal
\\ artinya karakter \
\' artinya karakter '
\" artinya karakter "
\? artinya karakter ?
\ooo artinya karakter yang nilai oktalnya adalah ooo (tiga digit oktal)
\xhh artinya karakter yang nilai heksadesimalnya adalah hh (dua digit heksadesimal)
5.4. Variabel dan Konstanta Bertipe int
Variabel bertipe int didefinisikan dengan bentuk:

int bilangan;
Setelah pendefinisian seperti itu, variabel ini dapat digunakan untuk menampung nilai bertipe int. Sebuah konstanta bertipe int adalah bilangan bulat yang terletak antara minus 32768 hingga plus 32767 (pada PC berbasis DOS) dan tidak mengandung titik desimal.
5.5. Variabel dan Konstanta Bertipe long
Apabila diinginkan untuk memproses bilangan bulat yang nilainya lebih besar daripada tipe int, Anda dapat menggunakan tipe long. Suatu variabel bertipe long didefinisikan dengan cara seperti di bawah ini:

long jumlah_penduduk;

Pada contoh ini, jumlah_penduduk didefinisikan bertipe long. Dengan demikian variabel ini dapat menampung nilai ratusan juta. Adapun konstanta bertipe long biasa ditulis dengan akhiran L. Sebagai contoh: 1543267635435L
5.6. Variabel dan Konstanta Bertipe float, double dan long double
Tipe-tipe data yang telah dibahas di depan (char, int dan long) berhubungan dengan bilangan bulat. Seandainya diinginkan untuk memproses bilangan yang mengandung nilai pecahan, bisa menggunakan tipe float, double atau long double. Ketiga tipe yang berhubungan dengan bilangan pecahan ini mempunyai perbedaan dalam hal: kepresisian data, dan jangkauan nilai yang dicakup.
Contoh pendefinisian variabel untuk menampung bilangan pecahan:
float panjang;
double phi;
long double tetapan;
5.7. Inisialisasi Variabel
Adakalanya dalam penulisan program, variabel langsung diberi nilai awal setelah didefinisikan. Sebagai contoh:
int jumlah;
jumlah = 80;
Dua pernyataan seperti di atas sebenarnya dapat diangkat melalui pendefinisian yang disertai penugasan nilai, seperti berikut:
int jumlah = 80;

OPERATOR BAHASA PEMROGRAMAN C++
Operator merupakan simbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi, misalnya untuk menjumlahkan dua buah nilai, memberikan nilai pada suatu variabel, ataupun membandingkan kesamaan dua buah nilai. Bahasa pemrograman C++ mempunyai banyak operator yang tidak didapat dalam bahasa pemrograman lain, antara lain: operator bitwise, operator inkremen dan dekremen, operator kondisional, operator koma, operator aritmatika dan lain-lain.
a) Operator bitwise
Operator bitwise pada bahasa pemrograman C++ memperlakukan variabel sebagai gabungan dari bit-bit dan bukan sebagai bilangan. Operator ini berguna untuk mengakses bit-bit individual dalam memori, seperti memori screen untuk display grafik, informasi CapsLock (on atau off). Operator bitwise ini hanya dapat beroperasi pada jenis data integral, bukan bilangan floating-point. Tiga operator bitwise berkelakuan seperti operator logika, namun ini terjadi pada setiap bit dalam sebuah integer, yakni: AND (&), OR(I), dan XOR (^), komplemen (~) membalik (menginversi) setiap bit, operator shift kiri (<<), dan operator shift kanan (>>).
ANDSimbol operator: &, dengan bentuk penggunaan : operand1 & operand2
Operasi AND bitwise membandingkan dua bit; jika kedua bit tersebut adalah 1, maka hasilnya 1, selain itu hasilnya 0.
Logika AND:
Bit 0 Bit 1 Hasil
0 0 0
0 1 0
1 0 1
1 1 1

OR
Simbol operator I, dengan bentuk pemakaian : operand1 I opeand2
Operasi OR bitwise membandingkan dua bit dan memberikan hasil 1 jika kedua bit yang dibandingkan itu salah satu atau keduanya 1.
Logika OR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 1

XOR
Simbul operator: ^, dengan bentuk penggunaan : operand1 ^ operand2
Operasi EXCLUSIVE OR (XOR) bitwise membandingkan dua bit dan memberikan hasil 1 bila kedua bit merupakan komplementer satu sama lain.
Logika XOR:
Bit 0 Bit 1 Hasil
0 0 0
0 1 1
1 0 1
1 1 0

Contoh program operasi I, & dan ^:

//* Efek operator I, & dan ^ *
#include
#include
void main()
{
unsigned char angka1 = 81;
unsigned char angka2 = 99;
unsigned char a, b, c;
clrscr();
a = angka1 I angka2; //operasi OR
b = angka1 & angka2; //operasi AND
c = angka1 ^ angka2; //operasi XOR
cout << "a= " << a << '\n';
cout << "b= " << b << '\n';
cout << "c= " << c << '\n';
}

Hasil eksekusi program di atas, adalah:
a= 115
b= 65
c= 50

Penjelasan hasil program:
Operasi OR pada a:
0000 0000 0101 0001 <- 81="81" br="br">0000 0000 0110 0011 <- 99="99" br="br">-------------------------------
0000 0000 0 1 1 0011 <- 115="115" br="br">
Operasi AND pada b:
0000 0000 0101 0001 <- 81="81" br="br">0000 0000 0110 0011 <- 99="99" br="br">-------------------------------
0000 0000 0100 0001 <- 65="65" br="br">
Operasi XOR pada c:
0000 0000 0101 0001 <- 81="81" br="br">0000 0000 0110 0011 <- 99="99" br="br">-------------------------------
0000 0000 0011 0010 <- 50="50" p="p">
b) Operator Shift

Operator >> dan << pada bahasa pemrograman C++ berguna untuk menggeser bit-bit dalam suatu bilangan bulat ke kiri atau ke kanan. Shift kiri menggerakkan bit-bit ke kiri dan mengatur bit paling kanan (yang tidak signifikan) menjadi nol. Sedangkan bit paling kiri (paling signifikan) yang ter-shift keluar akan dibuang. Sementara itu, operator shift kanan menggerakkan bit-bit ke kanan. Bit-bit dengan orde lebih rendah yang ter-shift keluar akan dibuang. Pergeseran bit ke kiri mempunyai efek seperti perkalian, sedangkan pergeseran ke kanan memberikan efek seperti pembagian.

b.1) Operastor shift kiri
Bentuk umum dipakai: nilai << jumlah bit digeser ke kiri
Setiap pergeseran sebuah bit akan memberikan pengaruh seperti halnya perkalian dengan bilangan dua. Untuk lebih jelasnya perhatikan contoh berikut beserta hasilnya:

//* Operator SHIFT KIRI *
#include
#include
main()
{
unsigned char x = 93;
clrscr();
cout << "Nilai x semula = " << x << '\n';
x = x << 1; // geser ke kiri 1 bit
cout << "Nilai x kini = " << x << '\n';
}

Hasil eksekusi program:
Nilai x semula = 93
Nilai x kini = 186

Penjelasan hasil program:
0000 0000 0101 1101 <- 93="93" br="br">digeser ke kiri 1 bit
0000 0000 1011 1010 <- 186="186" br="br">di bagian kanan selalu disisipi dengan nol sebanyak bit yang digeser.

b.2) Operator shift kanan
Bentuk umum dipakai: nilai >> jumlah bit digeser ke kanan
Setiap pergeseran sebuah bit akan memberikan pengaruh seperti halnya pembagian dengan bilangan dua. Untuk lebih jelasnya perhatikan contoh berikut beserta hasilnya:

//* OPERATOR SHIFT KANAN *
#include
#include
void main()
{
unsigned char x = 93;
clrscr();
cout << "Nilai x semula = " << x << '\n';
x = x >> 1; // geser kekanan 1 bit
cout << "Nilai x kini = " << x << '/n';
}

Hasil eksekusi program:
Nilai x semula = 93
Nilai x kini = 46

Penjelasan hasil program:
0000 0000 0101 1101 <- 93="93" br="br">digeser ke ke kanan 1 bit
0000 0000 0010 1110 <- 186="186" br="br">di bagian kiri selalu disisipi dengan nol sebanyak bit yang digeser.

c) Operator Komplemen
Operator ini mempunyai sifat membalik (menginversi) nilai setiap bit. Jika bit operand bernilai 1 hasilnya 0, dan bila bit operand bernilai 0 hasilnya 1.
Contoh pemakaian operator komplemen:

//* Operator komplemen *
#include
#include
main()
{
unsigned char nilai = 81;
unsigned char a;
clrscr();
a = ~nilai; // komplemen dari nilai
cout << "a = " << a << '\n';
}

Hasil eksekusi program:
a = 65454

Penjelasan hasil program:
0000 0000 0101 0001 <- 81="81" br="br">inversinya menjadi
1111 1111 1010 1110 <- 6554="6554" br="br">
d) Operator Aritmatika
Bahasa C++ melibatkan operator aritmatika standar untuk penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), dan modulus (%). Operator aritmatika tersebut tergolong sebagai operator binary. Adapun operator yang tergolong sebagai operator unary yaitu tanda minus (-), dan tanda plus (+).

Prioritas operator :
Operator dengan prioritas tinggi akan diutamakan dalam hal pengerjaan dibandingkan dengan operator yang memiliki prioritas lebih rendah.
Prioritas 1: + --
Prioritas 2: - (unary minus)
Prioritas 3: * / %
Prioritas 4: + -

Apabila operastor memiliki prioritas yang sama, operator yang terletak disebelah kiri dalam suatu ungkapan yang akan diutamakan untuk dikerjakan terlebih dahulu.

Tanda kurung biasa digunakan untuk urutan mengerjakan, misalnya x = (2 + 3) * 2;
(2 + 3 akan dikerjakan terlebih dahulu baru dikalikan dengan 2)

Contoh program:
//* Operasi aritmatika dengan menggunakan tanda kurung) *
#include
#include
void main()
{
clrscr();
int x;
x = 2 + 3 * 2;
cout << "x= " << x << '\n';
x = (2 + 3) * 2;
cout << "x= " << x << '\n';
}

Hasil eksekusi program:
x= 8
x= 12

Operator seperti penjumlahan, pengurangan, perkalian dan pembagian merupakan hal yang umum. Adapun operator sisa pembagian (operator modulus) yang berupa % ada baiknya untuk diterangkan lebih lanjut. Operator ini diterapkan pada operan bertipe integer. Untuk lebih jelasnya perhatikan beberapa contoh berikut:
7 % 2 -> 1 sisa pembagian bilangan 7 dengan 2 adalah 1
9 % 5 -> 4 sisa pembagian bilangan 9 dengan 5 adalah 4

Contoh program
//* sisa pembagian (modulus) *
#include
#include
void main()
{
clrscr();
cout << 9 % 5 << '\n';
cout << 13 % 5 << '\n';
}

Hasil eksekusi program:
4
3

e) Operator Assigenment
Operator assigenment dalam bahasa pemrograman C/C++ berbeda dengan statement assigenment dalam bahasa yang lain. Assigenment dilakukan oleh operator assigenment dan bukan oleh staement assigenment. Seperti operator bahasa pemrograman C++ yang lain, hasil operator assigenment merupakan nilai yang diberikan. Misalnya :
nilai = 4 * (bilangan = 3)
Disini bilangan diberikan nilai 3. Nilai 3 ini dikali dengan 4, sehingga nilai mendapatkan hasil akhir 12.

Rabu, 30 April 2014

Desain dan Struktur Organisasi
  
 DIMENSI STRUKTUR ORGANISASI

Empat desain keputusan (pembagian kerja, pendelegasian kewenangan, pembagian departemen, dan rentang kendali) menghasilkan struktur organisasi, Para peneliti dan praktisi manajemen berusaha untuk mengembangan pemahaman mengenai hubungan antar struktur dan kinerja, sikap, keefektifan, dan variabel lainnya.  Secara umum, gambaran mengenai struktur meliputi formalisasi, sentralisasi, dan kerumitan.

1.     Formalisasi
Formalisasi mengacu derajat dimana segala harapan mengenai cara dan tujuan pekerjaan dirumuskan, ditulis dan diberlakukan. Suatu organisasi yang sangat formal, akan memuat prosedur dan aturan yang ketat dalam setiap kegiatan / pekerjaan di dalam organisasi. Dengan demikian, semakin formal suatu organisasi, maka semakin ketat pula aturan dan prosedur kerja. Formalisasi merupakan hasil dari spesialisasi kerja yang tinggi, pendelegasian kewenangan yang tinggi, pembagian departemen berdasarkan fungsi, dan luasnya rentang kendali.

2.     Sentralisasi
Sentralisasi merupakan dimensi struktur organisasi yang mengacu pada derajat dimana kewenangan untuk mengambil keputusan dikuasai oleh manajemen puncak. Hubungan sentralisasi dengan empat desain keputusan adalah sebagai berikut : Semakin tinggi spesialisasi kerja, semakin besar sentralisasi, Semakin sedikit kewenangan yang didelegasikan, semakin besar sentralisasi,  Semakin besar penggunaan departemen berdasarkan fungsi, semakin besar sentralisasi, Semakin luas rentang kendali, semakin besar sentralisasi

3.     Kerumitan
Kerumitan (complexity) adalah suatu struktur organisasi yang mengacu pada jumlah pekerjaan atau unit yang berbeda dalam organisasi.

 Departementalisasi
 
    Departementalisasi adalah upaya mengelompokan aktivitas pekerjaan sehingga aktivitas-aktivitas dan hubungan yang serupa dan logis dapat diselenggarakan secara serempak. Pertimbangan manajerial yang penting dalam pembentukan departemen adalah dalam menentukan dasar-dasar pengelompokan pekerjaan atau Pengertian adalah pembagian pabrik ke dalam bagian-bagian yang disebut departemen atau pusat biaya (cost center) yang dibebani dengan biaya overhead pabrik.

Dalam departementalisasi biaya overhead pabrik, tarif biaya overhead dihitung untuk setiap departemen produksi dengan dasar pembebanan yang mungkin berbeda diantara departemen-departemen produksi yang ada. Oleh karena itu departementalisasi biaya overhead pabrik memerlukan pembagian perusahaan ke dalam departemen-departemen untuk memudahkan pengumpulan biaya  overhead pabrik yang terjadi. Departemen-departemen inilah yang merupakan pusat-pusat biaya yang merupakan tempat ditandingkannya biaya dengan prestasi yang dihasilkan oleh departemen tersebut.
Lima dasar departementalisasi adalah: fungsional, proses, produk, pelanggan, dan georafi.

1) Lini Fungsional. Masing-masing departemen fungsional mengerjakan bagiannya terpisah dari keseluruhan perusahaan. 
2) Lini Proses. Masing-masing departemen proses mengerjakan bagiannya terpisah dari keseluruhan proses produksi.
3) Lini Produk. Masing-masing departemen memproduksi dan menjual satu produk tertentu.
4) Lini Pelanggan. Masing-masing dari departemen pelanggan memenuhi kebutuhan produk dan jasa konsumen tertentu.
5) Lini geografis. Masing-masing departemen wilayah meproduksi dan menjadi produk di wilayah.
 
Macam departementasi yaitu:
a) Departementasi Fungsional, mengelompokan fungsi yang sama atau kegiatan yang sejenis untuk membentuak satuan organisasi.
b) Departementasi Devisional, dengan membagi divisi-divisi atas dasar:
1. Struktur Organisasi Divisional atas dasar produk.
2. Struktur Organisasi Divisional atas dasar wilayah.
3. Struktur Organisasi Divisional atas dasar langganan.
4. Struktur Organisasi Dicvisional atas dasar proses.
5. Struktur Organisasi Divisional atas dasar alphanumerical.

4. Rentang Kendali      
Rentang kendali adalah istilah yang sekarang digunakan lebih umum dalam manajemen bisnis, terutama pada manajemen sumber daya manusia. Rentang kendali mengacu pada jumlah bawahan supervisor memiliki. Rentang kendali sering disebut juga Span of Management, Span of Executive atau Span of Authority Adalah batas jumlah bawahan langsung yang dapat dipimpin dan dikendalikan secara effektif oleh seorang manager.
 
Ø  Perlunya rentang kendali dalam organisasi:
o    Karena keterbatasan waktu
o    Karena keterbatasan pengetahuan
o    Karena keterbatasan kemampuan
o    Karena keterbatasan perhatian
o    Rentang Kendali setiap pemimpin / manager tidak sama (relatif)
Ø  Faktor-faktor yang membatasi rentang kendali yaitu:
o    Sifat dan terperincinya rencana
o    Latihan-latihan dalam perusahaan
o    Posisi Manager dalam perusahaan
o    Dinamis & Statisnya Organisasi
o    Efektivitas Komunikasi
o    Tipe pekerjaan yang dilakukan
o    Kecakapan & Pengalaman Manager
o    Span of Personality and Energy
o    Dedikasi dan Partisipasi bawahan
 
Manfaat Departementalisasi, biaya overhead pabrik bermanfaat untuk pengendalian biaya dan ketelitian penentuan harga pokok produk. Pengendalian biaya overhead pabrik dapat lebih mudah dilakukan dengan cara menghubungkan biaya dengan pusat terjadinya sehingga dengan demikian akan memperjelas tanggungjawab setiap biaya yang terjadi dalam departemen tertentu. Dengan digunakannya tarif-tarif biaya overhead pabrik yang berbeda-beda untuk tiap departemen, maka pesanan atau produk yang melewati suatu departemen produksi akan dibebani dengan biaya overhead pabrik sesuai tarif dari departemen yang besangkutan. Hal ini mempunyai akibat terhadap ketelitian terhadap penentuan harga pokok produk.
 
Departemen Produksi dan Departemen Jasa
Pemilihan Departemen Produksi
Faktor-faktor yang harus dipertimbangkan dalam menentukan jenis departemen yang diperlukan untuk menetapkan tarif overhead departemental yang akurat adalah sebagai berikut:
Kesamaan operasi dan mesin di setiap departemen
Lokasi dari operasi dan mesin
Tanggung jawab atas produksi dan biaya
Hubungan operasi terhadap aliran produk
Jumlah departemen
Pemilihan Departemen Jasa
Jasa yang memberikan manfaat kepada departemen produksi dan departemen jasa lain, dapat diatur dengan cara (1) menetapkan departemen jasa yang terpisah untuk setiap fungsi, (2) menggabungkan berbagai fungsi ke dalam suatu departemen,atau (3) menempatkan beberapa biaya jasa dalam suatu departemen yang disebut tempat penampungan biaya umum pabrik.
Biaya Langsung Departemental
Biaya langsung departemental dapat dibagi menjadi ke dalam kategori-kategori sebagai berikut: (1) supervisi, tenaga kerja tidak langsung, dan lembur, (2) tunjangan tenaga kerja, (3) bahan baku tidak langsung dan perlengkapan, (4) perbaikan dan pemeliharaan, serta (5) langsung dengan departemen asalnya, tanpa memperdulikan apakah departemen tersebut adalah departemen produksi atau departemen jasa.
Biaya Tidak Langsung Departemental
Biaya departemental tidak langsung merupakan biaya overhead yang tidak dapat ditelusuri secara langsung ke departemen karena penggunaan biaya tersebut secara bersama-sama. Misalnya ; sewa gedung, penyusutan, asuransi kebakaran, utilitas dsbnya. Memilih dasar yang sesuai untuk mengalokasikan sebagian besar dari biaya tidak langsung departemental adalah sulit dan besrifat arbitrer. Alokasi harus didasarkan pada salah satu dari daftar berikut:

-Ukuran konsumsi dari suatu sumber daya
-Ukuran output
-Pengganti yang mencerminkan sumber daya yang dikonsumsi
-Alokasi biaya overhead departemen pembantu ke departemen produksi. 

Ada dua macam metode alokasi biaya overhead departemen pembantu:
Metode alokasi langsung BOP dialokasikan ke tiap-tiap departemen produksi yang menikmatinya. Metode ini digunakan apabila jasa departemen pembantu hanya dinikmati oleh departemen produksi saja.
Metode alokasi bertahap, yang terdiri dari:
Metode ini digunakan apabila jasa yang dihasilkan departemen pembantu tidak hanya dipakai oleh departemen produksi saja. Contoh: Departemen pembangkit tenaga listrik memberikan jasa kepada departemen bengkel, sebaliknya departemen pembangkit tenaga listrik menerima jasa reparasi dan pemeliharaan dari departemen bengkel. Metode alokasi bertahap dibagi menjadi dua kelompok metode:
Metode alokasi kontinu
Dalam metode ini, BOP departemen pembantu yang saling memberikan jasa dialokasikan secara terus-menerus sehingga jumlah biaya overhead yang belum dialokasikan menjadi tidak berarti.
Metode aljabar
Dalam metode ini, jumlah biaya tiap deprtemen pembantu dinyatakan dalam persamaan aljabar. Metode alokasi bertahap yang tidak memperhitungkan transfer jasa timbal balik antar departemen pembantu. Metode yang termasuk dalam kelompok ini adalah “metode urutan alokasi yang diatur”

 Implikasi Manajerial desain dan struktur organisasi
 
Dimensi Struktur Organisasi
Tantangan manajemen ketika menjalankan pengorganisasian adalah dalam mendesain struktur organisasi yang paling tepat berkenan dengan berbagai pekerjaan, wewenang, dan departmen.

Dimensi Struktur Organisasi
1. Formalitas. Menunjuk kepada luasnya pengharapan berkenaan dengan maksud dan tujuan pekerjaan ditetapkan, ditulis, dan diselenggarakan.
2. Sentralisasi. Menunjuk kepada tempat wewenang pengambilan keputusan di dalam hirarkhi organisasi.
3. Kompleksitas. Adalah akibat perkembangan langsung pembagian kerja dan penciptaan departmen-departmen.

Dimensi Organisasional. Menunjuk kepada perbedaan karakter organisasional :
Kompleksitas
Formalisasi
Sentralisasi

Departementalisasi
Departementalisasi adalah upaya mengelompokkan aktivitas pekerjaan sehingga aktivitas-aktivitas dan hubungan yang serupa dan logis dapat diselenggarakan secara serempak.
Pertimbangan manajerial yang penting dalam pembentukan department adalah dalam menentukan dasar-dasar pengelompokkan pekerjaan.


Lima dasar departementalisasi adalah: fungsional, proses, produk, pelanggan, dan geografi.
a. Lini fungsional. Masing-masing departmen fungsional mengerjakan bagiannya terpisah dari keseluruhan perusahaan.
b. Lini Proses. Masing-masing departmen proses mengerjakan bagiannya terpisah dari keseluruhan proses produksi.
c. Lini Produk.Masing-masing departmen memproduksi dan menjual satu produk tertentu.
d. Lini Pelanggan. Masing-masing dari departmen pelanggan memenuhi kebutuhan produk dan jasa konsumen tertentu.
e. Lini geografis. Masing-masing department wilayah memproduksi dan menjadi produk di wilayah.

Departmentalisasi lainnya adalah:
a. Multi departemental,
b. Departementalisasi campuran : organisasi matriks,
c. Departementalisasi di perusahaan multinasional.

Efisiensi kerja tergantung kepada keberhasilan integrasi satuan-satuan yang bermacam-macam dalam organisasi. Proses penentuan cara bagaimana kegiatan dikelompokkan disebut departementasi.

Macam-macam departementasi yaitu:
1. Departementasi Fungsional, mengelompokkan fungsi yang sama atau kegiatan yang sejenis untuk membentuk satuan organisasi.

Kebaikannya :
a. Pendekatan ini menjaga kekuasaan dan kedudukan fungsi-fungsi utama,
b. Menciptakan efisiensi melalui spesialisasi,
c. Memusatkan keahlian organisasi,
d. Memungkinkan pengawasan manajemen puncak terhadap fungsi-fungsi  yang ada dalam organisasi.

Kelemahannya :
a. Menciptakan konflik antar fungsi,
b. Adanya kemacetan pelaksanaan tugas,
c. Umpan balik yang lambat,
d. Memusatkan pada kepentingan tugasnya,
e. Para anggota berpandangan lebih sempit serta kurang inovatif.

2. Departementasi Devisional, dengan membagi divisi-divisi atas dasar:
Struktur Organisasi Divisional atas dasar produk,
Struktur Organisasi Divisional atas dasar wilayah,
Struktur Organisasi Divisional atas dasar langganan,
Struktur Organisasi Divisional atas dasar proses,
Struktur Organisasi Divisional atas dasar alphanumerical.
Kebaikan Struktur Divisional :
a. Semua kegiatan mudah dikoordinasikan dan prestasi kerja terpelihara,
b. Kualitas dan kecepatan pembuatan keputusan meningkat,
c. Menempatkan pengembangan dan implemetasi strategi dekat dengan lingkungan divisi yang khas,
d. Merumuskan tanggung jawab dengan jelas dan perhatian dipusatkan pada pertanggung jawaban atas prestasi kerja,
e. Cocok untuk lingkungan yang cepat berubah,
f. Mempertahankan spesialisasi fungsional dalam setiap divisi.

Kelemahan Struktur Divisional:
a. Berkembangnya persaingan disfungsional potensial atas sumber daya oerusahaan dan konflik antara tugas dan prioritas,
b. Seberapa besar delegasi wewenang diberikan,
c. Masalah kebijaksanaan dalam alokasi sumber daya dan distribusi biaya overhead perusahaan,
d. Menimbulkan konsistensi kebijaksanaan antar divisi,
e. Masalah duplikasi sumber daya dan peralatan yang tidak perlu.


Model-model Desain Organisasi
1. DIMENSI KOMPLEKSITAS
Kompleksitas adalah tingkat diferensiasi dalam organisasi.
Jumlah judul pekerjaan ditingkat wewenang yang berbeda dalam  suatu organisasi.

Diferensiasi horozontal = pemisahan horisontal diantara unit-unit.

Diferensiasi Spasial = sebaran secara geografis.

Diferensisi vertikal =  kedalaman struktur organisasi.
Diferensiasi makin meningkat -> kompleksitas meningkatà tingkatan heirarki bertambah.
Akibatnya:
        (1) semakin besar distorsi/miskomunikasi
        (2) makin sulit koordonasinya
        (3) makin sulit melakukan pengawasan

Struktur organisasi yang tinggi (tall) -> banyak lapisan heirarki
       - Struktur yang tinggi mengakibatkan supervisi dan kontrol yang “berorientasi kepada
atasan” yang lebih kuat, koordinasi dan komunikasi lebih rumit karena jumlah lapisan
yang harus dilalui oleh perintah dan feedback jadi lebih banyak.

Struktur organisasi yang datarn -> sedikit lapisan heirarchi
 - Struktur datar, komunikasi dan koordinasi lancar, tetapi mengurangi peluang kenaikkan
jabatan, karena posisi manajer lebih sedikit.

2. DIMENSI FORMALISASI
Sejauh mana pekerjaan di dalam organisasi distandardisasi, dan sejumlah peraturan yang mengaturperilaku mereka. Makin tinggi formalisasi, makin sedikit pemegang kerja punya kebebasan mengenaiapa yang harus dikerjakan.

Pegawai menangani masukan yang sama dengan cara yang sama, dan menghasilkan keluaran yangsama dan konsisten. Formalisasi rendah pegawai punya banyak kebebasan untuk mengambilkebijakan dalam pekerjaan.

Ada manual mengenai kebijakan dan prosedur (SOP = standard Operation Procedure). Keberadaanformalisasi sangat tergantung dari;
  (1) unskilled vs profesional
  (2) pekerjaan yang berulang-ulang vs perlu inisiatif
  (3) kedudukan dalam heirarki di organisasi
  (4) Bagian produksi vs bagian penelitian, marketing
  (5) meningkatkan prestasi agar biaya rendah (sistim ban berjalan)

3. DIMENSI SENTRALISASI
(1)Tingkat dimana pengambilan keputusan dikonsentrasikan pada suatu titik tunggal dalam organisasi.
(2) Penyebaran kekuasaan untuk membuat keputusan dalam organisasi.
(3) Derajad dimana manajemen puncak mendelegasikan wewenang dalam membuat keputusan

Power vs authority
•Pengolahan informasi dan pengambilan keputusan membantu pncapaian tujuan melalui
koordinasi.
•Organisasi harus cepat menanggapi perubahan kondisi yang terdapat pada titik
dimana perubahan tersebut terjadi. DESENTRALISASI dapat bertindak lebih cepat,
karena tidak terjadi pemrosesan informasi herarki vertikal yang panjang.
•Desentralisasi alat motivasi pegawai karena dapat ikut serta dalam pengambilan
keputusan.
•Sentralisasi atau desentralisasi dipengaruhi oleh tahap siklus hidup organisasi.
•Sentralisasi, lebih hemat.

Implikasi Manajerial Desain dan Struktur Organisasi
Pengorganisasi (organizing) merupakan proses penyusunan anggota dalam bentuk struktur organisasi untuk mencapai tujuan organisasi dengan sumber daya yang dimiliki dan lingkungan yang melingkupinya baik intern maupun ekstern. Ada dua aspek utama dalam organisasi yaitu departementasi dan pembagian kerja merupaka dasar proses pengorganisasian.

James D. Mooney mengatakan, "Organisasi yaitu setiap perserikatan manusia untuk mencapai tujuan bersama." Sedangkan Chester I. Barnard memberikan pengertian organisasi yaitu "Suatu system aktivitas kerjasama yang dilakukan oleh dua orang atau lebih".
Desain dan Struktur Organisasi

1. Pentingnya Struktur dan Desain Organisasi

     Sebuah struktur dan desain yang efektif harus mampu mengoptimalkan kinerja baik organisasi maupun anggotanya. Hal ini tercapai apabila ada penataan tugas, aktivitas kerja dan individunya menurut cara-cara tertentu agar tujuan tercapai. Sebuah struktur dan desain yang efektif harus mampu menggunakan tipe dan jumlah risorsis dengan tepat (misalnya uang, material, orang) untuk mencapai tujuan. Ini artinya:
Mengorganisasi tugas dalam cara-cara yang paling efisien dan efektif agar tidak ada duplikasi pekerjaan..
     Mengalokasikan kedudukan dan orang agar ada jaminan kalau pekerjaan dapat diselesaikan
Menjelaskan kewenangan, peran, dan tanggung jawab.Namun struktur dan desain organisasi tidak sekadar suatu sarana (means) untuk menjamin agar berbagai aktivitas dikelola dalam cara yang paling efisien. Struktur organisasi yang efektif juga akan membantu proses perencanaan, pembuatan keputusan, dan meminimalisir konflik diantara berbagai departemen dan fungsi akibat dari adanya ekspektasi kerja yang kadang tidak jelas.

Studi klasik dan manajemen keilmuan (scientific management) berfokus pada “one best way” untuk menata organisasi , teori kontingensi berargumen bahwa tidak ada satu struktur dan desain organisasi yang tepat untuk diterapkan bagi setiap – malahan manajer dituntut untuk tahu dengan jeli struktur mana yang “paling tepat”. Karenanya, manajer perlu memahami bagaimana menciptakan struktur dan desain organisasi sambil mempertimbangkan kemajuan teknologi, kekuatan individual, dan sebagainya. Untuk itu, mereka perlu menganalisa kondisi organisasi dan lingkungannya, menentukan desain terbaik, mengimplementasikan, secara kontinyu memonitor dan mengkaji struktur dan desain agar tetap efektif.


2. Beberapa Pendekatan Dalam Proses Departementalisasi

            Departementalisasi merupakan proses penentuan bagian bagian dalam organisasi yang akan bebrtanggungjawab dalam melakukan bermacam jenis pekerjaan yang telah dikategorikan berdasarkan faktor-faktor tertentu. Dalam mendesain organisasi, khusunya dalam prosesdepartementalisasi, ada beberapa pendekatan yang bisa digunakan oleh organisasi, yaitu pendekatan berdasarkan fungsional, berdasarkan produk, berdasarkan pelanggan, berdasarkan geografis, dan berdasarkan matriks.

    a.Pendekatan Fungsional
Berdasarkan pendekatan ini, proses departementalisasi dilakukan berdasarkan fungsi-fungsi tertentu yang mesti dijalankan dalam sebuah organisasi.

     b.Pendekatan Produk
Berdasarkan pendekatan ini, penentuan bagian-bagian dalam organisasi ditentukan berdasarkan jenis produk yang dibuat oleh organisasi.

    c.Pendekatan Pelanggan
Berdasarkan pendekatan ini, penentuan bagian-bagian dalam organisasi ditentukan berdasarkan karateristik pelanggan yang menjadi sasara pelanggan dari organisasi.

    d.Pendekatan Geografis
penetuan bagian-bagian dalam organisasi ditentukan berdasarkan wilayah geografis di mana organisasi beroperasi.

   e.Pendekatan Matriks
Pendekatan departementalisasi terakhir yang diperkenalkan adalah pendekatan matriks. Pendekatan ini pada dasarnya merupaka n proses departementalisasi yang menggabungkan antara pendekatan fungsional  dengan  pendekatan lain, misalnya berdasarkan proyek tertentu, produk tertentu, ataupun berdasarkan pendekatan lainnya.

3. Model-model desain organisasi

    Model desain organisasi atau struktur organisasi adalah mekanisme-mekanisme formal pengelolaan suatu organisasi yang menunjukkan kerangka dan susunan perwujudan pola tetap hubungan-hubungan di antara fungsi-fungsi, bagian-bagian atau posisi-posisi maupun orang-orang yang menunjukkan kedudukan, tugas wewenang dan tanggung jawab yang berbeda-beda dalam suatu organisasi. Disain mengandung unsur-unsur spesialisasi kerja, standardisasi, koordinasi, sentralisasi, desentralisasi dalam pembuatan keputu¬san dan besaran satuan kerja.

Pada penerapannya, model desain orgranisasi terdiri dari 2 model, yaitu Desain organisasi Mekanistik dan Desain organisasi orgranik.

A. Desain Organisasi Mekanistik.

Proses kepemimpinan tidak mencakup persepsi tentang keyakinan dan kepercayaan.
Proses motivasi hanya menyadap motif fisik, rasa, aman, dan ekonomik melalui perasaan takut dan sanksi.
Proses komunikasi berlangsung sedemikian rupa sehingga informasi mengalir ke bawah dan cenderung terganggu tidak akurat.
Proses interaksi bersifat tertutup dan terbatas, hanya sedikit pengaruh bawahan atas tujuan dan metode departemental.
Proses pengambilan keputusan hanya di tingkat atas, keputusan Relatif.
Proses penyusun tujuan dilakukan di tingat puncak original, tanpa mendorong adanya partisipasi kelompok.
Proses kendali dipusatkan dan menekankan upaya memperhalus kesalahan.

B. Desain Orgranisasi Orgranik.

Proses kepemimpinan mencakup persepsi tentang keyakinan dan kepercayaan antara atasan dan bawahan dalam segala persoalan.
Proses motivasi berusaha menimbulkan motivasi melalui metode Partisipasi.
Proses komunikasi berlangsung sedemikian rupa sehingga informasi mengalir secara bebas keseluruh orgranisasi yaitu ke atas ke bawah dan kesamping.
Proses interaksi bersifat terbuka dan ekstensif, bai atasan ataupun bawahan dapat mempengaruhi tujuan dan metode partemental.
Proses pengambilan keputusan dilaksanakan di semua tingkatan melalui proses kelompok.
Proses penyusunan tujuan mendorong timbulnya partisipasi kelompok untuk menetapkan sasaran yang tinggi dan realistis.
Proses kendali menyeber ke seluruh orgranisasi dan menekan pemecahan masalah dan pengendalian diri.

Desain organisasi yang efektif tidak dapat berpedoman pada teori sebagai satu cara terbaik melainkan manajer harus menerima sudut pandang bahwa desain mekanistik atau desain organik lebih efektif bagi organisasi atau sub-sub untit di dalamnya.

Desain struktur subunit didesain sesuai dengan kontinummekanistik organik dengan cara yang konsisten dengan keadaan kondisi lingkungan, khususnya laju perubahan yamg lebih lambat, ketidak pastian yg lebih besar & rentang waktu balikan yang lebih singkat sesuai demgam desain mekanistik.

Desain teknik integratif tekhnik yang cocok, apakah peraturan, perencanaan atau penyesuaian bersama, bergantung pada tingkat diferensiasi sub unit. Semakin besar diferensiasinya semakin besar perlunya peraturan dan perencanaan.
 
4.Implikasi Manajerial

 Kesimpulan nya Sebuah struktur dan desain yang efektif harus mampu mengoptimalkan kinerja baik organisasi maupun anggotanya. Hal ini bertujuan untuk tercapai apabila ada penataan tugas, aktivitas kerja dan individunya menurut cara-cara tertentu agar tujuan tercapai. Sebuah struktur dan desain yang efektif harus mampu menggunakan tipe dan jumlah dengan untuk mencapai tujuan
kepemimpinan

Kepemimpinan adalah proses memengaruhi atau memberi contoh oleh pemimpin kepada pengikutnya dalam upaya mencapai tujuan organisasi. Caraalamiah mempelajari kepemimpinan adalah "melakukannya dalam kerja" dengan praktik seperti pemagangan pada seorang seniman ahli, pengrajin, atau praktisi. Dalam hubungan ini sang ahli diharapkan sebagai bagian dari peranya memberikan pengajaran/instruksi.

 TEORI-TEORI KEPEMIMPINAN
1. Teori Genetik (Genetic Theory)
Penjelasan kepemimpinan yang paling tua adalah teori kepemimpinan “genetic” dengan ungkapan yang sangat populer waktu itu yakni “a leader is born, not made”. Seorang dilahirkan dengan membawa sifat-sifat kepemimpinan dan tidak perlu belajar lagi. Sifat-sifat utama seorang pemimpin diperoleh secara genetik dad orang tuanya.

2. Teori Sifat (Trait Theory)
Sesuai dengan namanya, maka teori ini mengemukakan bahwa efektivitas kepemimpinan sangat tergantung pada kehebatan karakter pemimpin. “Trait” atau sifat-sifat yang dimiliki antara lain kepribadian, keunggulan fisik dan kemampuan social.

Penganut teori ini yakin dengan memiliki keunggulan karakter di atas, maka seseorang akan memiliki kualitas kepemimpinan yang baik dan dapat menjadi pemimpin yang efektif.

Karakter yang harus dimiliki oleh seseorang menurut Judith R. Gordon mencakup kemampuan yang istimewa dalam :
A.    Kemampuan Intelektual
B.    Kematangan Pribadi
C.    Pendidikan
D.    Status Sosial dan Ekonomi
E.    “Human Relations”
F.    Motivasi Intrinsik dan
G.    Dorongan untuk maju (achievement drive).

3. Teori Perilaku (The Behavioral Theory)
Mengacu pada keterbatasan peramalan efektivitas kepemimpinan melalui teori “trait”, para peneliti pada era Perang Dunia ke II sampai era di awal tahun 1950-an mulai mengembangkan pemikiran untuk meneliti “behavior” atau perilaku seorang pemimpin sebagai cara untuk meningkatkan efektivitas kepemimpinan.
Fokus pembahasan teori kepemimpinan pada periode ini beralih dari siapa yang memiliki kemampuan memimpin ke bagaimana perilaku seseorang untuk memimpin secara efektif.

4. Situasional Leadership
Pengembangan teori situasional merupakan penyempurnaan dan kekurangan teori-teori sebelumnya dalam meramalkan kepemimpinan yang paling efektif.

Dalam “situational leadership” pemimpin yang efektif akan melakukan diagnose situasi, memilih gaya kepemimpinan yang efektif dan menerapkannya secara tepat.

Seorang pemimpin yang efektif dalam teori ini harus bisa memahami dinamika situasi dan menyesuaikan kemampuannya dengan dinamika situasi yang ada.

Empat dimensi situasi yakni kemampuan manajerial, karakter organisasi, karakter pekerjaan dan karakter pekerja. Keempatnya secara dinamis akan memberikan pengaruh terhadap efektivitas kepemimpinan seorang.

 Tipologi Kepemimpinan

Sejak dahulu kepemimpinan menjadi salah satu kajian yang menarik untuk di telaah secara mendalam, sebab arah peradaban suatu bangsa tak bisa lepas dari sebuah gaya kepemimpinan seseorang.
Namun tentu saja setiap proporsi kepemimpinan dari seorang pemimpin senantiasa berbeda-beda sebab itu semua bergantung pada bangunan epistemologis dan konstruk ideologisnya masing-masing.
Ada beberapa tipologi kepemimpinan yang sering kali kita temukan dalam gaya seorang pemimpin :

1. Gaya Otoriter/Totaliter yaitu gaya kepemimpinan yang selalu memaksakan kehendaknya pada setiap orang meskipun dengan jalan kekerasan, namun kebijakannya berlaku secara distributif dan tanpa kompromi. Gaya ini secara epistemologis cenderung beraliran Macchiavellian, Hobbesian.

2. Gaya Demokratis yaitu gaya kepemimpinan yang cenderung selalu menggunakan musyawarah, namun gaya ini sangat lemah mengambil sikap dalam setiap tindakannya dan terkesan pragmatik. Gaya ini secara epistemologis cenderung beraliran liberal-moderat.

3. Gaya para Nabi yaitu gaya kepemimpinan yang kharismatik dengan menggunakan jalan kemanusiaan, dalam arti lebih mengutamakan nilai-nilai kemanusiaan, dibanding dengan kepentingan pragmatis. Gaya ini cenderung mengikuti aliran humanistik-teologis.

Dari beberapa tipologi kepemimpinan di atas, maka kita dapat memahami bangunan epistemologis dan konstruk ideologisnya melalui gaya kepemimpinan dari seorang pemimpin.
Dari hal tersebut di atas, maka kita dapat memahami pula bahwa tidak saya maupun anda, setiap pemimpin dapat kita ketahui bangunan ideologis maupun epistemologis melalui gaya kepemimpinan yang implementasikan.

 FAKTOR – FAKTOR YANG MEMPENGARUHI KEPEMIMNPINAN.
Kepemimpinan merupakan suatu proses dengan berbagai cara mempengaruhi orang atau sekelompok orang untuk mencapai suatu tujuan bersama. Kepemimpinan merupakan suatu proses dengan berbagai cara mempengaruhi orang atau sekelompok orang untuk mencapai suatu tujuan bersama.  Ada beberapa pengertian kepemimpinan, antara lain:
1. Kepemimpinan adalah pengaruh antar pribadi, dalam situasi tertentu dan langsung melalui proses komunikasi untuk mencapai satu atau beberapa tujuan tertentu (Tannebaum, Weschler and Nassarik, 1961, 24).
2. Kepemimpinan adalah sikap pribadi, yang memimpin pelaksanaan aktivitas untuk mencapai tujuan yang diinginkan. (Shared Goal, Hemhiel & Coons, 1957, 7).
3. Kepemimpinan adalah suatu proses yang mempengaruhi aktifitas kelompok yang diatur untuk mencapai tujuan bersama (Rauch & Behling, 1984, 46).
4. Kepemimpinan adalah kemampuan seni atau tehnik untuk membuat sebuah kelompok atau orang mengikuti dan menaati segala keinginannya.
5. Kepemimpinan adalah suatu proses yang memberi arti (penuh arti kepemimpinan) pada kerjasama dan dihasilkan dengan kemauan untuk memimpin dalam mencapai tujuan (Jacobs & Jacques, 1990, 281).

Faktanya ada banyak hal yang mempengaruhi kepemimpinan itu sendirinya, terlebih fakta oraganisasi satu dengan lainnya sangat beragam sehingga ada banyak hal yang mempengaruhi kepemimpinan. Pada tahap inilah bukan hanya konsep kepemimpinan yang mempunyai pengaruh besar tetapi juga keterampilan spontan dan teknis pemimpin itu sendiri yang banyak menentukan keberhasilan sebuah kepemimpinan mengingat fakta organisasi tersebut beragam.

Faktor-faktor yang mempengaruhi kepemimpinan adalah sebagai berikut :
A. Faktor Kemampuan Personal
Pengertian kemampuan adalah kombinasi antara potensi sejak pemimpin dilahirkan ke dunia sebagai manusia dan faktor pendidikan yang ia dapatkan. Jika seseorang lahir dengan kemampuan dasar kepemimpinan, ia akan lebih hebat jika mendapatkan perlakuan edukatif dari lingkungan, jika tidak, ia hanya akan menjadi pemimpin yang biasa dan standar. Sebaliknya jika manusia lahir tidak dengan potensi kepemimpinan namun mendapatkan perlakuan edukatif dari lingkunganya akan menjadi pemimpin dengan kemampuan yang standar pula. Dengan demikian antara potensi bawaan dan perlakuan edukatif lingkungan adalah dua hal tidak terpisahkan yang sangat menentukan hebatnya seorang pemimpin.
B. Faktor Jabatan
Pengertian jabatan adalah struktur kekuasaan yang pemimpin duduki. Jabatan tidak dapat dihindari terlebih dalam kehidupan modern saat ini, semuanya seakan terstrukturifikasi. Dua orang mempunyai kemampuan kepemimpinan yang sama tetapi satu mempunyai jabatan dan yang lain tidak maka akan kalah pengaruh. sama-sama mempunyai jabatan tetapi tingkatannya tidak sama maka akan mempunya pengarauh yang berbeda.
C. Faktor Situasi dan Kondisi
Pengertian situasi adalah kondisi yang melingkupi perilaku kepemimpinan. Disaat situasi tidak menentu dan kacau akan lebih efektif jika hadir seorang pemimpin yang karismatik. Jika kebutuhan organisasi adalah sulit untuk maju karena anggota organisasi yang tidak berkepribadian progresif maka perlu pemimpin transformasional. Jika identitas yang akan dicitrakan oragnisasi adalah religiutas maka kehadiran pemimpin yang mempunyai kemampuan kepemimpinan spritual adalah hal yang sangat signifikan. Begitulah situasi berbicara, ia juga memilah dan memilih kemampuan para pemimpin, apakah ia hadir disaat yang tepat atau tidak.

Implikasi manajerial kepemimpinan dalam organisasi

Teori Managerial Grid

Teori dikemukakan oleh Robert K. Blake dan Jane S. Mouton yang membedakan dua dimensi dalam kepemimpinan, yaitu “concern for people” dan “concern for production”. Pada dasarnya teorimanagerial grid ini mengenal lima gaya kepemimpinan yang didasarkan atas dua aspek tersebut, yaitu :

Improvised artinya pemimpin menggunakan usaha yang paling sedikit untuk menyelesaikan tugas tertentu dan hal ini dianggap cukup untuk mempertahankan organisasi.
Country Club artinya kepemimpinann didasarkan kepada hubungan informal antara individu artinya perhatian akan kebutuhan individu dengan persahabatan dan menimbulkan suasana organisasi dan tempo kerja yang nyaman dan ramah.

Team yaitu kepemimpinan yang didasarkan bahwa keberhasilan suatu organisasi tergantung kepada hasil kerja sejumlah individu yang penuh dengan pengabdian dan komitmen. Tekanan untama terletak pada kepemimpinan kelompok yang satu sama lain saling memerlukan. Dasar dari kepemimpinan kelompok ini adalah kepercayaan dan penghargaan.

Task artinya pemimpin memandang efisiensi kerja sebagai factor utama keberhasilan organisasi. Penampilan terletak pada penampilan individu dalam organisasi.
Midle Road artinya kepemimpinan yang menekankan pada tingkat keseimbangan antara tugas dan hubungan manusiawi , dengan kata lain kinerja organisasi yang mencukupi dimungkinkan melalui penyeimbangan kebutuhan untuk bekerja dengan memelihara moral individu pada tingkat yang memuaskan.

Senin, 21 April 2014



Pengalaman organisasi

Pengalaman organisasi yang pernah saya ikuti adalah sewaktu duduk di sekolah menengah pertama. Pada saat itu saya mengikuti pemilihan anggota OSIS. Dalam seleksi yang sangat ketat akhirnya saya hanya terpilih sebagai ketua mading sekolah hahaha. Meskipun begitu saya bersyukur masih dipercaya untuk diberi amanah dan tanggung jawab sebagai ketua.  Dalam setiap mengerjakan pekerjaan saya sebagai ketua mading sekolah, saya selalu di hadapkan pada sebuah keputusan. Dalam mengambil keputusan saya selalu berunding kepada anggota OSIS yang lain agar keputusan yang saya ambil tidak merugikan anggota yang lain. Dalam mengambil keputusan juga kita harus memikirkan sesama, jangan egois dan hanya mementingkan kepentingan sendiri, karena sebagai pemimpin kita memiliki amanah dan tanggung jawab yang besar.