Tampilkan postingan dengan label pendidikan. Tampilkan semua postingan
Tampilkan postingan dengan label pendidikan. Tampilkan semua postingan

Selasa, 05 April 2011

Pemograman Berorientasi Objek

KELAS
Class adalah metode logical untuk organisasi data dan fungsi dalam struktur yang sama. Class
dideklarasikan menggunakan keyword class, yang secara fungsional sama dengan keyword
struct, tetapi dengan kemungkinan penyertaan fungsi sebagai anggota, formatnya sbb :
class class_name {
permission_label_1:
member1;
permission_label_2:
member2;
...
} object_name;

Dimana class_name adalah nama class(user defined type) dan field optional object_name
adalah satu atau beberapa identifier objek yang valid. Body dari deklarasi berisikan members,
yang dapat berupa data ataupun deklarasi fungsi, dan permission labels (optional), dapat
berupa satu dari tiga keyword berikut : private:, public: atau protected:. Digunakan untuk
menentukan batasan akses terhadap members yang ada    :
>  private , anggota class dapat diakses dari danggota lain pada kelas yang sama atau
dari class "friend".

>  protected , anggota dapat diakses dari anggota class yang sama atau class friend , dan
juga dari anggota class turunannya(derived).
public , anggota dapat diakses dari class manapun.
Default permission label    : private

Contoh:
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area (void);
} rect;

Deklarasi class CRectangle dan object bernama rect. Class ini berisi empat anggota:
dua variable bertipe int (x and y) pada bagian private (karena private adalah default
permission) dan dua fungsi pada bagian public : set_values() dan area(), dimana hanya
dideklarasikan propotype_nya.
Perhatikan perbedaan antara nama classdan nama object. Pada contoh sebelumnya
CRectangle adalah nama class(contoh, user-defined type), dan rect adalah object dari tipe
CRectangle. Sama halnya dengan deklarasi berikut :
int a;
int adalah nama class (type) dan a adalah nama object(variable).
 Contoh:

// classes example
#include <iostream.h>
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area (void) {return (x*y);}
};
void CRectangle::set_values (int a, int b) {
x = a;
y = b;
}
int main () {
CRectangle rect;
rect.set_values (3,4);
cout << "area: " << rect.area();
}

Output     :
area: 12

Hal baru dari contoh diatas adalah operator :: dari lingkup yang disertakan dalam
pendefinisian set_values(). Digunakan untuk mendeklarasikan anggota dari class diluar class
tersebut.
Scope operator (::) menspesifikasikan class dimana anggota yang dideklarasikan
berada, memberikan scope properties yang sama seperti jika dideklarasikan secara langsung
dalam class.

Contoh:

// class example
#include <iostream.h>
class CRectangle {
int x, y;
public:
void set_values (int,int);
int area (void) {return (x*y);}
};
void CRectangle::set_values (int a, int b) {
x = a;
y = b;
}
int main () {
CRectangle rect, rectb;
rect.set_values (3,4);
rectb.set_values (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
}

Output:
rect area: 12
rectb area: 30

Perhatikan pemanggilan rect.area() tidak memberikan hasil yang sama dengan pemanggilan
rectb.area(). Ini disebabkan karena objek dari class CRectangle mempunyai variable sendiri,
x dan y, dan fungsi set_value() dan area().

Constructor dan destructor
Objek biasanya memerlkan inisialisasi variable atau menentukan memori dinamik selama
proses untuk mencapai hasil akhie yang diharapkan dan menghindari pengembalian nilai yang
tidak diharapkan.
Untuk mengatasinya dapat digunakan fungsi spesial : constructor, yang dapat dideklarasikan
dengan pemberian nama fungsi dengan nama yang sama untuk class. Fungsi dari constructor
ini akan dipanggil secara otomatis ketika instance baru dari sebuah class dibuat. Contoh :

// classes example
#include <iostream.h>
class CRectangle {
int width, height;
public:
CRectangle (int,int);
int area (void) {return (width*height);}
};
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle rect (3,4);
CRectangle rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
}

Output     :
rect area: 12
rectb area: 30

Hasil dari contoh diatas sama seperti contoh sebelumnya. Dalam hal ini, hanya menggantikan
fungsi set_values, yang sudah tidak ada dengan class constructor. Perhatikan cara parameter
diberikan ke constructor pada saat instance class dibuat   :
CRectangle rect (3,4);
CRectangle rectb (5,6);
Destructor berfungsi kebalikannya. Secara otomatis akan dipanggil jika objek di keluarkan
dari memory, ataupun karena keberadaannya telah selesai (contoh : jika didefinisikan sebuah
objek local dalam function dan function tersebut selesai) atau karena merupakan objek yang
secara dinamis ditetapkan dan dikeluarkan dengan menggunakan operator delete.
Destuctor harus mempunyai nama yang sama dengan class, diberi awalan tile (~) dan tidak
mengembalikan nilai. Contoh :

// example on constructors and destructors
#include <iostream.h>
class CRectangle {
int *width, *height;
public:
CRectangle (int,int);
~CRectangle ();
int area (void) {return (*width * *height);}
};
CRectangle::CRectangle (int a, int b) {
width = new int;
height = new int;
*width = a;
*height = b;
}
CRectangle::~CRectangle () {
delete width;
delete height;
}
int main () {
CRectangle rect (3,4), rectb (5,6);
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
return 0;
}

Output:
rect area: 12
rectb area: 30

