'하다' is the original form of the verb, which means 'do'.
'한다' is a conjugation, which means 'doing something (now)'.
So you can write like this,
"나는 지금 공부를 한다." (I'm studyng now.)= 나는 지금 공부를 하고 있다.
but you can't write like this,
"나는 어제 공부를 한다.(x)" "나는 어제 공부를 했다.(o)" (I studied yesterday.)
Notice that adjectives like 미안"하다"can't be used with "한다".
So 미안"한다" is wrong.
사랑"하다" is a verb.
Verb can be used with "한다", which is the present continuous.
한다고 is used when you are emphasizing something you just said, to say it the second time. You put고 to draw the listener's attention.
As various lyrics go 내가 사랑한다고 meaning"i really love you."