Sabtu, 26 September 2015

SQL vs NoSQL: How to Choose


SQL databases:
    • store related data in tables
    • require a schema which defines tables prior to use
    • encourage normalization to reduce data redundancy
    • support table JOINs to retrieve related data from multiple tables in a single command
    • implement data integrity rules
    • provide transactions to guarantee two or more updates succeed or fail as an atomic unit
    • can be scaled (with some effort)
    • use a powerful declarative language for querying
    • offer plenty of support, expertise and tools.

NoSQL databases:
    • store related data in JSON-like, name-value documents
    • can store data without specifying a schema
    • must usually be denormalized so information about an item is contained in a single document
    • should not require JOINs (presuming denormalized documents are used)
    • permit any data to be saved anywhere at anytime without verification
    • guarantee updates to a single document — but not multiple documents
    • provide excellent performance and scalability
    • use JSON data objects for querying
    • are a newer, exciting technology.
SQL databases are ideal for projects where requirements can be determined and robust data integrity is essential. NoSQL databases are ideal for unrelated, indeterminate or evolving data requirements where speed and scalability are more important. In simpler terms:
    • SQL is digital. It works best for clearly defined, discrete items with exact specifications. Typical use cases are online stores and banking systems.
    • NoSQL is analog. It works best for organic data with fluid requirements. Typical use cases are social networks, customer management and web analytics systems.
Few projects will be an exact fit. Either option could be viable if you have shallower or naturally denormalized data. But please be aware these simplified example scenarios with sweeping generalizations! You know more about your project than I do, and I wouldn’t recommend switching from SQL to NoSQL or vice versa unless it offers considerable benefits. It’s your choice. Consider the pros and cons at the start of your project and you can’t go wrong.

Scenario One: a Contact List

Let’s re-invent the wheel and implement an SQL-based address book system. Our initial naive contact table is defined with the following fields:
    • id
    • title
    • firstname
    • lastname
    • gender
    • telephone
    • email
    • address1
    • address2
    • address3
    • city
    • region
    • zipcode
    • country
Problem one: few people have a single telephone number. We probably need at least three for land-line, mobile and workplace, but it doesn’t matter how many we allocate — someone, somewhere will want more. Let’s create a separate telephone table so contacts can have as many as they like. This also normalizes our data — we don’t need a NULL for contacts without a number:
  • contact_id
  • name (text such as land-line, work mobile, etc.)
  • number
Problem two: we have the same issue with email addresses, so let’s create a similar email table:
  • contact_id
  • name (text such as home email, work email, etc.)
  • address
Problem three: we may not wish to enter a (geographic) address, or we may want to enter multiple addresses for work, home, holiday homes, etc. We therefore need a new address table:
    • contact_id
    • name (text such as home, office, etc.)
    • address1
    • address2
    • address3
    • city
    • region
    • zipcode
    • country
Our original contact table has been reduced to:
    • id
    • title
    • firstname
    • lastname
    • gender

Great — we have a normalized database which can store any number of telephone numbers, email addresses and addresses for any contact. Unfortunately …

The schema is rigid
We’ve not considered the contact’s middle name(s), date of birth, company or job role. It doesn’t matter how many fields we add, we’ll soon receive update requests for notes, anniversaries, relationship statuses, social media accounts, inside leg measurements, favorite type of cheese etc. It’s impossible to foresee every option, so we’d possibly create an otherdata table with name-value pairs to cope.

The data is fragmented
It’s not easy to for developers or system administrators to examine the database. The program logic will also become slower and more complex, because it’s not practical to retrieve a contact’s data in a single SELECT statement with multiple JOIN clauses. (You could, but the result would contain every combination of telephone, email and address: if someone had three telephone numbers, five emails and two addresses, the SQL query would generate thirty results.)

Finally, full-text search is difficult. If someone enters the string “SitePoint”, we must check all four tables to see if it’s part of a contact name, telephone, email or address and rank the result accordingly. If you’ve ever used WordPress’s search, you’ll understand how frustrating that can be.

The NoSQL Alternative
Our contact data concerns people. They are unpredictable and have differing requirements at different times. The contact list would benefit from using a NoSQL database, which stores all data about an individual in a single document in the contacts collection:

{
  name: [
    "Billy", "Bob", "Jones"
  ],
  company: "Fake Goods Corp",
  jobtitle: "Vice President of Data Management",
  telephone: {
    home: "0123456789",
    mobile: "9876543210",
    work: "2244668800"
  },
  email: {
    personal: "bob@myhomeemail.net",
    work: "bob@myworkemail.com"
  },
  address: {
    home: {
      line1: "10 Non-Existent Street",
      city: "Nowhere",
      country: "Australia"
    }
  },
  birthdate: ISODate("1980-01-01T00:00:00.000Z"),
  twitter: '@bobsfakeaccount',
  note: "Don't trust this guy",
  weight: "200lb",
  photo: "52e86ad749e0b817d25c8892.jpg"
}

In this example, we haven’t stored the contact’s title or gender, and we’ve added data which need not apply to anyone else. It doesn’t matter — our NoSQL database won’t mind, and we can add or remove fields at will.

Because the contact’s data is contained in a single document, we can retrieve some or all information using a single query. A full-text search is also simpler; in MongoDB we can define an index on all contact text fields using:

db.contact.createIndex({ "$**": "text" });
then perform a full-text search using:
db.contact.find({
  $text: { $search: "something" }
});

Scenario Two: a Social Network

A social network may use similar contact data stores, but it expands on the feature set with options such as relationship links, status updates, messaging and “likes”. These facilities may be implemented and be dropped in response to user demand — it’s impossible to predict how they will evolve.

In addition:

Most data updates have a single point of origin: the user. It’s unlikely we’ll need to update two or more records at any one time, so transaction-like functionality is not required.
Despite what some users may think, a failed status update is unlikely to cause a global meltdown or financial loss. The application’s interface and performance take a higher priority than robust data integrity.

NoSQL appears to be a good fit. The database allows us to quickly implement features storing different types of data. For example, all the user’s dated status updates could be placed in a single document in the status collection:

{
  user_id: ObjectID("65f82bda42e7b8c76f5c1969"),
  update: [
    {
      date: ISODate("2015-09-18T10:02:47.620Z"),
      text: "feeling more positive today"
    },
    {
      date: ISODate("2015-09-17T13:14:20.789Z"),
      text: "spending far too much time here"
    }
    {
      date: ISODate("2015-09-17T12:33:02.132Z"),
      text: "considering my life choices"
    }
  ]
}

While this document could become long, we can fetch a subset of the array, such as the most recent update. The whole status history for every user can also be searched quickly.


Now presume we wanted to introduce an emoticon choice when posting an update. This would be a matter of adding a graphic reference to new entries in the update array. Unlike an SQL store, there’s no need to set previous message emoticons to NULL — our program logic can show a default or no image if an emoticon isn’t set.