Overloading Constructors
Sama halnya seperti fungsi, constructor juga dapat mempunyai nama yang sama tetapi
mempunyai jumlah dan tipe yang berbeda pada parameternya. Pada saat pemanggilan
kompiler akan meng-eksekusi yang sesuai pada saat objek class di deklarasikan.
Pada kenyataannya, ketika dideklarasikan sebuah class dan tidak disebutkan constructornya,
maka kompiler secara otomatis akan mengasumsikan dua constructor overloaded ("default
constructor" dan "copy constructor"). Contoh     :
class CExample {
public:
int a,b,c;
void multiply (int n, int m) { a=n; b=m; c=a*b; };
};

Jika tanpa constructor, Kompiler secara otomatis mengasumsikan anggota-anggota fungsi
constructor berikut  :

>   Empty constructor
Merupakan constructor tanpa parameters didefinisikan sebagai nop (blok instruksi
kosong). Tidak melakukan apapun.
CExample::CExample () { };


 >   Copy constructor

Merupakan constructor dengan satu parameter dengan tipe yang sama yang ditetapkan
untuk setiap anggota variable class nonstatik objek yang disalin dari objek
sebelumnya.
CExample::CExample (const CExample& rv) {
a=rv.a; b=rv.b; c=rv.c;
}
Penting untuk mengetahui, bahwa kedua constructor default : empty construction dan copy constructor ada jika tidak ada constructor lain yang dideklarasikan. Jika terdapat constructor
dengan sejumlah parameter dideklarasikan, maka tidak satupun dari constructors default ini
ada.
Contoh     :
// overloading class constructors
#include <iostream.h>
class CRectangle {
int width, height;
public:
CRectangle ();
CRectangle (int,int);
int area (void) {return (width*height);}
};
CRectangle::CRectangle () {
width = 5;
height = 5;
}
CRectangle::CRectangle (int a, int b) {
width = a;
height = b;
}
int main () {
CRectangle rect (3,4);
CRectangle rectb;
cout << "rect area: " << rect.area() << endl;
cout << "rectb area: " << rectb.area() << endl;
}
Output     :
rect area: 12
rectb area: 25

Contoh diatas rectb dideklarasikan tanpa parameter, sehingga diinisialisasikan dengan
constructor tanpa parameters, yang mendeklarasikan width dan height dengan nilai 5.
 Perhatikan jika dideklarasikan objek baru dan tidak diberikan parameter maka tidak
diperlukan tanda kurung ():
CRectangle rectb; // right
CRectangle rectb(); // wrong!
Relationships between classes
Friend functions (friend keyword)
Terdapat tiga akses berbeda untuk anggota class : public, protected dan private. Untuk
anggota protected dan private, tidak dapat diakses dari luar fungsi dimana mereka
dideklarasikan. Namun, aturan ini dapat di lewati dengan menggunakan keyword friend dalam
class, sehingga fungsi eksternal dapat mengakses anggota protected dan private suatu class.
Untuk itu, harus dideklarasikan prototype dari fungsi eksternal yang akan mengakses, Contoh:
// friend functions
#include <iostream.h>
class CRectangle {
int width, height;
public:
void set_values (int, int);
int area (void) {return (width * height);}
friend CRectangle duplicate (CRectangle);
};
void CRectangle::set_values (int a, int b) {
width = a;
height = b;
}
CRectangle duplicate (CRectangle rectparam)
{
CRectangle rectres;
rectres.width = rectparam.width*2;
rectres.height = rectparam.height*2;
return (rectres);
}
int main () {
CRectangle rect, rectb;
rect.set_values (2,3);
rectb = duplicate (rect);
cout << rectb.area();
}
Output     :
24
Dari fungsi duplicate, yaitu friend dari CRectangle, dapat mengakses anggota width dan
height untuk objek yang berbeda dari tipe CRectangle. Perhatikan bahwa dalam deklarasi
duplicate() maupun main() tidak dipertimbangkan apakah duplicate merupakan anggota dari  class CRectangle.   Secara umum keguanaan fungsi friend  diluar methodology pemrograman, jadi jika memungkinkan sebaiknya menggunakan anggota dari clas yang sama.

Friend classes (friend)

Selain dapat mendefinisikan fungsi friend, dapat juga didefinisikan class sebagai friend dari
class lainnya, sehingga memungkinkan class kedua dapat mengakses anggota protected dan
private class pertama. Contoh     :

// friend class
#include <iostream.h>
class CSquare;
class CRectangle {
int width, height;
public:
int area (void)
{return (width * height);}
void convert (CSquare a);
};
class CSquare {
private:
int side;
public:
void set_side (int a)
{side=a;}
friend class CRectangle;
};
void CRectangle::convert (CSquare a) {
width = a.side;
height = a.side;
}
int main () {
CSquare sqr;
CRectangle rect;
sqr.set_side(4);
rect.convert(sqr);
cout << rect.area();
return 0;
}

Output     :
16

Pada contoh diatas, dideklarasikan CRectangle sebagai friend dari CSquare, sehingga
CRectangle dapat mengakses anggota protected dan private dari CSquare, lebih jelasnya CSquare::side, Mendefinisikan lebar dari kotak.
Juga terdapat empty prototype dari class CSquare diawal program. Merupakan hal yang
penting karena dalam deklarasi CRectangle mengacu kepada CSquare (sebagai parameter
dalam convert()). Pendefinisian CSquare disertakan nanti, jika tidak disertakan pada
deklarasi sebelumnya untuk CSquare, maka class ini tidak akan terlihat dalam pendefinisian
CRectangle.

Inheritance between classes
Inheritance memungkinkan kita untuk membuat objek dari objek sebelumnya, sehingga memungkinkan untuk menyertakan beberapa anggota objek sebelumnya ditambah dengan anggota objeknya sendiri. Contoh, membuat class untuk mengetahui apakah segi empat (CRectangle), atau (CTriangle). Masing-masing mempunyai hal yang sama yaitu, dasar dan tinggi. Dapat direpresentasikan dengan class CPolygon kemudian diturunkan menjadi CRectangle dan CTriangle.

Class CPolygon dapat berisi anggota yang dipakai untuk setiap polygon, dalam hal ini width
dan height, dan CRectangle dan CTriangle adalah class turunannya.
Class turunan akan menurunkan seluruh anggota yang dimiliki oleh class dasar(parent)nya.
Jadi jika class paret mempunyai anggota A dan diturunkan pada class lain dengan anggota
B,maka clas turunan ini akan memiliki A dan B.
Untuk menurunkan class, menggunakan operator : (colon) pada saat deklarasi, syntax   :
class derived_class_name: public base_class_name;
Dimana derived_class_name adalah nama dari derived class dan base_class_name adalah
nama dari class asal. public dapat digantikan dengan tipe akses lainnya : protected atau
private, Contoh     :

// derived classes
#include <iostream.h>
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};
class CRectangle: public CPolygon {
public:
int area (void)
{ return (width * height); }
};
class CTriangle: public CPolygon {
public:
int area (void)
{ return (width * height / 2); }
};
int main () {
CRectangle rect;
CTriangle trgl;
rect.set_values (4,5);
trgl.set_values (4,5);
cout << rect.area() << endl;
cout << trgl.area() << endl;
return 0;
}

