Minggu, 12 April 2015

Tugas Besar Smart City " Smart Water "

https://www.dropbox.com/s/l936cjld6icf6pi/JodiGandaWijaya_1211002_tugasbesarPTI.pdf?dl=0

Senin, 09 Maret 2015

Socket Programming

Socket adalah Saluran komunikasi antarkomputer yang berbasis protocol internet socket programming adalah bagaimana cara menggunakan socket API ( Application Socket Programming ), untuk menghubungkan komunikasi antara proses remote dan local.  Sedangkan API adalah sebuah library atau fungsi windows untuk mengeksekusi sebuah perintah yang ada di dalam semua tampilan windows , sebagai contoh untuk tampilan desktop ,screen saver ,shutdown computer dll.

Jenis protokol
·        TCP (Transmission Control Protocol)
adalah protokol yang paling umum digunakan di Internet. Alasan untuk ini adalah karena TCP menawarkan koreksi kesalahan. Ketika protokol TCP digunakan ada “guaranteed delivery.” yaitu jaminan bahwa packet akan terkirim. Hal ini disebabkan  metode yang disebut “flow control.” Flow control menentukan kapan data harus dikirim kembali, dan menghentikan aliran data paket sebelumnya sampai berhasil ditransfer. Saat  paket data dikirim, tabrakan dapat terjadi. Ketika ini terjadi, client akan meminta kembali paket dari server sampai seluruh paket lengkap dan identik dengan aslinya.

·        UDP (User Datagram Protocol)
adalah protokol yang umum digunakan di Internet. Namun, UDP tidak pernah digunakan untuk mengirim data penting seperti halaman web, informasi database, dll.  UDP umumnya digunakan untuk streaming audio dan video. Media streaming seperti Windows Media audio files (. WMA), Real Player (. RM), dan lain-lain menggunakan UDP karena menawarkan kecepatan!   Alasan UDP lebih cepat daripada TCP adalah karena tidak ada bentuk flow control atau koreksi kesalahan. Data yang dikirim melalui Internet dipengaruhi oleh tabrakan, dan error akan muncul. Ingatlah bahwa UDP hanya berkaitan dengan kecepatan. Ini adalah alasan utama mengapa media streaming tidak berkualitas tinggi.





Port
Dalam protokol jaringan,TCP/IP. sebuah port adalah mekanisme yang mengizinkan sebuah komputer untuk mendukung beberapa sesi koneksi dengan komputer lainnya dan program di dalam jaringan. Port dapat mengidentifikasikan aplikasi dan layanan yang menggunakan koneksi di dalam jaringan TCP/IP. Sehingga, port juga mengidentifikasikan sebuah proses tertentu di mana sebuah server dapat memberikan sebuah layanan kepada klien atau bagaimana sebuah klien dapat mengakses sebuah layanan yang ada dalam server. Port dapat dikenali dengan angka 16bit (dua byte) yang disebut dengan Port Number dan diklasifikasikan dengan jenis protokol transport apa yang digunakan, ke dalam Port TCP dan Port UDP. Karena memiliki angka 16-bit, maka total maksimum jumlah port untuk setiap protokol transport yang digunakan adalah 65536 buah.

Dilihat dari penomorannya, port UDP dan TCP dibagi menjadi tiga jenis, yakni sebagai berikut:
·        Well-known Port: yang pada awalnya berkisar antara 0 hingga 255 tapi kemudian diperlebar untuk mendukung antara 0 hingga 1023. Port number yang termasuk ke dalam well-known port, selalu merepresentasikan layanan jaringan yang sama, dan ditetapkan oleh Internet Assigned Number Authority (IANA). Beberapa di antara port-port yang berada di dalam range Well-known port masih belum ditetapkan dan direservasikan untuk digunakan oleh layanan yang bakal ada di masa depan. Sebagai contoh www atau http ada di port 80, sedangkan mail ada di port 25
·        Registered Port: Port-port yang digunakan oleh vendor-vendor komputer atau jaringan yang berbeda untuk mendukung aplikasi dan sistem operasi yang mereka buat. Registered port juga diketahui dan didaftarkan oleh IANA tapi tidak dialokasikan secara permanen, sehingga vendor lainnya dapat menggunakan port number yang sama. Range registered port berkisar dari 1024 hingga 49151 dan beberapa port di antaranya adalah Dynamically Assigned Port.
·        Dynamically Assigned Port: merupakan port-port yang ditetapkan oleh sistem operasi atau aplikasi yang digunakan untuk melayani request dari pengguna sesuai dengan kebutuhan. Dynamically Assigned Port berkisar dari 1024 hingga 65536 dan dapat digunakan atau dilepaskan sesuai kebutuhan.

