এক্কেবার কোরে যদি চিন্তা করি তাহলে দেখবো যে প্রোগ্রামিং আসলে কিছু ডেটা (Data) কে নিয়ে নানা রকমের কাজ (Operation) করা। প্রোগ্রাম এবং তাতে ব্যাবহার করা ল্যাঙ্গুয়েজের (Programming Language, আমরা শুধু Language বলবো এখানে) উপর ভিত্তি করে  এই কিছু এর পরিমাণ এবং কাজের ধরণ বিভিন্ন রকম হতে পারে। কিছু উদাহরণ হতে পারেঃ

  • একটা ছোট ক্যালকুলেটর যেটা ২টি সংখ্যা যোগ করে, এখানে ২ট সংখ্যা হচ্ছে ডেটা এবং যোগ করাটা হচ্ছে কাজ।
  • একটা প্রোগ্রাম যেটা hello world স্কিনে প্রিন্ট করে,  hello world টা ডেটা, প্রিন্ট করাটা হচ্ছে কাজ।
  • একটা নোটপ্যাড (যেমন Sublime Text) যেটা দিয়ে ফাইলের লেখা এডিট করা যায়, ফাইলের লেখা গুলো ডেটা, এডিট করাটা কাজ।

এরকম আরও উদাহরণ দেয়া যায় আপাতত ডেটা তে ফেরত আসি, যেটা নিয়াই আসলে আমাদের কাজ।  এখানেও একি কথা, ল্যাঙ্গুয়েজের উপর ভিত্তি করে এক এক রকম ডেটা টাইপের সুবিধা দেয়, কিন্তু আসল জিনিস গুলো একই থাকে।

সংখ্যা - Number

Number একটি ডেটা টাইপ, ঐযে উপরে ক্যালকুলেটরে ২টি সংখ্যার যোগ করলাম তাদের টাইপ ছিল Number । এই Number ও কিন্তু বেশ কয়েকটা ভাগে ভাগ করা যায়:

  • Integer বা পূর্ণ সংখ্যা
  • Decimal বা দশমিক সংখ্যা

এগুলোকেও বিভিন্ন ল্যাঙ্গুয়েজ আরও অনেক ভাগে ভাগ করসে আমরা ওগুলোতে না যায়, যখন ল্যাঙ্গুয়েজটি শিখবো তখন দেখে নিবো যে কি কি ধরণের Number সেটি দেয়। কিন্তু সবগুলো ল্যাঙ্গুয়েজে অবশ্যই অবশ্যই Number ডেটা থাকবে। উদাহরণ হতে পারে - 1,2, 10, 25.50, 1000, 9999999, -55 ইত্যাদি।

লেখা বা স্ট্রিং - String

উপরে যে hello world প্রিন্ট করলাম, নোটপ্যাডে যে ফাইলের লেখা এডিট করলাম বা এখন যে লেখা পড়তেস সবই String ডেটা। String বাংলা, ইংরেজি, তেলেগু, সংখ্যা (জি হ্যাঁ সংখ্যাও) যে কোন হতে পারে। String কে ২টি ভাগ করা যায়:

  • Character বা Char বা একটি অক্ষর
  • String বা লেখা