Output:
 20
 10

Class CRectangle dan CTriangle masing-masing mengandung anggota dari CPolygon,
yaitu : width, height dan set_values().
Rangkuman tipe akses dan anggota yang bisa mengaksesnya:
Dimana "not-members" merepresentasikan referensi dari luar class, seperti dari main(), dari
class lain atau dari fungsi lain baik global ataupun local.
Pada contoh diatas, anggota yang diturunkan kepada CRectangle dan CTriangle diikuti
dengan hak akses yang sama dengan class asalnya, CPolygon:

CPolygon::width
CRectangle::width
CPolygon::set_values()

// protected access
// protected access
// public access

CRectangle::set_values() // public access
Ini diakibatkan karena menurunkan class sebagai public :
class CRectangle: public CPolygon;


What is inherited from the base class?
Pada dasarnya setiap anggota dari class dasar diturunkan kepada class turunannya, kecuali :
Constructor and destructor
operator=() member
friends
Jika class dasar tidak mempunyai default constructor atau akan melakukan pemanggilan
terhadap constructor overloaded ketika objek turunan yang baru dibuat maka dapat dituliskan
dalam setiap definisi constructor dari class turunan :
derived_class_name (parameters) : base_class_name (parameters) {}
Contoh:
// constructors and derivated classes
#include <iostream.h>
class mother {
public:
mother ()
{ cout << "mother: no parameters\n"; }
mother (int a)
{ cout << "mother: int parameter\n"; }
};
class daughter : public mother {
public:
daughter (int a)
{ cout << "daughter: int parameter\n\n"; }
};
class son : public mother {
public:
son (int a) : mother (a)
{ cout << "son: int parameter\n\n"; }
};
int main () {
daughter cynthia (1);
son daniel(1);
return 0;
}

Output     :
mother: no parameters
daughter: int parameter

mother: int parameter
son: int parameter

Terlihat perbedaan mana yang merupakan constructor dari mother yang dipanggil ketika
objek daughter dibuat dan ketika objek son dibuat. Perbedaannya disebabkan dari deklarasi
untuk daughter dan son:

daughter (int a)// nothing specified: call default constructor

son (int a) : mother (a) // constructor specified: call this one