Scenario Three: a Warehouse Management System

Consider a system which monitors warehoused goods. We need to record:

    • products arriving at the warehouse and being allocated to a specific location/bay
    • movements of goods within the warehouse, e.g. rearranging stock so the same products are in adjacent locations
    • orders and the subsequent removal of products from the warehouse for delivery.

Generic product information such as box quantities, dimensions and color can be stored, but it’s discrete data we can identify and apply to anything. We’re unlikely to be concerned with specifics, such as laptop processor speed or estimated smartphone battery life.

Our data requirements:

  1. It’s imperative to minimize mistakes. We can’t have products disappearing or being moved to a location where different products are already being stored.
  2. I hope these scenarios help, but every project is different and, ultimately, you need to make your own decision. (Although, we developers are adept at justifying our technological choices, regardless of how good they are!)
  3. In its simplest form, we’re recording the transfer of items from one physical area to another — or removing from location A and placing in location B. That’s two updates for the same action.
We need a robust store with enforced data integrity and transaction support. Only an SQL database will (currently) satisfy those requirements.


Source : http://www.sitepoint.com/sql-vs-nosql-choose/

Sabtu, 18 April 2015

Love Story of Someone

Halo para blogger sejati, udah lama gak posting di blog…heheheh… Kali ini gw bakal ceritain masalah cinta gw di masa kuliah untuk para blogger sekalian. Pada 31 Agustus 2010 gw berkenalan tidak langsung sama cewek yang gw suka yang bakal gw ceritain ini nih, di antara semua cewek di kelas gw, dia orang yang menurut gw agak lumayanlah..hehehe. Kalau dibilang cakep sihhh….hemmm…gk juga…trus apa yang buat gw bilang klo dia itu lumayan? Dia itu hemm..gw akuin dia itu manis dengan rupanya dan tingkahnya walaupun keliatan bawel setengah mampus…hahahaha…but so far I like it..hehehe…Awal gw kenal sama dia menurut gw dia cewek manja yang gak bisa ngapa”in but I’m wrong, dia jauh dari itu ternyata. Tapi di tahun pertama kuliah gw gak punya perasaan yang lebih dari teman sama dia. Trus gmana caranya gw bisa akhirnya bisa jadia sama dia ya? Begini nih ceritanya..hehehe. Semester 6 di kampus gw itu ada tugas yang namanya Penulisan Ilmia yang tingkat kesulitannya setara kayak pembuatan skripsilah…hehehe. Di awal semester 6 gw biasa aja sama dia dan bahkan gw sama dia Cuma tegur sapa aja..hehehe. Tapi di beberapa bulan kemudian dia ngalamin sedikit kesulitan dalam pengerjaan program. Dan akhirnya dia mintol(minta tolong) sama gw dan gw bantuin dia dengan syarat bawa snack cemila saat gw bantuin dia ngerjain itu program..hehhe..gw bercanda sebenenarnya nyuruh dia bawa cemilan..ehhh..dibawain..mungkin krna dia gw bantuin kali yaa…hehehe…Di hari pertama gw ngajarin dia masih abu-abu mau bikinnya kayak gimana, dan gw suruh dia matengin di konsep dia dulu, setelah itu gw suruh dia bikinin kodingan atas tuntunan gw, ya dikerjain sih pastinya…tapi di saat dia ngerjain gw diam aja dan dia buka obrolan dengan curhatan masalah dia sama cowoknya dia, dan gw gak tau saat itu klo dia punya cowok dan siapa cowok yang dia maksud, gw iya..iyain aja selama dia curhat..hahaha…bodo amat..misi gw kan mau ngajarin dia doang bukan jadi pangern cinta yang kasih solusi masalah percintaan..hahaha. Tapi gw gak sekejam itu kok klo cewek curhat, sedikit-sdikit gw masih bener-bener dengarin dia kok. Yang pasti inti dari curhatan dia itu klo dia sama cowoknya lagi gak baik. Makin lama gw ngajarin dia gw ngerasa kalau dia itu makin sering curhat sama gw dan yang awalnya jarang chatting malah suka chat gw dan makin care tapi masih tetap dibarengin curhatan masalah dia sama cwok dia. Menurut gw dia orangnya baik dan dia mau nemanin gw makan klo gw mau makan dulu sebelum mau ngajarin dia. Makin lama kita makin dekat dan gw berubah 99 derajat jadi lebih sering bareng sama dia dan bbrapa sahabat dia ketimbang sama teman gw yang cowok. Gw makin lama bareng sama dia, gw ngerasa nyaman dan seneng bisa bareng dia mulu. Dan selama semeter 6 kita cuma sebatas sahabatan aja, tapi selama sahabatan aja sama dia gw ngerasa dia nyaman dan yang gw liat kalau dia suka sama gw..hahaha….gw bilang gitu krna dia suka megang tangan gw, dan dia sadar. Tapi suatu ketika gw ngeliat dia megang tangan gw trus dilepas sama dia…mungkin dia malu kali yaa…hahhaa..atau grogi..hahha.Selama itu gw sama dia makin lama makin nyaman dan kompak dan gw ngerasa klo gw suka sama dia, suka bukan sebagai sahabat tapi gw pengen milikin dia sebagai cewek gw tapi sayangnya dia udah punya cwok. Tapi yang aneh gw liat dia punya cowok tapi justru jarang jalan sama cwoknya malah seringan jalan sama gw. Disini gw gak pengen rebut dia dari cowk dia kok saat itu, gw murni suka dan boleh dibilang sayang tapi gw gak punya niat buat ngasih tau perasaan gw ke dia yang bisa aja buat hubungan mereka makin hancur. Setiap malam pulang kampus dia suka curhat sama gw dan minta saran dari gw atas hubungan dia sama cowok dia yang makin hari makin gak baik. Dan gw saranin ke dia klo mereka udah sering berantem dan gak ngerasa cocok yaudah mereka putus aja.. gw bilang gitu bukan niat biar gw bisa pacaran sama dia kok..hehehe…tapi gw lama-lama males ddengarin curhatan dia masalah cowk dia yang masalahnya gak jelas bangat dan gak kelar-kelar masalahnya ditambah gw kan suka sama dia..perasaan gw hemmm…blogger pasti taulah..hehehe.Tapi setelah sekian lama gw gak tahan buat nyimpan perasaan gw, di saat hubungan dia blom putus tapi udah di ujung tanduk gw ngomong perasaan gw ke dia dan gw dia ternyata punya rasa yang sama juga sama gw dan dia ngerasa lebih nyaman sama gw ketimbang cowok dia. Dan setelah itu kita belum jadian krna dia masih punya cowok. Makin hari gw sama dia kayak backstreet dari anak-anak kelasan dan gw rasa pasti anak-anak tau klo gw punya hubungan sama dia..hehehe. Makin lama gw chatting sama dia ada satu pertanyaan yang buat gw kaget, dia nanya “mungkin gak ya kita jadian di tanggal 14 feb nanti?” dan gw rasa itu pertanyaan terlalu cepet secara dia masih pacaran walaupun hubungan dia sama cowok dia udah di ujung tanduk.  Sebagai cowok yang baikkk…hehehe..gw bilang gak mungkin krna gak secepat itu juga kalaupun kita saling suka. Dan malam-malam selanjutnya dia chat dan kasih tau ke gw klo dia udah putus sama cowoknya, tapi gw ngerasa bersalah apa krana gw bilang persaaan gw ke dia, makanya dia putus sama cowok dia?, sayangnya dia bilang gak, itu murni keputusan dia. Gw ngerasa senang pastinya..hehehe.
Di saat itu pembuatan aplikasi untuk penulisan ilmiah makin hari mendekati deadline dan dia butuh gw, dan gw selalu ada dari pembuatan aplikasi gw bimbing dia hingga penulisan dia. Dan gw lakuin itu semua dengan senang hati krna bisa bareng sama dia..hehehe. Selama gw bantuin dia bikinin aplikasi-nya, dia juga nemanin gw kalau gw mau makan di kampus di sela-sela istrahat jam kuliah..Walaupun gw sibuk bantuin dia bukan berarti gw gak ngerjain aplikasi gw…tapi gw udah kelar semuanya sebelumnya krna gw kerjnya cepet..hehehe..maklum orang rajin..hehhee. 
Di semester 7 akhir tepatnya di 1 Maret 2014 gw akhirnya jadian sama dia..hehehe…senang bangat rasanya tapi kita masih backstreest dan anak-anak kelasan gak ada yang tau. Tapi sepandai-pandainya tupai melompat akhirnya jatuh juga dan gw ngalamin semakin kita sembunyiin hubungan kita dari anak-anak kelasan akhirnya ketahuan juga..hahahha. Selama pacaran sama dia, hubungan kita dan hari-hari kita makin menyenangkan…hehehe. Dan gw selalu terkesan sama dia yang perhatian bangat sama gw dan gak mau jauh dari gw..hehehe…dan gw juga bingung kenapa mantan dia bisa bosen sama cewek semanis dan selucu ini yaaa..hahaha.
Selama pacaran sama dia bukan berarti gw sama dia gak punya masalah. Kita punya masala dari luar hubungan kita yaitu salah satu keluarga gak menyetujui kita pacaran dengan alasan gw berasal dari suka bata sedangkan dia dari suku maya..hahaha. Selain itu juga kita beda agama, dia katolik dan gw protestan. Buat atasin pacaran gak disetujuin kita gak putus begitu saja tapi kita backstret dari keluarga dan sampai gw nulis cerita ini hubungan gw sama dia masih bisa bertahan.
Sejujurnya gw bener-bener sayang sama dia dan gak mau kehilangan dia, walaupun gw suka bikin masalah yang gak jelas atau dia bikin gw kesel gw langsung bilang putus, tapi itu gak lama putusnya..sekitar beberapa hari aja dan kadang Cuma putus sehari aja..hahaha..itulah saking kita saling sayang. Di pikiran gw smpai saat ini gk akan sia-siain hubungan ini dan gw bakal jaga hubungan ini supaya lebih baik..hehehe.
Beberapa bulan setelah saya menulis cerita ini akhirnya keluarga dia gak terlalu masalahin kita pacaran dan gw luar biasa senangnya, setidaknya perjuangan buat pertahanin hubungan selama ini ada hasilnya…hehehe. 
Hari-hariku tanpa bertemu atau gak ada kabar dari dia gw ngerasa ada yang kurang dan gak bisa fokus bekerja. Semoga dia orang yang selalu ada buat gw untuk hari ini, esok dan selamanya..hehehe.