অনেকগুলো Char আসলে পাশাপাশি লিখে বা জোড়া দিয়েই String হয়। যেমন - 'আ' একটা Char 'ম' আর একটা Char, পাশাপাশি লিখলে পাই "আম"! যেটা একটা String। একটু খেয়াল করবো যে Char কে সিঙ্গেল কোট (') আর String কে ডাবল কোট (") এর ভিতরে লিখতেসি। ল্যাঙ্গুয়েজটি শেখার সময় আমরা দেখে নিবো যে কে কি ভাবে লিখতেসে, বা আরও অন্য কোন ভাগ করতেসে কি না। আর String ডেটা প্রায় সব ল্যাঙ্গুয়েজেই কোন একটা কোট (' বা ") এর ভিতরে থাকবে।

Number আর String টাই আসলে  main ডেটা টাইপ। এছাড়াও বেশ কিছু মজার ডেটা টাইপ আছে।

বুলিয়ান - Boolean

এইটা মজার একটা টাইপ যার মান মাত্র ২টা হতে পারে, True (বা সত্য) এবং False (বা মিথ্যা) ।  অর্থাৎ বুলিয়ান ডেটা হয় সত্য অথবা মিথ্যা হবে, ২টা একসাথে হতে পারবে না। ছোটবেলায় ঐযে সত্যি মিথ্যা বাক্য গঠনের মত।  যেমন :

  • পৃথিবী চারকোনা।  এইটা False
  • মানুষ মরণশীল । এইটা True

আমাদের প্রোগ্রামে অনেক decision নিতে হয় তখন এই ডেটা টাইপ লাগে। আমাদের প্রতিদিন জীবনেও কিন্তু এই জিনিস সবসময় লাগে। যেমন:

  • আজকে বৃষ্টি হলে ছাতা নিয়ে বের হবো।
  • আজকে ছুটি থাকলে বন্ধুদের সাথে আড্ডা মারবো।
  • বাস পেলে বাসে যাবো, না হলে CNG নিবো।

মানে হছে কিছু একটা হচ্ছে কি হচ্ছে না তার উপরে আমরা কি করবো সেটা নির্ভর করে। প্রোগ্রামেও কিন্তু তাই, user যদি X বাটন প্রেস করে তাহলে প্রোগ্রাম বন্ধ হবে না হলে চলতে থাকবে। hello বাটন প্রেস করলে হয়তো থাকে hello দেখাবে। অথবা কোন প্রশ্নের উত্তর দিতে পারলে তাকে success বা  wrong answer দেখাবে।
কন্ডিশন করার সময় এইটা নিয়ে আরও detail এ দেখবো, এখানে একটু ছোট্ট করে শুধু বলি কিভাবে প্রোগ্রামে হতে পারে:

যদি পকেটে টাকা থাকে
        তাহলে হোটেলে বার্গার খাবো
অথবা যদি বন্ধুর সাথে দেখা হয়
        তার বাসায় পোলাও খাবো
না হলে
        নিজের বাসায় ডাল ভাত খাবো

খালি / বাতিল / শূন্য - void / null / nil

দেখতে একটু অদ্ভুত কিন্তু বেশ মজার টাইপ এইটা। শুধু বলে আসলে বুঝানো মুশকিল তাই ভ্যারিয়েবল দেখার সময় আমরা আবার দেখবো এটা। আপাতত এটুকুই জানি যে কোন জাগায় কোন কাঙ্ক্ষিত ডেটা নেই অর্থে ব্যবহার হয়ে থাকে। এই টাইপটি উপরের যেকোন একটা বা তার বেশি বা কোন ভাবেও থাকতে পারে , যেটা ল্যাঙ্গুয়েজটি শেখার সময় আমরা দেখবো। কিন্তু মোটামুটি এরকম একটি টাইপ থাকবে।

উপরের যে টাইপগুলো আমরা জানলাম সেগুলো মৌলিক (Basic) ডেটা টাইপ। ল্যাঙ্গুয়েজ ভেদে এই টাইপ লিস্টটা আরও বড় হতে পারে, কিন্তু মোটামুটি উপরের গুলো থাকবে। যৌগিক (Composite) ধরণের কিছু টাইপ থাকতে পারে, যেগুলো আসলে Basic টাইপেরই কোন না কোন মিশ্রণ - অ্যারে (Array), লিস্ট (List), স্ট্রাক্ট (Struct), অবজেক্ট (Object) এর মধ্যে বেশ উল্লেখ্য। কোন কোন ল্যাঙ্গুয়েজ আবার নিজের মতো করে Composite টাইপ ব্যবহার করার সুবিধাও দেয়।

ডেটা টাইপ শুধু জানলেই হবে না, কাজের সুবিধার জন্য ওগুলোকে কোন এক জাগায় রাখতে হবে আমাদের। ডেটা রাখার জন্য ভ্যারিয়েবল নামক একটা জিনিস আমরা ব্যবহার করে থাকি। পরবর্তী লেখাতে এ সম্পর্কে দেখবো।


আগের লেখা: প্রোগ্রামিং কনসেপ্ট ১০১
পরবর্তী লেখা: প্রোগ্রামিং কনসেপ্ট ১০১ - ভ্যারিয়েবল