Multiple inheritance
Dalam C++ memungkinkan untuk menurunkan field atau method dari satu atau lebih class
dengan menggunakan operator koma dalam deklarasi class turunan. Contoh, akan dibuat
class untuk menampilkan dilayar (COutput) dan akan diturunkan ke class CRectangle and
CTriangle maka dapat dituliskan :
class CRectangle: public CPolygon, public COutput {
class CTriangle: public CPolygon, public COutput {


Contoh:
// multiple inheritance
#include <iostream.h>
class CPolygon {
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b;}
};
class COutput {
public:
void output (int i); };
void COutput::output (int i) {
cout << i << endl; }
class CRectangle: public CPolygon, public COutput {
public:
int area (void)
{ return (width * height); }
};
class CTriangle: public CPolygon, public COutput {
public:
int area (void)
{ return (width * height / 2); }
};

int main () {
CRectangle rect;
CTriangle trgl;
rect.set_values (4,5);
trgl.set_values (4,5);
rect.output (rect.area());
trgl.output (trgl.area());
return 0;
}
Output     :
20
10







Selasa, 29 Maret 2011

Apa sih tanda-tanda kanker otak?

Dari sekian macam gangguan kesehatan, sakit kepala merupakan salah satu yang paling sering diderita. Hampir semua orang pernah merasakannya.Ini juga bisa dilihat banyaknya obat bebas yang terjual di warung-warung adalah obat sakit kepala dan flu.

Begitu mudahnya kita mendapatkan obat sakit kepala sehingga terkesan disepelekan rasa sakit tersebut. Padahal, perlu penanganan dari sisi lain supaya sakit kepala tidak mudah datang.

Yang kita rasakan ketika sakit kepala tak lain adalah rasa nyeri, yaitu perasaan tidak nyaman yang bersifat subyektif terhadap respon ketidakberesan dalam kepala kita. Kalau sakit kepalanya ringan dan cepat hilang, ketidakberesan itu mungkin ringan-ringan saja. Sebaliknya, kalau sakit kepala itu muncul berulang kali disertai rasa mual dan muntah yang spontan, kita mesti waspada.Tidak tertutup kemungkinan, gejala tersebut mengindikasikan adanya kelainan di rongga tengkorak

Penyebab Sakit Kepala

Penyebab sakit kepala ini bisa disebabkan oleh factor intrakranial ( dalam otak dan isinya), ataupun factor extrakranial (di luar otak) seperti gangguan pada mata, THT, gigi tulang leher ataupun tumor. Faktor lain bisa bersifat psikis seperti kurang tidur, cemas, dan banyak pikiran.

Seperti pertanyaan Adik, yang perlu diwaspadai dari sakit kepala ini adalah apabila sakit kepala yang bersifat mendadak yang tak tertahankan, disertai mual muntah,adanya penurunan dari kesadaran, bicara mulai kacau, dan adanya gangguan pada anggota gerak maka kita harus mewaspadainya ke arah tumor otak.

Tanda Tumor Otak

Diperkirakan 1% penyebab nyeri kepala adalah tumor otak.Sifat nyeri pada tumor ini bervariasi dari ringan dan episodik sampai berat dan berdenyut.Umumnya tambah berat pada malam hari serta pada saat bangun pagi.Serta ada tanda peningkatan tekanan dalam otak seperti muntah yang spontan dan penurunan kesadaran

Terkadang tumor otak sulit terdiagnosa secara dini karena tergantung dari lokasi tumor, kecepatan pertumbuhan masa tumor ,kecepatan gejala tekanan tinggi dalam kepala, dan efek dari masa tumor.

Gejala spesifik tumor otak yang berkaitan dengan lokasi tumor juga memberikan tanda tertentu. Seperti tumor di bagian depan otak akan menimbulkan perubahan kepribadian, tumor di bagian belakang otak bisa menimbulkan kejang dan gangguan pada mata

Begitu luasnya gejala yang muncul maka memerlukan pemeriksaan dokter untuk menilai gejala dan melakukan pemeriksaan penunjang untuk memperkuat diagnosa dan letak tumor.

Salah satu pemeriksaan penunjang yang penting adalah CT scan otak.Gambaran CT scan pada tumor otak, umumnya berupa lesi/ cacat abnormal berupa masa yang mendesak struktur otak disekitarnya.

materi referensi:

Dr.Fajar Rudy Qimindra

Dr.Umum RS Pertamina Balikpapan

Minggu, 27 Maret 2011

LIMA ANCAMAN INTERNET PADA TAHUN 2011


Hacktivism
Para hacker aliran ini tidak membobol demi uang. Mereka membobol karena tidak sepaham dengan korban mereka. “Hacktivism merupakan bentuk demonstrasi baru di dunia maya,” ujar Sean-Paul Correll, peneliti dari PandaLabs.
Contoh kegiatan hacktivism adalah serangan DDoS–pengiriman data bertubi-tubi sehingga sebuah server situs web kewalahan melayani sehingga akhirnya berhenti bekerja–terhadap PayPal dan MasterCard pada bulan Desember karena kedua layanan finansial itu mengeblok transfer uang dari pengguna mereka ke WikiLeaks. Contoh lain adalah serangan DDos terhadap Motion Picture Association of America and the Recording Industry Association of America yang dilakukan oleh forum 4chan. Keduanya diserang karena membuat situs web The Pirate Bay ditutup.
Perangkat pintar
Popularitas ponsel pintar atau perangkat bergerak lain, seperti iPad, yang terhubung ke internet merupakan “mainan” baru bagi para penjahat. Target utama mereka, menurut perusahaan keamanan asal SecureWorks, adalah transaksi perbankan yang dilakukan lewat ponsel pintar atau perangkat pintar lain.
“Di mana ada uang, di situ ada penjahat,” kata Patricia Titus, Vice President & Chief Information Security Officer dari Unisys.
“Awan mendung”
Cloud computing adalah salah satu tren berkomputer di tahun 2010. Data ditaruh di internet, bisa diakses kapan saja dan di mana saja asalkan ada jaringan. Sebuah solusi yang jadi titik cerah bagi beberapa bisnis. Tapi, awan bisa mendung, bukan?
Contoh paling simpel adalah ditemukannya malware di tempat penyimpanan file Rapidshare. Malwarebernama Trojan-Dropper.Win32.Drooptroop.jpa itu mengkhawatirkan, demikian menurut peneliti dari Kaspersky Lab Vicente Diaz, “Karena tidak tampak pada link Rapidshare dan dapat mengecoh perangkat keamanan biasa.”
Ketika semakin banyak perusahaan menggunakan sistem komputasi di awan ini, SecurityNewsDaily memprediksikan banyak pula hacker berkutat di situ.
Rekayasa sosial
Sophos menyebutkan, bulan Desember lalu ada pesan palsu menyebar lewat Twitter. Pesan menipu pengguna komputer sehingga mereka percaya komputer mereka terserang virus sehingga mereka terdorong mengunduh antivirus palsu yang link-nya disertakan dalam pesan itu pula.
Tipuan seperti ini bukan hal baru, tapi akan terus berlanjut di tahun 2011, bahkan dengan jumlah yang lebih banyak. “Sekitar 500 juta,” demikian sebut SecurityNewsDaily. Jumlah yang mirip dengan jumlah pengguna Facebook. “Rekayasa sosial lebih meyakinkan, lebih tak kentara, lebih luas penyebarannya, serta lebih profesional,” kata Baumgartner dari Kaspersky Lab.
Salah satu faktor yang bakal berkontribusi di rekayasa sosial adalah layanan penyingkat URL. Layanan itu sering dipakai untuk mempersingkat URL panjang agar pas dengan situs web media sosial, seperti Twitter, yang membatasi jumlah karakter.
Seorang siswa ilmu komputer bernama Ben Schmidt bereksperimen dengan situs web penyingkat URL buatannya. Proyek yang disebut “Evil URL shortener” itu tidak hanya mempersingkat alamat URL, tapi juga melakukan serangan dengan teknik DDoS. “Ini bukti kalau situs web penyingkat bisa membawa orang ke mana saja,” kata Schmidt.
Stuxnet
Stuxnet adalah nama sebuah malware tipe worm yang mulai menyebar pada Juni 2010 dan diprediksi akan tetap jadi momok pada 2011. Worm yang menyerang sistem yang menggunakan peranti lunak Siemens dalam sistem pengendali industri ini ditemukan menyerang pembangkit listrik tenaga nuklir di Iran.
Diperkirakan, Stuxnet dikirim oleh negara tertentu, bukan oleh individual. Internet merupakan tempat baru bagi para negara untuk berperang, kata peneliti, dan akan berkembang pada 2011.
Contoh serangan yang dilancarkan oleh suatu negara lewat internet adalah serangan China ke Google dan 34 perusahaan lain pada Januari 2010. Serangan itu, menurut McAffee, sangat rumit.
Dari semua ancaman yang muncul, apa yang bisa kita lakukan? Paling tidak: hati-hati.

Jumat, 25 Maret 2011

MANAJEMEN UMUM

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

Macam bentuk departementasi yaitu :

1. Departementasi berdasarkan Fungsional

Individu dikelompokkan berdasarkan ketrampilan, pengetahuan, dan tindakan yang dilakukan. Misalnya organisasi hanya terbagi dalam bagian administrasi, dan bagian operasi. Kelebihannya, tugasnya jelas, pengetahuan yang dibutuhkan tidak banyak, hanya membutuhkan manajer saja yang harus berwawasan luas.
Mengelompokkan fungsi yang sama atau kegiatan sejenis untuk membentuk satuan organisasi. Ini merupakan bentuk organisasi yang paling umum dan bentuk dasar departementasi.
Kebaikannya :
a. Pendekatan ini menjaga kekuasaan dan kedudukan fungsi-fungsi utama
b.Menciptakan efisiensi melalui spesialisasi
c.Memusatkan keahlian organisasi
d. Memungkinkan pengawasan mana-jemen 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 berdasarkan Divisional
Dengan membagi divisi-divisi atas dasar produk, wilayah, langganan, dan proses, dimana tiap divisi merancang, memproduksi dan memasarkan produknya sendiri.
a. Struktur organisasi divisional atas dasar produk
Setiap departementasi bertanggung jawab atas suatu produk yang berhubungan. Struktur ini dipakai bila teknologi pemrosesan dan metode pemasaran sangat berbeda.
b. Struktur organisasi divisional atas dasar wilayah.
Pengelompokkan kegiatan atas dasar tempat dimana operasi berlokasi atau menjalankan usahanya. Faktor yang menjadi pertimbangan adalah bahan baku, tenaga kerja, pemasaran, transportasi dan lain sebagainya.
c. Struktur organisasi divisional atas dasar langganan
Pengelompokkan kegiatan yang dipusatkan pada penggunaan produk, terutama dalam kegiatan pengelompokkan penjualan, pelayanan.
3. Departementasi berdasarkan matriks

Departementasi berdasarkan matriks muncul dari pengalaman industri aerospace. Departementasi ini merupakan kombinasi pola fungsional dan divisional. Misalnya, organisasi selain dibagi menurut divisi, juga ditetapkan suatu organisasi baru semacam proyek akan ditugasi khusus dengan orang-orang yang berasal dari sejumlah divisi. Kelebihannya yaitu mampu mengombinasi kelebihan pola fungsional dan divisional, menekankan pada teknik dan pasar, dan memerlukan sejumlah manager yang mampu menangani personil bidang teknik dan pemasaran. Kelemahannya, sangat mahal, kesatuan komando bisa hilang karena individu memiliki lebih dari satu supervisor, otoritas dan tanggung jawab manager bisa overlap yang bisa menyebabkan konflik, dan adanya kesulitan untuk menjelaskan persoalan ke para pekerjanya.

Koordinasi (Coordination)

Departementasi berdasarkan divisi melihat produk, layanan, dan klien sebagai faktor dasar pengelompokan. Pola ini digunakan untuk memudahkan usaha antisipasi ancaman atau oportuniti dari luar organisasi. Misalnya pada organisasi otomotif, organisasi terbagi atas divisi otomotif, divisi internasional, divisi keuangan. Kelebihannya, kemampuan adaptasi dan fleksibilitasnya tinggi bila ada ancaman eksternal, bisa menggabungkan sejumlah ahli dan memfokuskan pada berhasil atau gagalnya suatu produk. layanan, atau klien. Kelemahannya, masing-masing divisi bisa menghadapi problem yang sama sehingga terjadi pengulangan dalam pengatasannya, target divisi bisa mengalahkan target organisasi, konflik antar divisi bisa terjadi, bila terjadi problem organisasi, maka membutuhkan orang yang sangat ahli dan menguasai banyak hal.

Untuk melihat kemampuan seorang manajer dalam memimpin dan melakukan koordinasi dilihat dari besar kecilnya jumlah bawahan yang ada dalam tanggung jawabnya, yang dikenal sebagai rentang manajemen. Koordinasi didefinisikan sebagai proses penyatuan tujuan-tujuan perusahaan dan kegiatan pada tingkat satu satuan yang terpisah dalam suatu organisasi untuk mencapai tujuan yang telah ditetapkan terlebih dahulu. Koordinasi dibutuhkan sekali oleh para karyawannya, sebab tanpa ini setiap karyawan tidak mempunyai pegangan mana yang harus diikuti, yang akhirnya akan merugikan organisasi itu sendiri.
1. Pedoman Koordinasi
a. Koordinasi harus terpusat, sehingga ada unsur pengendalian guna menghindari tiap bagian bergerak sendiri-sendiri yang merupakan kodrat yang telah ada dalam setiap bagian, ingat bahwa organisasi merupakan kumpulan dari orang-orang yang punya kebutuhan dan keinginan berbeda.
b. Koordinasi harus terpadu, keterpaduan pekerjaan menunjukkan keadaan yang saling mengisi dan memberi.
c. Koordinasi harus berkesinambungan, yaitu rangkaian kegiatan yang saling menyambung, selalu terjadi, selalu diusahakan dan selalu ditegaskan adanya keterkaitan dengan kegiatan sebelumnya.
d. Koordinasi harus menggunakan pendekatan multi instansional, dengan wujud saling memberikan informasi yang relevan untuk menghindarkan saling tumpang tindih tugas yang satu dengan tugas yang lain.
2. Kebaikan dan Hambatan Koordinasi yang Efektif

Kebaikan :
a. Beban tiap bagian tidak terlalu berat, karena adanya keseimbangan antar bagian.
b. Tiap bagian akan memperoleh infor-masi yang jelas dalam partisipasi pencapaian tujuan dan tahu peranan-nya masing-masing sehingga dapat memberikan saran dan komentar ter-hadap kemungkinan ketidak serasian antar bagian.
c. Skedul kerja saling terkait sehingga menjamin penyelesaian pekerjaan tepat pada waktunya.
Kelemahan :
a. Perbedaan tiap bagian dalam orientasi pencapaian tujuan.
b. Perbedaan dalam orientasi waktu
c. Perbedaan orientasi antar pribadi
d. Perbedaan dalam formalitas struktur
3. Pendekatan Untuk Mencapai Koordinasi yang Efektif
a. Menggunakan pendekatan teknik-teknik dasar manajemen yang berupa hirarki manajerial, rencana dan tujuan sebagai dasar bertindak.
b. Meningkatkan koordinasi potensial bila tiap bagian saling tergantung satu dengan lainnya serta lebih luas dalam ukuran dan fungsi. Koordinasi ini dapat ditingkatkan dengan melalui dua cara,

yaitu :
1) Sistem informasi vertikal, penyaluran data-data melalui tingkatan-tingkatan organisasi. Komunikasi ini bisa di dalam atau di luar lantai perintah.
2) Hubungan lateral (horizontal), dengan membiarkan informasi dipertukarkan dan keputusan dibuat pada tingkat dimana informasi diperlukan. Ada beberapa hubungan lateral :
- Hubungan langsung
- Hubungan kelompok langsung
- Hubungan silang