Sabtu, 16 Agustus 2014

MEMBUAT WEB DENGAN MENGGUNAKAN BOOTSTRAP V.3

Sobat sekalian mungkin untuk orang yang sudah pernah membuat website sudah tidak asing lagi dengan Framework Bootstrap. Boostrap merupakan style web yang tinggal pake saja, jadi untuk memuat web yang responsive sekalipun gak usah pusing script css-nya gimana....hehehe.
Oh ya gw jelasin dulu apa itu yang namanya web responsive, web responsive merupakan web yang memiliki variasi tampilan untuk berbagai layar. Misalnya kita mau browsing di Desktop, Tablet, dan juga Mobile akan memiliki tampilan yang berbeda-beda. Mungkin orang yang masih awam akan bertanya kenapa kok bisa beda? Bukankah klo beda tampilan informasi jadi acak-acakan nanti? Jawabannya adalah perbedaan yang dimaksud disini adalah dari segi struktur tampilan informasi tetapi untuk informasi yang disampaikan tidak berkurang alias gunanya responsive adalah membuat tampilan di berbagai devisce lebih menarik.
Konsepnya seperti ini, kita punya berbagai device.
Layar Device

Untuk membuat tampilan web di berbagai device ini kita tidak perlu koding untuk masing-masing device jika kita sudah bisa menggunakan yang namanya bootstrap yang saya maksud. Karena walaupun ukuran layar berbeda-beda bootstrap bisa handle semuanya tanpa mengurangi informasi. Dan pastinya yang gak jago CSS gw saranin pake yang satu ini nih....hehhee.
  1. Oke langkah pertama kalian download dulu bootstrapnya disini.
  2. Kemudian Download Jquery Download the compressed, production jQuery 1.11.1
  3. Setelah itu ekstrak boostrap yang sudah kalian download sehingga bentuknya seperti ini.
  4. Hasil Ekstraksi Bootstrap
  5. Setelah itu masukkan JQuery yang telah di download tadi ke folder js diatas, sehingga isinya seperti ini.
  6. Memasukkan file Jquery
  7. Kemudian kita coba membuat halaman simple dengan codingan seperti di bawah ini.
  8. Tuliskan script di bawah ini pada notepad/notepad++ dan simpan dengan nama index.html
  9. 1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <html>
    <head>
    <title>Tutorial Pertama</title>
    <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    </head>
    <body>
    <div class="container">
    <nav class="navbar navbar-default" role="navigation">
      <!-- Brand and toggle get grouped for better mobile display -->
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="#">Brand</a>
      </div>
    
      <!-- Collect the nav links, forms, and other content for toggling -->
      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav">
          <li class="active"><a href="#">Link</a></li>
          <li><a href="#">Link</a></li>
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="#">Action</a></li>
              <li><a href="#">Another action</a></li>
              <li><a href="#">Something else here</a></li>
              <li class="divider"></li>
              <li><a href="#">Separated link</a></li>
              <li class="divider"></li>
              <li><a href="#">One more separated link</a></li>
            </ul>
          </li>
        </ul>
        <form class="navbar-form navbar-left" role="search">
          <div class="form-group">
            <input type="text" class="form-control" placeholder="Search">
          </div>
          <button type="submit" class="btn btn-default">Submit</button>
        </form>
        <ul class="nav navbar-nav navbar-right">
          <li><a href="#">Link</a></li>
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><a href="#">Action</a></li>
              <li><a href="#">Another action</a></li>
              <li><a href="#">Something else here</a></li>
              <li class="divider"></li>
              <li><a href="#">Separated link</a></li>
            </ul>
          </li>
        </ul>
      </div><!-- /.navbar-collapse -->
    </nav>
    <div class="row">
    <div class="col-md-8 col-xs-8 col-sm-6">
    <h3>Bagian Content</h3>
    <br/>
    <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    </div>
    <div class="col-md-4 col-xs-4">
    <h4>Bagian Widget</h4>
    </div>
    
    
    </div>
    
    
    <div class="well well-sm text-center">Copyright &copy by Indra Tobing</div>
    </div>
    <script src="js/jquery-1.11.1.min.js" ></script>
    <script src="js/bootstrap.min.js" ></script>
    
    </body>
    
    </html>
    
  10. Jika kalian jalankan di web browser dengan cara double click pada index.html yang disimpan tadi.
  11. Hasilnya adalah seperti pada gambar  bawah ini.
