Linux Fun

💻

Operator Aritmatik Pada C++

Operator aritmatik yang dipakai dalam C++ adalah :

+          tambah

–          kurang

*           kali

/           bagi

%         modulus

Operator-operator di atas dikenal sebagai binary operators artinya operator-operator ini memerlukan dua operan. Operator +, -, * dan / telah jelas artinya, yang perlu dijelaskan adalah operator modulus (%), operator ini dipakai untuk mencari sisa dan pembagian antar bilangan bulat, misalnya 20 % 8 menghasilkan 4 karena sisa pembagian dari 20 dibagi 8 adalah 4. Operator + dan – dapat dipakai sebagai unary operator, artinya operator-operator  ini hanya memerlukan satu operan saja. Suatu variabel dapat dinyatakan positip atau negatip dengan unary operator + atau -, misalnya:

a = -25;

b = +25;

c = -a+b;    .

Suatu ekpresi dapat mengandung lebih dari satu jenis operator, C++ mengartikannya berdasar order of precedence dari operator-operator tersebut. Order of precedence dari operator menunjukkan hirarki matematis dari suatu operator misalnya:

2 + 3 * 2;

C++ akan menghitung 3*2 dulu karena operator kali (*) hirarkinya lebih tinggi dari operator + sehingga ekpresi di atas hasilnya adalah 8, bukan 10. Untuk operator aritmatik order of precedence-nya yang tinggi adalah kali (*), bagi (/) dan modulus (%) sedang yang rendah adalah tambah (+) dan kurang (-),Jadi C++ selalu melakukan kali, bagi dan modulus lalu diikuti tambah dan kurang. Operator-operator dalam C++ terdistribusi dalam 15 hirarki precedence yang dapat dilihat pada tabel di bawah ini.

Tabel Precedence dari Operator dalam C++

Precedence Level

Symbol

Description

Associativity

1

++

Prefex increment Left to right

Prefex decrement

()

Function call and subexpression

[]

Array subscript

->

Structure pointer

.

Structure member
2

!

Logical negation Right to left

~

1’s complement

Unary negation

+

Unary plus

(type)

Type cast

*

Pointer  deference

&

Address of

Sizeof

Size of
3

*

Multiplication Left to right

/

Division

%

Modulus
4

+

Addtion Left to right

Subtraction
5

<<

Bitwise left shift Left to right

>>

Bitwise right right shift
6

<

Less than Left to right

<=

Less than or equal to

>

Greater than

>=

Greater than or equal to
7

==

Equal test Left to right

!=

Not equal to
8

&

Bitwise AND Left to right
9

^

Bitwise exclusive OR Left to right
10

|

Bitwise inclusive OR Left to right
11

&&

Logical AND Left to right
12

||

Logical inclusive OR Left to right
13

?:

Conditional test Left to right
14

=

Assigment Left to right

+=

Compound add

-=

Compound substract

*=

Compound multiply

/=

Compound divide

%=

Compound modulus

<<=

Compound bitwise left shift

>>=

Compound bitwise right shift

&=

Compound bitwise AND

^=

Compound bitwise exclusive OR

|=

Compound bitwise inclusive OR
15

,

Sequence point Left to right

++

Postfix increment

Postfix decrement

Berdasar table of precedence di atas assignment berlipat banyak dapat dimengerti dengan mudah, misalnya :

       A = b = c = d = e = 100;

dalam hal ini assosiativitasnya adalah dari kanan ke kin, jadi 100 dipasangkan di variabel e, lalu dari variabel  e  ke variabel  d  demikian seterusnya sampai akhirnya  n, sehingga setelah selesai dieksekusi variabel-variabel a, b, c, d, e mempunyai nilai 100. Bahkan kita dapat menulis ekpresi sebagai berikut :

       x = 5 + (y = 9 – z);