Contoh Socket Programming bahasa C : Chat sederhana client - server
Sesuai dengan judulnya, kita akan membuat sebuah program chat antara client dengan server menggunakan bahasa C.  Siapkan text editor untuk membuat kode.

Pertama, kita akan membuat server berikut ini kode yang perlu diketikkan
#include<stdio.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netdb.h>
#include<stdlib.h>
#include<string.h>
#define MAX 80
#define PORT 43454
#define SA struct sockaddr
void func(int sockfd)
{
char buff[MAX];
int n;
for(;;)
{
bzero(buff,MAX);
read(sockfd,buff,sizeof(buff));
printf("From client: %s\t To client : ",buff);
bzero(buff,MAX);
n=0;
while((buff[n++]=getchar())!='\n');
write(sockfd,buff,sizeof(buff));
if(strncmp("exit",buff,4)==0)
{
printf("Server Exit...\n");
break;
}
}
}
int main()
{
int sockfd,connfd,len;
struct sockaddr_in servaddr,cli;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd==-1)
{
printf("socket creation failed...\n");
exit(0);
}
else
printf("Socket successfully created..\n");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
servaddr.sin_port=htons(PORT);
if((bind(sockfd,(SA*)&servaddr, sizeof(servaddr)))!=0)
{
printf("socket bind failed...\n");
exit(0);
}
else
printf("Socket successfully binded..\n");
if((listen(sockfd,5))!=0)
{
printf("Listen failed...\n");
exit(0);
}
else
printf("Server listening..\n");
len=sizeof(cli);
connfd=accept(sockfd,(SA *)&cli,&len);
if(connfd<0)
{
printf("server acccept failed...\n");
exit(0);
}
else
printf("server acccept the client...\n");
func(connfd);
close(sockfd);
}



Setelah itu kita membuat client dengan kode berikut :
#include<stdio.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netdb.h>
#include<string.h>
#include<stdlib.h>
#define MAX 80
#define PORT 43454
#define SA struct sockaddr
void func(int sockfd)
{
char buff[MAX];
int n;
for(;;)
{
bzero(buff,sizeof(buff));
printf("Enter the string : ");
n=0;
while((buff[n++]=getchar())!='\n');
write(sockfd,buff,sizeof(buff));
bzero(buff,sizeof(buff));
read(sockfd,buff,sizeof(buff));
printf("From Server : %s",buff);
if((strncmp(buff,"exit",4))==0)
{
printf("Client Exit...\n");
break;
}
}
}

int main()
{
int sockfd,connfd;
struct sockaddr_in servaddr,cli;
sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd==-1)
{
printf("socket creation failed...\n");
exit(0);
}
else
printf("Socket successfully created..\n");
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=inet_addr("127.0.0.1");
servaddr.sin_port=htons(PORT);
if(connect(sockfd,(SA *)&servaddr,sizeof(servaddr))!=0)
{
printf("connection with the server failed...\n");
exit(0);
}
else
printf("connected to the server..\n");
func(sockfd);
close(sockfd);
}
Setelah selesai membuat file kode bahasa C, buka terminal, ubah direktori ke lokasi file .c, kemudian compile dan run file .c.
Setelah server dijalankan, buka terminal baru, ubah direktori seperti langkah sebelumnya, kemudian compile dan run dengan cara yang sama seperti langkah sebelumnya. Lalu muncul tempat untuk mengisi pesan di kedua jendela terminal. Sekarang coba menulis pesan "halo" pada client, coba perhatikan yang muncul di server. Pesan dari client muncul di jendela server, kemudian coba mengirim pesan balik "halo juga "