Output
Untuk download source code bisa disini.
Untuk memudahkan kalian mempelajari bootstrap memasang Bootstrap Twitter Offline Docs pada Google Chrome  kalian yaitu di webstore

Sabtu, 14 Juni 2014

GRID COMPUTING

Pengertian Grid Computing
SERVER
Komputasi Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.
Grid computing merupakan cabang dari distributed computing.Grid komputer memiliki perbedaan yang lebih menonjol dan di terapakan pada sisi infrastruktur dari penyelesaian suatu proses. Grid computing adalah suatu bentuk cluster (gabungan) komputer-komputer yang cenderung tak terikat batasan geografi. Di sisi lain, cluster selalu diimplementasikan dalam satu tempat dengan menggabungkan banyak komputer lewat jaringan.

Konsep dan Prinsip kerja grid computing
Secara singkat, grid computing berarti menyatukan seluruh sumberdaya TI ke dalam sekumpulan layanan yang bisa digunakan secara bersama-sama untuk memenuhi kebutuhan komputing perusahaan. Infrastruktur gridcomputing secara kontinyu menganalisa permintaan terhadap sumberdaya dan mengatur suplai untuk disesuaikan terhadap permintaan tersebut. Dimana data disimpan atau computer mana yang memproses permintaan tidak perlu dipikirkan. Sebagaimana arus listrik; untuk memanfaatkannya, tempat pembangkit atau bagaimana pengabelan jaringan listrik tidak perlu diketahui. Dalam menyelesaikan masalah system monolitik dan sumberdaya yang terfragmentasi, grid computing bertujuan menciptakan keseimbangan antara pengaturan suplai sumberdaya dan kontrol yang fleksibel. Sumberdaya TI yang dikelola dalam grid mencakup:

Konsep Grid Computing
Sumberdaya Infrastruktur
Mencakup hardware seperti penyimpan, prosesor, memori, dan jaringan; juga software yang didisain untuk mengelola hardware ini, seperti database, manajemen penyimpan, manajemen sistem, server aplikasi dan system operasi.
Sumberdaya Aplikasi
Adalah perwujudan logika bisnis dan arus proses dalam software aplikasi. Sumberdaya yang dimaksud bisa berupa aplikasi paket atau aplikasi buatan, ditulis dalam bahasa pemrograman, dan merefleksikan tingkat kompleksitas. Sebagai contoh, software yang mengambil pesanan dari seorang pelanggan dan mengirimkan balasan, proses yang mencetak slip gaji, dan logika yang menghubungkan telepon dari pelanggan tertentu kepada pihak tertentu pula.
Sumberdaya Informasi
Saat ini, informasi cenderung terfragmentasi dalam perusahaan, sehingga sulit untuk memandang bisnis sebagai satu kesatuan. Sebaliknya, grid computing menganggap informasi adalah sumberdaya, mencakup keseluruhan data pada perusahaan dan metadata yang menjadikan data bisa bermakna. Data bias berbentuk terstruktur, semi-terstruktur, atau tidak terstruktur, tersimpan di lokasi manapun, seperti dalam database, sistem file local.

Prinsip Kerja Grid Computing
Dua prinsip kerja utama grid computing yang membedakannya dari arsitektur komputasi yang lain, semisal mainframe, klien-server, atau multi-tier: virtualisasi dan provisioning.
Virtualisasi
Setiap sumberdaya (semisal komputer, disk, komponen aplikasi dan sumber informasi) dikumpulkan bersama-sama menurut jenisnya, lalu disediakan bagi konsumen (semisal orang atau program software). Virtualisasi berarti meniadakan koneksi secara fisik antara penyedia dan konsumen sumberdaya, dan menyiapkan sumberdaya untuk memenuhi kebutuhan tanpa konsumen mengetahui bagaimana permintaannya bisa terlayani.
Provisioning
Ketika konsumen meminta sumberdaya melalui layer virtualisasi, sumberdaya tertentu di belakang layer didefinisikan untuk memenuhi permintaan tersebut, dan kemudian dialokasikan ke konsumen. Provisioning sebagai bagian dari grid computing berarti bahwa system menentukan bagaimana cara memenuhi kebutuhan konsumen seiring dengan mengoptimasi jalannya sistem secara keseluruhan.

Jenis-jenis Grid Computing
Jenis-jenis atau komponen-komponen grid computing adalah:
Gram (Grid Resources Allocation & Management)Komponen ini dibuat untuk mengatur seluruh sumberdaya komputasi yang tersedia dalam sebuah sistem komputasi grid. Pengaturan ini termasuk eksekusi program pada seluruh komputer yang tergabung dalam sistem komputasi grid, mulai dari inisiasi, monitoring, sampai dengan penjadwalan dan koordinasi antar proses yang terjadi dalam sistem tersebut. Juga dapat berkoordinasi dengan sistem-sistem pengaturan sumber daya yang telah ada sebelumnya. Dengan mekanisme ini program-program yang telah dibuat sebelumnya tidak perlu dibangun ulang atau bila dimodifikasi, modifikasinya minimum.