Order of precedence dari operator dapat di bypass dengan tanda kurung,karena tingkatan precedence dari tanda kurung adalah di atas operator kali, bagi dan modulus sehingga ekpresi tadijika ditulis (2+3)*2 akan menghasilkan 10. Contoh lain adalah :

Contoh program berikut ini menjelaskan pemakaian tanda kurung untuk mencari rata-rata:

//C1_2.CPP

#include <iostream.h>

#include <iomanip.h>

 

main()

{

float nilai_1, nilai_2, nilai_3, rata2;

nilai_1 = 85.0;

nilai_2 = 80.0;

nilai_3 = 75.0;

// rata2 = nilai_1 + nilai_2 + nilai_3 / 3.0;

/* Perhatikan tanda kurung diperlukan untuk mengubah

order of precedence supaya rata-ratanya benar */

rata2 = (nilai_1 + nilai_2 + nilai_3) / 3.0;

cout << “Rata-rata nilai adalah : ” << setprecision(2) << rata2;

return 0;

}

Operator-operator aritmatik ini dapat digabungkan untuk membentuk operator gabungan (compound operator). Dari tabel of precedence tampak bahwa tingkatan precedence dari operator gabungan ini rendah sehingga pada suatu ekpresi yang mengandung banyak operator, operator gabungan ini pada umumnya dievaluasi pada saat-saat akhir.  Contoh pemakaian operator gabungan:

Operator

Contoh

Ekivalen

+= bonus += 500; bonus = bonus + 500;
-= budget -= 50; budget = budget •- 50;
*= gaji *= 1.2; gaji=gaji * 1.2;
/= faktor/= 50; faktor= faktor/.50;
%=  jml_hari %=7; jml_hari =jml_hari % 7;

Contoh program berikut ini akan memperjelas pengertian mengenai operator gabungan dan tingkatan precedence nya.

// C2_2.CPP

#include <iostream.h>

main()

{

int i  = 4;

int j  = 8;

int k = 12;

int jwb;

jwb = I + j;

cout << jwb << “\n”;      //12

jwb += k;

cout << jwb << “\n”;      //24

jwb /= 3;

cout << jwb << “\n”;      //8

jwb -= 5;

cout << jwb << “\n”;      //3

jwb *= 2;

cout << jwb << “\n”;      //6

jwb %= 4;

cout << jwb << “\n”;      //2

//  Order of precedence berpengaruh

jwb *= 5+3;

cout << jwb << “\n”;      //16

jwb += 4-2;

cout << jwb << “\n”;      //18

return 0;

}

Pada suatu ekpresi dalam C++ tipe data tidak harus sama. Kalau suatu bilangan bulat ditambah dengan suatu bilangan pecahan maka C++ akan mengkonversi tipe yang lebih kecil ke tipe yang lebih besar. Konversi ini, yang hanya bersifat sementara pada saat ekpresi dievalusi saja, pada umumnya akan memberikan hasil yang lebih teliti. Jika konversi dilakukan sebaliknya maka terjadi pemotongan pada tipe data yang lebih besar sehingga mengurangi ketelitian. Konversi yang bersifat otomatis ini dapat di bypass dengan type casting, yaitu kita memaksa compiler untuk mengkonversi menjadi tipe data yang kita inginkan. Tipe data yang di type cast ini berubah menjadi tipe baru hanya pada saat ekpresi dievaluasi, jadi sifatnya sementara. Format dari suatu type cast adalah:

(tipe data) ekspresi

dalam hal ini tipe data adalah tipe data yang ada di C++, dan  ekspresi dapat berupa variabel, konstanta atau kombinasinya. Program berikut ini memakai suatu type cast untuk menghitung bunga pinjaman.

// C3_2.CPP

#include <iostream.h>

#include <iomanip.h>

main ()