Pengertian Komputasi Paralel

Pengertian Komputasi Paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.
Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupunbanyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman parallel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. Tidak berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis akan diolah secara parallel. 
Di dalam komputasi parallel ada yang dinamakan dengan pemrograman parallel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan (komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan adalah sistem terdistribusi (distributed computing).
Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. Analogi yang paling gampang adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa dalam pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up) yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman, berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan kecepatan sebanyak 2 kali.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Pada system komputasi parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory address dan message passing. Berdasarkan cara mengorganisasikan memori ini computer parallel dibedakan menjadi shared memory parallel machine dan distributed memory parallel machine.


Rabu, 25 Februari 2015

SOA

Jika kita pernah mengenal Object Oriented Programming (OOP), kini dunia bisnis dapat berfikir secara service oriented.
SOA adalah solusi yang dapat digunakan untuk efektifitas dalam pengembangan system.
SOA ( Service Oriented Architecture) adalah Arsitektur yang dibangun dengan berorientasi kepada service

Dengan kata lain,SOA adalah sebuah arsitektur kerangka kerja berbasis standar terbuka yang memungkinkan perusahaan-perusahaan untuk saling mengintegrasikan data yang sebelumnya hanya tersimpan rapat di markas para pelanggan, mitra, atau pemasok.Dengan kata lain,SOA merupakan arsitektur yang mendukung integrasi bisnis sebagai layanan yang terhubung dan menjadi jalan menuju inovasi.(SOA juga menjadi strategi bisnis berbasis teknologi dan hasil evolusi untuk mengintegrasi berbagai sumber informasi dari sumber kode atau platform yang berbeda-beda)

Tantangan Perusahaan
Dalam bisnis perusahaan akan selalu mendapatkan tantangan, yang datang dari permintaan pelanggan dan persaingan pasar. Hal ini menuntut perusahaan agar secara cepat merespon dengan membuat inovasi. Namun inovasi ini terbentur dengan teknologi yang sedang berjalan di perusahaan. Hal ini mengakibatkan cost yang besar ketika akan melakukan inovasi. Hal inilah yang akhirnya membatasi perusahaan dalam berinovasi. Dilain pihak tantangan itu tidak akan berhenti. Pelanggan bisa saja tidak loyal dan pesaing melakukan invoasi yang lebih canggih.

Menjawab tantangan
Ketika kita berpikir dengan arsitektur tradisional, tentunya akan sulit dan butuh effort yang besar untuk berinovasi. Bisnis proses yang terlanjur berjalan dengan aplikasi-aplikasi yang ada. Ternyata mempunyai platform dan tempat yang berbeda. Dengan SOA hal ini dapat dipecahkan. Bisnis proses dipecah kedalam service-service. Service adalah bagian dari bisnis proses yang kumpulan fungsi, prosedur atau proses yang memberikan respon jika diminta.Service ini dapat saling berkomunikasi walaupun berbeda platform.

Karakteristik SOA
Seperti yang dideinisikan diatas,SOA adalah suatu cara perancangan aplikasi dengan menggunakan komponen-komponen atau pelayanan yang sudah ada.Dengan kata lain, suatu aplikasi dibangun secara modular. Sebenarnya pendekatan modular ini bukanlah sesuatu yang baru. Teknik - teknik pemrograman masa kini seperti object oriented programming, telah mengedepankan pendekatan modular dalam pembangunan aplikasi. Namun yang membuat SOA berbeda adalah komponen atau service tersebut dibangun dan berinteraksi satu sama lain secara bebas dan lepas (loose coupled). Dengan bersifat loose coupled, sebuah service dapat di-panggil oleh program/service lainnya tanpa program pemanggil tersebut perlu memperhatikan di mana lokasi service yang dipanggil berada dan platform/teknologi apa yang digunakan oleh service tersebut. Loose coupling sangat penting bagi SOA karena dengan demikian pemanggilan sebuah service oleh service lainnya dapat dilakukan pada saat run-time.