RFT/GridFTP (Reliable File Transfer/Grid File Transfer Protocol)
Komponen ini dibuat agar pengguna dapat mengakses data yang berukuran besar dari semua simpul komputasi yang telah tergabung dalam sebuah sistem komputasi secara efisien. Hal ini tentu saja berpengaruh karena kinerja komputasi tidak hanya bergantung pada kecepatan komputer yang tergabung dalam mengeksekusi program, tapi juga seberapa cepat data yang dibutuhkan dapat diakses. Data yang diakses juga tidak selalu ada pada komputer yang mengeksekusi.

MDS (Monitoring and Discovery Service)
Komponen ini dibuat untuk memonitoring proses komputasi yang sedang dijalankan agar dapat mendeteksi masalah yang timbul dengan segera. Sedangkan fungsi disovery dibuat agar pengguna mampu mengetahui keberadaan sumber daya komputasi beserta karakteristiknya.

GSI (Grid Security Infrastructure)
Komponen ini dibuat untuk mengamankan sistem komputasi grid secara keseluruhan. Komponen ini membedakan teknologi GT4 dengan teknologi-teknologi sebelumnya. Dengan menerapkan mekanisme keamanan yang tergabung dengan komponen-komponen komputasi grid lainnya, sistem ini dapat diakses secara luas tanpa sedikitpun mengurangi tingkat keamanannya. Sistem keamanan ini dibangun dengan segala komponen yang telah diuji, mencakup proteksi data, autentikasi, delegasi dan autorisasi.

Kelebihan Grid Computing
Beberapa kelebihan dari grid computing adalah:
  •           Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle.
  •     Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah dapat berjalan lebih cepat dan mencakup domain yang lebih luas.
  •        Software dan aplikasi: Pool dari aplikasi dan pustaka standard, akses terhadap model dan perangkat berbeda, metodologi penelitian yang lebih baik.
  •           Data: Akses terhadap sumber data global dan hasil penelitian lebih baik.
  •    Ukuran dan kompleksitas dari masalah mengharuskan orang-orang dalam beberapa organisasi berkolaborasi dan berbagi sumber daya komputasi, data dan instrumen sehingga terwujud bentuk organisasi baru yaitu virtual organization.
  •          Organisasi virtual sebagai hasil kolaborasi memberikan beberapa keuntungan lebih lanjut, di antarnya :
  •          Sumber daya dan orang-orang yang tersebar ;
  •          Dihubungkan oleh jaringan, melintasi domain-domain admin;
  •          Berbagi sumber daya, tujuan bersama;
  •          Dinamis;
  •          Fault-tolerant, dan
  •          Tidak ada batas-batas geografis.


Kekurangan Grid Computing

  • Kekurangan pada grid computing yang lebih DItekankan disini adalah mengenai hambatan yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid computing. Hambatan-hambatan tersebut adalah sebagai berikut :
  • Manajemen institusi yang terlalu birokratis menyebabkan mereka enggan untuk merelakan fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yang lebih besar bagi masyarakat luas.
  • Masih sedikitnya sumber daya manusia yang kompeten dalam mengelola grid computing.
  • Kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid computing itu sendiri.
·         Dengan adanya beberapa manfaat dan hambatan mengenai tersedianya grid computing di Indonesia, maka harus ada solusi yang berfungsi untuk mewujudkan manfaat dan menghilangkan hambatan yang muncul tersebut. Solusi itu antara lain adalah sebagai berikut :
ü  Memberikan sosialisasi pada instansi pendidikan maupun institusi non pendidikan mengenai manfaat serta biaya dengan menggunakan sistem komputasi grid.
ü  Kerjasama riset dan pengembangan antara departement dalam suatu perguruan tinggi dan industri.
ü  Diberikannya mata kuliah tentang grid computing sehingga dapat menghasilkan generasi yang menguasai teknologi ini.
ü  Adanya pengembangan aplikasi yang relevan dengan grid computing.


Implementasi Grid Computing
Implementasi grid computing berarti membangun pusat komputasi data yang tangguh dengan struktur biaya variatif yang bisa disesuaikan dengan kebutuhan. ORACLE 10g merupakan suatu aplikasi yang biasa digunakan oleh perusahaan sebagai DBMS.
Huruf ‘g’ pada Oracle 10g adalah singkatan dari grid. Fokus dari versi baru Oracle ini adalah untuk memudahkan perusahaan menyederhanakan proses implementasi grid computing di luar kerangka kerja komputasi akademik, teknik, riset dan saintifik. Oracle Database 10g memperkenalkan ASM (Automatic Storage Management) yang mendukung fungsi penyimpan virtual dengan mirroring dan stripping data secara otomatis. ASM dapat mengelola semua penyimpan database, termasuk menambah atau menghapus penyimpan secara online. ASM didisain untuk menyederhanakan konfigurasi dan pengelolaan penyimpan database.
Oracle 10g menyediakan fitur-fitur pengaksesan terhadap informasi di saat dan di tempat diperlukan, juga menyesuaikan penyedia informasi dan peminta informasi. Mengenai keamanan, mekanisme Enterprise User Security memusatkan manajemen pengguna dalam bentuk direktori, sehingga tidak perlu menciptakan pengguna yang sama semua database yang dijalankan di grid. Virtual Private Database (VPD) dan Oracle Label Security juga digunakan untuk menjamin bahwa hanya pengguna yang berhak yang bisa mengakses data terseleksi pada grid, bahkan pada level baris dan kolom, tergantung sensitivitas data.
Komputasi modern yang diimplementasikan pada Grid Computing akan semakin memudahkan para pelaku bisnis dalam melakukan management perusahaannya. Walaupun tidak akan ada habisnya tantangan yang harus dihadapi, namun teknologi tetap harus berkembang.

Source :
http://journal.uii.ac.id/index.php/Snati/article/view/1411/1191


Selasa, 13 Mei 2014

Quantum Computing