{

int      jml_hari =45;

float   jml_pinjaman = 2000000.00;

float    bunga_tahunan =0.155;

float   bunga_harian, bunga_pinjaman;

 

// Type cast jumlah hari dalam 1 tahun menjadi tipe float

bunga_harian = bunga_tahunan / (float)365;

//Karena jml_hari adalah integer, konversikan menjadi float

bunga_pinjaman =jml_pinjaman * bunga_harian * (float)jml_hari;

 

jml_pinjaman += bunga_pinjaman;

 

cout << “Total liutang anda adalah ”

<< setioflags(ios::fixed) << setprecision(2)

<<jml_pinjaman;

return 0;

}

💻

Tipe Data Pada C++

Variabel dipakai untuk menyimpan data dengan tipe yang berbeda-beda. Tipe-tipe yang umum adalah char, int dan float.

Tambahan kata long didepan beberapa variabel membuat variabel-variabel tersebut mampu menampung data yang lebih besar, tambahan kata short mempunyai effek sebaliknya. Tambahan dengan kata unsigned didepan variabel membuat variabel tersebut hanya mampu menyimpan bilangan-bilangan positip saja sedangkan tambahan signed di depan tipe data membuat variebel tersebut mampu menyimpan bilangan negatif dan positif. Tipe-tipe data dalam C++ dapat dilihat pada tabel di bawah ini.

Nama deklarasi

Range

Tipe

Char -128-128 Character
unsigned char 0-255 Unsigned char
signed char -128-127 Signed character

(sama dengan char)

Int -32768 – 32767 Integer
unsigned int 0-65535 Unsigned integer
signed int -32768 – 32767 Signed integer(sama

Short int)

short int -32768 – 32767 Short int
unsigned short int 0 – 65535 Unsigned Short Int
Signed short int -32768 – 32767 Signed Short int (Sama dengan Short Int)
Long -2147483648 – 2147483648 Long
long int -2147483648 – 2147483648 Long Integer (Sama dengan Long)
Signed long int -2147483648 – 2147483648 Signed Long Int (Sama dengan Long Int)
Unsigned long int 0 – 4294967295 Unsigned Long Int
Float -3.4E+38 – 3.4E+38 Floating point
Double -1.7E+308 – 1.7E+308 Double Folating-point
Long double -1.7E+308 – 1.7E+308 Long double-floating point

Pernyataan assignment (=) dapat dipakai untuk menyimpan data pada suatu variabel, sintaknya adalah:

variabel = ekpresi;

variabel adalah variabel dengan tipe data tertentu yang telah dideklarasikan sebelumnya sedang ekpresi dapat berupa sembarang variabel, konstanta atau kombinasi keduanya yang menghasilkan tipe data yang sama dengan tipe data dari variabel, misalnya:

panjang = 20;

lebar = panjang/2 + 5;

💻

Deklarasi Variabel Pada C++

Data dapat berupa berbagai bilangan dan berbagai karakter yang dipakai untuk mewakili suatu informasi. Data yang nilainya dapat berubah pada saat program dijalankan disebut variabel.

VARIABEL

Data yang nilainya dapat berubah pada saat program dijalankan disebut variabel. Variabel mempunyai nama, tipe dan dapat dipakai untuk menyimpan suatu nilai.

Aturan penamaan variabel :

  1. Terdiri dari 1 sampai 31 karakter.
  2. Dimulai dengan huruf atau tanda garis bawah (_).
  3. Karakter kedua dapat berupa huruf, bilangan atau tanda garis bawah (_).
  4. case sensitive, artinya suatu nama variabel yang memakai huruf besar akan diperlakukan berbeda dengan yang memakai huruf kecil
  5. Dalam C++ variabel biasanya ditulis dengan huruf kecil sedang konstanta dengan huruf besar.
  6. Tidak boleh sama dengan perintah-perintah C++ atau sama dengan nama-nama fungsi dalam library, misalnya cout adalah nama variabel yang tidak sah.

Contoh pemakaian variabel pada suatu pernyataan adalah sbb:

C=’Z’;

A =1000.00* A;