Rentang Manajemen (Span of Control)

Untuk melihat kemampuan seorang manajer dalam memimpin dan melakukan koordinasi dilihat dari besar kecilnya jumlah bawahan yang ada dalam tanggung jawabnya, yang dikenal sebagai rentang manajemen.

Prinsip rentang manajemen berkaitan dengan jumlah bawahan yang dapat dikendalikan secara efektif oleh seorang manajer. Pengertian rentang manajemen dapat bermacam-macam ada yang mengatakan span of control, span of authority, span of attention atau span of supervition.
Berapa sebenarnya bawahan seorang manajer agar manajer dapat melaksanakan tugasnya dengan efektif dan efisien. Disini belum ada ketentuan yang pasti berapa seharusnya bawahan yang ada dalam tanggung jawabnya. Bawahan yang terlalu banyak kurang baik, demikian pula jumlah bawahan yang terlalu sedikit juga kurang baik. Ada dua alasan mengapa penentuan rentang yang baik dan tepat.

Pertama rentang manejemen mempengaruhi penggunaan efisiensi dari manajer dan pelaksanaan kerja efektif dan bawahan mereka.

Kedua, adanya hubungan antara rentang manajemen dengan struktur organisasi, dimana semakin sempit rentang manajemen struktur organisasi akan berbentuk “tall” sedang rentang manajemen yang melebar akan membentuk struktur organisasi “flat” yang berarti tingkatan manajemen semakin sedikit.