Misalnya sebuah aplikasi core banking menyediakan sebuah service Fund Transfer, maka aplikasi-aplikasi banking lainnya seperti treasury, payment gateway, ATM switching dan sebagainya dapat memanggil service Fund Transfer tersebut tanpa perlu memusingkan di mana Fund Transfer tersebut berada di dalam jaringan dan teknik pemanggilan yang harus digunakan.Hal ini kontras dengan pendekatan tight coupling di mana dalam hal ini setiap aplikasi perbankan di atas masing-masing harus mempunyai fungsi Fund Transfer di dalamnya sehingga akan menyulitkan dan membutuhkan biaya/resource besar jika perlu merubah logic dari Fund Transfer ke requirement bisnis yang baru di dalam setiap aplikasinya. Karakteristik lainnya adalah service dalam SOA disusun atas 2 hal: Service Interface dan Service Implementation.

tidak perlu memperdulikan bagaimana sebuah service diimplementasikan. Entah ditulis dengan bahasa Java atau COBOL, yang penting adalah bagaimana service tersebut dapat dipanggil dan memberikan informasi sesuai dengan Service Interface-nya. Karakteristik SOA yang terakhir adalah service tersebut harus business oriented. Dalam arti, setiap service yang didiinisikan harus melakukan suatu aktiitas bisnis tertentu, misalkan Customer Lookup, Fund Transfer, Check Inventory, dan sebagainya. Tidak dapat dipungkiri pula bahwa keberhasilan SOA belakangan ini ikut dimotori oleh tingginya penerimaan teknologi web services di kalangan pengembang aplikasi. Walaupun ide tentang SOA telah ada sebelum web services dilahirkan, web services dan SOA saat ini telah menjadi suatu si-nergi dan bahkan beberapa kalangan menganggap dengan menggunakan web services maka ia telah menerapkan SOA.



Web Service

Web service adalah aplikasi sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu.  Secara umum,web service  dapat diidentifikasikan dengan menggunakan URL seperti hanya web pada umumnya. Namun yang membedakan web service dengan web pada umumnya adalah interaksi yang diberikan oleh web service. Berbeda dengan URL web pada umumnya, URL web service hanya menggandung kumpulan informasi, perintah, konfigurasi atau sintaks yang berguna membangun sebuah fungsi-fungsi tertentu dari aplikasi.

Web service dapat diartikan juga sebuah metode pertukaran data, tanpa memperhatikan dimana sebuahdatabase ditanamkan, dibuat dalam bahasa apa sebuah aplikasi yang mengkonsumsi data, dan di platform apa sebuah data itu dikonsumsi. Web service mampu menunjang interoperabilitas. Sehingga web service mampu menjadi sebuah jembatan penghubung antara berbagai sistem yang ada.

Definisi lain : Web service  adalah sistem software yang dirancang untuk mendukung interopabilitas mesin-ke-mesin yang dapat berinteraksi melalui jaringan.  Web service memiliki antarmuka yang dijelaskan dalam format mesin-processable (khusus WSDL). Sistem lain berinteraksi dengan  Web service dalam cara ditentukan oleh deskripsi dengan menggunakan pesan SOAP, biasanya disampaikan menggunakan HTTP dengan serialisasi XML dalam hubungannya dengan Web lainnya yang terkait standar.

Dalam pengertian yang sederhana , XML Web Services dapat di definisikan sebagai aplikasi yang diakses oleh aplikasi yang lain. Mungkin orang berpendapat itu semacam web site, tetapi itu bukan demikian. 
Ada perbedaan – perbedaan yang membedakan dengan web site.