pada pernyataan-pernyataan di atas C dan A adalah variabel.

💻

Deklarasi Konstanta Pada C++

Data dapat berupa berbagai bilangan dan berbagai karakter yang dipakai untuk mewakili suatu informasi. Data dari suatu program yang diberi suatu nilai sebelumnya dan nilai tersebut tetap/tidak berubah pada saat program dijalankan dikenal sebagai konstanta.

KONSTANTA

C++ mempunyai konstanta yang berbasis numerik dan konstanta yang berbasis karakter. Misalnya: 456 dan -78 adalah konstanta berbasis numerik dengan tipe integer/bilangan bulat. 89.67 adalah konstanta berbasis numerik dengan tipe floating point/bilangan pecahan.  ‘c’ dan “Bahasa C++” adalah konstanta berbasis karakter. Tanda petik tunggal (‘) dan tanda petik ganda (“) bukan merupakan bagian dari konstanta.

Konstanta yang terdiri dari satu karakter yang dikenal sebagai konstanta karakter harus diawali dan diakhiri dengan tanda petik tunggal(‘). Aksi-aksi tertentu misalnya backspace, pindah ke baris baru atau membunyikan bell diwakili oleh karakter karakter ASCII dikenal sebagai nonprinting characters. C++ menyatakan nonprinting characters ini dengan escape sequence yaitu dengan menambahkan tanda backslash (\) didepan karakter tertentu misalnya:

baris_baru = ‘\n’;

Escape sequence selengkapnya ditunjukkan oleh tabel dibawah ini:

Escape sequence

Artinya

\a Bell
\b Backspace
\f Formfeed
\n Newline
\r Carriage return
\t Tab
\v Vertical tab
\\ Backslash
\? Question mark
\’ Single quote
\” Double quote
\ooo Octal Number
\xhh Hexadesimal Number
\0 Binaray Zero / Null Zero

Konstanta yang terdiri lebih dari satu karakter yang dikenal sebagai konstanta string harus diawali dan diakhiri dengan tanda petik ganda ().

CONTOH STRING

“Ini adalah program C++ saya pertama”

“ 12345678 “

Jika suatu konstanta string terdiri dari digit-digit numerik maka operasi matematik tidak dapat dilakukan.  Dalam C++ suatu string mempunyai tipe char, karena setiap karakter memerlukan 1 byte memori, diperlukan suatu array yaitu kumpulan dari tipe char untuk membentuk suatu string.

C+ + mempunyai kata kunci const yang dapat dipakai untuk mengubah suatu variabel menjadi suatu konstanta. Contoh pemakaian konstanta pada suatu pernyataan adalah sbb:

C=’Z’;

A =1000.00* A;

pada pernyataan-pernyataan di atas ‘Z’ dan 1000.00 adalah konstanta.

💻

Berkenalan Dengan C++

// C1_1.CPP

#include <iostream.h>    // Header file untuk oparasi I/O pada C++

#include <stdio.h>       /* Header file untuk operasi I/O pada C,

misalnya fungsi printf() */

main () {

char nama[30];

cout << “Sebut nama anda : “;

cin >> nama;

cout << “\nHallo “ << nama <<”, bahasa C++ adalah superset\n”;

cout << “dari bahasa C, artinya seluruh bahasa C\n”

cout << “adalah bagian dari bahasa C++. Jadi. anda masih dapat\n”;

cout << “memakai sembarang perintah standart bahasa C, misalnya\n”;

cout << “printf() dalam C++.\n\n”;

printf(‘Selamat belajar C lewat. C++ %s !”, nama) ;

return 0;

}