PERENCANAAN

1. BATASAN PERENCANAAN
Berbagai batasan diberikan oleh para penulis mengenai perencanaan.
Newman mengatakan, Perencanaan adalah penentuan terlebih dahulu apa yang akan dikerjakan.
Louis A. Allen mengatakan, Perencanaan adalah penentuan serangkaian tindakan untuk mencapai hasil yang akan diinginkan.
Charles Bettleheim mengatakan, bahwa dalam setiap rencana terdapat dua elemen, yaitu tujuan dan alat yang perlu untuk mencapai tujuan itu.
Beishline mengatakan, Perencanaan menentukan apa yang harus dicapai (penentuan waktu secara kualitatif) dan bila itu harus dicapai, di mana hal itu harus dicapai, bagaimana hal itu harus dicapai siapa yang bertanggung jawab, dan mengapa hal itu harus dicapai.
Koontz dan O’Donnel mengatakan, Perencanaan adalah fungsi seorang manajer yang berhubungan dengan pemilihan dari berbagai alternatif dari tujuan, kebijaksanaan, prosedur, dan program.

2. UNSUR-UNSUR SUATU RENCANA
Pada umumnya, suatu rencana yang baik berisikan atau memuat enam unsure, Yaitu : ‘The what, The why, The where, The when, The who, and The how.’’
a. Tindakan apa yang harus dikerjakan ?
b. Apakah sebabnya tindakan itu harus dikerjakan ?
c. Di manakah tindakan itu harus dilaksanakan ?
d. Kapankah tindakan itu harus dilaksanakan ?
e. Siapakah yang akan mengerjakan tindakan itu ?
f. Bagaimanakah caranya melaksanakan tindakan itu ?
Dari jawaban-jawaban pernyataan di atas, sesuatu rencana harus memuat hal-hal sebagai berikut :
a. Penjelasan dari perincian kegiatan-kegiatan yang dibutuhkannya, faktor-faktor produksi yang diperlukan untuk melaksanakan kegiatan-kegiatan tersebut agar apa yang menjadi tujuan dapat dihasilkan.
b. Penjelasan mengapa kegiatan-kegiatan itu harus dikerjakan dan mengapa tujuan yang ditentukan itu harus dicapai.
c. Penjelasan tentang lokasi fisik setiap kegiatan yang harus dikerjakan sehingga tersedia segala fasilitas-fasilitas yang dibutuhkan untuk mengerjakan pekerjaan itu.
d. Penjelasan mengenai waktu dimulainya pekerjaan dan diselesaikannya pekerjaan baik untuk tiap-tiap bagian pekerjaan maupun untuk seluruh pekerja. Di sini harus ditetapkan standar waktu untuk mengerjakan, baik bagian-bagian pekerjaan maupun untuk seluruh pekerjaan.
e. Penjelasan tentang para petugas yang akan mengerjakan pekerjaannya, baik mengenai kuantitas maupun maupun kualits, yaitu kualifikasi-kualifikasi pegawai, seperti keahlian, pengalaman, dan sebagainya.
f. Penjelasan tentang teknik mengerjakan pekerjaan.

Ada penulis yang berpendapat bahwa suatu rencana mengandung unsur-unsur sebagai berikut :
a. Tujuan Perusahaan.
Tujuan perusahaan dapat bersifat materiil, dapat pula bersifat moral.
Materil misalnya mencari keuntungan sebesar-besarnya.
Moral misalnya perusahaan bertujuan mensukseskan program pemerintah di bidang sandang-pangan atau bertujuan memberi kesempatan kerja kepada anggota masyarakat yang menganggur, dan sebagainya.
b. Politik Perusahaan.
Politik merupakan peraturan atau pedoman yang digariskan bagi tindakan organisasi, untuk mencapai tujuan dengan hasil yang baik.
c. Prosedur.
Yakni urutan pelaksanaan yang harus dituruti oleh seseorang dalam melakukan sesuatu tindakan untuk mencapai suatu tujuan tertentu.
d. Budget.
Yakni Anggaran, Atau ikhtisar dari hasil-hasil yang diharapkan untuk dicapai, dan pengeluaran yang diperlukan untuk mencapai hasil tersebut, yang dinyatakan dalam Angka.
e. Program.
Adalah campuran dari politik, dan budget, yang dimaksudkan untuk menetapkan suatu rangkaian tindakan untuk waktu yang akan datang.