Komputer kuantum adalah alat hitung yang menggunakan sebuah fenomena mekanika kuantum, misalnya superposisi dan keterkaitan, untuk melakukan operasi data. Dalam komputasi klasik, jumlah data dihitung dengan bit; dalam komputer kuantum, hal ini dilakukan dengan qubit. Prinsip dasar komputer kuantum adalah bahwa sifat kuantum dari partikel dapat digunakan untuk mewakili data dan struktur data, dan bahwa mekanika kuantum dapat digunakan untuk melakukan operasi dengan data ini. Dalam hal ini untuk mengembangkan komputer dengan sistem kuantum diperlukan suatu logika baru yang sesuai dengan prinsip kuantum.
Ide mengenai komputer kuantum ini berasal dari beberapa fisikawan antara lain Charles H. Bennett dari IBM, Paul A. Benioff dari Argonne National Laboratory, Illinois, David Deutsch dari University of Oxford, dan Richard P. Feynman dari California Institute of Technology (Caltech).
Pada awalnya Feynman mengemukakan idenya mengenai sistem kuantum yang juga dapat melakukan proses penghitungan. Fenyman juga mengemukakan bahwa sistem ini bisa menjadi simulator bagi percobaan fisika kuantum.
Selanjutnya para ilmuwan mulai melakukan riset mengenai sistem kuantum tersebut, mereka juga berusaha untuk menemukan logika yang sesuai dengan sistem tersebut. Sampai saat ini telah dikemukaan dua algoritma baru yang bisa digunakan dalam sistem kuantum yaitualgoritma shor dan algoritma grover.
Walaupun komputer kuantum masih dalam pengembangan, telah dilakukan eksperimen dimana operasi komputasi kuantum dilakukan atas sejumlah kecil Qubit. Riset baik secara teoretis maupun praktik terus berlanjut dalam laju yang cepat, dan banyak pemerintah nasional dan agensi pendanaan militer mendukung riset komputer kuantum untuk pengembangannya baik untuk keperluan rakyat maupun masalah keamanan nasional seperti kriptoanalisis.
Telah dipercaya dengan sangat luas, bahwa apabila komputer kuantum dalam skala besar dapat dibuat, maka komputer tersebut dapat menyelesaikan sejumlah masalah lebih cepat daripada komputer biasa. Komputer kuantum berbeda dengan komputer DNA dan komputer klasik berbasis transistor, walaupun mungkin komputer jenis tersebut menggunakan prinsip kuantum mekanik. Sejumlah arsitektur komputasi seperti komputer optik walaupun menggunakan superposisi klasik dari gelombang elektromagnetik, namun tanpa sejumlah sumber kuantum mekanik yang spesifik seperti keterkaitan, maka tak dapat berpotensi memiliki kecepatan komputasi sebagaimana yang dimiliki oleh komputer kuantum.

1. Algoritma Shor
Algoritma Shor, dinamai matematikawan Peter Shor , adalah algoritma kuantum yaitu merupakan suatu algoritma yang berjalan pada komputer kuantum yang berguna untuk faktorisasi bilangan bulat. Algoritma Shor dirumuskan pada tahun 1994.  Inti dari algoritma ini merupakan bagaimana cara menyelesaikan faktorisasi terhaadap bilanga interger atau bulat yang besar.
Efisiensi algoritma Shor adalah karena efisiensi kuantum Transformasi Fourier , dan modular eksponensial. Jika sebuah komputer kuantum dengan jumlah yang memadai qubit dapat beroperasi tanpa mengalah kebisingan dan fenomena interferensi kuantum lainnya, algoritma Shor dapat digunakan untuk memecahkan kriptografi kunci publik skema seperti banyak digunakan skema RSA. Algoritma Shor terdiri dari dua bagian:
- Penurunan yang bisa dilakukan pada komputer klasik, dari masalah anjak untuk masalah ketertiban -temuan.
- Sebuah algoritma kuantum untuk memecahkan masalah order-temuan.
Hambatan runtime dari algoritma Shor adalah kuantum eksponensial modular yang jauh lebih lambat dibandingkan dengan kuantum Transformasi Fourier dan pre-/post-processing klasik. Ada beberapa pendekatan untuk membangun dan mengoptimalkan sirkuit untuk eksponensial modular. Yang paling sederhana dan saat ini yaitu pendekatan paling praktis adalah dengan menggunakan meniru sirkuit aritmatika konvensional dengan gerbang reversibel , dimulai dengan penambah ripple-carry. Sirkuit Reversible biasanya menggunakan nilai pada urutan n ^ 3, gerbang untuk n qubit. Teknik alternatif asimtotik meningkatkan jumlah gerbang dengan menggunakan kuantum transformasi Fourier , tetapi tidak kompetitif dengan kurang dari 600 qubit karena konstanta tinggi.
Algoritma Shor
2. Algoritma Grover
Algoritma Grover adalah sebuah algoritma kuantum untuk mencari database disortir dengan entri N di O ( N1 / 2 ) waktu dan menggunakan O ( log N ) ruang penyimpanan (lihat notasi O besar ) . Lov Grover dirumuskan itu pada tahun 1996 . Dalam model komputasi klasik , mencari database unsorted tidak dapat dilakukan dalam waktu kurang dari waktu linier (jadi hanya mencari melalui setiap item optimal ) . Algoritma Grover menggambarkan bahwa dalam model kuantum pencarian dapat dilakukan lebih cepat dari ini ; sebenarnya waktu kompleksitas O ( N1 / 2 ) adalah asimtotik tercepat mungkin untuk mencari database unsorted dalam model kuantum linear . Ini menyediakan percepatan kuadrat , seperti algoritma kuantum lainnya , yang dapat memberikan percepatan eksponensial atas rekan-rekan mereka klasik . Namun, bahkan percepatan kuadrat cukup besar ketika N besar . Seperti banyak algoritma kuantum , algoritma Grover adalah probabilistik dalam arti bahwa ia memberikan jawaban yang benar dengan probabilitas tinggi . Kemungkinan kegagalan dapat dikurangi dengan mengulangi algoritma.
Implementasi Quantum Computing
Bayangkan sebuah komputer masa depan, yang kecepatannya ribuan kali lebih cepat darisupercomputer tercepat sekarang. Ribuan kali lebih cepat dan efisien dari IBM ”Roadrunner” di Los Alamos yang kecepatannya mencapai 1.7 petaflops (1 petaflop = 10^15 operasi per detik).

Inilah kedahsyatan komputer kuantum. Komputer ini begitu dahsyat karena diciptakan memakai fenomena keajaiban dunia kuantum, Superposition dan Quantum Entanglement.

Dalam pemecahan kode misalnya (kriptografi), untuk memecahkan kode yang digitnya sampai 140, komputer biasa akan memerlukan waktu milyaran tahun untuk memecahkannya. Tapi dengan komputer kuantum, ini bisa dipecahkan hanya dalam waktu beberapa puluh menit saja.
Dengan komputer ini manusia juga akan bisa memprediksikan cuaca di bumi dan gejala-gejala alam lain yang sangat kompleks dengan sangat akurat berbulan-bulan sebelumnya, seperti gempa bumi dan tornado. Dan tentu saja ini akan makin merevolusikan lagi kecepatan pengembangan seluruh teknologi canggih yang ada sekarang.

Referensi :
http://id.wikipedia.org/wiki/Komputer_kuantum
http://seto.citravision.com/berita-45-pengantar-quantum-computation--algoritma-shor.html
http://rullyyy.wordpress.com/2014/05/12/definisi-implementasi-dan-algoritma-dari-quantum-computing/




Sabtu, 12 April 2014