Dari program di atas yang perlu dijelaskan adalah:

  • Komentar dibaca mulai tanda // sampai akhir dari baris. Jika komentar lebih dari satu baris, tiap baris dapat dimulai dengan // , atau memakai fasilitas komentar dari bahasa C yaitu komentar dimulai dengan /* dan diakhiri dengan “/.
  • Program dengan C++ selalu dimulai dengan main() { dan diakhiri dengan }. Semua yang ada diantara kurung ( dan kurung ) berada dalam satu blok. Pada program di atas hanya ada satu blok karena hanya ada satu pasang kurung { dan kurung }. main() adalah fungsi yang pertama kali dieksekusi.
  • C++ adalah case sensitive, artinya huruf kecil dan huruf besar tidak ekivalen, perjanjian yang umum dipakai adalah instruksi dan variable ditulis dengan huruf kecil, sedang konstanta dan instruksi makro ditulis dengan huruf besar.
  • #include adalah preprocessor directives, semua preprocessor directive mulai dengan #. Preprocessor directive bukan perintah ke C++ namun perintah ke preprocessornya C++ untuk mengubah program sementara pada saat dikompile. Preprosessor directive ini akan dijelaskan tersendiri.
  • Semua penyataan yang dapat dieksekusi dalam C++ berarkhir dengan tanda ; sebagai tanda akhir dari pernyataan- pernyataan tersebut. Perhatikan bahwa baris dimana fungsi main(), tanda kurung { dan tanda kurung } tidak diakhiri dengan tanda ; karena baris-baris ini merupakan awal dan akhir dari suatu fungsi dan tidak dapat dieksekusi. Demikian juga untuk preprocessor directive, karena bukan perintah untuk C++ maka tidak perlu diakhiri dengan tanda ;.
  • nama[30] adalah character array yang pada program ini dipakai untuk menampung suatu input string, yaitu nama dari user. Character array dan string dalam C++ akan dijelaskan tersendiri.
  • \n dalam cout adalah escape sequence character yang dipakai untuk melompat ke baris berikutnya. Escape sequence character ditandai dengan \ dan akan dijelaskan tersendiri.
  • Pada C++, fasilitas untuk melakukan input dan output dikenal sebagai stream. Pada contoh program di atas cout adalah standard output stream sedangkan cin adalah standard input stream. Format dari cout adalah :
  • Cout << data [ << data];
    Operator << pada cout adalah insertion operator yang dipakai untuk mengarahkan argumennya ke standard output device. Standard output device ini biasanya defaultnya adalah layar, kecuali anda mengarahkannya ke device yang lain misalnya printer. Tanda [ ] dengan argumen didalamnya menyatakan bahwa jumlah argumen pada cout dapat variabel. Cout juga dapat mengenali dan menampilkan tipe data yang berbeda.
    Format dari cin adalah:
  • cin [>> values];
    cin
    membaca input dari standard input device yang defaultnya adalah keyboard, kecuali anda mengarahkannya ke device yang lain misalnya modem. Perlu diperhatikan bahwa cin dan cout sebenarnya bukan merupakan bagian dari C++,  cin dan cout ini didefinisikan dalam stream library jadi anda harus menyisipkan  iostream.h agar dapat memakainya. Demikian juga dengan printf() yang bukan bagian dari C, fungsi ini didefinisikan dalam run-time library stdio.h. C++ mengasosiasikan sekumpulan manipulator dengan output streamnya.

Misal kita ingin mengubah default format dari argumen bilangan bulat, kita tinggal menyisipkan manipulator kedalam stream untuk melakukan perubahan format ini. Pada contoh program dibawah ini disisipkan manipulator dec, oct dan hex ke output stream.

// C2_1.CPP

#include <iostream.h>

main() {

int jumlah=456;

cout << dec << jumlah << ‘ ‘

<< oct << jumlah << ‘ ‘

<< hex << jumlah;

return 0;

}

💻

Sekilas Tentang C dan C++

Sejarah C

Bahasa C, yang selanjutnya disebut C, diciptakan oleh Dennis Ritechie pada tahun 1972 pada saat bekerja sama dengan Ken Thompson untuk merancang sistem operasi Unix di Laboratorium Bell di USA.  C ini merupakan lanjutan dari bahasa B buatan  Ken Thompson.

