Is it possible to have multiple modules in same task? for example : if i want to copy a file and extract it cant i use copy and unzip in same task? should i create separate tasks for each module?
Each action is a task, modules provide actions. It would be the same
as saying 'can i have multiple tasks per task'.
Yes, each module usage is a separate task. You can use roles to group together tasks so that you can reuse them. Have a look on ansible galaxy - there are lots of roles there to install and configure things.
Once you have tried using and making roles, it would be worth looking at blocks as I think they can be used to group together related tasks.
Jon