Mamfaat Cloud Computing


     Dewasa ini cloud computing sangatlah populer di dunia teknologi dan informasi.Tidak menutup kemungkinan jika nantinya dimasa depan penggunaan komputasi awan menjadi sesuatu yang dipilih untuk menjalankan bisnis bagi perusahaan. Beberapa manfaat yang bisa dirasakan oleh perusahaan adalah meningkatnya produktivitas perusahaan melalui kolaborasi antar staf dan manajemen sesuai kebutuhan dengan tetap mengedepankan pengendalian biaya IT dan Dewasa ini pemanfaatan cloud computing bagi perusahaan semakin berkembang. Tidak komunikasi perusahaan. Selain itu cloud computing tidak membutuhkan investasi, tetapi penggunaan IT dikompensasi dalam biaya rutin.Jika dilihat dari segi biaya implementasi cloud computing cukup menghemat biaya yang artinya tidak membutuhkan unit pengelolahan khusus serta tidak membutuhkan pembayaran lisensi terhadap server yang digunakan. 
Ditinjau dari penggunaan hardware dan software, cloud computing cukup membutuhkan hardware dan software yang dibutuhkan saja. Dan dengan menggunakan cloud computing ini juga mengakibatkan proses peningkatan kapasitas sistem lebih cepat. Adapun kemampuan lain dari cloud computing yaitu sebagai berikut :
  • Jaringan dan Data Center menyatu.
  • Website menggunakan secured connection https.
  • Kemampuan melakukan Kirim Terima Email yg terintegrasi dengan Sistem Callender
  • Kemampuan sharing PC to PC audio & video
  • Kemampuan Editing Document sharing & Collaboration editing
  • Kemampuan PC to PC File transfer
  • Kemampuan Integrasi dengan MS Office
  • Kemampuan Remote Access over IP
  • Kemampuan melakukan Voice & Video Conference Call
  • Kemampuan melakukan messenger
  • Kemampuan Presence dari pemilik account
  • Kemampuan Share Point & assigment
  • Kemampuan handling informasi bisnis selama 24 jam.
  • Kemampuan mendukung mailbox sebesar 2 GB per account
Klasifikasi cloud computing berdasarkan pelayanan :
  • Saas( Software as a Service) 
Software as a Service adalah perangkat lunak atau program computer yang di persediakan online sebagai layanan atau jasa yang siap di pakai.jadi, SaaS adalah aplikasi web yang di inangi dan di operasikan oleh penyelenggara SaaS untuk digunakan oleh pelanggannya melalui internet. Oleh sebab itu, pengguna tidak perlu beli perangkat lunak yang digunakannya.
Contohnya :  Google docs, Facebook, Aplikasi CRM berbayar.
  • Paas (Platform as a Service)
Platform as a Service Platform as a Service adalah suatu aplikasi yang sifatnya packpage tidak dapat memenuhi kebutuhan proses bisnis kita.Demikian pula dengan SaaS, di mana aplikasi yang di tawarkan sebagai layanan tidak sesuai dengan proses bisnis kita.
Contohnya : Microsoft azure dan Amazon Web services
  • Iaas (Infrastructure as a Service) 
Infrastructure as a Service adalah penyedia layanan hanya menyediakan sumber daya komputasi seperti memori,prosesor dan storage,tapi layanan ini tidak memasang sistem operasi maupun aplikasi di atas.
Contohnya : Amazon EC2, GoGrid dan Rackspace Cloud.

Contoh perusahaan pelayanan jasa yang menggunakan cloud computing
       Pada bahasan kali ini kita memilih perusahaan google sebagai media jasa pelayanan yang menggunakan cloud computing. Adapun jenis layanan yang diberikan oleh google adalah sebagai berikut :
  1. Google drive 
Google drive berfungsi sebagai media layanan penyimpanan data. Setiap pengguna dapat menyimpan berbagai file di awan. Manfaat nya adalah pengguna bisa mengakses file dimana saja tanpa membawa media penyimpanan data secara real time dengan syarat pengguna dapat terhubung dengan internet. Selain itu juga pengguna tidak perlu merasa khawatir dengan data yang tersimpan dicloud karena setiap perusahaan seperti google sudah menjamin keamanan dari setiap data pengguna layananya. Jika dilihat dari segi biaya tentu google drive merupakan salah satu pilihan yang cukup dipertimbangkan karena pengguna gratis layanan ini sudah bisa menikmati kapasitas penyimpanan sebesar 5GB. Penyimpanan yang dimaksud disini merupakan bebas dalam arti apapun file yang kita miliki bisa kita upload di google drive, seperti file pengolah kata, gambar, video maupun suara bisa diupload pada layanan ini.
  1. Google Latitude
Google Latitude adalah sebuah layanan yang dari maps yang bisa digunakan untuk mengetahui lokasi. Dengan layanan ini kita bisa mencari lokasi dari teman kita jika sudah tersedia alamatnya dah bahkan kita bisa memamfaatkan layanan navigator untuk menuntun perjalanan kita. Dengan aplikasi ini juga kita bisa mengontrol lokasi kita seperti berbagi lokasi ke media sosial, menyembunyikan lokasi atau bahkan keluar dari aplikasi layanan latitude. Kelebihan lain dari aplikasi ini adalah kita juga bisa menghubungi teman atau kerabat kita melalui SMS, pesan instan dan juga telepon.


  1. Google Mailbox
Mailbox disini adalah kotak pesan yang dapat kita mammfaatkan untuk berkirim pesan melalui email ke teman kita, baik yang sesama memiliki akun google maupun akun yang sejenisnya. Kapasitas penyimpanan yang ditawarkan disini adalah sebesar 15 GB.
  1.  Google Youtube
Layanan ini merupakan media sosial untuk berbagi siaran video. Dengan menggunakan layanan ini para pengguna bisa berbagi video dengan semua orang pengguna youtube di dunia maya.
  1. Picasa WEB Albums
Layanan ini merupakan layanan google berbasis gambar, artinya kita bisa mengupload hanya gambar saja untuk jenis layanan ini. Dengan layanan ini foto-foto kita bisa kita bagikan ke teman-teman atau kerabat melalui dunia maya. Selain itu, penggunaan web picasa album bisa dimamfaatkan sebagai server penyimpanan pihak ketiga pada suatu web. Artinya kita bisa mengambil foto yang di picasa untuk ditempelkan pada web kita.

Referensi :
http://www.google.com/intl/id_ALL/mobile/latitude/
http://id.wikipedia.org/wiki/Kategori:Layanan_Google
https://support.google.com/a/answer/1186436?hl=en
12046-if-unsika blogspot.com

Kamis, 06 Maret 2014

Perkembangan Teori Komputasi dan Implementasinya