3. SIFAT SUATU RENCANA YANG BAIK
Rencana yang baik, haruslah mengandung sifat-sifat sebagai berikut :
a. Pemakaian kata-kata yang sederhana dan terang,
b. Fleksibel,
c. Mempunyai stabilitas,
d. Ada dalam pertimbangan, dan
e. Meliputi semua tindakan yang diperlukan.
Kata-kata dan kalimat-kalimat yang diperlukan oleh suatu rencana haruslah sederhana dan mudah dimengerti untuk meniadakan penafsiran yang berbeda. Sering si pembuat rencana tidaklah selalu orang yang melaksanakan rencana karenanya susunan kata dan kalimat harus sedemikian rupa sehingga mudah diketahui maksudnya oleh setiap orang.
Selanjutnya, suatu rencana haruslah fleksibel, artinya rencana tersebut harus dapat menyesuaikan diri dengan keadaan yang berubah yang tidak diduga sebelumnya. Dengan kata lain, suatu rencana tidak perlu diubah seluruhnya kalau terjadi perubahan keadaan, melainkan hanya perubahan sedikit saja yang dimungkinkan oleh rencana sebelumnya.
Di samping adanya kemungkinan mengadakan perubahan, maka suatu rencana haruslah mempunyai sifat stabil, yang berarti tidak perlu setiap kali diubah atau tidak dipakai sama sekali. Seterusnya suatu rencana haruslah ada dalam pertimbangan, berarti bahwa pemberian waktu dan faktor-faktor produksi kepada setiap unsur organisasi seimbang dengan kebutuhannya.
Akhirnya, rencana tersebut haruslah cukup luas untuk meliputi semua tindakan yang diperlukan, artinya haruslah rencana tersebut meliputi segala-galanya sehingga terjamin koordinasi dari tindakan seluruh unsur-unsur organisasi.

4. PEROSES PEMBUATAN RENCANA
Untuk membuat suatu rencana ada beberapa tindakan yang harus dilalui. Tingkatan-tingkatan atau langkah-langkah tersebut adalah sebagai berikut :
a. Menetapkan tugas dan tujuan,
b. Mengobservasi dan menganalisa,
c. Mengadakan kemungkinan-kemungkinan,
d. Membuat sintesis, dan
e. Menyusun rencana.

A. Menetapkan Tugas dan Tujuan
Adalah dua pengertian yang mempunyai hubungan sangat erat. Sebelum suatu tindakan perencanaan dapat berlangsung, sangat perlu tujuan organisasi diketahui. Orang tidak dapat melakukan perencanaan yang efektif, kalau ia tidak mengetahui tujuan yang harus dicapai dengan perencanaan itu. Seluruh perencanaan ditujukan kepada pencapaian tujuan, oleh karena itu akan mengherankan apabila perencanaan dimulai dengan gambaran yang kabur atau membingungkan tentang tujuan yang akan dicapainya.
B. Mengorganisasi dan Menganalisis
Setelah tugas dan tujuan suatu perusahaan sudah ditetapakan langkah-langkah berikutnya ialah mencapai atau mengobservasi factor yang mempermudah untuk mencapai tujuan. Bila faktor-faktor itu sudah terkumpul, dianalisis, untuk dapat menetapkan, mana yang masih efektif digunakan pada masa yang akan datang. Untuk mendapatkan faktor-faktor tersebut, maka bahan-bahan dari pengalaman dapat digunakan, demikian juga pengalaman pihak-pihak yang lain. Bila data tersebut sudah diperoleh, kemudian dianalisis, untuk menetapkan apakah faktor tersebut masih afektif digunakan untuk masa depan.
C. Mengadakan Kemungkinan-kemungkinan
Sudah tentu terdapat beberapa kemungkinan untuk mendapat suatu tujuan. Kemungkinan-kemungkinan tersebut dapat diurut-urutkan atas dasar tertentu, misalnya atas dasar lamanya diselesaikan, besarnya biaya yang diperlukan. Langkah inilah yang disebut dengan mengadakan kemungkinan-kemungkinan.

D. Membuat Sintesis
Terdapat beberapa kemungkinan untuk mencapai suatu tujuan yang memaksa si pembuat rencana harus memilih berbagai alternatife. Pemilihan salah satu kemungkinan sering kali tidak tepat sebab masing-masing kemungkinan selalu mengandung unsur yang baik disamping adanya sela-sela negatifnya. Oleh karenanya, pada fase ini pembuat rencana harus mengawinkan atau membuat berbagai kemungkinan itu. Sela-sela negatif dari masing-masing kemungkinan dibuang, dan unsur-unsur yang positif diambil sehingga diperoleh sintesis dari beberapa kemungkinan itu.

5. SIAPA PEMBUAT RENCANA
Siapa yang membuat rencana, tergantung kepada keadaan, dan ada beberapa kemungkinan siapa pembuat rencana tersebut. Dengan kata lain seorang manajer dapat menugaskan orang-orang atau badan tertentu untuk membuat rencana. Pembuat rencana dapat ditugaskan kepada panitia perencana, bagian perencanaan, dan atau tenaga staf.

a. Panitia Perencana
Tugas perencanaan dalam perusahaan merupakan tugas yang tidak terus-menerus. Untuk pelaksanaan rencana dengan kerja sama, oleh pemimpin sering dibentuk sebuah panitia perencanayang bertugas mengadakan perencanaan.
Orang yang diangkat sebagai panitia, perencana, khusus hanya kepala-kepala bagian, dapat pula orang-orang ahli dari luar perusahaan, mungkin pula kombinasi dari kedua hal itu. Supaya terdapatnya kerja tim dalam pelaksanaan rencana, sebaiknya pegawai perusahaan diikutsertakan, seperti kepala bagian dan kepala-kepala seksi. Untuk mendapat sokongan dari masyarakat guna perencanaan tersebut, maka baik pula kalau unsur-unsur yang ada di dalam masyarakat, diikutsertakan di dalam perencanaan tersebut.
Pemimpin harus memberikan pedoman-pedoman tentang apa yang akan direncanakan agar panitia perencana itu mempunyai pedoman kearah mana rencana harus ditujukan.
Panitia rencana setelah merencanakan tugasnya, dibubarkan oleh manajer, tetapi dapat ditugaskan untuk mengadakan penilaian akan pelaksanaan rencana tersebut, atau bertugas membimbing dalam pelaksanaan rencana tersebut.
b. Bagian Perencanaan
Seringkali tugas perencanaan merupakan tugas yang terus menerus dan amat rumit seperti pada perusahaan industri yang memproduksikan barang potongan. Pada keadaan seperti ini sering dibentuk suatu bagian perencanaan di dalam perusahaan, yang khusus bertugas di belakang perencanaan. Bagian perencanaan memiliki kedudukan yang sama dengan bagian-bagian lain yakni merencanakan segala sesuatu, terutama merencanakan tugas-tugas bagian produksi.
c. Tenaga Staf
Tugas Staf menganalisis fakta-fakta kemudian merencanakan sesuatu guna diserahkan kepada manajer. Tenaga Staf ini membuat suatu rencana, yang berpedoman kepada yang telah digariskan oleh manajer, supaya disetujui oleh manajer. Jadi, tenaga staf hanya sebagai pelayan bagi manajer untuk merumuskan suatu rencana yang akan dilaksanakan kemudian oleh perusahaan.