Keunggulan C

C memungkinkan programmer untuk mengekpresikan ide-idenya dengan effisien karena:

  • Dapat mengakses hardware dengan cepat dan mudah. C memungkinkan programmer untuk memanipulasi masing-masing bit di memori.
  • Mempuyai banyak operator, kontrol dan struktur data yang tangguh, berbagaj tipe data dan beberapa library besar yang berisi fungsi-fungsi yang dapat mengakses graphics, file handling, sophisticated mathematical routines, string handling, standard input/output dan memori management.

Program yang dibuat dengan C cenderung lebih kompak dan effisien serta mudah untuk dijalankan di sistem operasi yang lain sehingga C merupakan hahasa yang banyak dipakai oleh software house untuk membuat word processing, spreadsheet, compiler dll.

Kelemahan C

Kekompakan C, ditambah dengan kekayaan operator-operatornya memungkinkan programmer untuk menghasilkan program-program yang sangat sulit dlikuti alur pemikirannya. Saat ini, karena produk perangkat lunak semakin komplek, programmer cenderung untuk menghindari trik-trik, yang meskipun dapat menyingkat perintah yang dipakai, dapat membingungkan orang lain atau bahkan programmernya sendiri.

Sejarah C++

Sejak awal 1980 C telah menjadi bahasa dominan pada komputer mini dengan sistem operasi Unix, kemudian merambah ke komputer mikro dan menjadi bahasa pilihan untuk proyek-proyek perangkat lunak skala besar. C++, yang diciptakan oleh Bjame Siroustrup dari AT&T Bell Laboratories di USA sekitar tahun 1986, adalah perluasan C. Fasilitas penting yang ditambahkan adalah class yang diadopsi dari bahasa Simula, secara sederhana C++ dapat dipandang sebagai C ditambah class. Class pada dasamya adalah perluasan dari struktur yana ada di C. Dengan fasilitas class, programmer dapat membuat definisi sendiri dan berbagai tipe, yang selain mewakili data, juga mewakili operasi-operasi yang dapat dikenakan pada data tersebut. Variable yang diciptakan lewat class dikenal sebagai objek dan pemrograman dengan objek.objek dikena] sebagai pemrograman berorientasi objek. Selain perluasan pada tipe data dan pemrograman berorientasi objek, C++ juga menambahkan fasilitas-fasilitas yang membual C++ lebih baik dan C.

Program Dengan C++

C++ adalah bahasa komputer yang bebas format, artinya kita dapat menuliskan pernyataan pada sembarang kolom dan sembarang baca. Bila diinginkan, kita juga dapat menyisipkan baris kosong untuk memisahkan bagian-bagian dari program sehingga program mudah dibaca.

 

⚙️

Karakteristik dan Nilai Guna Sistem Pendukung Keputusan

SPK berbeda dengan sistem informasi lainnya. Beberapa karakteristik yang membedakannya adalah  :

  1. Sistem Pendukung Keputusan dirancang untuk membantu pengambil keputusan dalam memecahkan masalah yang sifatnya semi terstruktur ataupun tidak terstruktur dengan  menambahkan  kebijaksanaan  manusia  dan informasi komputerisasi.
  2. Dalam   proses  pengolahannya,  sistem  pendukung keputusan   mengombinasikan   penggunaan   model-model analisis dengan teknik pemasukan data konvensional serta fungsi-fungsi pencari/interogasi informasi.
  3. Sistem  Pendukung Keputusan, dirancang sedemikian rupa  sehingga  dapat  digunakan/dioperasikan   dengan mudah oleh orang-orang yang tidak memiliki dasar kemampuan pengoperasian komputer yang tinggi. Oleh karena itu pendekatan yang digunakan biasanya model interaktif.
  4. Sistem Pendukung Keputusan dirancang dengan menekankan pada aspek fleksibilitas serta kemampuan adaptasi  yang  tinggi.  Sehingga  mudah  disesuaikan dengan  berbagai  perubahan  lingkungan  yang  terjadi dan kebutuhan pemakai.