Perbedaan tersebut dapat dilihat dibawah ini :
-WEB SITE

  • Memiliki web interface
  • Dibuat untuk ber interaksi langsung dengan user
  • Dibuat untuk bekerja pada web browser.

WEB SERVICES

  • Tidak memiliki interface yang bagus
  • Dibuat untuk ber interaksi langsung dengan applikasi yang lain baik beda OS / Konsep sekalipun.
  • Dibuat untuk bekerja pada semua tipe client applikasi / perangkat device

Beberapa karakteristik dari web service adalah:
  • Message-based
  • Standards-based
  • Programming language independent
  • Platform-neutral
Gambar 1. Proses Umum Web Service

Selasa, 10 Februari 2015

SEO

SEO (Search Engine Optimization)

SEO atau kepanjangan dari (Search Engine Optimization) adalah suatu cara atau teknik untuk membuat situs atau blog kita berada pada halaman/posisi satu di mesin pencarian (search engine) seperti Google, Bing, dan Yahoo.
Pengertian dari SEO juga sangat luas tetapi semuanya mencakup hal yang sama yaitu mengoptimisasi suatu halaman website/blog agar berada pada halaman/posisi satu di search engine dengan kata kunci yang ditarget

Keuntungan Melakukan SEO
Banyak sekali keuntungan dari melakukan SEO yang tidak bisa saya sebutkan satu persatu, diantaranya yaitu :

1# Mendatangkan Traffic yang Banyak

Kita semua pasti tahu jika situs atau blog berada pada halaman satu Search Engine pasti akan mendatangkan pengunjung (Traffic) yang sangat besar, tergantung pada keyword yang kita target dan besar kecilnya data hasil pencarian dari
 Google Planner.

2# Meningkatkan Penjualan

Jika suatu situs menjual suatu produk atau barang seperti
 lazada.co.id yang menjual aneka barang seperti laptop atau lainnya, maka jika ada orang mencari di google dengan keyword “jual laptop murah” kemudian situs tersebut ranking 1, maka sudah 95% lazada akan mendapatkan penjualan dari hasil SEO tersebut.

3# Meningkatkan Daya Saing

Mudah saja untuk keuntungan SEO yang satu ini, jika posisi suatu situs lebih tinggi maka secara otomatis daya saingnya pun akan lebih tinggi. Masih banyak lagi keuntungan dari SEO ini yang tidak saya sebutkan semua, karena saya yakin dengan 3 hal diatas saja pasti anda sudah mengerti mengenai keuntungan SEO.

Wilayah SEO tidak hanya meliputi optimasi halaman website; dengan kata lain targetnya tidak hanya bersifat umum, tetapi juga membidik pencarian spesifik seperti : pencarian gambr,pencarian video, pencarian local, pencarian berita, pencarian akaemik, dan lain sebagainya.
Sebagai bagian dari strategi internet marketing, SEO mempertimbangkan beberapa hal agar upaya optimasi tepat, diantaranya adalah: bagaimana search engine bekerja; kueri apa saja yang digunakan (apa yang dicari user SE, keyword analysis); dan memahami factor-faktor ranking (algoritma). Strategi SEO meliputi banyak hal, misalnya adalah dengan memperhatikan standar website yang baik (Onpage SEO), meningkatkan jumlah dan kualitas backlink, strategi dan analisis konten.
Keamanan Data :

Terhadap kebutuhan untuk melakukan transaksi atau komunikasi secara aman pada jaringan internet, teknik-teknik terus di kembangkan pada semua lapisan arsitektur protokol yang di gunakan. Khususnya arsitektur protokol TCP/IP.