Pada jaman sekarang ini mungkin komputasi bukanlah suatu istilah yang baru lagi di kalangan praktisi IT maupun masyarakat. Mungkin juga pada saat mendengar kata komputasi, kita akan berpikir apa itu sebenarnya komputasi? 
Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma.  Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Jika pada jaman dulu kita melakukan perhitungan dengan alat-alat sederhana seperti pena dan kertas, atau kapur dan batu tulis, bantuan tabel atau bisa kita sebut sebgai bantuan tabel untuk mempermudah kita melakukan perhitungan. Yang menjadi masalah pada saat kita melakukan perhitungan, banyak hal yang menjadi kekurangan dalam melakukan perhitungan secara mental, seperti ketidak akuratan hasil hitung, efektifitas, dan juga tidak efisien dalam segi waktu. Maka dari itu semua, pada jaman sekarang ini kita sudah dihadirkan dengan teknologi komputasi yang lebih modern utuk melakukan perhitungan bahkan yang kompleks sekalipun yaitu dengan menggunakan kalkulator  dan juga komputer. 
Jika dikaji lebih umum sebenarnya ilmu komutasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains).
Pada dasarnya komputasi dilakukan untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu yang tentunya dari ilmu dasar yang telah ditemukan tersebut nantinya bisa digunakan utuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan.
Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.
Pada awalnya perkembangan komputasi modern digagas oleh John von Neumann (1903-1957), Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann menjadi salah ilmuwan terbesar pada zaman nya. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya. Berkat teori-teori nya itulah pada saat itu computer mengalami perkembangan dan kemajuan pesat terlihat saat dia menjadi seorang konsultan pada pengembangan komputer ENIAC. karena jasa-jasa nya John von Neumann di sebut bapak komputasi modern. Dia juga dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori.

Komputasi modern digunakan untuk memecahkan masalah antara lain untuk menghitung:
1. Akurasi (big, Floating point)
Akurasi tentu merupakan masalah yang paling penting dalam memecahkan masalah. Karena itu pada komputasi modern dilakukan perhitungan bagaimana bisa menghasilkan suatu jawaban yang akurat dari sebuah masalah. Tentu kita pernah mendengar tipe data floating point yang biasa digunakan untuk menyimpan data numerik dalam bentuk pecahan. Tipe data tersebut memiliki range penyimpanan numerik yang besar, sehingga dapat digunakan oleh komputer untuk melakukan komputasi yang akurat.
2. Kecepatan (dalam satuan Hz)
Manusia pasti menginginkan masalah dapat diselesaikan dengan cepta. Karena itu perhitungan masalah kecepeatan adalah suatu hal yang penting. Komputasi harus dapat dilakukan dalam waktu yang cepat ketika mengolah suatu data. Sehingga perlu metode kecepatan untuk mengolah perhitungan dalam waktu singkat.
3. Problem Volume Besar (Down Sizzing atau paralel)
Data yang besar tentu membutuhkan suatu cara penyelesaian yang khusus. Karena data yang besar dapat menjadi masalah jika ada yang terlewatkan. Oleh karena itu digunakan metode Down Sizzing atau paralel pada komputasi modern untuk menangani masalah volume yang besar. Dengan metode ini data yang besar diparalelkan dalam pengolahannya sehigga dapat diorganisir dengan baik.
4. Modeling (NN & GA)
Modeling merupakan suatu hal yang penting dalam melakukan suatu perhitungan yang rumit. Bayangkan saja jika kita dihadapi dalam suatu masalah perhitungan yang banyak dan kompleks, tetapi tidak ada model matematika yang kita miliki. Perhitungan akan berjalan berantakan dan tidak akan mendapatkan hasil yang akurat. Maka dari itu komputasi modern membutuhkan modeling sebelum melakukan perhitungan.
5. Kompleksitas (Menggunakan Teori big O)
Komputasi modern dirancang untuk menangani masalah yang kompleks, sehingga diterapkan pada komputer. Dengan menggunakan teori Big O, maka komputasi modern dapat melakukan perhitungan untuk memecahkan masalah kompleksitas yang kerap dihadapi.

Macam-Macam Komputasi Modern

1. Mobile computing

Mobile computing atau komputasi bergerak memiliki beberapa penjelasan, salah satunya komputasi bergerak merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel.
Dan berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan perubahan dari sisi manusia maupun alat. Dan dapat dilihat contoh dari perangkat komputasi bergerak seperti GPS, juga tipe dari komputasi bergerak seperti smart phone, dan lain sebagainya.
2. Grid computing

Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan dan terhubung oleh jaringan untuk menyelasaikan masalah komputasi skala besar.
Ada beberapa daftar yang dapat digunakan untuk mengenali sistem komputasi grid, adalah :
Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
Sistem menggunakan standard dan protocol yang terbuka.
Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid.
3. Cloud computing

Komputasi cloud merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.
Komputasi cloud menggambarkan pelengkap baru, konsumsi dan layanan IT berbasis model dalam internet, dan biasanya melibatkan ketentuan dari keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.

Implementasi teori komputasi di berbagai bidang antara lain.
- Matematika
Terdapat numerical analysis yaitu sebuah algoritma dipakai untuk menganalisa masalah - masalah matematika.
- Fisika
Terdapat Computational Physics yang mempelajari algoritma numerik untuk memecah kan teori kuantitatif fisika yang ada 
- Kimia
Terdapat Computational Chemistry yaitu penggunaan ilmu komputer untuk  membantu menyelesaikan masalah kimia, contohnya penggunaan super komputer untuk menghitung struktur dan sifat molekul.
- Geografi 
Terdapat penggunaan komputasi yang diterapkan pada GIS (Geographic Information System) yang berguna untuk menyimpan, memanipulasi dan menganalisa informasi geografi.
- Geologi  
Pada bidang geologi teori komputasi biasanya digunakan untuk pertambangan, sebuah sistem komputer digunakan untuk menganalisa bahan-bahan mineral dan barang tambang yang terdapat di dalam tanah.
- Ekonomi 
Terdapat Computational Economics yang mempelajari titik pertemuan antara ilmu ekonomi dan ilmu komputer mencakup komputasi keuangan, statistika, pemrograman yang di desain khusus untuk komputasi ekonomi dan pengembangan alat bantu untuk pendidikan ekonomi.
- Sosiologi 
Terdapat Computational Sosiology yaitu penggunaan metode komputasi dalam menganalisa fenomena sosial.
- Biologi 
Terdapat Bioinformatics merupakan aplikasi dari teknologi informasi dan   ilmu komputer dalam penelitian bidang biologi molekuler.

Referensi
http://id.wikipedia.org/wiki/Komputasi
http://id.swewe.com/word_show.htm/?11943_2&Matematika%7CKomputasi
http://safemode.web.id/artikel/teknologi/perkembangan-komputasi-modern
http://himamia.mipa.uns.ac.id/2012/09/07/perkembangan-kimia-komputasi/
http://id.wikipedia.org/wiki/Fisika_komputasi
http://kaharuvany.blogspot.com/2012/06/komputasi-modern.html
http://luciferion-knight.blogspot.com/2013/04/teori-komputasi-dan-implementasinya.html