Dengan berbagai karakter khusus seperti dikemukakan  diatas,  SPK  dapat  memberikan  berbagai manfaat  atau  keuntungan   bagi  pemakainya.   Keuntungan dimaksud diantaranya meliputi :

  1. SPK memperluas kemampuan pengambil keputusan dalam memproses data/informasi bagi pemakainya.
  2. SPK   membantu  pengambil  keputusan  dalam   hal penghematan waktu yang dibutuhkan untuk memecahkan masalah   terutama   berbagai   masalah   yang   sangat kompleks dan tidak terstruktur.
  3. SPK dapat menghasilkan solusi dengan lebih cepat serta hasilnya dapat diandalkan.
  4. Walaupun  suatu  SPK,  mungkin  saja  tidak  mampu memecahkan masalah yang  dihadapi oleh  pengambil keputusan, namun ia  dapat  menjadi stimulan bagi pengambil keputusan dalam  memahami persoalannya. Karena SPK mampu menyajikan berbagai alternatif.
  5. SPK   dapat   menyediakan  bukti   tambahan  untuk memberikan  pembenaran  sehingga  dapat  memperkuat posisi pengambil keputusan.

Disamping berbagai keuntungan dan manfaat seperti dikemukakan  diatas,  SPK   juga   memiliki  beberapa keterbatasan, diantaranya adalah :

  1. Ada beberapa kemampuan manajemen dan bakat manusia yang tidak dapat dimodelkan, sehingga model yang ada   dalam   sistem   tidak   semuanya   mencerminkan persoalan sebenarnya.
  2. Kemampuan suatu SPK  terbatas pada pembendaharaan pengetahuan  yang  dimilikinya  (pengetahuan  dasar serta model dasar).
  3. Proses-proses yang  dapat  dilakukan SPK  biasanya tergantung juga pada kemampuan perangkat lunak yang digunakannya.
  4. SPK tidak memiliki kemampuan intuisi seperti yang dimiliki manusia. Karena  walaupun bagaimana pun canggihnya suatu SPK, dia hanyalah suatu kumpulan perangkat   keras,   perangkat   lunak,   dan   sistem operasi  yang  tidak  dilengkapi  dengan  kemampuan berpikir.

Bagaimanapun juga harus diingat bahwa SPK tidak ditekankan untuk membuat keputusan. Dengan sekumpulan kemampuan untuk mengolah informasi/data yang diperlukan dalam  proses  pengambilan  keputusan,  sistem  hanya berfungsi sebagai alat bantu manajemen. Jadi sistem ini tidak dimaksudkan untuk menggantikan fungsi pengambil keputusan dalam membuat keputusan. Sistem ini dirancang hanyalah  untuk  membantu  pengambil  keputusan  dalam melaksanakan tugasnya.

Secara luas, dapat dikatakan bahwa SPK dirancang untuk menghasilkan berbagai alternatif yang ditawarkan kepada   para  pengambil   keputusan   dalam   melaksanakan tugasnya.   Karena,  sebagian  besar  proses  pemgambilan keputusan yaitu perumusan masalah, pencarian alternatif telah dikerjakan oleh sistem, maka diharapkan pengambil keputusan akan lebih cepat dan akurat dalam menangani masalah yang dihadapinya.

Jadi  secara  umum,  dapat  dikatakan  bahwa  SPK memberikan  manfaat  bagi  pengambil  keputusan  dalam meningkatkan efektifitas dan efisiensi kerjanya terutama dalam proses pengambilan keputusan.

⚙️

Definisi Sistem Pendukung Keputusan

