saurav_cheeta has given a detailed answer on the process and sukhdeepsinghkohli has given it in still more details
Usually this is the procedure:
1. Buy a domain (don't fall for free or cheap domain tricks)
2. Host it immediately if you want to use it for emails.
3. Build the site
a. Get a template
b. Write code
4. If you have not hosted it already, host it now.
Except domains, all the other things you will get it for free. Even in paid hosting, designs, etc. there are lots and lots of variations.