Arsitektur keamanan untuk XML (XML security), di kembangkan untuk menjawab kebutuhan terssebut. Dan juga dapat menyediakan keamanan yang fleksibel tidak hanya untuk dokumen XML, tetapi juga untuk semua obyek yang dapat di tangani melalui sebuah URL.
Sebuah arsitektur keamanan mendasari dirinya pada beberapa layanan keamanan yaitu :
1. Kerahasiaan (confidentiality)
2. Integritas (integrity)
3. Authentication
4. Nonrepudiation

Berikut ini standar-standar inti dari XML security :
1. XML digital signature untuk tanda tangan dan integritas.
2. XML encryption untuk kerahasiaan.
Internet of things
Internet of Things merupakan istilah yang merujuk pada terhubungnya berbagai perangkat ke internet, bukan hanya komputer atau smartphone tapi juga perangkat sehari-hari seperti kulkas, mesin cuci, sepatu, jam tangan dan benda-benda lainnya. 

Sedangkan definisi Cisco untuk Internet of Things merujuk pada koneksi intelijen dari perangkat cerdas, yang bisa mendorong efisiensi, pertumbuhan bisnis dan kualitas hidup. 


Selasa, 27 Januari 2015

Smart CIty

Perkembangan teknologi yang semakin pintar membuat konsep smart city tak hanya diterapkan pada berbagai perangkat, tetapi pada sistem dan tatanan. Salah satunya yang mencuat belakangan ini yaitu konsep dari Smart City. Konsep yang disebut dengan kota pintar ini adalah konsep yang mengetengahkan sebuah tatanan kota cerdas yang bisa berperan dalam memudahkan masyarakat untuk memudahkan masyartakat mendapatkan informasi secara cepat dan tepat.

Indikator Smart City
Konsep smart city sendiri pertama kali dikemukakan oleh IBM, perusahaan komputer ternama Amerika. Perusahaan tersebut memperkenalkan konsep smart city untuk meningkatkan kualitas hidup masyarakat perkotaan. Untuk menyukseskan konsep smart city ini, IBM menelurkan enam indikator yang harus dicapai. Keenam indikator tersebut adalah masyarakat penghuni kota, lingkunan, prasarana, ekonomi, mobilitas, serta konsep smart.

Konsep smart city ini kini menjadi impian banyak kota besar di Indonesia. Konsep in dianggap sebagai solusi dalam mengatasi kemacetan yang merayap, sampah yang berserakan, ataupun sebagai solusi dalam mengatasi kemacetan yang merayap, sampah yang berserakan, ataupun pemantau kondisi lingkungan di suatu tempat. Perjalanan menuju konsep smart city ini juga sudah mulai kreatif di bidang teknologi, merupakan langkah awal yang baik menuju kota pintar. Setidaknya, hal tersebut dapat dilihat di kota semacam Jakarta, Bandung, Yogyakarta, Surabaya,  dan Makassar.

Kota cerdas di beberapa negara tentu sudah matang dalam penanganan masalah banjir, kemacetan, ledakan penduduk, air bersih. Ada tahapan pembangunan yang jelas, kemudian diterjemahkan sebagai konsep pembangunan, sehingga tahapan pembangunan tata kota di negara maju berlangsung secara berkelanjutan. Kemapanan ini perlu dilanjutkan dalam sebuah sistem agar tidak berhenti pada periode tertentu saja, maka lahirlah konsep smart city/kota cerdas yang menjadi konsep besar dari Sustainable city.

Jika ada enam indikator untuk membuat kesuksesan sebuah smart city, maka hal tersebut belum lengkap jika tidak ada elemen pendukung. Menurut Suhono, smart city aka terbang dengan dukungan lima teknologi pintar seperti sensor pintar, komunikasi dari suatu mesin msein lain, komputasi awan, media sosial, dan teknologi Geographical InformationSystem atau GIS.

Kelima teknologi ini cukup penting meski Suhono mengakui komunikasi mesin dengan mesin lain (machine to machine) merupkan hal yang masih belum bisa diterapkan di masa sekarang. Namun, keempat unsur lain masih memungkinkan. Setidaknya agar masyarakat bisa mendapatkan informasi dan akses lebih cepat