Konsep Sistem Pendukung Keputusan (SPK)/Decision Support System (DSS) pertama kali diungkapkan pada awal tahun  1970-an  oleh  Michael  S.  Scott  Morton  dengan istilah  Management Decision System.  Sistem  tersebut adalah  suatu  sistem  yang  berbasis  komputer  yang ditujukan  untuk  membantu  pengambil  keputusan  dalam memanfaatkan data dan model tertentu untuk memecahkan berbagai persoalan yang tidak terstruktur.

Seperti  diuraikan  di  atas,  istilah  SPK  mengacu pada suatu sistem yang memanfaatkan dukungan komputer dalam proses pengambilan keputusan. Untuk memberikan pengertian yang lebih mendalam, akan diuraikan beberapa definisi mengenai SPK, yang dikembangkan oleh beberapa ahli, di antaranya : Man dan Watson memberikan definisi sebagai berikut, SPK merupakan suatu sistem interaktif, yang membantu pengambil keputusan melalui penggunaan data dan model-model keputusan untuk memecahkan masalah yang sifatnya semi terstruktur dan tidak terstruktur.

Dari  definisi  diatas,  terlihat  bahwa  SPK  adalah suatu  sistem berbasis komputer yang dirancang untuk meningkatkan  efektivitas  pengambil  keputusan  dalam memecahkan masalah yang bersifat semi terstruktur atau tidak     terstruktur.  Kata berbasis  komputer  merupakan kata kunci, karena hampir tidak mungkin membangun SPK tanpa  memanfaatkan  komputer  sebagai  alat  bantu, terutama untuk menyimpan data serta mengelola model.

Seorang   pakar   lainnya    yang   bernama    Little mengemukakan bahwa SPK didefinisikan sebagai berikut : SPK  adalah suatu sistem informasi berbasis komputer yang menghasilkan berbagai alternatif keputusan untuk membantu manajemen dalam menangani berbagai permasalahan yang terstruktur ataupun tidak terstruktur dengan menggunakan data dan model.

Dari  beberapa  definisi  di  atas  dapat  dikatakan bahwa SPK adalah suatu sistem informasi spesifik yang ditujukan   untuk   membantu   manajemen   dalam  mengambil keputusan yang berkaitan dengan persoalan yang bersifat semi  struktur.   Sistem  ini  memiliki   fasilitas   untuk menghasilkan berbagai alternatif yang secara interaktif dapat digunakan oleh pemakai.

Kata  kunci  lainnya  adalah  penggunaan model  sebagai dasar  pengembangan alternatif. Penggunaan model  ini berkaitan  dengan   sifat   permasalahan  yang   harus dipecahkan pemakai yaitu semi terstruktur atau tidak terstruktur. Jadi  semakin banyak perbendaharaan yang dimiliki oleh sistem, maka alternatif keputusan yang dapat diciptakannya juga akan semakin kaya. Ciri lain dari sistem ini adalah pemanfaatan komputer.

🖥️

Bentuk Dasar Sistem

Bentuk dasar  dari  sistem terdiri dari masukan, proses, keluaran. Suatu sistem harus mempunyai masukan yang  akan diolah untuk menghasilkan suatu keluaran. Tanpa masukan maka tidak akan ada hal yang akan diolah. Tanpa  adanya  pengolahan,   masukan  akan  tetap  mentah karena tidak akan dihasilkan keluaran yang diinginkan. Sebaliknya tanpa adanya keluaran, masukan yang diolah akan  sia-sia.  Jadi  ada  keterkaitan  yang  erat  antara masukan, proses, dan keluaran. Jika salah satu hal itu tidak dipenuhi maka tidak dapat dikatakan sebagai suatu sistem.

🖥️

Definisi Sistem

Sistem adalah jaringan daripada prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu. Maksud daripada adanya sistem adalah untuk  mencapai  tujuan  pokok  dari  sistem  tersebut. Tujuan  pokok  ini  akan  terlaksana  bila  adanya  elemen- elemen   dari  prosedur   di  dalam   sistem   yang  saling berhubungan membentuk satu kesatuan.