6. TUJUAN PERUSAHAAN
Tujuan perusahaan tidak selalu mudah menentukannya, karena sering sekali terdapat beberapa tujuan yang satu sama lain adalah sama-sama penting.
Demikian pula dengan perusahaan yang mempunyai tujuan sebagai berikut.
a. Tempat untuk bekerja.
b. Perusahaan yang menjual hasil produksi semurah mungkin.
c. Perusahaan yang baik untuk penanaman modal.
d. Perusahaan yang membantu pemerintah dalam merealisasikan pembangunan lima tahun.

7. KLASIFIKASI TUJUAN
Dalam mengadakan klasifikasi tujuan ini, kita mengikuti seluruhnya apa yang dikemukakan oleh R. C. Davis, OLeh Beishline dikutip juga dalam bukunya. Baik dalam kalangan ketentaraan, maupun di lingkungan industri yang dijadikan pedoman adalah sebagai berikut :
a. Primer
Tujuan pengabdian :
1) Tujuan organisasi :
a. umum
b. besar
c. kecil
d. perorangan
2) Tujuan operasi dalam penyelesaian proyek tertentu :
a. perantara
b. terakhir

b. Kolateral
1) Tujuan sosial kolateral
2) Tujuan pribadi

c. Sekunder
1) ekonomi
2) efektivitas

Tujuan pengabdian terbagi dua yaitu tujuan pengabdian di lapangan organisasi dan tujuan pengabdian di lapangan operatif.
Tujuan pengabdian di lapangan organisasi dirumuskan sebagai nilai-nilai yang harus disumbangkan kepada umum oleh organisasi sebagai suatu kesatuan. Tujuan operatif dianggap sebagai tujuan pengabdian karena pelaksanaannya langsung mengakibatkan munculnya nilai yang berguna untuk umum.
Tujuan pengabdian di lapangan organisasi dapat dipecah dalam tujuan pengabdian umum, besar, kecil dan perseorangan, sesuai dengan tingkatan pengabdiannya. Tujuan pengabdian di lapangan operatif dapat dibedakan antara tujuan operasi perantara, yakni nilai-nilai yang diharapkan untuk diselesaikan oleh suatu proyek khusus dan tujuan operasi terakhir, yakni nilai-nilai terakhir yang dihasilkan oleh proyek itu.
Tujuan sosial kolateral sebagai nilai-nilai umum dalam arti luas, yang perlu untuk kebaikan masyarakat dan dipengaruhi oleh kegiatan-kegiatan perniagaan, dan selayaknya dapat diharapkan untuk diadakan, diperoleh, dipelihara dan dibagikan oleh perniagaan. Ini dibedakaanya atas tujuan perseorangan, yakni nilai-nilai yang dicari oleh orang-orang dan rombongan di dalam organisasi untuk diperoleh dan dibagikan di antara mereka sendiri.
Tujuan sekunder dirumuskan sebagai nilai-nilai yang berkenaan dengan ekonomi dan efektivitas dalam mencapai tujuan primer dan tujuan kolateral. Dengan kata lain, dalam mencapai tujuan primer maupun kolateral harus secara ekonomis dan efektif.

8. PERANAN TUJUAN PADA TUGAS-TUGAS PEMIMPIN
Tujuan perusahaan merupakan hal penting dalam pelaksanaan tugas-tugas planning, organizing, staffing, directing, dan controlling.
a. Planning
Seseorang yang bertugas mengadakan perencanaan hanya dapat membuat rencana tersebut dengan efektif kalau tujuan dari organisasi secara keseluruhan sudah diketahui atau ditentukan terlebih dahulu. Dengan demikian, tujuan itu merupakan dasar pembuatan suatu rencana.
b. Organizing
Yakni penyusutan faktor produksi sedemikian rupa atau penentuan pembagian pekerjaan dalam perusahaan yang bersangkutan harus dilakukan sedemikian rupa sehingga langkah tersebut benar-benar dapat merealisasi apa yang menjadi tujuan perusahaan. Dengan kata lain, aktivitas dari masing-masing bagian sudah dirinci secara bersama dan sasaran yang dituju benar-benar merupakan langkah menuju tujuan perusahaan secara keseluruhan.
c. Staffing
Pemilihan dan penetapan tugas-tugas dalam perusahaan haruslah sedemikian rupa sehingga petugas dapat melakukan tugasnya sebagaimana yang sudah ditentukan. Dengan kata lain, petugas-petugas dalam melakukan aktifitasnya sehari-hari dibimbing atau dipimpin oleh tujuan perusahaan yang bersangkutan atau lebih tegas lagi, petugas-petugas tersebut dalam melakuka aktivitas adalah untuk tujuan perusahaan.
d. Directing
Tugas directing haruslah tugas yang sedikit banyaknya terarah kepada apa yang menjadi objek perusahaan. Jadi, tujuan perusahaan merupakan alat atau standar bagi mereka yang mengawasi pelaksanaan tugas-tugas dari bawahan.
e. Controlling
Sering disebut juga sebagai penendalian. Adalah salah satu fungsi manajemen yang berupa mengadakan penilaian, bila perlu mengadakan koreksi sehingga apa yang dilakukan bawahan dapat diarahkan kejalan yang benar dengan maksud agar tercapai tujuan yang sudah digariskan semula. Dalam melaksanakan kegiatan atasan mengadakan pemeriksaan, mencocokan, serta mengusahakan agar kegiatan-kegiatan yang dilaksanakan sesuai dengan rencana yang telah ditetapkan serta tujuan yang ingin dicapai.